在 lm-evaluation-harness 中评测 QA4MRE:CLEF 机器阅读理解任务的配置解析与实现原理
大模型推理模型微调模型推理服务【免费下载链接】s1s1: Simple test-time scaling项目地址https://gitcode.com/gh_mirrors/s1/s1点击查看免费下载QA4MREQuestion Answering for Machine Reading Evaluation是 CLEF 2011-2013 期间组织的英语机器阅读理解问答挑战赛用于评测系统从大体积文本中抽取知识并回答问题的能力。本仓库s1 项目的 lm-evaluation-harness 评测框架将 QA4MRE 的 Main Task2011/2012/2013 三个年份封装为可直接运行的multiple_choice评测任务。读完本文你将掌握 QA4MRE 任务的背景与组织方式、仓库中qa4mre_2011/2012/2013三个任务的 YAML 配置细节、答案索引的预处理逻辑以及 acc / acc_norm 指标在框架内的底层计算原理可直接在本地复现该基准评测。QA4MRE 挑战赛背景QA4MRE 是作为 CLEF 2011-2013 的 Lab实验室评测任务运行的其核心目标是通过问答与阅读理解测试建立一套机器阅读Machine Reading系统的评测方法论。参赛系统需要能够从大规模文本中抽取知识并利用这些知识回答问题。根据 qa4mre/README.md 的记载在 2011-2013 年间共组织了四项不同的任务任务说明Main Task基于给定阅读文档的常规阅读理解问答主任务Processing Modality and Negation评测系统处理情态modality与否定negation语义的能力Machine Reading of Biomedical Texts about Alzheimers Disease面向阿尔茨海默病生物医学文献的机器阅读理解Entrance Exam入学考试风格的阅读理解测试挑战赛的权威论文为《QA4MRE 2011-2013: Overview of Question Answering for Machine Reading Evaluation》作者Anselmo Peñas、Eduard H. Hovy、Pamela Forner、Álvaro Rodrigo、Richard F. E. Sutcliffe、Roser Morante发表于 CLEF 2013。官方建议的引用格式如下inproceedings{Peas2013QA4MRE2O, title{QA4MRE 2011-2013: Overview of Question Answering for Machine Reading Evaluation}, author{Anselmo Pe{\~n}as and Eduard H. Hovy and Pamela Forner and {\A}lvaro Rodrigo and Richard F. E. Sutcliffe and Roser Morante}, booktitle{CLEF}, year{2013} }在仓库的 任务总览表 中该任务被概括为 Question Answering for Machine Reading Evaluation, assessing comprehension and reasoning——即通过阅读理解与推理能力来评估模型的综合水平。仓库中的组与任务结构本仓库在eval/lm-evaluation-harness/lm_eval/tasks/qa4mre/目录下提供了完整的任务实现共包含 5 个文件qa4mre_2011.yaml2011 年 Main Task 的完整配置qa4mre_2012.yaml2012 年 Main Task 配置继承 2011qa4mre_2013.yaml2013 年 Main Task 配置继承 2011preprocess_qa4mre.py答案索引预处理辅助函数README.md任务说明与引用信息任务注册结构如下Group组qa4mreTasks任务qa4mre_2011、qa4mre_2012、qa4mre_2013其中组名qa4mre是一个 tag标签而非可独立评测的任务。在框架的 TaskManager 中所有位于lm_eval/tasks/目录下的 YAML 会被自动索引索引条目按类型区分为group、task、python_task与tag见 tasks/init.py 中 initialize_tasks 的实现因此这三个 YAML 定义的任务无需额外注册即可被--tasks参数直接引用。任务 YAML 配置逐项解析qa4mre_2011.yaml是三个年份任务的基础配置version 1.0完整内容如下tag: - qa4mre task: qa4mre_2011 dataset_path: qa4mre dataset_name: 2011.main.EN output_type: multiple_choice test_split: train # doc_to_text: {{document_str.strip()}}\nQuestion: {{question_str}}\nChoices:\n- {{answer_choices|join(\n- )}}\nAnswer: doc_to_text: {{document_str.strip()}}\nQuestion: {{question_str}}\nAnswer: doc_to_target: {{correct_answer_id|int - 1}} doc_to_choice: {{answer_options.answer_str}} should_decontaminate: true doc_to_decontamination_query: {{document_str.strip()}} {{question_str}} metric_list: - metric: acc aggregation: mean higher_is_better: true - metric: acc_norm aggregation: mean higher_is_better: true metadata: version: 1.0各配置项的作用与要点如下task任务唯一名称评测命令行中通过该名称引用任务如--tasks qa4mre_2011。dataset_path: qa4mre/dataset_name: 2011.main.EN指定 Hugging Face 数据集qa4mre及其子集config名称。2011.main.EN中的main对应 README 所述的 Main TaskEN表示英语语料——README 明确指出该挑战赛是English only的。output_type: multiple_choice声明该任务采用多项选择输出。框架会根据此字段走对应的请求构造与评分逻辑详见下文「acc 与 acc_norm 的计算原理」。test_split: train使用数据集的train划分作为评测集QA4MRE 官方以训练集充当测试集的做法。doc_to_text构造送入模型的提示词格式为阅读文档 换行 Question 换行 Answer:。注意配置文件中注释掉了一版把选项逐行列出Choices: ...的提示词模板当前生效的是不带选项文本的版本——选项会作为续写continuation参与 loglikelihood 计算这正是multiple_choice输出类型的标准做法。doc_to_target{{correct_answer_id|int - 1}}将数据集中的 1-based 正确答案编号转换为 0-based 索引与 preprocess_qa4mre.py 中的qa4mre_process逻辑完全一致见下节。doc_to_choice{{answer_options.answer_str}}取出数据集中的选项文本列表作为候选答案集合。should_decontaminate: true与doc_to_decontamination_query启用数据去污decontamination。评测前会把文档 空格 问题拼接成查询串用于检查评测样本是否出现在模型的训练语料中避免数据泄漏造成分数虚高框架的去污实现位于 decontamination 子模块。metric_list注册两个指标acc与acc_norm聚合方式均为mean且都是越高越好higher_is_better: true。qa4mre_2012.yaml与qa4mre_2013.yaml则通过 YAML 的include机制复用 2011 年的全部配置仅覆盖任务名与数据集子集名include: qa4mre_2011.yaml task: qa4mre_2012 dataset_path: qa4mre dataset_name: 2012.main.ENinclude: qa4mre_2013.yaml task: qa4mre_2013 dataset_path: qa4mre dataset_name: 2013.main.EN这种基础配置 增量覆盖的组织方式让三个年份的任务保持完全一致的评测协议只更换数据来源便于横向比较模型在不同年份考题上的表现。答案索引的预处理逻辑preprocess_qa4mre.py 中定义了两个辅助函数虽未在 YAML 中直接引用YAML 内联的 Jinja 表达式已等价实现但清晰地揭示了数据集字段的结构def qa4mre_process(doc): return int(doc[correct_answer_id]) - 1 def doc_to_target(doc): return doc[answer_options][answer_str][qa4mre_process(doc)]从源码结构可以推断原始数据集样本包含correct_answer_id1 起始的正确答案编号与answer_options.answer_str选项文本列表两个关键字段。qa4mre_process完成 1-based 到 0-based 的索引换算doc_to_target则按换算后的索引取出正确的选项文本。YAML 中的doc_to_target: {{correct_answer_id|int - 1}}正是把这一转换内联到了配置里。acc 与 acc_norm 的计算原理作为multiple_choice任务QA4MRE 三个年份的评测在 Task.construct_requests / process_results 中按如下流程进行构造请求对每个样本框架把doc_to_text生成的上下文作为 ctx把doc_to_choice取出的每个选项作为 continuation逐个发起loglikelihood请求见 task.py 中 multiple_choice 分支。选择预测模型返回每个选项的对数似然lls后框架取pred np.argmax(lls) # acc直接选似然最大的选项 pred_norm np.argmax(lls / completion_len) # acc_norm按选项长度归一化后再取最大对应 task.py 的 L1452-L1453比对答案将pred/pred_norm与doc_to_target得到的标准答案索引比对命中则记 1 分最后按mean聚合得到acc与acc_normtask.py L1480-L1488。其中completion_len是各选项文本的字符长度task.py L1437-L1438。acc_norm通过长度归一化修正了短选项天然更容易获得更高似然的偏差因此通常比原始acc更稳健。仓库的回归测试数据也印证了这一点三个年份的acc_norm均不低于acc详见下节。评测运行方式与测试佐证在安装好 lm-evaluation-harness 依赖见 requirements.txt后可通过 CLI 入口运行评测例如lm_eval --model hf \ --model_args pretrainedEleutherAI/pythia-70m \ --tasks qa4mre_2011,qa4mre_2012,qa4mre_2013 \ --batch_size 8任务名同样支持组名qa4mre批量引用。若使用外部自定义任务路径可通过--include_path参数附加main.py 中的参数定义。仓库的测试目录为这三个任务保存了基准结果快照可用来校验本地实现的一致性qa4mre_2011-v0-res.jsonacc0.225、acc_norm0.2333qa4mre_2012-v0-res.jsonacc0.15625、acc_norm0.16875qa4mre_2013-v0-res.jsonacc0.1831、acc_norm0.2218从这些快照可以观察到在相同小规模预训练模型测试环境下三年份任务均呈现acc_norm acc的趋势且 2012 年 Main Task 的绝对分数最低侧面反映了不同年份考题难度的差异acc_norm因长度归一化而更加稳健。同时这些.json中versions字段标记为 0与当前 YAML 的metadata.version: 1.0存在版本演进差异若你的本地结果与快照不一致可优先检查数据集与任务配置版本是否匹配。小结QA4MRE 评测任务在仓库中通过一个基础 YAML 两个 include 覆盖的方式实现了 2011/2012/2013 三年 Main Task 的无缝接入multiple_choice输出类型负责构造文档 问题上下文并对每个选项计算似然correct_answer_id - 1的索引换算保证了答案对齐acc/acc_norm双指标兼顾了原始准确率与长度归一化稳健性should_decontaminate则为防止训练数据泄漏提供了保障。理解这套任务模板的写法你也可以参考 new_task_guide.md 与 task_guide.md将其他阅读理解基准以同样的方式接入本评测框架。赞分享大模型推理模型微调模型推理服务【免费下载链接】s1s1: Simple test-time scaling项目地址https://gitcode.com/gh_mirrors/s1/s1点击查看免费下载相关推荐Cybersecurity-SkillsNIST AI RMF 72子类别合规实操指南Cybersecurity SkillsNIST AI RMF 72子类别合规实操指南 Anthropic Cybersecurity Skills 是面向网络安全AI 技能/插件渗透测试红蓝对抗在 lm-evaluation-harness 中评测 LAMBADA Cloze 任务配置解析、运行方式与实现原理在 lm evaluation harness 中评测 LAMBADA Cloze 任务配置解析、运行方式与实现原理 导读 LAMBADALAnguage大模型推理模型微调模型推理服务s1 仓库中的 DROP 任务评测指南在 lm-evaluation-harness 中配置离散推理阅读理解基准s1 仓库中的 DROP 任务评测指南在 lm evaluation harness 中配置离散推理阅读理解基准 本文聚焦当前仓库 s1 Simple te大模型推理模型微调模型推理服务上一篇Vue 3网络图组件5分钟上手指南从零构建交互式关系图下一篇如何快速掌握CefSharp从零构建强大嵌入式浏览器应用的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考