[!IMPORTANT]
为我们点 Star,你将通过 GitHub 及时收到所有版本发布通知 ~ ⭐️
来到 OpenCompass!
正如指南针指引我们的旅程,OpenCompass 将引导你穿越评估大语言模型的复杂领域。凭借其强大的算法和直观的界面,OpenCompass 让评估你的 NLP 模型的质量和效果变得轻而易举。
🚩🚩🚩 探索 OpenCompass 的工作机会!我们正在招聘全职研究员/工程师和实习生。如果你对 LLM 和 OpenCompass 充满热情,请随时通过邮件联系我们。我们期待你的来信!
🔥🔥🔥 我们很高兴地宣布,OpenCompass 已获得 Meta AI 的推荐,点击 Llama 的 Get Started 了解更多信息。
注意
重大变更通知:在版本 0.4.0 中,我们将所有 AMOTIC 配置文件(之前位于 ./configs/datasets、./configs/models 和 ./configs/summarizers)整合到 opencompass 包中。建议用户更新其配置引用以反映此结构变化。
CascadeEvaluator,这是一种灵活的评估机制,允许多个评估器按顺序工作。这使得可以为复杂的评估场景创建自定义的评估流水线。查看文档了解更多详情!🔥🔥🔥SuperGPQA 的评估,这是一个衡量 LLM 知识能力的优秀基准 🔥🔥🔥DeepSeek-R1 系列模型添加了教程,请查看 评估推理模型 了解更多详情!🔥🔥🔥GenericLLMEvaluator 和用于数学推理评估的 MATHVerifyEvaluator。查看 LLM 评判 和 数学评估 的文档了解更多详情!🔥🔥🔥o1-mini-2024-09-12 和 o1-preview-2024-09-12)。欢迎尝试!🔥🔥🔥我们为社区提供 OpenCompass 排行榜,用于对所有公开模型和 API 模型进行排名。如果你想参与评估,请将模型仓库 URL 或标准 API 接口发送至邮箱 opencompass@pjlab.org.cn。
你也可以参考 复现 CompassAcademic 排行榜结果指南 来快速复现排行榜结果。
以下是快速安装和数据准备的步骤。
我们强烈建议使用 conda 管理你的 Python 环境。
bash
conda create --name opencompass python=3.10 -y
conda activate opencompass
```bash
pip install -U opencompass
## 完整安装(支持更多数据集)
# pip install "opencompass[full]"
## 包含模型加速框架的环境
## 由于它们通常存在依赖冲突,建议使用虚拟环境管理不同的加速框架。
# pip install "opencompass[lmdeploy]"
# pip install "opencompass[vllm]"
## API 评估(例如 Openai, Qwen)
# pip install "opencompass[api]"
```
如果你想使用 opencompass 的最新功能,或开发新功能,也可以从源码构建。
bash
git clone https://github.com/open-compass/opencompass opencompass
cd opencompass
pip install -e .
# pip install -e ".[full]"
# pip install -e ".[vllm]"
你可以选择以下方法之一来准备数据集。
你可以使用以下命令下载并解压数据集:
# 下载数据集到 data/ 文件夹
wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip
unzip OpenCompassData-core-20240207.zip
我们支持从 OpenCompass 存储服务器自动下载数据集。你可以通过运行评估时添加 --dry-run 来下载这些数据集。
目前支持的列表在这里。更多数据集将陆续上传。
你也可以使用 ModelScope 按需加载数据集。
安装:
pip install modelscope[framework]
export DATASET_SOURCE=ModelScope
然后提交评估任务,无需将所有数据下载到本地磁盘。可用的数据集包括:
humaneval, triviaqa, commonsenseqa, tydiqa, strategyqa, cmmlu, lambada, piqa, ceval, math, LCSTS, Xsum, winogrande, openbookqa, AGIEval, gsm8k, nq, race, siqa, mbpp, mmlu, hellaswag, ARC, BBH, xstory_cloze, summedits, GAOKAO-BENCH, OCNLI, cmnli
一些第三方功能,如 Humaneval 和 Llama,可能需要额外的步骤才能正常工作,详细步骤请参考安装指南。
确保按照上述步骤正确安装 OpenCompass 并准备好数据集后,现在你可以使用 OpenCompass 开始你的第一次评估了!
OpenCompass 支持通过 CLI 或 Python 脚本设置配置。对于简单的评估设置,我们推荐使用 CLI;对于更复杂的评估,建议使用脚本方式。你可以在 configs 文件夹下找到更多示例脚本。
# CLI
opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_gen
# Python 脚本
opencompass examples/eval_chat_demo.py
你可以在 examples 文件夹下找到更多脚本示例。
OpenCompass 在设计上并不真正区分开源模型和 API 模型。你可以以相同的方式评估这两种模型类型,甚至可以在一个设置中同时评估。
export OPENAI_API_KEY="YOUR_OPEN_API_KEY"
# CLI
opencompass --models gpt_4o_2024_05_13 --datasets demo_gsm8k_chat_gen
# Python 脚本
opencompass examples/eval_api_demo.py
# 对于 o1 模型,你可以使用 o1_mini_2024_09_12/o1_preview_2024_09_12,我们默认设置 max_completion_tokens=8192。
此外,如果你想使用 HuggingFace 以外的推理后端进行加速评估,例如 LMDeploy 或 vLLM,可以使用下面的命令。请确保已安装所选后端所需的包,并且你的模型支持使用该后端进行加速推理。更多信息,请参阅关于推理加速后端的文档。以下是使用 LMDeploy 的示例:
# CLI
opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_gen -a lmdeploy
# Python 脚本
opencompass examples/eval_lmdeploy_demo.py
OpenCompass 为许多模型和数据集预定义了配置。你可以使用 工具 列出所有可用的模型和数据集配置。
# 列出所有配置
python tools/list_configs.py
# 列出与 llama 和 mmlu 相关的所有配置
python tools/list_configs.py llama mmlu
如果模型不在列表中,但受 Huggingface AutoModel 类或基于 OpenAI 接口封装的推理引擎支持(详见文档),你也可以使用 OpenCompass 进行评估。欢迎你为维护 OpenCompass 支持的模型和数据集列表做出贡献。
opencompass --datasets demo_gsm8k_chat_gen --hf-type chat --hf-path internlm/internlm2_5-1_8b-chat
目前,OpenCompass 为数据集提供了标准的推荐配置。通常,以 _gen.py 或 _llm_judge_gen.py 结尾的配置文件会指向我们为该数据集提供的推荐配置。更多详情请参考文档。
```bash
opencompass --datasets aime2024_gen --models hf_internlm2_5_1_8b_chat