A/B 测试提示和模型

在生产环境中使用大型语言模型进行 A/B 测试对于推动最佳性能和用户满意度至关重要。它帮助您找到并确定最适合您应用程序(和用例)的模型。

本手册将引导我们设置一个有效的 A/B 测试,测量为 2 个不同模型编写的 2 个不同提示的性能。

测试

我们想要测试 OpenAI 的 gpt-3.5-turbo 模型和 Google 的 gemini-pro 模型在 博客大纲生成 方面的能力,这两个模型在定价和基准上相似。我们将依赖用户反馈指标来选择赢家。

设置过程需要我们:

  1. 为这两个模型创建提示

  2. 编写 50-50 测试的配置

  3. 使用该配置发出请求

  4. 发送反馈以获取响应

  5. 找出赢家

让我们开始吧。

1. 为两个模型创建提示

Portkey 通过游乐场轻松创建提示。

我们将通过点击 创建提示 标签 上,创建 OpenAI 的 gpt-3.5-turbo 的第一个提示。

您会注意到我已经为我的账户创建了 虚拟密钥 用于 OpenAI 和 Google。您可以通过访问 虚拟密钥 标签并将您的 API 密钥添加到 Portkey 的保险库中来创建它们 - 这也确保了您的原始 API 密钥保持安全。

让我们从一个简单的提示开始。我们可以通过迭代不断改进它。您会注意到我们为 titlenum_sections 添加了变量,稍后我们将通过 API 填充这些变量。

很好,现在设置完成并准备就绪。

gemini 模型不需要 system 提示,因此我们可以忽略它并创建一个这样的提示。

2. 编写50-50测试的配置

为了运行实验,让我们在Portkey中创建一个配置,可以自动在这两个提示之间路由请求。

我们从提示列表页面提取了这两个提示的id,并将在我们的配置中使用它们。这就是最终的样子。

我们创建了一个负载均衡配置,将50%的流量路由到其中提到的两个提示ID。我们可以保存此配置并获取其ID。

创建配置并获取ID

3. 使用此配置发起请求

让我们使用此配置从我们的应用程序开始发起请求。我们将使用 prompt completions API 来发起请求,并将配置添加到我们的请求头中。

在我们发起这些请求时,它们会显示在日志标签中。我们可以看到请求在两个提示之间均匀路由。

让我们为这些 API 设置反馈,以便开始我们的测试!

4. 发送反馈以获取响应

收集和分析反馈使我们能够找到这两个提示(即 gemini-progpt-3.5-turbo)的真实表现。

Portkey SDK 允许通过 trace ID 收集反馈的 feedback 方法。之前请求中的 pcompletion 对象允许我们获取 Portkey 为其创建的 trace ID。

5. 找到赢家

我们现在可以从我们的反馈仪表板比较这两个提示的反馈

我们发现 gpt-3.5-turbo 提示在 20 次尝试后平均反馈为 4.71,而 gemini-pro 为 4.11。虽然我们确实需要更多的数据和示例,但暂时假设我们想要开始将更多流量导向它。

我们可以在配置中编辑 weight 以将更多流量导向 gpt-3.5-turbo。新的配置如下所示:

这将 80% 的流量导向 OpenAI。

我们完成了!我们能够在不担忧的情况下设置有效的 A/B 测试来比较提示和模型。

下一步

作为下一步探索,我们可以创建不同版本的提示并进行测试。我们还可以在 gpt-3.5-turbo 上测试两个提示,以判断哪个表现更好。

尝试创建一个用于生成推文的提示,看看哪个模型或提示表现更好。

Portkey 在实验提示时提供了很大的灵活性。

备用方案:添加回退

我们注意到有时会达到 OpenAI 的速率限制。在这种情况下,我们可以回退到 gemini 提示,以便用户不会遇到失败。

请按如下方式调整配置,您的回退设置就完成了!

如果您在进一步自定义此流程时需要任何帮助,或者在进行提示/模型实验时有更多问题,请通过 [email protected] 联系我们(我们会快速回复!)

Last updated