Skip to main content

OpenAI vs Azure: 如何进行基准测试

无论你是通过 OpenAI 还是 Azure API 使用 GPT,结果都非常相似。但有一些关键差异:

  • 推理速度
  • 模型更新的频率(Azure 在这方面通常较慢),因此模型之间的差异
  • Azure 区域之间的性能差异
  • 成本
  • 集成便捷性
  • 数据法规合规性

本指南将引导你使用 promptfoo CLI 工具系统地比较这些模型。

最终结果将是一个并排比较视图,如下所示,其中包括时间信息和输出。

openai 和 azure 比较

前提条件

在开始之前,你需要以下内容:

  • OpenAI 和 Azure OpenAI 服务的 API 密钥。
  • 安装 promptfoo

此外,确保设置了以下环境变量:

OPENAI_API_KEY='...'
AZURE_OPENAI_API_KEY='...'

步骤 1:设置模型

为你的比较项目创建一个新目录并初始化它:

npx promptfoo@latest init openai-azure-comparison

编辑你的 promptfooconfig.yaml,将 OpenAI 和 Azure OpenAI 都作为提供者包含在内。在这种情况下,我们将比较两个服务上的 GPT 3.5。

providers:
- id: openai:chat:gpt-4o-mini
- id: azureopenai:chat:my-gpt-4o-mini-deployment
config:
apiHost: myazurehost.openai.azure.com

确保将上述内容替换为你的 Azure OpenAI 实例的实际主机和部署名称。

可选:配置模型使用

对于每个提供者,你可以配置额外的参数,如 temperaturemax_tokens

providers:
- id: openai:chat:gpt-4o-mini
config:
temperature: 0
max_tokens: 128
- id: azureopenai:chat:my-gpt-4o-mini-deployment
config:
apiHost: your_azure_openai_host
temperature: 0
max_tokens: 128

步骤 2:创建提示和测试用例

定义你要用于比较的提示和测试用例。在这种情况下,我们只测试一个提示,但我们会添加几个测试用例:

prompts:
- '简要回答以下问题:{{message}}'

tests:
- vars:
message: "巴黎今天的天气怎么样?"
- vars:
message: '总结最新的火星探索新闻。'
- vars:
message: '写一首关于大海的诗。'

步骤 3:运行比较

使用 promptfoo eval 命令执行比较:

npx promptfoo@latest eval --no-cache

这将针对两个模型运行测试用例并输出结果。

我们添加了 --no-cache 指令,因为我们关心时间(以便查看哪个提供者更快),所以我们不希望任何缓存。

步骤 4:查看结果并分析

运行 eval 命令后,promptfoo 将生成一个包含两个模型响应的报告。

运行 promptfoo view 以打开查看器:

openai 和 azure 比较

推理速度

在这个特定的测试运行中,超过 25 个示例,结果显示推理速度几乎没有差异——OpenAI 和 Azure 的平均时间分别为 556 毫秒和 552 毫秒。

一旦你设置了你自己的测试用例,你可以比较结果以确保你的 Azure 部署上的响应时间和延迟是一致的。

输出准确性和一致性

有趣的是,尽管速度和温度设置为 0,输出仍然有所不同。

比较视图使得确保响应的准确性和相关性一致变得容易。

下一步

一旦你设置了一些测试用例,你可以自动测试输出以确保它们符合你的要求。要了解更多关于自动化此设置的信息,请访问 测试断言