news 2026/9/28 2:34:17

使用 OpenCompass 评测 Intern-S1:模型接入、LLM Judge 配置与完整评估流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 OpenCompass 评测 Intern-S1:模型接入、LLM Judge 配置与完整评估流程
  • 模型评测
  • 人工智能
  • 大模型
  • 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.

项目地址:https://gitcode.com/gh_mirrors/op/opencompass
点击查看免费下载

导读

本文是 OpenCompass 官方针对 Intern-S1(InternLM 开源的推理/思考模型)提供的评测实战指南。文章围绕「部署 API 服务 → 配置模型接入 → 配置数据集与 LLM Judge → 启动评估」这条完整链路展开,读者学完后可以基于 OpenCompass 将任意 OpenAI 兼容的推理模型接入评测流程,并正确处理思考模式(thinking mode)下的输出后处理与长序列评测场景。

一、评测前的准备:模型下载与 API 服务部署

Intern-S1 已经开源,可先从 Hugging Face 下载模型权重(仓库内配置默认使用internlm/Intern-S1作为模型路径)。

模型下载完成后,官方推荐将模型部署为 API 服务供 OpenCompass 调用,而不是在评测机本地直接加载权重。支持以下部署方式:

  • LMDeploy:InternLM 官方推理引擎,对 Intern 系列模型支持完善;
  • vLLM:高性能推理框架,可通过 OpenAI 兼容接口对外提供服务;
  • SGLang:同样提供 OpenAI 兼容服务接口。

部署细节(Serving)以 Intern-S1 官方仓库的说明为准;本文聚焦 OpenCompass 侧的接入配置,不涉及具体部署命令。

部署完成后,你会得到一个 API Base 地址与 API Key,它们将直接用于下文模型配置中的openai_api_base与key字段。

二、模型接入配置:intern_s1.py

OpenCompass 在opencompass/configs/models/interns1/intern_s1.py中提供了现成的 Intern-S1 模型配置示例,用户只需按需修改即可。完整配置如下:

from opencompass.models import OpenAISDK from opencompass.utils.text_postprocessors import extract_non_reasoning_content api_meta_template = dict( round=[ dict(role='HUMAN', api_role='HUMAN'), dict(role='BOT', api_role='BOT', generate=True), ], ) models = [ dict( abbr='intern-s1', key='YOUR_API_KEY', # 填写你的 API KEY openai_api_base='YOUR_API_BASE', # 填写你的 API BASE type=OpenAISDK, path='internlm/Intern-S1', temperature=0.7, meta_template=api_meta_template, query_per_second=1, batch_size=8, max_out_len=64000, max_seq_len=65536, openai_extra_kwargs={ 'top_p': 0.95, }, retry=10, extra_body={ 'chat_template_kwargs': {'enable_thinking': True} # 基于 vllm 或 sglang 部署时控制思考模式开关 }, pred_postprocessor=dict(type=extract_non_reasoning_content), # 开启思考模式后,提取非推理内容用于评测 ), ]

关键字段说明

字段作用说明
type模型封装类型使用OpenAISDK,即 OpenAI SDK 风格的 API 模型封装(见 openai_api.py)
path模型标识传给 API 服务的模型名/路径,默认internlm/Intern-S1
abbr模型缩写用于结果文件命名与报告展示,可自定义
openai_api_baseAPI 服务地址指向已部署服务的 OpenAI 兼容端点;从源码看也支持传入list,此时会随机选择一个以做多端点负载均衡(openai_api.py)
keyAPI 密钥也支持传入密钥列表实现轮换
temperature/top_p采样参数思考类模型通常配合一定的随机性采样,top_p通过openai_extra_kwargs透传给 OpenAI SDK
query_per_second请求速率上限控制每秒最大请求数,避免打爆服务端
batch_size并发批大小并发请求条数,需与服务端容量匹配
max_out_len最大生成长度Intern-S1 为长推理模型,配置为 64000,覆盖其长 CoT 输出
max_seq_len最大序列长度配置为 65536,与长上下文的评测需求匹配
retry失败重试次数API 调用失败后的重试次数
meta_template元提示模板定义 HUMAN/BOT 角色轮次,generate=True标记生成角色,用于组装对话请求
extra_body额外请求体字段当基于 vLLM/SGLang 部署时,通过chat_template_kwargs.enable_thinking控制思考模式开/关
pred_postprocessor预测后处理器开启思考模式后用于剔除推理(thinking)内容,仅保留最终答案参与评测

思考模式与extract_non_reasoning_content的底层原理

当enable_thinking=True时,模型输出会携带<think>...</think>推理标签。评测指标(如准确率匹配)只应针对最终答案计算,因此需要把推理内容剥离开。这一后处理由注册在opencompass/utils/text_postprocessors.py中的extract_non_reasoning_content完成(text_postprocessors.py),其核心逻辑为:

  • 若文本中只存在结束标签</think>,则按结束标签切分并取最后一段;
  • 若起止标签都存在,则用正则<think>(.*?)</think>(re.DOTALL模式)将中间推理段落整体删除。

该函数还支持自定义思考标签:如think_start_token与think_end_token参数(仓库内 HuatuoGPT-O1 等模型配置即传入了'## Thinking'/'## Final Response'这类自定义标记)。对应单元测试见 test_text_postprocessors.py,覆盖了「仅含结束标签」与「成对标签」两种典型场景。

三、数据集配置与 LLM Judge:eval_bench_intern_s1.py

OpenCompass 在examples/eval_bench_intern_s1.py中提供了评测 Intern-S1 使用的数据集配置,也可按需追加其他数据集。该示例文件实际上是一份可直接运行的完整评测配置,其内部结构如下:

  1. 数据集导入:通过read_base批量引入 8 个数据集配置,涵盖多个能力维度:
    • 数学推理:aime2025(级联评测配置);
    • 科学推理:GPQA_diamond、ChemBench(LLM Judge 评测)、ProteinLMBench(LLM Judge 评测);
    • 通识知识:mmlu_pro;
    • 指令遵循:IFEval;
    • 实验科学:matbench(LLM Judge 评测);
    • 指令生成:SmolInstruct的 0-shot instruct 系列子集。
  2. 模型导入:复用上文opencompass/configs/models/interns1/intern_s1.py中的models。
  3. 推理长度适配:遍历所有数据集,将infer_cfg['inferencer']['max_out_len']统一设为 65536,以匹配思考模型的长输出需求。
  4. LLM Judge 注入:将统一的judge_cfg注入到需要 LLM 评判的评估器(judge_cfg字段或llm_evaluator.judge_cfg)中。

配置 LLM Judge(评判模型)

对于 ChemBench、ProteinLMBench、matbench 这类主观/生成式评测任务,需要额外配置一个 LLM 评判模型来打分。文档给出的示例配置如下:

judge_cfg = dict( abbr='YOUR_JUDGE_MODEL', type=OpenAISDK, path='YOUR_JUDGE_MODEL_PATH', key='YOUR_API_KEY', openai_api_base='YOUR_API_BASE', meta_template=dict( round=[ dict(role='HUMAN', api_role='HUMAN'), dict(role='BOT', api_role='BOT', generate=True), ]), query_per_second=1, batch_size=1, temperature=0.001, max_out_len=8192, max_seq_len=32768, mode='mid', )

与待评模型配置相比,Judge 配置有以下差异值得注意:

  • temperature=0.001:评判任务追求稳定一致,几乎退化为贪心解码,避免同一答案在不同次打分中出现明显波动;
  • max_out_len=8192/max_seq_len=32768:评判模型无需覆盖超长 CoT,输出上限可以收紧;
  • mode='mid':指定输入超长时的截断策略为从中间截断(OpenAI 基类支持'front'/'mid'/'rear'三种截断位置,默认'none',见 openai_api.py);
  • batch_size=1:评判请求单条串行,保证打分质量与稳定性。

在examples/eval_bench_intern_s1.py中,judge_cfg先被置为空dict(),随后通过循环注入到每个数据集的评估器配置中,因此自行追加数据集时,必须保证该数据集若依赖 LLM 评判,其judge_cfg能被正确覆盖。

摘要与输出目录

示例文件还内置了summarizer配置,按「Knowledge / Instruction Following / General Reasoning / Math Calculation / Academic / SmolInstruct」等分组汇总各数据集成绩(如['mmlu_pro', 'accuracy']、['GPQA_diamond', 'accuracy']、['aime2025', 'accuracy']、['ChemBench', 'naive_average']等),并指定输出目录work_dir = './outputs/oc_bench_intern_s1'。

四、推理与评测执行配置

examples/eval_bench_intern_s1.py中还包含推理与评测阶段的任务调度配置(与 OpenCompass 通用的infer/eval字典结构一致):

# 推理阶段:8 个 worker 并行推理,本地 runner,最多 16 个并发进程 infer = dict( partitioner=dict(type=NumWorkerPartitioner, num_worker=8), runner=dict( type=LocalRunner, max_num_workers=16, retry=0, # 按需修改 task=dict(type=OpenICLInferTask), ), ) # 评测阶段:Naive 切分 10 份,本地 runner 执行 OpenICLEvalTask eval = dict( partitioner=dict(type=NaivePartitioner, n=10), runner=dict(type=LocalRunner, max_num_workers=16, task=dict(type=OpenICLEvalTask)), )

其中NumWorkerPartitioner按 worker 数量切分推理任务,NaivePartitioner将评测数据朴素均分为n份。由于 Intern-S1 输出极长(推理+答案),任务切分粒度与并发度需结合服务端吞吐能力调整,避免单 worker 超时或请求堆积。

五、启动评估

完成上述模型与数据集配置后,在仓库根目录执行以下命令即可启动评估:

opencompass examples/eval_bench_intern_s1.py

OpenCompass 会依次完成:配置读取与合并 → 推理任务切分与下发(对 Intern-S1 执行长上下文推理)→ 结果评测(含 LLM Judge 打分)→ 汇总输出报告到work_dir指定目录。

六、常见实践要点小结

  1. 思考模式与评测解耦:enable_thinking=True仅影响服务端推理时的输出格式;评测侧通过pred_postprocessor=dict(type=extract_non_reasoning_content)剥离<think>内容,保证打分只看最终答案。
  2. 长序列参数必须匹配:Intern-S1 的max_out_len=64000、max_seq_len=65536与数据集侧max_out_len=65536三者需保持一致口径,否则可能出现截断导致答案不完整。
  3. Judge 模型独立配置:LLM 评判任务使用低温、单并发、中截断策略,与待评模型的采样参数相互独立,可分别调优。
  4. 可扩展性:如需追加数据集,只需在read_base中引入对应数据集配置即可;若新数据集依赖 LLM 评判,确保其评估器中的judge_cfg会被示例文件中的循环覆盖逻辑捕获。

参考资源

  • 模型配置:opencompass/configs/models/interns1/intern_s1.py
  • 完整评测示例:examples/eval_bench_intern_s1.py
  • 思考内容提取实现:opencompass/utils/text_postprocessors.py
  • 对应单元测试:tests/utils/test_text_postprocessors.py
  • OpenAI SDK 模型封装:opencompass/models/openai_api.py
  • 模型评测
  • 人工智能
  • 大模型
  • 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.

项目地址:https://gitcode.com/gh_mirrors/op/opencompass
点击查看免费下载

相关推荐

上一篇:Local Deep Research全面解析:构建本地AI研究助手的架构设计与最佳实践
下一篇:手机秒变文件服务器:prim-ftpd的5个实用技巧提升传输效率

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 2:34:14

5款wordpress分类模版设置插件对比评测,新手必看安全避坑指南

5款wordpress分类模版设置插件对比评测,新手必看安全避坑指南 刚接手一个 WordPress 项目,老板指着后台说:“这个分类页的排版太丑了,你改一下。”你点开后台,满屏的英文菜单,域名解析没配好,服务器 SSH 连不上,SSL…

作者头像 李华
网站建设 2026/9/28 2:34:14

东莞食品网站建设避坑指南:域名服务器全解完整流程

东莞食品网站建设避坑指南:域名服务器全解完整流程 很多东莞的食品厂老板,一开口就问:“我做个网站,域名要多少钱?服务器放哪里?” 这句话背后藏着巨大的认知误区: 域名和服务器搞不懂,网站做得再漂亮也是空中楼阁,甚至可能面临数据丢失和法律风险。…

作者头像 李华
网站建设 2026/9/28 2:33:56

5 分钟部署 wewe-rss,把微信公众号订阅收进你的 RSS 阅读器

5 分钟部署 wewe-rss&#xff0c;把微信公众号订阅收进你的 RSS 阅读器 【免费下载链接】wewe-rss &#x1f917;更优雅的微信公众号订阅方式&#xff0c;支持私有化部署、微信公众号RSS生成&#xff08;基于微信读书&#xff09; 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/9/28 2:33:20

2026最新门户网站的意义:5步拆解费用与避坑指南

2026最新门户网站的意义:5步拆解费用与避坑指南 备案号还没下来,服务器却催着付款?这种“备案流程一头雾水”的焦虑,是2026年最新建站圈里最普遍的痛点。很多老板以为买个域名、传个文件就能开干,结果卡在ICP备案环节,眼睁睁看着工期拖延。…

作者头像 李华
网站建设 2026/9/28 2:33:12

桐城网站开发新手入门:3个坑让流量翻倍的实战复盘

桐城网站开发新手入门:3个坑让流量翻倍的实战复盘 网站做好了没人访问,这种绝望感每个做过桐城网站开发的人都懂。我见过太多本地老板,花了几万块把官网做得花里胡哨,结果上线半年,后台日志里除了蜘蛛爬虫,连个真人IP都刷不出来。这不是网站做得丑,而是从新手入门的第一步就错了方向,没把SEO的底层逻辑吃透。…

作者头像 李华