OpenCompass 集成 SciCode 科研编程评测基准:配置、运行与评估原理全解析
发布时间:2026/9/29 6:29:19来源:尧图网络
模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass 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.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载导读本文以 OpenCompass 仓库中的 SciCode 数据集说明文档 为核心系统讲解如何在该评测平台上配置、运行并评估这一由科学家整理的科研代码生成基准。你将掌握with_bg参数背后的背景信息注入机制、scicode_gen系列配置文件的完整结构、run.py命令行参数的实际含义以及SciCodeEvaluator从代码提取、HDF5 测试数据读取到子问题/主问题双指标打分的完整评估链路。SciCode 基准概览从真实科研问题到评测任务SciCodeScience Code是一个专门评估语言模型LMs为真实科学研究问题编写代码能力的挑战性基准。根据 README 文档 的描述它具备以下核心特征覆盖广泛涵盖 6 大领域的 16 个子领域包括物理Physics、数学Math、材料科学Material Science、生物学Biology、化学Chemistry等来源于真实研究与以往由考试式问答对构成的基准不同SciCode 的问题直接由真实科研问题转化而来天然的任务分解结构每个 SciCode 主问题自然分解为多个子问题subproblems每个子问题都涉及知识回忆knowledge recall、推理reasoning与代码合成code synthesis规模总计 80 个高难度主问题分解出 338 个子问题可选科学背景描述数据集提供了可选的背景信息描述用于评测模型在有/无科学背景知识条件下的表现差异标注完善包含科学家标注的参考答案gold-standard solutions与用于评估的测试用例。文档同时给出了一个极具参考价值的结论在最具挑战性的设置最真实场景下当时测试表现最好的模型 Claude3.5-Sonnet 也仅能解决 4.6% 的问题。这直观说明 SciCode 对当前 LLM 的科研代码能力构成了显著挑战也印证了其评测价值——它模拟了科学家识别关键科学概念与事实再将其转化为计算与仿真代码的日常工作流程。数据准备下载与目录结构在运行评测之前需要先准备 SciCode 数据集。OpenCompass 通过 datasets_info.py 维护了数据下载映射/scicode对应的数据包地址为http://opencompass.oss-cn-shanghai.aliyuncs.com/datasets/data/scicode.zip可通过数据下载机制将其解压到本地数据目录。从配置与源码可以确认数据集在本地需要按以下结构存放相对于仓库根目录data/scicode/SciCode_datasets.json无背景信息w/o background版本的评测样本data/scicode/SciCode_datasets_with_background.json带背景信息w/ background版本的评测样本data/scicode/test_data/{step_id}.h5各子问题对应的 HDF5 格式测试数据文件。其中 HDF5 测试数据需要单独获取。在 scicode.py 的process_hdf5_to_tuple函数中如果文件缺失会直接断言报错并给出明确提示需要手动下载scicode_test_data.zip并将解压出的test_data.h5放入./data/scicode/test_data/目录。配置文件解析scicode_gen 系列配置入口与版本差异OpenCompass 在opencompass/configs/datasets/scicode/目录下提供了多个配置文件文件说明scicode_gen.py入口配置通过read_base()复用scicode_gen_085b98的SciCode_datasetsscicode_gen_085b98.py无背景w/o background完整配置max_out_len4096scicode_wbg_gen_085b98.py带背景w/ background完整配置scicode_gen_62c139.py较早版本的配置未设置max_out_len以 scicode_gen_085b98.py 为例配置由三部分核心组件构成SciCode_reader_cfg dict(input_columns[prompt], output_columnNone) SciCode_infer_cfg dict( ice_templatedict( typePromptTemplate, template, ), retrieverdict(typeZeroRetriever), inferencerdict(typeChatInferencer, infer_modeevery, max_out_len4096)) SciCode_eval_cfg dict(evaluatordict(typeSciCodeEvaluator, dataset_path./data/scicode, with_bgFalse)) SciCode_datasets [ dict( abbrSciCode, typeSciCodeDataset, path./data/scicode, with_bgFalse, reader_cfgSciCode_reader_cfg, infer_cfgSciCode_infer_cfg, eval_cfgSciCode_eval_cfg) ]各部分的作用如下reader_cfg以数据样本中的prompt字段作为推理输入列无监督输出列即直接向模型下发完整任务描述infer_cfgice_template为空字符串模板搭配ZeroRetriever零样本、不做示例检索ChatInferencer以infer_modeevery对每个样本逐条推理并设置max_out_len4096——这一输出长度上限远大于 CLI 默认的 256是因为科研代码题要求模型生成完整可执行的 Python 脚本eval_cfg指定SciCodeEvaluator作为评估器dataset_path./data/scicode指向本地数据目录SciCode_datasets列表项注册数据集abbr缩写名用于结果汇总与报告展示、typeSciCodeDataset与数据集路径。with_bg 参数控制背景信息注入README 明确指出通过修改配置文件中的with_bg参数即可切换 w/ background 评测设置。这一参数贯穿数据加载与评估两个环节在 SciCodeDataset.load 中with_bgTrue时读取SciCode_datasets_with_background.json否则读取SciCode_datasets.json在 SciCodeEvaluator 的初始化中同样依据with_bg选择对应的 JSON 文件。scicode_wbg_gen_085b98.py 就是带背景版本的完整示例其abbr改为SciCode_with_backgroundwith_bgTrue贯穿数据集与评估器配置。实际使用中只需复制该文件并修改with_bg字段即可在两种设置之间切换。命令行运行完整命令与参数详解README 给出了使用 HuggingFace 模型直接运行 SciCode 评测的完整命令python run.py --datasets scicode_gen --hf-num-gpus 1 --hf-type chat --hf-path meta-llama/Meta-Llama-3-8B-Instruct --debug --model-kwargs device_mapauto trust_remote_codeTrue --batch-size 1对照 CLI 参数定义各参数含义如下参数含义默认值--datasets scicode_gen指定要运行的数据集配置对应opencompass/configs/datasets/scicode/scicode_gen.py的模块名无--hf-num-gpus 1为 HuggingFace 模型分配的 GPU 数量1--hf-type chatHuggingFace 模型类型可选base或chatchat对应对话式推理chat--hf-path meta-llama/Meta-Llama-3-8B-Instruct模型路径或 HuggingFace 模型标识必填--debug以调试模式运行便于观察中间结果与排错关闭--model-kwargs device_mapauto trust_remote_codeTrue以键值对方式传递模型加载参数device_mapauto自动分配设备trust_remote_codeTrue允许加载依赖自定义代码的模型{}--batch-size 1推理批大小SciCode 题目较长且需要逐题完整生成设为 1 可稳定单样本生成8需要说明的是CLI 参数中--models可以组合多个模型进行对比评测而--max-out-len的 CLI 默认值仅为 256若直接覆盖infer_cfg时务必记得保持 4096 级别的长输出设置否则模型可能在代码生成中途被截断。运行结束后评测结果会按配置中的abbr如SciCode写入输出目录供汇总模块读取。评估原理SciCodeEvaluator 源码级解析SciCode 的评估并非简单的文本匹配而是在真实 Python 环境中执行模型生成的代码并与科学家标注的测试数据比对。整个链路实现在 opencompass/datasets/scicode.py 中可分为四个阶段1. Python 脚本提取模型的原始回复通常以 markdown 代码块形式返回extract_python_script 会定位python与标记截取代码段若回复中不存在代码块标记则视为未遵循指令返回空字符串该样本判为失败。提取后还会用正则^\s*(import .*|from .*\simport\s.*)去除代码开头的 import 语句——因为所有子问题的代码会被拼接进同一个文件import 由数据集统一提供。2. 子问题代码拼接与测试文件生成在score方法中评估器对每个主问题做如下处理读取该样本的id与import字段统一导入语句为每个子问题提取出的脚本按顺序拼接依据数据集自带的test字段逐子问题生成测试文件文件命名为{problem_id}-{sub_idx1}.py测试文件末尾会追加from opencompass.datasets.scicode import process_hdf5_to_tuple并通过process_hdf5_to_tuple({problem_id}.{sub_idx1}, len(test_lst))从 HDF5 文件中读取期望的目标值再逐行写入测试断言逻辑。源码中还存在针对特定问题的特例处理当problem_id 13 and sub_idx 5、problem_id 62 and sub_idx 0、problem_id 76 and sub_idx 2时会对子问题下标额外加一用于对齐这些题目的真实测试结构。3. HDF5 测试数据解析process_hdf5_to_tupleL98-L140负责从./data/scicode/test_data/{step_id}.h5读取每个测试样本支持标量、字节串、列表、稀疏矩阵COO/CSR/BSR与嵌套字典等多种数据类型通过h5py逐层还原为 Python 对象。4. 数值比对与并发执行生成的测试脚本由run_script以subprocess方式在独立进程中执行单脚本超时上限为 120 秒返回码 2 表示超时异常退出返回 1成功执行返回 0。所有脚本通过ThreadPoolExecutor并发调度避免串行执行拖慢整体评估。数值比对阶段使用了多种容差策略字典与矩阵通过np.allclose比较默认atol1e-8, rtol1e-5sympy.Symbol与字符串按值相等比较scipy.sparse稀疏矩阵会先转为稠密数组再比较are_csc_matrix_close。最终打分产出两个核心指标sub_accuracy子问题准确率所有子问题中运行成功返回码 0的比例accuracy主问题准确率一个主问题只有当其全部子问题均运行成功时才计为正确因此该指标显著更严苛。这解释了 README 参考性能表中两个指标数值差异巨大的原因——主问题准确率要求整条子问题链全部通过。结果汇总summarizer 配置评测完成后可以通过 summarizer 配置 自动汇总报告。该配置声明了四个数据集指标项[SciCode_with_background, accuracy] [SciCode_with_background, sub_accuracy] [SciCode_wo_background, accuracy] [SciCode_wo_background, sub_accuracy]对应的 分组定义 将SciCode、SciCode_with_background、SciCode_wo_background三个汇总组分别聚合各自的accuracy与sub_accuracy便于在最终报告中将带背景与不带背景两种设置的结果并排对比直接复现 README 中的参考性能表格。参考性能与预期结果README 给出了 4 个模型配置的参考表现可作为复现实验的对照基线w/o Background为无背景设置w/ Background为注入科学背景信息的设置模型条件子问题准确率主问题准确率Llama-3-70B-Instructw/o Background21.53%4.62%Llama-3-70B-Instructw/ Background24.31%7.69%Qwen2-72B-Instructw/o Background16.67%1.54%Qwen2-72B-Instructw/ Background19.79%1.54%可以观察到两个规律其一注入科学背景信息后各模型的子问题准确率普遍提升其二主问题准确率整体处于个位数水平充分反映 SciCode 作为研究级代码基准的极高难度。复现时建议使用与基线一致的--hf-type chat、较长max_out_len与--batch-size 1设置以获得可比的评估结果。引用信息如果在研究工作中使用 SciCode 基准可按 README 中给出的 BibTeX 条目引用misc{tian2024scicode, title{SciCode: A Research Coding Benchmark Curated by Scientists}, author{Minyang Tian and Luyu Gao and Shizhuo Dylan Zhang and Xinan Chen and Cunwei Fan and Xuefei Guo and Roland Haas and Pan Ji and Kittithat Krongchon and Yao Li and Shengyan Liu and Di Luo and Yutao Ma and Hao Tong and Kha Trinh and Chenyu Tian and Zihan Wang and Bohao Wu and Yanyu Xiong and Shengzhu Yin and Minhui Zhu and Kilian Lieret and Yanxin Lu and Genglin Liu and Yufeng Du and Tianhua Tao and Ofir Press and Jamie Callan and Eliu Huerta and Hao Peng}, year{2024}, eprint{2407.13168}, archivePrefix{arXiv}, primaryClass{cs.AI} }总结通过本文你可以完整掌握在 OpenCompass 上运行 SciCode 科研编程评测的全流程从数据集与 HDF5 测试文件的准备到scicode_gen系列配置中with_bg、reader_cfg、infer_cfg、eval_cfg的逐项含义再到run.py命令行参数的实战用法以及底层SciCodeEvaluator真实执行代码、数值比对与双指标打分的评估原理。结合 README、数据集实现 与 汇总配置 三处源码即可在自己的实验环境中复现参考性能并将 SciCode 纳入日常模型能力评测体系。赞分享模型评测人工智能大模型AI 评测【免费下载链接】opencompassOpenCompass 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.项目地址https://gitcode.com/gh_mirrors/op/opencompass点击查看免费下载相关推荐OpenCompass 集成 ATLAS 基准前沿科学推理评估与 LLM-as-a-Judge 评测实战OpenCompass 集成 ATLAS 基准前沿科学推理评估与 LLM as a Judge 评测实战 ATLAS 是面向前沿科学推理的高难度多学科评测基准模型评测人工智能大模型AI 评测OpenCompass MATH 数学推理基准评估指南配置、评测流程与源码解析OpenCompass MATH 数学推理基准评估指南配置、评测流程与源码解析 MATH 是 OpenCompass 内置的高难度数学推理基准之一用于评估大模型评测人工智能大模型AI 评测OpenCompass 高考基准 GaokaoBench 评测指南配置、Prompt 设计、评分原理与模型成绩全解析OpenCompass 高考基准 GaokaoBench 评测指南配置、Prompt 设计、评分原理与模型成绩全解析 OpenCompass 在 openco模型评测人工智能大模型AI 评测上一篇ErrorBoundaryContext使用常见问题react-error-boundary调试下一篇如何高效下载网页视频资源猫抓浏览器扩展完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网