OpenCompass 评估框架项目文档

发布时间:2026/7/29 18:59:36

OpenCompass 评估框架项目文档
OpenCompass 评估框架项目文档目录项目概述环境配置文件结构核心组件说明测试用例配置评估流程运行命令测试结果常见问题扩展指南1. 项目概述本项目是 OpenCompass 大模型评估框架的测试部署旨在验证框架的完整功能包括数据集加载支持多种格式JSONL、HuggingFace Dataset等模型推理支持 HuggingFace 模型评估指标准确率等常用指标结果分析预测结果和评估报告技术栈组件版本说明Python3.13编程语言OpenCompass0.5.3评估框架PyTorchlatest深度学习框架Transformers4.46.3HuggingFace 模型库Datasets2.x-3.x数据集库2. 环境配置2.1 虚拟环境# 创建虚拟环境python-mvenv venv# 激活虚拟环境Windowsvenv\Scripts\activate# 激活虚拟环境Linux/macOSsourcevenv/bin/activate2.2 依赖安装# 安装 OpenCompass不安装依赖pipinstallopencompass0.5.3 --no-deps# 安装基础依赖pipinstallnumpy2.0.0 torchtransformers4.46.3 datasets2.12.0,4.0.0 mmengine# 安装额外依赖pipinstallrouge importlib_metadata tqdm requests2.3 环境变量# 设置 PYTHONPATHWindowssetPYTHONPATHE:\project\opencompass# 设置 PYTHONPATHLinux/macOSexportPYTHONPATH/path/to/project/opencompass3. 文件结构E:\project\opencompass\ ├── venv/ # Python 虚拟环境 ├── opencompass_source/ # OpenCompass 源码 │ └── opencompass/ # 核心代码 ├── models/ # 模型文件目录 │ └── Qwen2-0.5B-Instruct/ # Qwen2-0.5B-Instruct 模型 ├── outputs/ # 评估输出目录 │ └── simple_test/ # 测试输出 ├── test_data.jsonl # 测试数据集JSONL格式 ├── simple_test_config.py # 测试配置文件 ├── simple_mcq_postprocess.py # 预测后处理器 ├── download_model.py # 模型下载脚本 ├── test_environment.py # 环境测试脚本 └── PROJECT_DOC.md # 项目文档本文档文件说明文件类型说明test_data.jsonl数据集多项选择题测试数据simple_test_config.py配置OpenCompass 评估配置simple_mcq_postprocess.py脚本提取字母选项的后处理器download_model.py脚本模型下载工具test_environment.py脚本环境验证工具4. 核心组件说明4.1 数据集Dataset使用 JSONL 格式存储每行一个 JSON 对象{question:22?,options:[A. 3,B. 4,C. 5,D. 6],answer:B}字段说明question问题文本options选项列表字符串数组answer正确答案A/B/C/D4.2 模型Model使用 HuggingFaceBaseModel 加载本地模型models[dict(typeHuggingFaceBaseModel,abbrqwen2-0.5b-instruct-hf,pathE:/project/opencompass/models/Qwen2-0.5B-Instruct,max_out_len16,batch_size1,run_cfgdict(num_gpus0),model_kwargsdict(torch_dtypeauto,device_mapcpu),)]4.3 推理器Inferencer使用 GenInferencer 进行生成式推理infer_cfgdict(prompt_templatedict(typePromptTemplate,templateQuestion: {question}\nOptions: {options}\nAnswer:,),retrieverdict(typeZeroRetriever),inferencerdict(typeGenInferencer,max_out_len16),)4.4 评估器Evaluator使用 AccEvaluator 计算准确率eval_cfgdict(evaluatordict(typeAccEvaluator),pred_postprocessordict(typesimple_mcq_postprocess.simple_mcq_postprocess),)5. 测试用例配置5.1 配置文件结构配置文件包含四个核心部分Reader 配置定义数据读取方式Infer 配置定义推理过程Eval 配置定义评估过程Datasets/Models定义数据集和模型列表5.2 完整配置示例# 读取配置simple_reader_cfgdict(input_columns[question,options],output_columnanswer)# 推理配置simple_infer_cfgdict(prompt_templatedict(typePromptTemplate,templateQuestion: {question}\nOptions: {options}\nAnswer:,),retrieverdict(typeZeroRetriever),inferencerdict(typeGenInferencer,max_out_len16),)# 评估配置simple_eval_cfgdict(evaluatordict(typeAccEvaluator),pred_postprocessordict(typesimple_mcq_postprocess.simple_mcq_postprocess),)# 数据集列表datasets[dict(abbrsimple_mcq_test,typeJsonlDataset,pathE:/project/opencompass/test_data.jsonl,reader_cfgsimple_reader_cfg,infer_cfgsimple_infer_cfg,eval_cfgsimple_eval_cfg,)]# 模型列表models[dict(typeHuggingFaceBaseModel,abbrqwen2-0.5b-instruct-hf,pathE:/project/opencompass/models/Qwen2-0.5B-Instruct,max_out_len16,batch_size1,run_cfgdict(num_gpus0),model_kwargsdict(torch_dtypeauto,device_mapcpu),)]# 输出目录work_dir./outputs/simple_test6. 评估流程6.1 完整流程┌─────────────────┐ │ 1. 加载数据集 │ ← JsonlDataset └────────┬────────┘ ▼ ┌─────────────────┐ │ 2. 构建提示 │ ← PromptTemplate └────────┬────────┘ ▼ ┌─────────────────┐ │ 3. 零样本检索 │ ← ZeroRetriever └────────┬────────┘ ▼ ┌─────────────────┐ │ 4. 模型推理 │ ← GenInferencer HuggingFaceBaseModel └────────┬────────┘ ▼ ┌─────────────────┐ │ 5. 后处理 │ ← simple_mcq_postprocess └────────┬────────┘ ▼ ┌─────────────────┐ │ 6. 评估计算 │ ← AccEvaluator └────────┬────────┘ ▼ ┌─────────────────┐ │ 7. 输出结果 │ ← 预测文件 汇总报告 └─────────────────┘6.2 各步骤说明步骤组件说明1JsonlDataset读取 JSONL 文件返回 HuggingFace Dataset2PromptTemplate将数据填充到提示模板中3ZeroRetriever不使用检索直接推理4GenInferencer调用模型生成回答5simple_mcq_postprocess从生成文本中提取字母选项6AccEvaluator计算预测与标准答案的匹配率7OutputWriter保存预测结果和汇总报告7. 运行命令7.1 验证环境python test_environment.py7.2 下载模型python download_model.py7.3 运行评估# 设置 PYTHONPATHsetPYTHONPATHE:\project\opencompass# 运行评估python opencompass_source/opencompass/cli/main.py simple_test_config.py--debug--max-num-workers17.4 命令参数说明参数说明--debug启用调试模式生成详细日志--max-num-workers设置最大工作线程数--dump-eval-details是否保存评估详情默认 True--num-gpus使用的 GPU 数量8. 测试结果8.1 评估报告datasetversionmetricmodeqwen2-0.5b-instruct-hfsimple_mcq_test5da63caccuracygen25.008.2 预测结果示例{0:{origin_prompt:Question: 22?\nOptions: [A. 3, B. 4, C. 5, D. 6]\nAnswer:,prediction: We can solve this problem by adding the numbers together:\n\n\\[2 2,gold:B},1:{origin_prompt:Question: The capital of China is?\nOptions: [A. Shanghai, B. Beijing, C. Guangzhou, D. Shenzhen]\nAnswer:,prediction: B. Beijing\n\nThe capital of China is Beijing...,gold:B}}8.3 结果分析准确率 25%4 道题中答对 1 道正确题目中国首都B错误题目22、最近行星、10-3原因分析模型输出过于冗长后处理器仅提取第一个字母导致数学题答案被忽略9. 常见问题9.1 ModuleNotFoundError: No module named ‘tree_sitter’问题OpenCompass 部分数据集依赖 tree_sitter但该库在 Python 3.13 上安装失败。解决方案修改opencompass/datasets/__init__.py注释掉相关数据集的导入。9.2 模型下载速度慢问题直接从 HuggingFace Hub 下载速度较慢。解决方案使用国内镜像hf-mirror.com或使用download_model.py脚本。9.3 评估器找不到问题配置文件中指定的评估器名称错误。解决方案使用正确的评估器名称如AccEvaluator不是AccuracyEvaluator。9.4 预测结果格式不正确问题模型输出文本而非单个字母导致评估失败。解决方案添加pred_postprocessor从预测文本中提取字母选项。10. 扩展指南10.1 添加新数据集创建 JSONL 文件在配置文件中添加数据集定义配置 reader、infer、eval 参数10.2 添加新模型下载模型到models/目录在配置文件中添加模型定义调整模型参数max_out_len、batch_size 等10.3 添加新评估指标创建评估器类或使用现有评估器在配置文件中指定 evaluator 类型添加必要的后处理器10.4 优化提示模板根据任务类型调整提示模板# 多项选择题templateQuestion: {question}\nOptions: {options}\nAnswer:# 问答任务templateQuestion: {question}\nAnswer:# 分类任务templateSentence: {sentence}\nLabel:附录A. 参考链接OpenCompass 官方文档Qwen2-0.5B-InstructHuggingFace DatasetsB. 版本历史日期版本说明2026-07-27v1.0初始版本完成基础环境配置和测试用例

相关新闻

工厂设备数据采集怎么做?SCADA系统全链路方案

工厂设备数据采集怎么做?SCADA系统全链路方案

2026/7/29 18:59:36

设备数据采集的核心挑战 中小制造企业的设备数据采集面临一个普遍困境:设备在运转但数据在流失。工厂通常拥有跨品牌、跨协议(Modbus/OPC UA/模拟量信号)的多代设备,运行状态、产量、良品率、停机频次等关键数据完全不可见。 SCAD…

QQ空间备份终极指南:一键完整导出你的青春记忆

QQ空间备份终极指南:一键完整导出你的青春记忆

2026/7/29 18:59:36

QQ空间备份终极指南:一键完整导出你的青春记忆 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目地址: https://gitcod…

Philips 453567112661 双向接口盒

Philips 453567112661 双向接口盒

2026/7/29 18:49:35

Philips 453567112661 双向接口盒,其主要特点如下:飞利浦品牌专业接口设备。适用于CT扫描设备配套。支持双向信号传输。用于医疗影像设备连接。接口适配飞利浦CT系统。采用医用级连接器,接触可靠。信号传输稳定,保障图像质量。结构…

微信聊天记录备份终极方案:WechatBakTool完整使用指南

微信聊天记录备份终极方案:WechatBakTool完整使用指南

2026/7/29 20:09:39

微信聊天记录备份终极方案:WechatBakTool完整使用指南 【免费下载链接】WechatBakTool 基于C#的微信PC版聊天记录备份工具,提供图形界面,解密微信数据库并导出聊天记录。 项目地址: https://gitcode.com/gh_mirrors/we/WechatBakTool …

3分钟搞定Windows与Office激活:KMS智能脚本全攻略

3分钟搞定Windows与Office激活:KMS智能脚本全攻略

2026/7/29 20:09:39

3分钟搞定Windows与Office激活:KMS智能脚本全攻略 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活弹窗烦恼吗?或是Office办公软件提示"产品未…

企业400电话接通率低怎么办?从线路质量到号码认证的排查指南

企业400电话接通率低怎么办?从线路质量到号码认证的排查指南

2026/7/29 20:09:39

文章摘要400电话接通率从正常的60%以上骤降至30%甚至更低,是企业在日常运营中可能遇到的典型故障场景。接通率下降的原因通常不在单一环节,而是线路质量、号码状态、路由配置三类问题的叠加。本文按照从底层到上层的排查逻辑,梳理SIP线路诊断…

微信聊天记录备份终极指南:三步永久保存珍贵对话

微信聊天记录备份终极指南:三步永久保存珍贵对话

2026/7/29 20:09:39

微信聊天记录备份终极指南:三步永久保存珍贵对话 【免费下载链接】WechatBakTool 基于C#的微信PC版聊天记录备份工具,提供图形界面,解密微信数据库并导出聊天记录。 项目地址: https://gitcode.com/gh_mirrors/we/WechatBakTool 微信聊…

交易即开票为什么离不开乐企联用不是技术问题

交易即开票为什么离不开乐企联用不是技术问题

2026/7/29 20:09:39

交易即开票为什么离不开乐企联用?不是技术问题 交易即开票。乐企联用。 这两个词在2026年的财税圈出现的频率,已经快赶上"金税四期"了。但问一个问题—— 「这俩是什么关系?」 十个财务人里,有六个会犹豫一下。 不是不懂…

宠物商城托运一体化搭建,宠物档案绑定商品物流全流程

宠物商城托运一体化搭建,宠物档案绑定商品物流全流程

2026/7/29 19:59:38

宠物商城托运一体化搭建,宠物档案绑定商品物流全流程当下宠物服务类小程序与平台逐步从单一用品售卖、单一托运服务,转向商城购物、活体托运、宠物档案管理一体化的综合运营模式。很多宠物平台在实际搭建中,普遍存在宠物档案、商城订单、托运…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

2026/7/29 0:08:23

打工人总是跑不掉要写会议纪要。 我在一家互联网公司,一周至少八场会:产品评审、数据复盘、项目同步、客户沟通,每场一小时起步。 以前的标准流程是开会拼命记→会后凭记忆补→整理成文档发群,结果经常记不全、记错、记串。 大概年…

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

2026/7/29 0:08:23

重庆化龙桥靠着嘉陵江,老小区多,最近几年城市更新做的勤,不少住户都反映过小区夜景亮了是好事,可有的灯太晃眼,半夜拉着窗帘都透光,睡不好觉。还有物业算账,这灯开一整晚,公摊电费蹭…

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

2026/7/29 0:08:23

更多请点击: https://codechina.net 第一章:目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案 目标模糊:学得越勤,离真实能力越远 当学习目标停留在“学会AI”或“搞懂大模型”这类宽泛表述…