评估(通常称为 evals)用于测试模型输出,以确保其符合您指定的风格和内容标准。编写评估是构建可靠应用程序的重要组成部分。OpenAI 平台的 数据集(Datasets) 功能为您提供了快速上手评估和测试提示词的途径。
如果您需要高级功能(例如针对外部模型进行评估)、希望通过 API 与评估运行进行交互,或者希望进行大规模评估,请考虑改用 Evals。
创建数据集
首先,在控制面板中创建一个数据集。
- 在 评估页面上,导航至 数据集 (Datasets) 选项卡。
- 点击右上角的 创建 (Create) 按钮即可开始。
- 在输入字段中为您的数据集添加名称。在本指南中,我们将数据集命名为“投资备忘录生成”。
- 添加数据。要从零开始构建数据集,请点击 创建 (Create),并通过可视化界面添加数据。如果您已经有保存好的提示词或包含数据的 CSV 文件,也可以上传它们。
我们建议将数据集视为一个动态空间,随着时间的推移不断扩展评估数据。当您发现需要监控的边界情况或盲点时,请使用仪表板界面将其添加进去。
上传 CSV
我们有一个简单的 CSV 文件,其中包含公司名称以及它们过去几个季度的实际收入值。
CSV 中的列对您的提示词和评分器都是可见的。例如,我们的 CSV 包含输入列 (company) 和用于参考的基准答案列 (correct_revenue, correct_income),供我们的评分器使用。
使用可视化数据界面
打开数据集后,您可以在 数据 (Data) 选项卡中操作数据。点击单元格即可编辑内容。添加行以增加更多数据。您还可以通过每行右侧的溢出菜单删除或复制行。
要保存更改,请点击右上角的 保存 (Save) 按钮。
构建提示词
数据集仪表板中的选项卡允许将多个提示词应用于同一数据集。
-
要添加新提示词,请点击 添加提示词 (Add prompt)。
数据集旨在与您的 OpenAI 提示词 配合使用。如果您已经在 OpenAI 平台上保存了提示词,则可以从下拉菜单中选择它,并在该界面中进行更改。要保存提示词更改,请点击 保存 (Save)。
我们的提示词使用版本控制系统,以便您可以安全地进行更新。点击 保存 (Save) 将创建一个新的提示词版本,您可以在 OpenAI 平台的任何位置引用或使用它。
-
在提示词面板中,使用提供的字段和设置来控制推理调用。
- 点击右上角的滑块图标以控制模型的
temperature(温度)和top_p。 - 添加工具,以便赋予您的推理调用访问网络、使用 MCP 或执行其他工具调用操作的能力。
- 添加变量。提示词和您的 评分器 (graders) 都可以引用这些变量。
- 直接输入您的系统消息,或点击铅笔图标,根据您提供的基本指令让模型协助生成提示词。
在我们的示例中,我们将添加 网络搜索 (web search) 工具,以便我们的模型调用能够从互联网上提取财务数据。在变量列表中,我们将添加 company,以便我们的提示词可以引用数据集中的公司列。对于提示词,我们将通过告诉模型“生成一份财务报告”来生成一个提示词。
生成并标注输出
设置好数据和提示词后,就可以生成输出了。模型的输出让您可以了解模型在您提供的提示词和工具下表现如何。接下来,您可以对输出进行标注,以便模型随着时间的推移不断提高性能。
-
点击右上角的 生成输出 (Generate output)。
您会看到数据集中的一个特殊 output(输出)列开始填充结果。该列包含对数据集中每一行运行提示词后的结果。
-
生成输出后,即可进行标注。点击 output、rating(评分)或 output_feedback(输出反馈)列,打开标注视图。
您可以根据需要进行任意程度的标注。数据集旨在适应各种程度和类型的标注,但您提供的信息质量越高,结果就会越好。
标注的作用
标注是评估和改进模型输出的关键部分。好的标注:
- 作为期望模型行为的基准参考(ground truth),即使对于高度具体的情况(包括主观要素,如风格和语气)也同样适用
- 提供信息密集型的上下文,从而实现自动提示词优化(通过我们的提示词优化器)
- 有助于诊断提示词的缺点,特别是在细微或罕见的情况下
- 有助于确保评分器与您的意图保持一致
您可以按需进行任意程度的标注。数据集的设计适用于任何程度和类型的标注,但您提供的信息质量越高,结果就越准确。此外,如果您不是数据集内容的专家,建议由主题专家进行标注——这是将专业知识融入优化过程的最有价值的方式。探索 我们的手册 (cookbook),详细了解我们认为在使用评估来提高提示词稳健性方面最有效的方法。
标注起点
以下是您可以用来入门的几种标注类型:
- 好/坏(Good/Bad)评级,反映您对输出的判断
- 在 output_feedback 部分填写的文本评价
- 您在右上角 列 (Columns) 下拉菜单中添加的自定义标注类别
结合专家标注
如果您不是数据集内容的专家,请让主题专家进行标注。这是将专业知识融入优化过程的最佳方式。探索 我们的手册 以了解更多信息。
添加评分器
虽然标注是将人类反馈整合到评估过程中最有效的方法,但评分器(graders)允许您进行大规模评估。评分器是自动化的评估工具,根据其类型可以产生各种输入。
| 类型 | 详情 | 使用案例 |
|---|---|---|
| 字符串检查 (String check) | 使用精确字符串匹配将模型输出与参考进行比较 | 检查您的回答是否与基准答案列完全匹配 |
| 文本相似度 (Text similarity) | 使用向量嵌入 (embeddings) 来计算模型输出与参考之间的语义相似度 | 在不需要精确匹配的情况下,检查您的回答与基准答案的接近程度 |
| 模型评分器 (Score model grader) | 使用 LLM 分配数字分数 | 按数字等级衡量主观属性(例如友好度) |
| 模型分类器 (Label model grader) | 使用 LLM 选择类别标签 | 根据预定义的标签(如“简洁”或“冗长”)对您的回答进行分类 |
| Python 代码执行 | 运行自定义 Python 代码以编程方式计算结果 | 检查输出是否少于 50 个单词 |
- 在右上角,导航至 评分 (Grade) > 新建评分器 (New grader)。
- 从下拉菜单中选择评分器类型,并填写表格以设置您的评分器。
- 引用数据集中的列,以对照基准答案值进行检查。
- 创建评分器。
- 添加至少一个评分器后,使用 评分 (Grade) 下拉菜单对您的数据集运行特定的或所有的评分器。运行完成后,您将在数据集中专门的列中看到每个评分器的通过/失败等级。
保存数据集后,当您修改数据集和提示词时,评分器会持续存在。这是快速评估提示词或模型参数的更改是否带来改进,或者添加边界情况是否揭示了提示词缺点的绝佳方法。数据集仪表板支持多个选项卡,可同时跟踪来自自动化评分器的多个提示词变体的结果。
后续步骤
数据集非常适合快速迭代。当您准备好长期跟踪性能或进行大规模运行时,请将您的数据集导出为 评估 (Eval)。评估异步运行,支持更大的数据量,并让您可以跨版本监控性能。
如需更多灵感,请访问 OpenAI Cookbook,其中包含示例代码和第三方资源链接,或了解更多关于我们评估工具的信息。
通过评估建立持续改进的良性循环。
针对外部模型进行评估,通过 API 与评估进行交互等。
使用您的数据集自动改进提示词。
构建复杂的评分器以提高评估的有效性。