尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

lm-evaluation-harness 中的 XStoryCloze 多语言故事完形评测任务实战指南

lm-evaluation-harness 中的 XStoryCloze 多语言故事完形评测任务实战指南 lm-evaluation-harness 中的 XStoryCloze 多语言故事完形评测任务实战指南【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harnessXStoryCloze 是 Meta AI 发布的多语言少样本学习评测数据集将英文 StoryClozeSpring 2016 版专业翻译为 10 种非英语语言用于衡量多语言语言模型在故事结局选择任务上的跨语言推理能力。本文以 lm_eval/tasks/xstorycloze/README.md 为骨架结合仓库内真实的 YAML 任务配置与源码实现讲解该任务的背景、11 个语言变体的组织方式、核心字段的底层语义以及如何在 lm-evaluation-harness 中实际运行与聚合评估。一、数据集背景与论文出处XStoryCloze 出自论文Few-shot Learning with Multilingual Language ModelsarXiv: 2112.106682021 年由 Xi Victoria Lin、Todor Mihaylov、Mikel Artetxe 等研究者联合发布。该数据集的核心定位是将经典的 English StoryCloze 数据集Spring 2016 版本通过专业人工翻译扩展到 10 种非英语语言由 Meta AI 发布。与机器翻译版本相比professionally translated 意味着句子质量与语义保真度更高更适合作为跨语言评测的可靠基准。说明原 README 给出的 Homepage 为 Facebook Research 的 fairseq 仓库相关 PRhttps://github.com/facebookresearch/fairseq/pull/4820。在 lm-evaluation-harness 的实现中数据集实际加载自 Hugging Face 数据集juletxara/xstory_cloze见下文任务配置这是社区维护的镜像版本。引用格式BibTeX在论文或报告中引用 XStoryCloze 时可使用原 README 提供的 BibTeXarticle{DBLP:journals/corr/abs-2112-10668, author {Xi Victoria Lin and Todor Mihaylov and Mikel Artetxe and Tianlu Wang and Shuohui Chen and Daniel Simig and Myle Ott and Naman Goyal and Shruti Bhosale and Jingfei Du and Ramakanth Pasunuru and Sam Shleifer and Punit Singh Koura and Vishrav Chaudhary and Brian OHoro and Jeff Wang and Luke Zettlemoyer and Zornitsa Kozareva and Mona T. Diab and Veselin Stoyanov and Xian Li}, title {Few-shot Learning with Multilingual Language Models}, journal {CoRR}, volume {abs/2112.10668}, year {2021}, url {https://arxiv.org/abs/2112.10668}, eprinttype {arXiv}, eprint {2112.10668}, timestamp {Tue, 04 Jan 2022 15:59:27 0100}, biburl {https://dblp.org/rec/journals/corr/abs-2112-10668.bib}, bibsource {dblp computer science bibliography, https://dblp.org} }二、任务组织1 个 Group、11 个语言 Task原 README 的 Groups and Tasks 一节明确了任务的层级组织方式GroupxstoryclozeTasks11 个语言变体Task 名称语言xstorycloze_arArabic阿拉伯语xstorycloze_enEnglish英语xstorycloze_esSpanish西班牙语xstorycloze_euBasque巴斯克语xstorycloze_hiHindi印地语xstorycloze_idIndonesian印尼语xstorycloze_myBurmese缅甸语xstorycloze_ruRussian俄语xstorycloze_swSwahili斯瓦希里语xstorycloze_teTelugu泰卢固语xstorycloze_zhChinese中文在仓库中的文件组织上每个语言变体对应一个独立的 YAML 配置文件位于 lm_eval/tasks/xstorycloze/ 目录下lm_eval/tasks/xstorycloze/ ├── README.md ├── _xstorycloze.yaml # 组定义文件 ├── default_ar.yaml # 任务模板完整字段定义 ├── default_en.yaml # 英语 ├── default_es.yaml # 西班牙语 ├── default_eu.yaml # 巴斯克语 ├── default_hi.yaml # 印地语 ├── default_id.yaml # 印尼语 ├── default_my.yaml # 缅甸语 ├── default_ru.yaml # 俄语 ├── default_sw.yaml # 斯瓦希里语 ├── default_te.yaml # 泰卢固语 └── default_zh.yaml # 中文这种一个完整模板 十个继承文件的组织方式是 lm-evaluation-harness 的 YAML 任务标准实践default_ar.yaml承载全部字段定义其余语言文件通过include: default_ar.yaml继承只需覆盖task名称与dataset_name两个字段。三、核心配置逐字段解析default_ar.yaml阿拉伯语任务文件 lm_eval/tasks/xstorycloze/default_ar.yaml 是全部 11 个变体的母模板完整内容如下task: xstorycloze_ar dataset_path: juletxara/xstory_cloze dataset_name: ar output_type: multiple_choice training_split: train validation_split: eval doc_to_text: {{[input_sentence_1, input_sentence_2, input_sentence_3, input_sentence_4]|join( )}} doc_to_target: {{answer_right_ending-1}} doc_to_choice: {{[sentence_quiz1, sentence_quiz2]}} should_decontaminate: true doc_to_decontamination_query: {{[input_sentence_1, input_sentence_2, input_sentence_3, input_sentence_4]|join( )}} metric_list: - metric: acc aggregation: mean higher_is_better: true metadata: version: 1.0各字段的核心作用如下1. 数据来源与切分dataset_path: juletxara/xstory_cloze指定 Hugging Face 数据集仓库路径。所有语言变体共用同一数据集路径通过dataset_name区分语言子集。dataset_name: ar数据集中的语言子集名称与各变体文件中的语言缩写一一对应。training_split: train训练切分名称用于少样本示例的采样。validation_split: eval评测切分名称。XStoryCloze 的官方划分中eval切分承担了常规意义的验证/测试评测职能。2. 模板字段few-shot 模板的核心output_type: multiple_choice声明该任务为多项选择题式评测。这会驱动 lm-evaluation-harness 使用loglikelihood请求类型分别计算每个候选结局的 log 概率。doc_to_text: {{[input_sentence_1, input_sentence_2, input_sentence_3, input_sentence_4]|join( )}}将样本中的前 4 个故事句子input_sentence_1至input_sentence_4用空格拼接作为输入上下文。这里的|join( )是 Jinja2 过滤器。doc_to_target: {{answer_right_ending-1}}正确答案标签。数据集中answer_right_ending取值为 1 或 2因此减 1 后映射到 0/1 索引与doc_to_choice的候选列表下标对齐。doc_to_choice: {{[sentence_quiz1, sentence_quiz2]}}两个候选故事结局sentence_quiz1与sentence_quiz2组成的列表模型需要从中选出更合理的结尾。3. 去污染与指标should_decontaminate: true启用数据去污染检查。配合doc_to_decontamination_query在评测前检测训练语料与评测样本是否重叠避免数据泄漏。doc_to_decontamination_query用于去污染匹配的查询文本此处与doc_to_text相同拼接前 4 个句子。metric_list定义acc准确率作为评测指标aggregation: mean表示在批量样本上取平均higher_is_better: true声明指标越大越好。metadata.version: 1.0任务版本号用于缓存与结果追踪。4. 语言变体的继承写法其余语言文件只做最小覆盖。以中文为例lm_eval/tasks/xstorycloze/default_zh.yaml 全文仅 3 行include: default_ar.yaml task: xstorycloze_zh dataset_name: zh英语default_en.yaml与俄语default_ru.yaml等文件结构完全相同仅替换task与dataset_name的值。由此可以推断11 个语言变体共享完全一致的 prompt 模板与评测协议差异仅在数据集语言子集这保证了跨语言结果的可比性——这正是多语言评测任务设计的核心诉求。五、Group 聚合跨语言的加权平均组定义文件 lm_eval/tasks/xstorycloze/_xstorycloze.yaml 内容如下group: xstorycloze task: - xstorycloze_ar - xstorycloze_en - xstorycloze_es - xstorycloze_eu - xstorycloze_hi - xstorycloze_id - xstorycloze_my - xstorycloze_ru - xstorycloze_sw - xstorycloze_te - xstorycloze_zh aggregate_metric_list: - metric: acc aggregation: mean weight_by_size: true metadata: version: 1.0关键点解读group: xstorycloze声明组名task列表按 README 顺序列出全部 11 个语言变体二者在命名上保持一致。aggregate_metric_list定义了组级聚合指标对 11 个语言的acc做mean聚合。weight_by_size: true是值得注意的细节它表示聚合时按各语言子集的样本数量加权而非简单的算术平均。这一字段直接体现了原论文对跨语言整体表现的评测口径——若各语言样本量不均衡加权平均能更准确地反映整体表现。运行xstorycloze组时评测结果中既包含每个语言变体单独的acc也包含组级加权聚合后的xstorycloze指标。六、与英文原版 StoryCloze 任务的对照XStoryCloze 源于英文 StoryCloze仓库中也保留了英文原版任务的实现。将 xstorycloze/default_ar.yaml 与 storycloze/storycloze_2016.yaml 对照可以清晰地看到两者的同构关系维度XStoryClozedefault_ar.yamlStoryCloze 2016数据集路径juletxara/xstory_clozeLSDSem/story_cloze输出类型multiple_choicemultiple_choice文本模板4 句拼接 2 候选结局完全一致标签映射answer_right_ending-1answer_right_ending-1去污染should_decontaminate: trueshould_decontaminate: true指标acc/meanacc/mean从源码结构看XStoryCloze 正是在英文 StoryCloze 的评测协议基础上通过更换多语言数据集juletxara/xstory_cloze并逐语言声明子集实现的多语言化。两者的 prompt 模板、标签映射与指标定义完全对齐这也从侧面印证了专业翻译、评测协议不变的数据集定位使得跨语言分数可以直接与英文基线对照。七、如何在 lm-evaluation-harness 中运行运行单个语言变体使用lm_eval命令行工具--tasks参数指定具体任务名lm_eval --model hf \ --model_args pretrainedmeta-llama/Llama-3-8B \ --tasks xstorycloze_zh \ --device cuda:0 \ --batch_size auto运行全部 11 个语言并获取组级聚合lm_eval --model hf \ --model_args pretrainedmeta-llama/Llama-3-8B \ --tasks xstorycloze \ --device cuda:0 \ --batch_size auto指定组名xstorycloze即可一次性评测全部 11 个语言变体并输出组级加权平均指标。少样本few-shot评测由于 XStoryCloze 源自少样本学习论文评测时通常配合--num_fewshot使用示例来自 examples/lm-eval-overview.ipynb 所展示的通用用法lm_eval --model hf \ --model_args pretrainedmeta-llama/Llama-3-8B \ --tasks xstorycloze_en,xstorycloze_zh \ --num_fewshot 5 \ --device cuda:0 \ --batch_size auto注意--num_fewshot N会从training_split此处为train中采样 N 个示例构造上下文与validation_split: eval上的评测相配合完整复现少样本评测协议。实际可用的--model类型hf、vllm、api等与--model_args参数请参阅 docs/model_guide.md 和 docs/interface.md。查看任务列表可以通过子命令确认任务与组的注册情况lm_eval --tasks xstorycloze或列出全部已注册任务检查xstorycloze组及其 11 个子任务是否可被发现实现见 lm_eval/_cli/ls.py 与任务索引 lm_eval/tasks/_index.py。八、评测协议与去污染机制XStoryCloze 任务遵循了 lm-evaluation-harness 的标准评测流程请求构造对每个样本将 4 句故事与 2 个候选结局分别拼接构造 2 条loglikelihood请求交由模型计算续写概率。打分与判对选择 log 概率更高的结局作为预测与doc_to_target解析出的真实标签比对得到该样本的acc。组级聚合各语言acc按样本量加权求平均得到xstorycloze组指标。去污染检查should_decontaminate: true触发去污染流程相关实现可参考 lm_eval/decontamination/decontaminate.py使用doc_to_decontamination_query提供的文本在训练语料中进行 n-gram 匹配从源码结构与官方文档docs/decontamination.md可以确认该机制用于检测训练数据与评测数据的重叠风险。九、结语XStoryCloze 是评测多语言语言模型少样本故事理解能力的代表性基准。在 lm-evaluation-harness 中它以1 个 Group 11 个语言 Task的 YAML 配置组织通过模板继承实现各语言完全一致的评测协议并通过按样本量加权的组级聚合输出跨语言整体分数。本文覆盖了 README 中的论文出处、引用、任务清单并结合仓库真实配置逐字段解析了数据加载、prompt 模板、去污染与指标定义给出了从单语言到全组、从零样本到少样本的完整运行命令可作为在 lm-evaluation-harness 中开展多语言故事完形评测的直接参考。延伸阅读任务配置语法参见 docs/task_guide.md 与 docs/config_files.mdYAML 任务的组织与继承规则可进一步阅读 lm_eval/tasks/_factory.py 与 lm_eval/tasks/manager.py英文原版任务配置见 lm_eval/tasks/storycloze/。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表