Programming with Words: A developers view of Prompt Engineering
The tech world is constantly evolving, and with each shift, developers face the challenge of understanding new paradigms and tools. One such paradigm is prompt engineering for large language models (LLMs). If you're a software developer, think of prompt engineering as programming an LLM, where the LLM acts like a computer designed to understand and generate language, images, or audio based on your inputs. In this article I share how I think about prompt engineering, and how it parallels and compliments traditional programming tasks.
What is Prompt Engineering?
At its core, prompt engineering involves crafting inputs (prompts) that guide LLMs to produce desired outputs. Just as you write code to get specific functionality from a traditional computer, you design prompts to get useful responses from an LLM. These prompts can range from simple questions to complex instructions, and the better you craft them, the better the output.
How is an LLM like a Computer?
Imagine an LLM as a new type of computer, but instead of processing binary code, it processes human-like language (or images, or audio). When you write a prompt, you're essentially programming this LLM-computer to perform a task. The LLM leverages vast amounts of pre-existing data to generate responses that align with your prompt. This process can be likened to running a program where the code is your prompt, and the output is the LLM's response.
Common Programming Tasks and Their Prompt Engineering Counterparts
1. Function Calls
Programming: Writing a function to sort a list.
Prompt Engineering: Asking the LLM to sort a list of items alphabetically. Example: "Sort the following list of words: apple, orange, banana, grape."
2. Data Retrieval
Programming: Querying a database for specific records.
Prompt Engineering: Instructing the LLM to extract specific information from a block of text.
Example: "Find all the dates mentioned in this paragraph."
Recommended by LinkedIn
3. Conditional Logic
Programming: Using if-else statements to handle different scenarios.
Prompt Engineering: Creating prompts that guide the LLM to provide different responses based on conditions.
Example: "If the user's input is positive, respond with a compliment. Otherwise, ask for more details."
4. Looping and Iteration
Programming: Iterating over a list to perform repetitive tasks.
Prompt Engineering: Asking the LLM to repeat a task for multiple items.
Example: "For each of the following names, write a short greeting: John, Sarah, Alex."
Getting Started with Prompt Engineering
Tie-in with RAG
At its core, Retrieval Augmented Generation (RAG) is simply a way to automate the process of using existing proprietary document and data sources to build prompts that an LLM can process to generate outputs from those documents and data. So, to do RAG well developers need to understand the best prompting techniques and then build those techniques into their RAG applications. Just as you need to understand the fundamentals of flow-of-control logic and data structures, you now need to understand prompt engineering in order to build today’s sophisticated LLM-based solutions.
Conclusion
Prompt engineering opens up a new dimension for software developers, enabling the creation of sophisticated, language-based applications. By approaching LLMs as programmable computers, you can harness their power to streamline tasks, enhance user interactions, and develop innovative solutions. As with any new technology, the key is to start small, experiment, and gradually build up your expertise. Embrace this new paradigm, and you'll be well-equipped to lead in the age of generative AI.
My opinions on GPT-prompt engineer "AI Architects" 👇 https://www.garudax.id/pulse/big-click-energy-why-most-ai-architects-just-prompt-ellison-ms-sd-j5rdc