Prompt Engineering: Six Strategies for Getting Better Results

OpenAI released a reference guide to improve results from ChatGPT or any generative AI platform. These methods aren’t mutually exclusive. You can use many of them in combination for greater effect.

The point is, experiment!

To help, I captured the high level prompts and each series of supporting pillars in a simple infographic. You can download it here.

1) Write clear instructions

These models can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less the model has to guess at what you want, the more likely you’ll get it.

Tactics:Include details in your query to get more relevant answersAsk the model to adopt a personaUse delimiters to clearly indicate distinct parts of the inputSpecify the steps required to complete a taskProvide examplesSpecify the desired length of the output2) Provide reference text

Language models can confidently invent fake answers, especially when asked about esoteric topics or for citations and URLs. In the same way that a sheet of notes can help a student do better on a test, providing reference text to these models can help in answering with fewer fabrications.

Tactics:Instruct the model to answer using a reference textInstruct the model to answer with citations from a reference text3) Split complex tasks into simpler subtasks

Just as it is good practice in software engineering to decompose a complex system into a set of modular components, the same is true of tasks submitted to a language model. Complex tasks tend to have higher error rates than simpler tasks. Furthermore, complex tasks can often be re-defined as a workflow of simpler tasks in which the outputs of earlier tasks are used to construct the inputs to later tasks.

Tactics:Use intent classification to identify the most relevant instructions for a user queryFor dialogue applications that require very long conversations, summarize or filter previous dialogueSummarize long documents piecewise and construct a full summary recursively4) Give the model time to “think”

If asked to multiply 17 by 28, you might not know it instantly, but can still work it out with time. Similarly, models make more reasoning errors when trying to answer right away, rather than taking time to work out an answer. Asking for a “chain of thought” before an answer can help the model reason its way toward correct answers more reliably.

Tactics:Instruct the model to work out its own solution before rushing to a conclusionUse inner monologue or a sequence of queries to hide the model’s reasoning processAsk the model if it missed anything on previous passes5) Use external tools

Compensate for the weaknesses of the model by feeding it the outputs of other tools. For example, a text retrieval system (sometimes called RAG or retrieval augmented generation) can tell the model about relevant documents. A code execution engine like OpenAI’s Code Interpreter can help the model do math and run code. If a task can be done more reliably or efficiently by a tool rather than by a language model, offload it to get the best of both.

Tactics:Use embeddings-based search to implement efficient knowledge retrievalUse code execution to perform more accurate calculations or call external APIsGive the model access to specific functions6) Test changes systematically

Improving performance is easier if you can measure it. In some cases a modification to a prompt will achieve better performance on a few isolated examples but lead to worse overall performance on a more representative set of examples. Therefore to be sure that a change is net positive to performance it may be necessary to define a comprehensive test suite (also known an as an “eval”).

Tactic:Evaluate model outputs with reference to gold-standard answers

The post Prompt Engineering: Six Strategies for Getting Better Results appeared first on Brian Solis.

 •  0 comments  •  flag
Share on Twitter
Published on January 08, 2024 05:19
No comments have been added yet.