OpenAI Evals 框架包括:
- 一个用于评估 LLM(大型语言模型)或构建于 LLM 之上的系统的框架。
- 一个具有挑战性的评估的开源注册表
本笔记本将涵盖:
- 评估介绍和 OpenAI Evals 库
- 构建评估
- 运行评估
什么是评估/ evals
?
评估是验证和测试您的 LLM 应用程序正在生成的输出的过程。拥有强大的评估(“evals”)意味着应用程序更稳定、更可靠,并且能够应对代码和模型更改。评估是一项用于衡量 LLM 或 LLM 系统输出质量的任务。给定一个输入提示,生成一个输出。我们使用一组理想答案评估此输出,并找到 LLM 系统的质量。
评估的重要性
如果您正在使用像 GPT-4
这样的基础模型进行构建,那么创建高质量的评估是您可以做的最有影响力的事情之一。开发 AI 解决方案涉及迭代设计过程。 如果没有评估,就很难且耗时地理解不同的模型版本和提示如何影响您的用例。
借助 OpenAI 的 持续模型升级,评估使您能够以标准化的方式高效地测试模型在您的用例中的性能。开发一套针对您的目标定制的评估将帮助您快速有效地了解新模型在您的用例中的表现。您还可以将评估作为 CI/CD 管道的一部分,以确保在部署之前达到所需的准确性。
评估的类型
我们有两种主要方法可以评估/评分补全:在代码中编写一些验证逻辑,或使用模型本身来检查答案。我们将通过一些示例介绍每种方法。
编写答案检查逻辑
最简单和最常见的评估类型具有输入和理想的响应或答案。例如,我们可以有一个评估样本,其中输入是“奥巴马第一次当选总统是哪一年?”,理想答案是“2008”。我们将输入提供给模型并获得补全。如果模型说“2008”,则将其评为正确。我们可以编写一个字符串匹配来检查补全是否包含短语“2008”。如果包含,我们认为它是正确的。
考虑另一个评估,其中输入是生成有效的 JSON:我们可以编写一些代码,尝试将补全解析为 JSON,然后如果可以解析,则认为补全正确。
模型评分:一个两阶段的过程,模型首先回答问题,然后我们要求模型查看响应以检查其是否正确。
考虑一个要求模型写一个有趣笑话的输入。然后模型生成一个补全。然后,我们创建一个新的输入到模型,以回答问题:“以下笑话有趣吗?首先逐步推理,然后回答是或否”,其中包含补全。最后,如果新模型补全以“是”结尾,我们认为原始补全正确。
模型评分最适用于最新的、最强大的模型,如 GPT-4
,并且如果我们给它们在做出判断之前进行推理的能力。模型评分会有错误率,因此在规模化运行评估之前,通过人工评估验证性能非常重要。为了获得最佳结果,使用与完成补全的模型不同的模型进行评分是有意义的,例如使用 GPT-4
对 GPT-3.5
的答案进行评分。
OpenAI 评估模板
在使用评估时,我们发现了几个“模板”,可以适应许多不同的基准。我们在 OpenAI Evals 库中实现了这些模板,以简化新评估的开发。例如,我们定义了 2 种类型的评估模板,可以开箱即用
-
基本评估模板:这些模板包含确定性函数,用于将输出与 ideal_answers 进行比较。在期望的模型响应变化很小的情况下,例如回答多项选择题或答案直接的简单问题,我们发现以下模板很有用。
-
模型评分模板:这些模板包含函数,其中 LLM 将输出与 ideal_answers 进行比较,并尝试判断准确性。在期望的模型响应可能包含显著变化的情况下,例如回答开放式问题,我们发现使用模型自身进行评分是自动化评估的可行策略。