Evaluating the prompt
Summarize
Summary of Evaluating the Prompt
Evaluating the prompt is a crucial process during and after its development to ensure effectiveness. It involves assessing model-generated responses with a focus on adapting prompts based on observed outputs and avoiding overfitting through careful testing with isolated data.
Show less
Key Features
- Ongoing Evaluation: Continuous assessment during development helps refine prompts for better performance.
- Final Performance Evaluation: Testing the prompt on a representative batch of isolated test data prevents overfitting and provides a more accurate measure of effectiveness.
- Evaluation Metrics: Selecting appropriate metrics is essential. Options include:
- Classification-based assessment: Ideal for short, well-defined outputs where precision and recall can be calculated.
- Assessment of longer generations: Involves scoring outputs on multiple axes such as faithfulness, correctness, helpfulness, and fluency, often using a scale for nuanced evaluation.
Key Outcomes
By implementing thorough evaluation processes, ServiceNow customers can enhance prompt effectiveness, minimize overfitting, and ensure that generative outputs meet user needs accurately and usefully. Proper evaluation ultimately leads to improved user satisfaction and task performance.
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 Now Assist 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