
模型评测人工智能大模型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点击查看免费下载BABILong 是一个面向超长上下文的 LLM 推理评测基准通过在长达百万 token 的随机自然文本中隐藏事实检验模型在多跳事实链、归纳、演绎、计数与集合处理等任务上的长上下文推理能力。OpenCompass 已将其原生接入本文以仓库中的 babilong README 为骨架结合数据集加载、评测器与提示词模板等源码实现完整讲解如何配置、运行并理解 BABILong 评测以及如何基于现有配置扩展你自己的长上下文评测任务。BABILong 基准概览BABILong论文编号 arXiv:2406.10149在超长文档上评估语言模型的长上下文推理能力共包含 20 类多样化推理任务覆盖事实链fact chaining简单归纳simple induction与演绎deduction计数counting列表与集合处理handling lists/sets等。该基准的设计目标是测试模型对分布在长自然文本中的事实进行推理的能力。其核心特点是可扩展性与可控性可以通过构造几乎任意长度的任务来适配不断出现的、能力更强的模型评测需求。在 OpenCompass 中每个任务都以「问题事实隐藏在随机背景文本中」的形式组织模型需要从噪声文本中定位事实并给出答案。OpenCompass 中的 BABILong 集成现状OpenCompass 为 BABILong 提供了自动下载支持数据源为 Hugging Face 上的RMT-team/babilong数据集。需要特别注意的是出于数据集体量考虑仓库默认仅提供最长 1M token1m的数据如需更长的上下文版本可自行从 Hugging Face 直接下载数据。BABILong 论文定义了总共 20 个任务而 OpenCompass 在 configs/datasets/babilong 目录下提供了其中10 个任务qa1–qa10的配置并按照不同的上下文长度context size组织成多组配置。数据集目录结构opencompass/configs/datasets/babilong/ ├── babilong_0k_gen.py # 0k 上下文标准 Prompt 版本 ├── babilong_0k_rawprompt_gen.py ├── babilong_2k_gen.py ├── babilong_2k_rawprompt_gen.py ├── babilong_4k_gen.py ├── babilong_4k_rawprompt_gen.py ├── babilong_16k_gen.py ├── babilong_16k_rawprompt_gen.py ├── babilong_32k_gen.py ├── babilong_32k_rawprompt_gen.py ├── babilong_128k_gen.py ├── babilong_128k_rawprompt_gen.py ├── babilong_256k_gen.py ├── babilong_256k_rawprompt_gen.py ├── babilong_1m_gen.py # 1M 上下文标准 Prompt 版本 └── babilong_1m_rawprompt_gen.py可以看到仓库共提供了 8 档上下文长度0k/2k/4k/16k/32k/128k/256k/1m每档都有两种 Prompt 变体基于PromptTemplate的标准版本与基于RawPromptTemplate的原生 messages 版本。结合 源码中的 split 定义数据集实际支持0k/1k/2k/4k/8k/16k/32k/64k/128k/256k/512k/1m共 12 档 split仓库配置暂未全部覆盖你完全可以自行补齐。快速上手运行 BABILong 评测OpenCompass 提供了开箱即用的 BABILong 评测示例脚本opencompass examples/eval_babilong.py该示例脚本 examples/eval_babilong.py 做了以下事情加载 6 档上下文的 BABILong 数据集babilong_0k / 4k / 16k / 32k / 128k / 256k加载 4 个预配置模型lmdeploy_internlm2_5_7b_chat、lmdeploy_llama3_1_8b_instruct、lmdeploy_ministral_8b_instruct_2410、lmdeploy_qwen2_5_7b_instruct均来自 opencompass/configs/models 下的 LMDeploy 模型配置调整长上下文推理参数为每个模型设置session_len 1024 * 10241M、max_seq_len 1024 * 1024并以tp4、num_gpus4的 4 卡张量并行方式运行配置总结器summarizer按babilong_0k ~ babilong_256k各档输出汇总结果指定输出目录work_dir ./outputs/babilong。因此运行该示例前请确保你的硬件环境能够支撑 1M 上下文的推理显存需求示例按 4 卡配置否则可先减少session_len或只评测较短档位如0k/4k。评测配置深度解析数据集配置文件以 1M 为例每个上下文档位的标准配置结构完全一致以 babilong_1m_gen.py 为例from opencompass.datasets.babilong.babilong import BabiLongDataset, BabiLongEvaluator from opencompass.openicl.icl_prompt_template import PromptTemplate from opencompass.openicl.icl_retriever import ZeroRetriever from opencompass.openicl.icl_inferencer import GenInferencer babiLong_1m_datasets [] split_name 1m tasks [qa1, qa2, qa3, qa4, qa5, qa6, qa7, qa8, qa9, qa10] for task in tasks: tmp_dataset { abbr: fbabilong_{task}_{split_name}, type: BabiLongDataset, path: opencompass/babilong, task: task, split_name: split_name, reader_cfg: dict(input_columns[prompt], output_columnanswer), infer_cfg: dict( prompt_templatedict( typePromptTemplate, templatedict( round[ dict(roleHUMAN, prompt{prompt}), dict(roleBOT, prompt{answer}\n), ] ), ), retrieverdict(typeZeroRetriever), inferencerdict(typeGenInferencer), ), eval_cfg: dict( evaluatordict(typeBabiLongEvaluator), ), } babiLong_1m_datasets.append(tmp_dataset)核心字段说明字段取值含义abbrbabilong_{task}_{split_name}数据集缩写用于结果展示与汇总分组typeBabiLongDataset数据集加载类注册于LOAD_DATASETpathopencompass/babilong数据路径经get_data_path解析后定位本地缓存taskqa1–qa10任务编号决定提示词与数据文件split_name0k/4k/1m/...上下文长度档位reader_cfginput_columns[prompt]output_columnanswer读入 prompt 列、输出 answer 列retrieverZeroRetriever零样本检索全量上下文直接送入模型inferencerGenInferencer生成式推理max_seq_len可指定最大序列长度evaluatorBabiLongEvaluatorBABILong 专用答案比对评估器值得注意的是较长档位的配置如 babilong_128k_gen.py会额外在GenInferencer中设置max_seq_len 128 * 1024以保证输入序列被完整接收在自定义档位时也应参照此做法显式设置与上下文长度匹配的max_seq_len。RawPrompt 变体每档配置还提供了基于RawPromptTemplate的变体如 babilong_1m_rawprompt_gen.py直接以原生 OpenAI 风格 messages 组织输入不经过模板的 round 转换prompt_templatedict( typeRawPromptTemplate, messages[ {role: user, content: {prompt}}, ], ),对于部分以 chat 模板为强制的模型这种原生 messages 形式可以避免额外模板包装具体选择取决于被测模型的对话格式兼容性。底层实现数据加载、提示词与评分数据集加载BabiLongDataset.loadBabiLongDataset 的load静态方法负责数据装配关键逻辑如下合法性校验task必须位于qa1–qa10split_name必须位于 12 档合法取值内否则直接断言失败提示词组装从DEFAULT_PROMPTS[task]中取instruction总指令、examples上下文示例与post_prompt示例后的补充指令通过get_formatted_input拼接读取数据文件路径为{path}/{task}/{split_name}.json逐条读取input背景上下文、question问题与target标准答案构造样本每条样本输出prompt与answer两列最终封装为 Hugging FaceDataset供后续推理使用。三个可选的布尔参数use_instruction、use_examples、use_post_prompt分别控制是否启用指令、示例与后置提示为消融实验留出了扩展空间。提示词模板prompts.pyprompts.py 定义了 BABILong 的提示词骨架SYSTEM_TEMPLATE {instruction}\n\n{examples}\n\n{post_prompt} USER_TEMPLATE context\n{context}\n/context\n\nQuestion: {question} DEFAULT_TEMPLATE f{SYSTEM_TEMPLATE}\n\n{USER_TEMPLATE}最终输入由「指令 示例 后置指令」构成系统部分背景上下文用context.../context标记包裹后与问题组成用户部分。DEFAULT_PROMPTS为 20 个任务qa1–qa20分别定义了专属的指令、few-shot 示例与严格输出格式约束例如 qa1 要求输出「The most recent location of ’person’ is ’location’.」格式、qa6/qa9 只允许yes/no、qa19 只允许n/s/e/w方向字母等保证答案可被机器精确解析。OpenCompass 实际配置仅启用 qa1–qa10但提示词定义已覆盖全 20 类任务。评分逻辑BabiLongEvaluatorBabiLongEvaluator 的评分完全基于 compare_answers 实现其规则如下将标准答案与模型输出统一转为小写只取输出的第一句话按.切分避免模型额外生成解释文字过滤掉模型尝试复述context、example的内容判定标准标准答案作为子串出现在处理后的输出中即视为回答正确。最终得分 正确样本数 / 总样本数 × 100保留两位小数。这种「子串匹配」策略与 prompts 中强制的严格输出格式是配套设计的因此在使用自定义 Prompt 时需保持输出格式的约束性否则会影响评分准确性。结果汇总与参考评测结果总结器Summarizer配置示例脚本使用的汇总分组定义在 opencompass/configs/summarizers/groups/babilong.py 中。该文件将qa1–qa10与 12 档上下文长度0k/1k/2k/4k/8k/16k/32k/64k/128k/256k/512k/1m两两组合生成如下汇总组{ name: fbabilong_{context_window_size}, subsets: [fbabilong_{task}_{context_window_size} for task in default_babilong_tasks], }这样每个上下文档位如babilong_128k都会自动聚合其下 10 个任务的均值结果便于观察「上下文越长、得分衰减」的规律。官方参考结果OpenCompass 在 README 中给出了若干模型在 BABILong 上的评测结果使用 LMDeploy 及默认模型配置运行metric 为naive_averagemode 为gendatasetversionmetricmodeinternlm2_5-7b-chat-turbomindqwen2.5-7b-instruct-turbomindllama-3_1-8b-instruct-turbomindministral-8B-instruct-2410-turbomindbabilong_0k-naive_averagegen76.5180.2576.4476.40babilong_4k-naive_averagegen67.5570.3567.4167.92babilong_16k-naive_averagegen53.7865.8360.2656.58babilong_32k-naive_averagegen50.8662.6659.5653.52babilong_128k-naive_averagegen39.3327.7952.013.20babilong_256k-naive_averagegen17.317.3023.359.50从结果中可以清楚看到长上下文推理的普遍衰减趋势上下文从 0k 延长到 256k 后各模型分数均大幅下降部分模型在 128k 档位即接近失效。该表可作为你本地复现实验的对照基线注意结果随模型版本、推理配置与随机种子可能有所浮动。扩展你自己的 BABILong 配置如果你想评测新的模型或新的上下文档位可以参照以下步骤选择档位按split_name合法性列表含8k/64k/512k等仓库未内置的档位确定目标长度复制配置模板以 babilong_1m_gen.py 为模板修改split_name与abbr前缀并在GenInferencer中同步设置max_seq_len接入模型配置在评测脚本中引入opencompass/configs/models下的目标模型配置并将session_len、max_seq_len调整为不小于目标上下文长度更新汇总分组在 summarizers/groups/babilong.py 的context_window_sizes中加入新档位或在脚本的summarizer.dataset_abbrs中显式声明运行并检查输出执行opencompass examples/eval_babilong.py的同类脚本在work_dir中查看分任务分数与汇总均值。引用 BABILong若在论文或报告中引用 BABILong 基准可使用官方提供的 BibTeXmisc{kuratov2024babilong, title{BABILong: Testing the Limits of LLMs with Long Context Reasoning-in-a-Haystack}, author{Yuri Kuratov and Aydar Bulatov and Petr Anokhin and Ivan Rodkin and Dmitry Sorokin and Artyom Sorokin and Mikhail Burtsev}, year{2024}, eprint{2406.10149}, archivePrefix{arXiv} }小结本文围绕 OpenCompass 对 BABILong 基准的原生集成梳理了从数据下载、配置编写、运行评测到结果汇总的完整链路README 明确了数据获取方式与默认 1M 上限配置目录覆盖 10 个任务 × 多档上下文长度源码层面则通过BabiLongDataset数据装配、prompts.py严格格式的提示词体系与BabiLongEvaluator子串匹配评分构成了可复现、可扩展的评测闭环。对于需要验证模型超长上下文推理能力的团队直接复用 examples/eval_babilong.py 并对照上文结果表即可快速获得一份可信的 BABILong 评测报告。赞分享模型评测人工智能大模型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点击查看免费下载相关推荐使用 lm-evaluation-harness 评估 Babilong 长上下文推理基准任务配置、运行方法与源码解析使用 lm evaluation harness 评估 Babilong 长上下文推理基准任务配置、运行方法与源码解析 导读 BABILong 是专为测试大语人工智能模型评测AI 评测OpenCompass 长上下文评估实战指南基于 L-Eval 与 LongBench 的长文本能力评测OpenCompass 长上下文评估实战指南基于 L Eval 与 LongBench 的长文本能力评测 导读 大语言模型LLM虽然已在各类自然语言任务上模型评测人工智能大模型AI 评测Optimism 仓库 reth 依赖升级实战从 pin 提升到 CLI 快照再生的完整流程Optimism 仓库 reth 依赖升级实战从 pin 提升到 CLI 快照再生的完整流程 本指南基于 Optimism 单仓monorepo中 rus模型评测人工智能大模型AI 评测上一篇如何用BabelDOC把英文PDF译成中文双语对照文档下一篇kill-doc 免费文档下载脚本指南3步把文库页面存成PDF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考