A/B 测试提示和模型
在生产环境中使用大型语言模型进行 A/B 测试对于推动最佳性能和用户满意度至关重要。它帮助您找到并确定最适合您应用程序(和用例)的模型。
本手册将引导我们设置一个有效的 A/B 测试,测量为 2 个不同模型编写的 2 个不同提示的性能。
如果您更喜欢使用 python 笔记本,可以在 这里 找到它。
测试
我们想要测试 OpenAI 的 gpt-3.5-turbo 模型和 Google 的 gemini-pro 模型在 博客大纲生成 方面的能力,这两个模型在定价和基准上相似。我们将依赖用户反馈指标来选择赢家。
设置过程需要我们:
为这两个模型创建提示
编写 50-50 测试的配置
使用该配置发出请求
发送反馈以获取响应
找出赢家
让我们开始吧。
1. 为两个模型创建提示
Portkey 通过游乐场轻松创建提示。
我们将通过点击 创建 在 提示 标签 上,创建 OpenAI 的 gpt-3.5-turbo 的第一个提示。
让我们从一个简单的提示开始。我们可以通过迭代不断改进它。您会注意到我们为 title 和 num_sections 添加了变量,稍后我们将通过 API 填充这些变量。

很好,现在设置完成并准备就绪。
gemini 模型不需要 system 提示,因此我们可以忽略它并创建一个这样的提示。

2. 编写50-50测试的配置
为了运行实验,让我们在Portkey中创建一个配置,可以自动在这两个提示之间路由请求。
我们从提示列表页面提取了这两个提示的id,并将在我们的配置中使用它们。这就是最终的样子。
我们创建了一个负载均衡配置,将50%的流量路由到其中提到的两个提示ID。我们可以保存此配置并获取其ID。

3. 使用此配置发起请求
让我们使用此配置从我们的应用程序开始发起请求。我们将使用 prompt completions API 来发起请求,并将配置添加到我们的请求头中。
在我们发起这些请求时,它们会显示在日志标签中。我们可以看到请求在两个提示之间均匀路由。
让我们为这些 API 设置反馈,以便开始我们的测试!
4. 发送反馈以获取响应
收集和分析反馈使我们能够找到这两个提示(即 gemini-pro 和 gpt-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