Evaluating the prompt
Summarize
Summary of Evaluating the prompt
Evaluating prompts is a continuous process during and after prompt development to ensure their effectiveness. It involves analyzing model-generated responses on batches of test data outside of AI Skill Kit to make informed improvements.
Show less
During prompt development
Ongoing evaluation should accompany prompt development, allowing you to adjust prompts based on observed outputs. Avoid relying on just a few examples, and instead evaluate larger batches to identify statistically significant performance differences and minimize noise.
Final performance evaluation
Before deploying a skill, test the prompt on isolated, representative "test" data that was not used during development. This prevents prompt overfitting, where prompts become overly tailored to specific development examples, causing inflated performance estimates.
Evaluation metrics
Choosing appropriate evaluation metrics depends on the use case:
- Classification-based assessment: Suitable for short, well-defined outputs like true/false or multiple-choice answers. Metrics such as precision, recall, and F1 score can be calculated directly.
- Assessment of longer generations: For complex, longer outputs with many valid answers, human evaluators score outputs on multiple dimensions:
- Faithfulness: Measures if generated text stays true to the prompt context without hallucinating irrelevant information.
- Correctness: Checks if the output aligns accurately with the skill instructions.
- Helpfulness: Evaluates how well the output supports the intended task, considering user needs.
- Fluency: Assesses grammatical correctness, coherence, and absence of errors.
These properties are best rated on a scale (e.g., 1-5) rather than a simple yes/no to capture nuance.
Evaluating the prompt is an ongoing process that occurs during and after prompt development and completion.
Prompt evaluation overview
To determine the effectiveness of your prompt, you should evaluate batches of test data. You should copy the model-generated responses and perform evaluations outside of AI Skill Kit.
During prompt development
Ongoing, improvised evaluation should take place alongside the development of the prompt. This ongoing evaluation enables you to adapt the prompt based on observed model outputs. It may be tempting to test a change to a prompt against just one or two examples, however, to avoid reacting to noise, you should look at larger batches, and consider the statistical significance of the performance differences that you observed.
Final performance evaluation
Before you deploy a skill, you should test the prompt on a representative batch of data that was isolated from the development process, that is, “test” data. You want to use isolated test data because of a phenomenon known as prompt overfitting. Iteratively editing a prompt based on the model outputs generated on the same data that is used for testing can lead to significant over-estimates of performance. This result is because the prompt can become overspecialized to the specific examples used in development. Even though the effect is typically less dramatic than what occurs when fitting machine learn model parameters to a test dataset, it’s rooted in the same underlying principles, and should be avoided.
Evaluation metrics
Selecting the right metrics for evaluation is an important consideration. The following list provides a few approaches, each of which may be more or less appropriate depending on the use case.
- Classification-based assessment of short generations
This approach requires labeled records, and it works best when the labels are short, well-defined “right answers,” for example, true or false, multiple-choice, or category selection. In these cases, the model outputs can usually be parsed and formatted, then metrics like precision, recall, F1 scores, and so on can be directly calculated.
- Assessment of longer generations
Many of the most interesting generative AI use cases require longer model generations, and there are many possible “right answers.” In these cases, the output can be scored (by human evaluators) along several different axes, for example:
- Faithfulness
Is the generated text faithful to the context provided in the skill prompt? (The opposite of faithfulness is hallucination, which is to say that the model injects out-of-context information.)
- Correctness
Is the generated text correct relative to the skill instruction?
- Helpfulness
Is the generated text helpful relative to the task that the skill wants to accomplish? (Helpfulness is subjective but it’s important to try to measure. Doing so properly requires a solid understanding of the needs of the people who will ultimately be using the skill.)
- Fluency
Is the generated text grammatically correct? Does it have any typos, issues with coherency, and so on?
Note:It’s useful to score these properties on a scale, like 1-5, rather than with yes or no. - Faithfulness