概述
本仓库包含一个用于评估语言模型的轻量级库。
我们开源它是为了能够透明地展示我们最新模型(从gpt-4-turbo-2024-04-09
和gpt-4o-2024-05-13
开始)所公布的准确性数据。
评估对提示很敏感,最近的出版物和库中使用的表述方式存在显著差异。 有些使用少样本提示或角色扮演提示("你是一位专业的软件程序员...")。 这些方法是从评估基础模型(而非指令/对话微调模型)以及从较差的指令遵循模型中沿用下来的。
对于这个库,我们强调零样本、思维链设置,使用简单的指令如"解决以下多选题"。我们认为这种提示技术能更好地反映模型在实际使用中的表现。
**我们不会积极维护此仓库或监控PR和Issues。**特别是,我们不接受新的评估。以下是我们可能接受的更改:
- 错误修复(希望不需要!)
- 为新模型添加适配器
- 在下面的表格中添加新行,展示新模型和新系统提示的评估结果。
本仓库并非旨在替代https://github.com/openai/evals,后者设计用于全面收集大量评估。
评估
本仓库目前包含以下评估:
- MMLU:测量大规模多任务语言理解,参考:https://arxiv.org/abs/2009.03300, https://github.com/hendrycks/test, MIT许可证
- MATH:使用MATH数据集测量数学问题解决能力,参考:https://arxiv.org/abs/2103.03874, https://github.com/hendrycks/math, MIT许可证
- GPQA:研究生级别的防谷歌问答基准,参考:https://arxiv.org/abs/2311.12022, https://github.com/idavidrein/gpqa/, MIT许可证
- DROP:要求对段落进行离散推理的阅读理解基准,参考:https://arxiv.org/abs/1903.00161, https://allenai.org/data/drop, Apache许可证2.0
- MGSM:多语言小学数学基准(MGSM),语言模型是多语言思维链推理器,参考:https://arxiv.org/abs/2210.03057, https://github.com/google-research/url-nlp, 知识共享署名4.0国际公共许可证(CC-BY)
- HumanEval:评估在代码上训练的大型语言模型,参考:https://arxiv.org/abs/2107.03374, https://github.com/openai/human-eval, MIT许可证
采样器
我们已经为以下语言模型API实现了采样接口:
在使用这些API之前,请确保设置了*_API_KEY
环境变量。
设置
由于可选依赖项的存在,我们不提供统一的设置机制。相反,我们为每个评估和采样器提供单独的说明。
对于HumanEval(Python编程)
git clone https://github.com/openai/human-eval
pip install -e human-eval
对于OpenAI API:
pip install openai
pip install anthropic
演示
python -m simple-evals.demo
这将通过OpenAI API启动评估。
基准测试结果
模型 | 提示词 | MMLU | GPQA | MATH | HumanEval | MGSM | DROP (F1,3-shot) |
---|---|---|---|---|---|---|---|
OPENAI GPT4s | |||||||
gpt-4o-2024-08-06 | 助手1 | 88.7 | 53.1 | 75.9 | 90.2 | 90.0 | 79.8 |
gpt-4o-2024-05-13 | chatgpt2 | 88.7 | 53.6 | 76.6 | 90.2 | 90.5 | 83.4 |
gpt-4o-2024-05-13 | 助手1 | 87.2 | 49.9 | 76.6 | 91.0 | 89.9 | 83.7 |
gpt-4-turbo-2024-04-09 | chatgpt | 86.5 | 49.1 | 72.2 | 87.6 | 88.6 | 85.4 |
gpt-4-turbo-2024-04-09 | 助手 | 86.7 | 49.3 | 73.4 | 88.2 | 89.6 | 86.0 |
gpt-4-1106(-vision)-preview | chatgpt | 84.6 | 42.1 | 64.1 | 82.2 | 86.5 | 81.3 |
gpt-4-1106(-vision)-preview | 助手 | 84.7 | 42.5 | 64.3 | 83.7 | 87.1 | 83.2 |
gpt-4-0125-preview | chatgpt | 84.8 | 39.7 | 64.2 | 88.2 | 83.7 | 83.4 |
gpt-4-0125-preview | 助手 | 85.4 | 41.4 | 64.5 | 86.6 | 85.1 | 81.5 |
=== | |||||||
gpt-4o-mini-2024-07-18 | 助手 | 82.0 | 40.2 | 70.2 | 87.2 | 87.0 | 79.7 |
参考-重新运行 | |||||||
Claude-3-Opus (通过API重新运行) | 空3 | 84.1 | 49.7 | 63.2 | 84.8 | 89.7 | 79.0 |
Claude-3-Opus (通过API重新运行) | lmsys4 | 84.2 | 50.7 | 63.8 | 82.9 | 89.2 | 77.1 |
Llama3 70b (通过API重新运行) | 空 | 80.2 | 41.3 | 52.8 | 70.1 | 82.6 | 81.4 |
参考-报告 | (5-shot) | ||||||
Claude-3-Opus (报告5) | 未知 | 86.8 | 50.4 | 60.1 | 84.9 | 90.7 | 83.1 |
Gemini-Ultra-1.0 (报告6) | 未知 | 83.7 | 不适用 | 53.2 | 74.4 | 79.0 | 82.4 |
Gemini-Pro-1.5 (报告6) | 未知 | 81.9 | 不适用 | 58.5 | 71.9 | 88.7 | 78.9 |
Llama3 8b (报告7) | 未知 | 68.4 | 34.2 | 30.0 | 62.2 | 不适用 | 58.4 |
Llama3 70b (报告7) | 未知 | 82.0 | 39.5 | 50.4 | 81.7 | 不适用 | 79.7 |
Llama3 400b (仍在训练中,报告7) | 未知 | 86.1 | 48.0 | 57.8 | 84.1 | 不适用 | 83.5 |
法律事项
通过为evals做出贡献,您同意将您的评估逻辑和数据置于与本仓库相同的MIT许可下。您必须拥有足够的权利来上传用于评估的任何数据。OpenAI保留在未来产品服务改进中使用这些数据的权利。对OpenAI evals的贡献将受我们常规使用政策的约束:https://platform.openai.com/docs/usage-policies。
Footnotes
-
助手系统消息在OpenAI API文档中:"你是一个乐于助人的助手。" ↩ ↩2
-
chatgpt系统消息:"你是ChatGPT,一个由OpenAI基于GPT-4架构训练的大型语言模型。知识截止日期:2023年12月。当前日期:2024年4月1日" ↩
-
claude-3空系统消息:由Anthropic API文档建议,由于速率限制问题,我们只进行了有限的实验,但我们欢迎使用替代选择的PR。 ↩
-
claude-3 lmsys系统消息:LMSYS Fast-chat开源代码中的系统消息:"助手是由Anthropic创建的Claude。当前日期是{{currentDateTime}}。Claude的知识库最后更新于..."。由于速率限制问题,我们只进行了有限的实验,但我们欢迎使用替代选择的PR。 ↩
-
claude-3报告:https://www.anthropic.com/news/claude-3-family。 ↩
-
gemini-1.5报告:https://goo.gle/GeminiV1-5,由于速率限制问题,我们没有重新运行结果,截至本研究进行时(5月11日),按使用付费版本仍"将于5月14日推出"。 ↩ ↩2
-
Llama 3技术报告:https://ai.meta.com/blog/meta-llama-3/。请注意,Llama 400b仍在训练中,这些数字基于他们预训练/指令Llama 400b的最佳数据。 ↩ ↩2 ↩3