
在 lm-evaluation-harness 中评测 WMT16 机器翻译T5 Prompt 变体任务的配置与实现解析【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness导读本文聚焦 lm-evaluation-harness 仓库中的wmt2016任务族深入解析其唯一的 T5 Prompt 风格变体wmt-ro-en-t5-prompt罗马尼亚语→英语翻译评测。读者将掌握该任务的论文出处与引用格式、YAML 配置文件中每个字段的实际含义、自定义 BLEU 指标函数的底层实现以及它与此仓库中另一套 GPT-3 Prompt 风格 WMT16 任务的差异从而能够在自己的实验中正确选用与扩展翻译类评测任务。WMT16 任务背景与引用信息WMT16Conference on Machine Translation2016 年首届会议是机器翻译领域广为人知的共享任务基准。lm-evaluation-harness 在 wmt2016 任务目录 的 README 中完整保留了该基准的原始出处信息论文标题Findings of the 2016 Conference on Machine Translation发表于 ACL 主办的首届机器翻译会议Proceedings of the First Conference on Machine Translation2016 年 8 月柏林正文页码 131–198数据来源任务配置直接指向 Hugging Face 的wmt/wmt16数据集。该 README 同时给出了标准的 BibTeX 引用供学术论文引用使用InProceedings{bojar-EtAl:2016:WMT1, author {Bojar, Ondřej and Chatterjee, Rajen and Federmann, Christian and Graham, Yvette and Haddow, Barry and Huck, Matthias and Jimeno Yepes, Antonio and Koehn, Philipp and Logacheva, Varvara and Monz, Christof and Negri, Matteo and Neveol, Aurelie and Neves, Mariana and Popel, Martin and Post, Matt and Rubino, Raphael and Scarton, Carolina and Specia, Lucia and Turchi, Marco and Verspoor, Karin and Zampieri, Marcos}, title {Findings of the 2016 Conference on Machine Translation}, booktitle {Proceedings of the First Conference on Machine Translation}, month {August}, year {2016}, address {Berlin, Germany}, publisher {Association for Computational Linguistics}, pages {131--198} }从源码结构看wmt2016目录遵循了本仓库一个任务族一个子目录的组织惯例与 translation 任务族 并列目录内包含三个文件README.md、任务配置 ro_en-t5_prompt.yaml 与自定义指标实现 metrics.py。任务族结构与变体说明README 中明确列出当前wmt2016任务族下的唯一任务wmt-ro-en-t5-prompt使用 T5 提示模板的 WMT16罗马尼亚语→英语评测任务。这个命名包含三层信息语言方向为ro-en罗马尼亚语→英语数据来自 WMT16prompt 风格复刻自 T5 模型的翻译提示模板。任务配置见 ro_en-t5_prompt.yaml完整内容如下task: wmt-ro-en-t5-prompt dataset_path: wmt/wmt16 dataset_name: ro-en training_split: train validation_split: validation output_type: generate_until doc_to_text: translate English to Romanian: {{translation.en}} doc_to_target: {{translation.ro}} metric_list: - metric: wer aggregation: mean higher_is_better: false - metric: !function metrics.bleu aggregation: !function metrics.agg_bleu higher_is_better: true metadata: version: 1.0该变体与 translation 任务族 中生成的wmt16-ro-en任务形成对照后者面向 GPT-3 式翻译评测使用Romanian phrase: ... \n English phrase:的提示模板并挂载gpt3_translation_benchmarks标签而wmt-ro-en-t5-prompt使用 T5 风格模板独立成族。两者数据同源wmt/wmt16的ro-en子集差异完全体现在提示模板与评测指标上。字段逐项解读task任务注册名CLI 与 Python API 均以该名称引用任务dataset_path/dataset_nameHugging Face 数据集的路径与子集名即wmt/wmt16的ro-en语言对training_split/validation_split明确训练集与验证集划分。注意该配置未声明test_split与 translation 公共配置 wmt_common_yaml其中定义了test_split: test不同从配置结构可以推断该变体以验证集为主要评测对象output_type: generate_until自由生成式评测模型需自回归生成目标译文直到遇到终止符为止doc_to_text/doc_to_target从数据样本中抽取提示与标准答案的 Jinja2 模板。此处直接读取数据集中translation字段下的en/ro键metric_list评测指标列表含内置wer与自定义!function引用的 BLEUmetadata.version任务 schema 版本号。自定义 BLEU 指标的底层实现metric_list中通过!function语法将 metrics.py 中的 Python 函数注入为指标这是本仓库 YAML 任务体系提供的函数引用机制。其实现只有 10 行import evaluate def bleu(predictions, references): return (predictions[0], references[0]) def agg_bleu(items): bleu_fn evaluate.load(bleu) predictions, references zip(*items) return bleu_fn.compute(predictionspredictions, referencesreferences)[bleu]其工作方式体现了 lm-evaluation-harness 的逐样本指标 聚合指标两段式设计逐样本阶段bleu(predictions, references)接收模型输出与参考答案直接原样打包返回。之所以不做计算是因为 BLEU 作为语料级指标依赖多个句子的整体统计n-gram 精度与惩罚项需要在聚合阶段一次性计算聚合阶段agg_bleu(items)通过evaluate.load(bleu)加载 Hugging Face evaluate 库的 BLEU 实现对全部样本统一计算后返回bleu分数并在 YAML 中声明higher_is_better: true。该模式与仓库内置的逐样本指标形成互补——例如内置的bleu实现位于 api/metrics.py而 WER词错误率higher_is_better: false聚合方式mean则直接使用 harness 内置指标无需自定义函数。需要指出的是本变体的 WER 聚合配置aggregation: mean会先对逐样本 WER 求平均这与 BLEU 的整体计算语义并不完全相同评测时应对照参考理解两者的统计口径差异。与 GPT-3 风格 WMT16 任务的差异与生成机制translation 任务族 的 README 记录了gpt3_translation_tasks、wmt14、wmt16、wmt20、iwslt2017等分组。其中wmt16分组下的ro-en、de-en等任务并非手写而是由 utils.py 脚本生成的脚本内置gpt3_translation_benchmarks {wmt14: [fr-en], wmt16: [ro-en, de-en]}为每个语言对双向生成 YAML生成模板使用{source} phrase: ... \n {target} phrase:的 GPT-3 风格提示并自动写入doc_to_text/doc_to_target语言全名解析依赖pycountry库pip install lm-eval[multilingual]或pip install -e .[multilingual]安装生成的 YAML 通过include: wmt_common_yaml继承公共配置其中定义了output_type: generate_until、fewshot_split: validation、generation_kwargsuntil: [\n]、do_sample: false、temperature: 0.0以及bleu、ter、chrf三指标。相比之下wmt2016/ro_en-t5_prompt.yaml是独立手写的变体它不继承公共配置改以 T5 风格的translate English to Romanian: {{translation.en}}模板并选用 WER 自定义 BLEU 的指标组合。两类任务并存恰好体现了本仓库同一基准、多套 prompt 风格、多套指标的评测组织方式便于研究者隔离 prompt 模板对翻译质量的影响。如何运行该任务在安装并激活 lm-evaluation-harness 后可通过 CLI 直接评测示例模型参数可按需替换lm_eval --model hf \ --model_args pretrainedyour-model \ --tasks wmt-ro-en-t5-prompt \ --batch_size auto若需批量对比可同时传入 translation 任务族中的 GPT-3 风格变体lm_eval --model hf \ --model_args pretrainedyour-model \ --tasks wmt-ro-en-t5-prompt,wmt16-ro-en \ --batch_size auto其中wmt-ro-en-t5-prompt为本文任务wmt16-ro-en为 translation/wmt16_ro-en.yaml 注册的 GPT-3 风格任务。评测完成后控制台会输出 WER 与 BLEU 分数BLEU 值越高越好WER 值越低越好。扩展新变体时的自查清单README 末尾附带了本仓库任务贡献的标准 Checklist。若要在wmt2016任务族下新增变体例如en-ro反向语言对或新的提示模板需自查是否已引用原始论文、是否有参考实现可供对照、是否清楚标注主变体与新增变体各自评测什么、是否说明了该变体复现的是哪个已发表评测设置。结合本仓库的注册机制新增任务只需在 wmt2016 目录 下新增 YAML 文件并在任务名上体现变体语义即可指标函数可复用现有的 metrics.py 或参考内置指标实现。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考