评测(Evals)

评测(Evals)用于测试模型输出,确保其符合你指定的风格和内容标准。

核验日期

定义

评测(Evaluations,常称 evals)用于测试模型输出,确保其符合你指定的风格和内容标准。OpenAI 的 Evals 指南侧重于使用 Evals API 以编程方式配置 evals。如果你愿意,也可以在 OpenAI 控制台中配置 evals。

将任务描述为 eval、用测试输入运行 eval、分析结果并迭代改进提示词,这一过程有些类似行为驱动开发(BDD),即先指定系统应有的行为,再实现并测试系统。OpenAI 正在弃用 Evals 平台。

一图看懂

创建 eval 从描述模型要完成的任务开始。

  • 将要完成的任务描述为一个 eval。
  • 用测试输入(提示词和输入数据)运行 eval。
  • 分析结果,然后迭代并改进提示词。
  • data_source_config 是用于测试数据的 schema,与 eval 一同使用。
  • testing_criteria 是判定模型输出是否正确的评分器。
  • 上传 JSONL 文件可能比较方便,其数据采用创建 eval 时指定的 schema。
  • 测试数据就位后,通过 API 创建 eval run 来针对测试标准评估提示词。
  • eval run 已排队,并将异步执行,处理数据集中的每一行,用指定的提示词和模型生成响应。

原文没有明确这些要点的先后顺序,因此按要点列出,不画先后箭头。

工作原理

创建 run 时,会用 Chat Completions 消息数组或 Responses 输入设置提示词,该提示词用于为数据集中每一行测试数据生成模型响应。创建 eval 之后,它会被分配一个 UUID,之后启动 run 时需要用它来指向该 eval。视数据集大小而定,eval run 可能需要一些时间才能完成。

若要在 run 成功、失败或被取消时收到更新,可以创建 webhook 端点并订阅 eval.run.succeeded、eval.run.failed 和 eval.run.canceled 事件。当前状态可以在控制台中查看,也可以通过 API 获取;获取 eval run 的状态需要 eval 和 eval run 两者的 UUID。API 响应包含测试标准结果、API 用量等信息,以及一个指向控制台页面的 report_url 属性,可在该页面直观查看结果。

例子

指南中的示例用模型把 IT 支持工单的内容分到 3 个类别之一:Hardware、Software 或 Other。要实现这个工单分类用例,可以使用 Chat Completions API 或 Responses API。在这个工单示例中,ticket_text 是包含支持工单内容的一段文本字符串。

在这个工单示例中,correct_label 是由人提供、模型应当匹配的“ground truth”输出。由于示例的测试标准要引用样本(即模型针对提示词生成的输出),示例还把 include_sample_schema 设为 true。在这个例子中,使用 string_check 评分器来评估输出。

在这个例子中,模型输出的字符串应与测试数据中人工标注的 correct_label 字段完全一致。示例的 JSONL 数据集同时包含测试输入和用于对照模型输出的 ground truth 标签,文件可以在控制台中上传,也可以通过 API 上传。

来源

本页内容整理自以下官方来源,点击可核对原文。

核验日期 ·

本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。