评估模型性能
试用版

通过评估测试和改进模型输出。

使用 AI 模型进行开发时,必须不断测试其输出以确保它们准确且有用。使用测试数据定期对模型的输出运行评估(通常称为评估)有助于您构建和维护高质量且可靠的 AI 应用程序。

OpenAI 在 OpenAI 控制面板中提供了内置工具,用于在测试数据集上创建和运行评估。以下是该过程的工作原理:

  1. 生成测试数据集
  2. 针对数据集定义和运行评估
  3. 调整提示和/或微调模型以提高性能
  4. 重复直到满意🚀为止

让我们看看这是怎么做到的!

生成测试数据集

在软件开发中,您通常必须创建程序所需的测试数据(有时称为夹具),以验证您的软件是否正常工作。您的单元测试将使用 fixture 数据执行您的代码,并确保输出符合您的预期。

同样,你的 evals 将需要一组 test inputs,你的模型应该能够正确响应这些 inputs。拥有良好的测试数据对于优化 LLM 准确性非常重要,因为如果您的模型使用的数据不能代表它将要获得的请求类型,您将无法对它在新的未知输入上的表现充满信心。

从真实流量生成数据集

生成代表性测试数据集的最佳方法之一是使用来自用户的真实生产请求。这可以使用 Stored Completions 来实现。在生成 LLM 响应的代码中,使用参数,并包含稍后可用于筛选补全的标签,如下面的 IT 支持聊天机器人示例所示:store: truemetadata

将补全与元数据一起存储在 API 中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import OpenAI from "openai";
const openai = new OpenAI();

const response = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [
    { role: "system", content: "You are a corporate IT support expert." },
    { role: "user", content: "How can I hide the dock on my Mac?"},
  ],
  store: true,
  metadata: {
    role: "manager",
    department: "accounting",
    source: "homepage"
  }
});

console.log(response.choices[0]);

这将使完成显示在此处的仪表板中

stored completion

请注意,存储的补全包含来自 API 提示和补全的未过滤内容。当您使用 Stored Completions 中的内容进行微调时,您有责任确保您拥有使用这些内容的适当权限,并且其中不包含任何个人信息或其他敏感数据。

在这里,您可以定义一个 eval 来判断模型的输出。

针对您的测试数据定义并运行 eval

手动或使用完成 UI 中的流创建测试数据集后,您可以定义 eval 运行的参数。如果您按照上述步骤操作并从生产流量生成了测试数据,则无需再次运行完成。您可以直接定义评估的条件。

create criteria

有许多评估标准可供选择(有时称为评分者)- 这些测试将有助于评估模型响应的质量。一个灵活的选项是模型分级器,您可以提示它以在您认为合适时对模型输出进行分级。

add criteria

定义模型的条件后,您可以运行 eval!

create criteria

迭代和改进

运行评估后,您将在仪表板中看到生成的分数。通过迭代您的提示和条件,您将能够随着时间的推移改进您的模型输出。拥有良好的评估和良好的测试数据可以帮助您迭代提示并尝试新模型,从而更确信您的生成结果处于良好状态。

微调

提高模型生成针对您的使用案例量身定制的响应的能力。

模型蒸馏

了解如何将大型模型结果提取为更小、更便宜、更快的模型。