Gemini vs GPT:基于自有数据的基准测试
在比较Gemini与GPT时,你会发现网上有很多评估和意见。模型能力设定了你能实现的上限,但根据我的经验,大多数大型语言模型应用在很大程度上依赖于其提示词和使用场景。
因此,明智的做法是在自己的数据上进行评估。
本指南将引导你完成使用promptfoo
CLI在自定义测试用例上比较Google的gemini-pro
模型与OpenAI的GPT-3.5和GPT-4的步骤。
最终结果是一个本地托管的CLI和网页视图,让你可以并排比较模型输出:
前提条件
在开始之前,请确保你已具备以下条件:
- 已安装
promptfoo
CLI 安装指南。 - Google Vertex AI和OpenAI的API密钥。
步骤1:设置配置
为你的基准测试项目创建一个新目录:
npx promptfoo@latest init gemini-gpt-comparison
编辑promptfooconfig.yaml
文件,包含Google Vertex AI的gemini-pro
模型和OpenAI的GPT-3.5及GPT-4模型:
providers:
- vertex:gemini-pro
- openai:gpt-4o-mini
- openai:gpt-4o
步骤2:设置提示词
定义你要用于比较的提示词。为简单起见,我们将使用一个兼容所有模型的单一提示词格式:
prompts:
- 'Think step-by-step and answer the following: {{question}}'
如果你想在多个提示词之间比较性能,可以添加到提示词列表中。如果需要为每个模型调整提示词,也可以为每个模型分配特定的提示词:
prompts:
prompts/gpt_prompt.json: gpt_prompt
prompts/gemini_prompt.json: gemini_prompt
providers:
- id: vertex:gemini-pro
prompts: gemini_prompt
- id: openai:gpt-4o-mini
prompts:
- gpt_prompt
- id: openai:gpt-4o
prompts:
- gpt_prompt
步骤3:添加测试用例
将你的测试用例添加到promptfooconfig.yaml
文件中。这些测试用例应代表你希望在模型之间比较的查询类型:
tests:
- vars:
question: There are 31 books in my house. I read 2 books over the weekend. How many books are still in my house?
- vars:
question: Julia has three brothers, each of them has two sisters. How many sisters does Julia have?
- vars:
question: If you place an orange below a plate in the living room, and then move the plate to the kitchen, where is the orange now?
在这种情况下,我只是从Hacker News帖子中选取了一些例子。你应该在这里放入代表你希望这些大型语言模型完成的任务的测试用例。
步骤4:运行比较
使用promptfoo eval
命令执行比较:
npx promptfoo@latest eval
这将针对Gemini、GPT 3.5和GPT 4运行测试用例,并在命令行中输出比较结果:
然后,使用promptfoo view
命令打开查看器,以可视化方式比较结果:
npx promptfoo@latest view