- 模型评测
- 人工智能
- 大模型
- AI 评测
【免费下载链接】opencompass
OpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100+ datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.
OpenCompass 是一站式大模型评测平台,为开源模型与 API 模型提供公平、开放、可复现的评测基准。本文以仓库根目录的 README.md 为主线,结合run.py、CLI 入口、示例配置等源码,完整讲解环境安装、数据集准备、首次评测、API 评测、加速评测与自定义模型的实战流程,读完即可在本地跑通第一个评测任务。
项目定位:一站式大模型评测平台
OpenCompass 的核心目标是以"罗盘"般的指引作用,帮助研究者在复杂的大模型评测版图中评估模型质量与效果。其公开仓库描述为:支持 OpenAI、Anthropic、Gemini、Qwen、GLM、DeepSeek 等广泛模型生态,覆盖 100+ 数据集,横跨知识、推理、编程、科学、语言、长上下文与安全等能力维度。
README 中列出的五大核心特性(README.md):
- 全面的模型与数据集支持:预支持 20+ HuggingFace 与 API 模型,覆盖 70+ 数据集、约 40 万道评测题,从五个维度综合评估模型能力;
- 高效分布式评测:一行命令完成任务切分与分布式评测,数小时内即可完成十亿级参数模型的完整评测;
- 多样化评测范式:支持 zero-shot、few-shot、chain-of-thought 评测,并可组合标准或对话式 prompt 模板;
- 模块化高扩展设计:新增模型、数据集、自定义任务切分策略乃至新的集群管理系统均可扩展;
- 实验管理与上报机制:用配置文件完整记录每次实验,支持结果实时上报。
环境准备与安装
Python 版本约束
OpenCompass 常规安装与完整安装均支持Python 3.12。但如果评测依赖pyext后端的代码执行数据集,则需改用Python 3.10:pyext==0.7在 Python 3.11+ 上会被跳过,因为它依赖在 Python 3.11 中被移除的inspect.getargspec。缺少pyext时,APPS(apps、apps_mini)、TACO、LiveCodeBench Code Generation 等数据集不可用。
创建虚拟环境
官方强烈推荐使用 conda 管理 Python 环境:
conda create --name opencompass python=3.12 -y conda activate opencompass通过 pip 安装
pip install -U opencompass ## 完整安装(支持更多数据集) # pip install "opencompass[full]" ## 加速框架环境 ## 加速框架之间通常存在依赖冲突,建议用虚拟环境分别管理 # pip install "opencompass[lmdeploy]" # pip install "opencompass[vllm]" ## API 模型评测(如 OpenAI、Qwen) # pip install "opencompass[api]"从源码安装
需要使用最新特性或参与开发时,可从源码构建:
git clone https://gitcode.com/gh_mirrors/op/opencompass opencompass cd opencompass pip install -e . # pip install -e ".[full]" # pip install -e ".[vllm]"数据集准备
仓库提供了三种数据集获取方式。
离线准备
下载并解压官方发布的数据包到data/目录:
# Download dataset to data/ folder wget https://github.com/open-compass/opencompass/releases/download/0.2.2.rc1/OpenCompassData-core-20240207.zip unzip OpenCompassData-core-20240207.zip从 OpenCompass 存储服务器自动下载
OpenCompass 支持从自建存储服务器自动下载数据集:在评测命令中附加--dry-run即可触发下载。当前支持的数据集清单记录在 opencompass/utils/datasets_info.py 中。--dry-run模式下调度器不会真正运行任务,只会打印待执行命令(opencompass/cli/main.py 将其与--debug联动),适合先下载数据、再正式评测。
通过 ModelScope 按需加载(可选)
安装 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。
跑通第一次评测
OpenCompass 支持通过CLI或Python 脚本两种方式配置评测:简单评测推荐 CLI,复杂评测推荐脚本方式。
CLI 方式
opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_genPython 脚本方式
opencompass examples/eval_chat_demo.py更多脚本示例位于 examples 目录。以 examples/eval_chat_demo.py 为例,脚本通过 mmengine 的read_base机制引入预置的模型与数据集配置,再拼接成datasets与models列表交给评测框架:
from mmengine.config import read_base with read_base(): from opencompass.configs.datasets.demo.demo_gsm8k_chat_gen import \ gsm8k_datasets from opencompass.configs.datasets.demo.demo_math_chat_gen import \ math_datasets from opencompass.configs.models.hf_internlm.hf_internlm2_chat_1_8b import \ models as hf_internlm2_chat_1_8b_models from opencompass.configs.models.qwen.hf_qwen2_1_5b_instruct import \ models as hf_qwen2_1_5b_instruct_models datasets = gsm8k_datasets + math_datasets models = hf_qwen2_1_5b_instruct_models + hf_internlm2_chat_1_8b_models其中demo_gsm8k_chat_gen(opencompass/configs/datasets/demo/demo_gsm8k_chat_gen.py)复用完整 GSM8K 生成式评测配置,但将测试集范围截断为[0:64],用于快速验证链路;模型配置(opencompass/configs/models/hf_internlm/hf_internlm2_chat_1_8b.py)则通过HuggingFacewithChatTemplate指定模型路径、max_out_len、batch_size与单卡运行配置run_cfg=dict(num_gpus=1)。
底层执行流程
从源码结构看,一条评测命令的完整链路是:run.py(入口,仅转发到opencompass.cli.main)→ opencompass/cli/main.py 的main():先由get_config_from_arg组装配置,随后进入infer(推理)与eval(评测)两个阶段,每个阶段依次执行Partitioner 切分任务 → Runner 分发运行,最后通过Summarizer汇总结果(opencompass/cli/main.py)。所有中间产物默认输出到outputs/default/<时间戳>/下,配置文件也会被自动 dump 到该目录的configs/子目录中,保证实验可复现。
API 模型评测
OpenCompass 在设计上不区分开源模型与 API 模型,两种模型可用完全相同的方式、甚至在同一个配置里评测。
export OPENAI_API_KEY="YOUR_OPEN_API_KEY" # CLI opencompass --models gpt_4o_2024_05_13 --datasets demo_gsm8k_chat_gen # Python scripts opencompass examples/eval_api_demo.py # 也可使用 o1_mini_2024_09_12 / o1_preview_2024_09_12,默认 max_completion_tokens=8192对应的脚本 examples/eval_api_demo.py 与本地模型评测结构完全一致,仅将模型替换为 OpenAI 系列。其模型配置(opencompass/configs/models/openai/gpt_4o_2024_05_13.py)展示了 API 模型的关键字段:
from opencompass.models import OpenAI api_meta_template = dict(round=[ dict(role='HUMAN', api_role='HUMAN'), dict(role='BOT', api_role='BOT', generate=True), ], ) models = [ dict( abbr='GPT-4o-2024-05-13', type=OpenAI, path='gpt-4o-2024-05-13', key='ENV', # 从 $OPENAI_API_KEY 读取,也可直接填 key meta_template=api_meta_template, query_per_second=1, max_out_len=2048, max_seq_len=4096, batch_size=8), ]其中key='ENV'表示密钥从环境变量OPENAI_API_KEY获取;query_per_second控制请求速率以避免触发限流;meta_template定义了对话轮次中 HUMAN/BOT 的角色映射,是 API 对话式评测的核心配置。
加速评测:LMDeploy / vLLM
若希望使用 HuggingFace 之外的推理后端(如 LMDeploy、vLLM)加速评测,可附加-a(--accelerator)参数。前提是已安装对应后端包,且模型支持该加速推理方式。以 LMDeploy 为例:
# CLI opencompass --models hf_internlm2_5_1_8b_chat --datasets demo_gsm8k_chat_gen -a lmdeploy # Python scripts opencompass examples/eval_lmdeploy_demo.pyexamples/eval_lmdeploy_demo.py 的结构与普通评测脚本相同,仅将模型配置替换为lmdeploy_internlm2_5_1_8b_chat。CLI 层面,-a参数目前支持vllm与lmdeploy两种取值(opencompass/cli/main.py)。各加速后端的详细说明见 docs/en/advanced_guides/accelerator_intro.md。
支持的自定义模型与数据集
OpenCompass 为大量模型与数据集预置了配置。使用 tools/list_configs.py 可列出全部可用配置,其内部通过match_files对opencompass/configs/models/与opencompass/configs/datasets/做通配符模糊匹配(tools/list_configs.py):
# 列出全部配置 python tools/list_configs.py # 列出与 llama、mmlu 相关的配置 python tools/list_configs.py llama mmlu评测 HuggingFace 模型
若模型不在预置列表,但只要受 HuggingFaceAutoModel或基于 OpenAI 接口的推理引擎封装支持,即可直接评测:
opencompass --datasets demo_gsm8k_chat_gen --hf-type chat --hf-path internlm/internlm2_5-1_8b-chat--hf-type取值为base或chat(默认chat);--hf-path指定模型路径。CLI 还提供了--hf-num-gpus、--tokenizer-path、--model-kwargs、--generation-kwargs、--max-seq-len、--max-out-len(默认 256)、--batch-size(默认 8)等一系列快速构造 HuggingFace 模型的参数(opencompass/cli/main.py)。
数据并行与模型并行
--hf-num-gpus:模型并行(HuggingFace 格式),即把单个模型切分到多张 GPU;--max-num-worker:数据并行,即同一模型在多张 GPU 上并行处理不同数据分片。
CUDA_VISIBLE_DEVICES=0,1 opencompass --datasets demo_gsm8k_chat_gen --hf-type chat --hf-path internlm/internlm2_5-1_8b-chat --max-num-worker 2关于_gen与_ppl配置
- 以
_ppl结尾的配置面向base 模型(基座模型,通常用困惑度评测); - 以
_gen结尾的配置可同时用于base 模型与 chat 模型(生成式评测); - 以
_gen.py或_llm_judge_gen.py结尾的配置文件指向官方为该数据集推荐的标准配置。
例如对 AIME2024 的两种推荐评测方式:
# 基于规则的推荐评测配置 opencompass --datasets aime2024_gen --models hf_internlm2_5_1_8b_chat # 基于 LLM Judge 的推荐评测配置 opencompass --datasets aime2024_llmjudge_gen --models hf_internlm2_5_1_8b_chatCLI 进阶参数(源码级解读)
除评测核心参数外,opencompass/cli/main.py 还暴露了以下常用参数,适合在规模化评测场景中使用:
--mode / -m:运行模式,可选all(默认)、infer(仅推理)、eval(仅评测)、viz(仅可视化)。注意仅用eval/viz模式时必须配合-r或--read-from-station指定结果来源;--reuse / -r:复用历史输出与结果,仅运行缺失任务;不带参数时默认复用work_dir下最新一次实验,也可传入具体时间戳(如20230516_144254);--work-dir / -w:工作目录,所有输出(slurm 日志、评测结果、汇总结果)均保存于此,默认outputs/default;--dry-run:只打印待运行命令而不实际执行,可配合数据自动下载;--debug:调试模式,任务在单进程内运行且输出不重定向到文件;--max-num-workers:并行 worker 上限(会被配置中的max_num_workers覆盖);--max-workers-per-gpu:单张 GPU 上并行任务数(仅 local runner 生效);--retry:slurm/dlc 任务失败后的重试次数(默认 2);--slurm / --dlc:切换集群调度后端(需配合--partition或--aliyun-cfg);--dump-eval-details:是否 dump 每个样本的评测细节(默认开启,较占空间);--lark:通过飞书机器人上报运行状态;--analysis-repeat:在 viz 阶段分析模型输出的重复内容与循环输出,对应 tools/analyze_repeat.py。
OpenCompass 2.0 生态
OpenCompass 2.0 由三大组件构成(README.md):
- CompassRank:升级后的榜单平台,同时纳入开源与私有基准,实现对行业模型的更全面评估;
- CompassHub:基准浏览器,便于研究者快速探索与使用海量 benchmark,也支持提交自有 benchmark;
- CompassKit:面向 LLM 与 LVLM 的评测工具包集合。
后续学习路径
本文覆盖了 README 中的全部实操主线。若要继续深入,仓库内的文档体系可帮助逐层进阶:
- 完整安装细节:docs/en/get_started/installation.md
- 快速开始:docs/en/get_started/quick_start.md
- 新增模型:docs/en/advanced_guides/new_model.md;新增数据集:docs/en/advanced_guides/new_dataset.md
- 加速后端:docs/en/advanced_guides/accelerator_intro.md
- 推理模型(如 DeepSeek-R1)评测:docs/en/user_guides/deepseek_r1.md
- LLM Judge 与数学评测:docs/en/advanced_guides/llm_judge.md、docs/en/advanced_guides/math_verify.md
- 版本更新日志:docs/en/notes/news.md
- 中文读者可同步查阅 README_zh-CN.md 与 docs/zh_cn 下的对应文档
- 模型评测
- 人工智能
- 大模型
- AI 评测
【免费下载链接】opencompass
OpenCompass is an LLM evaluation platform, supporting a wide range of models from OpenAI, Anthropic, Gemini, Qwen, GLM, DeepSeek, etc, across 100+ datasets covering knowledge, reasoning, coding, science, language, long-context, and safety.
相关推荐
OpenCompass 大模型评测平台指南:从安装配置到分布式评测实战
OpenCompass 大模型评测平台指南:从安装配置到分布式评测实战 OpenCompass(司南)是面向大语言模型评测的一站式开源平台,提供公平、公开、可复
模型评测人工智能大模型AI 评测Qwen2.5-Coder Base 模型代码能力评测套件实战指南:从环境搭建到四大 Benchmark 全量评测
Qwen2.5 Coder Base 模型代码能力评测套件实战指南:从环境搭建到四大 Benchmark 全量评测 导读 本文基于 qwencoder eval
大模型代码模型微调模型评测强化学习TouchVisualizer原理揭秘:iOS触摸事件拦截与可视化实现技术
TouchVisualizer原理揭秘:iOS触摸事件拦截与可视化实现技术 在iOS开发中,调试触摸交互一直是个挑战。TouchVisualizer作为一款轻量
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考