2026/9/14 20:26:19

在 lm-evaluation-harness 中使用 NTREX-128 基准评估多语言翻译模型:AfroBench ntrex 任务组实战指南

在 lm-evaluation-harness 中使用 NTREX-128 基准评估多语言翻译模型:AfroBench ntrex 任务组实战指南 在 lm-evaluation-harness 中使用 NTREX-128 基准评估多语言翻译模型AfroBench ntrex 任务组实战指南【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness本指南以 lm_eval/tasks/afrobench/ntrex/README.md 为核心结合 ntrex.yaml 聚合配置、gen_utils.py 生成脚本以及 prompt_1/2/3 目录下的 192 个语言级 YAML 任务文件系统讲解 NTREX-128 新闻翻译测试集如何被接入 lm-evaluation-harness涵盖数据集背景、翻译方向性结论、三类提示词模板、语言对任务命名规范、聚合指标配置与实测运行命令。读者读完将能够在本地一键运行面向非洲语言及英语的多语言机器翻译评估并理解其背后英语为源语言方向这一关键设计约束。一、NTREX-128 基准面向 128 语言的大规模新闻翻译评测集NTREX-128News Test References for MT Evaluation of 128 Languages是微软团队于 2022 年发布的机器翻译MT评测数据集论文题为NTREX-128 – News Test References for MT Evaluation of 128 LanguagesFedermann, Kocmi Xin, 2022。该数据集提供从英语到共计 128 种目标语言的测试参考译文是当时覆盖语言最广的新闻领域翻译评测集之一用于支撑大规模多语言机器翻译研究。根据该 README 中记录的论文摘要NTREX-128 的核心贡献有三点数据构建描述了测试集的构建过程质量过滤提出了一种基于人工评估的质量过滤方法方向性结论通过实验确认了测试集翻译方向对评测指标有效性的重要影响——该数据集适用于评估英语源English-sourced的翻译模型不建议用于反向即其他语言→英语之外的逆向评估。这一方向性结论直接决定了本仓库中 ntrex 任务组的组织方式所有语言对均以英语为源语言或英语为目标语言成对出现且官方引用建议严格遵循英语源方向使用。仓库中同时保留了反向方向非洲语言→英语的配置便于研究者对照验证但官方推荐以英语源English→African方向为准。二、仓库内 ntrex 任务组的目录结构与任务清单NTREX 在 lm-evaluation-harness 中被封装为一个独立任务组group位于 lm_eval/tasks/afrobench/ntrex/其整体结构如下lm_eval/tasks/afrobench/ntrex/ ├── README.md # 论文信息、摘要与引用本文依据 ├── ntrex.yaml # 任务组聚合配置group: african_ntrex ├── gen_utils.py # 语言级 YAML 批量生成脚本 ├── prompt_1/ # 第一套提示词模板 │ ├── african-english/ # 非洲语言 → 英语反向方向 │ └── english-african/ # 英语 → 非洲语言推荐方向 ├── prompt_2/ # 第二套提示词模板 └── prompt_3/ # 第三套提示词模板每一套 prompt 下都包含31 个非洲/相关语言afr、amh、arb、bem、ewe、fra、hau、ibo、kin、mey、mlg、msa、nde、nso、nya、orm、shi、sna、som、ssw、swa、tam、tel、tir、ton、tsn、urd、ven、wol、xho、yor、zul分别生成两个方向的配置文件african-english/ntrex_lang-eng_Latn.yaml如ntrex_swa_Latn-eng_Latn.yaml任务名ntrex_swa_Latn-eng_Latn_prompt_1english-african/ntrex_eng_Latn-lang.yaml如ntrex_eng_Latn-swa_Latn.yaml任务名ntrex_eng_Latn-swa_Latn_prompt_1。语言代码遵循 ISO 639-3 加书写系统拉丁Latn、埃塞俄比亚音节文字Ethi、阿拉伯文Arab、泰米尔文Taml、泰卢固文Telu的格式例如 Swahili 记为swa_LatnAmharic 记为amh_Ethi。三、任务组聚合配置ntrex.yaml 逐字段解析任务组的入口文件 ntrex.yaml 内容如下group: african_ntrex task: - ntrex_eng-afr_prompt_1 - ntrex_eng-afr_prompt_2 - ntrex_eng-afr_prompt_3 - ntrex_afr-eng_prompt_1 - ntrex_afr-eng_prompt_2 - ntrex_afr-eng_prompt_3 aggregate_metric_list: - metric: acc aggregation: mean weight_by_size: true metadata: version: 1各字段含义字段值说明groupafrican_ntrex任务组名可在 CLI 中作为--tasks值整体调用task6 个方向×模板组合英语→非洲eng-afr与非洲→英语afr-eng各 3 套提示词每个组合内部再展开为 31 个语言任务aggregate_metric_list.metricacc聚合上报的指标名各语言任务自身实际输出 bleu/chrf见下文aggregate_metric_list.aggregationmean对子任务指标取平均aggregate_metric_list.weight_by_sizetrue按每个语言子任务样本量加权平均避免小语种被大语种稀释metadata.version1任务版本号供结果缓存与溯源使用weight_by_size: true是值得注意的配置由于不同语言子任务的测试样本数不同按样本量加权能让聚合结果更接近总测试集上的总体表现这也是多语言评测中常用的聚合策略。四、语言级任务配置prompt_1 模板与翻译评测定义每个语言任务的 YAML 由gen_utils.py生成以 Swahili 为例英语→非洲方向 ntrex_eng_Latn-swa_Latn.yaml# Generated by utils.py dataset_name: swa_Latn doc_to_target: sentence_swa_Latn doc_to_text: English: {{sentence_eng_Latn}} \nSwahili: include: ntrex task: ntrex_eng_Latn-swa_Latn_prompt_1对应非洲→英语方向 ntrex_swa_Latn-eng_Latn.yaml# Generated by utils.py dataset_name: swa_Latn doc_to_target: sentence_eng_Latn doc_to_text: Swahili: {{sentence_swa_Latn}} \nEnglish: include: ntrex task: ntrex_swa_Latn-eng_Latn_prompt_1字段语义include: ntrex继承公共模板即 english-african 或 african-english 目录下的无扩展名文件ntrex复用数据集路径、输出类型、指标与生成参数dataset_nameHugging Face 数据集masakhane/ntrex_african的子集名称即语言代码说明本仓库使用的是其非洲子集版本doc_to_text提示词模板通过{{...}}引用 HF 数据集中的字段sentence_eng_Latn英语句子与sentence_lang目标语言句子doc_to_target模型需生成的目标字段——英语→非洲方向为sentence_swa_Latn反向则为sentence_eng_Latn。公共模板 ntrex无扩展名文件两套 prompt 目录下各有一个同名无扩展名文件作为公共模板例如 prompt_1/english-african/ntrextag: - ntrex_tasks - ntrex_eng-afr - ntrex_eng-afr_prompt_1 - afrobench_MT_tasks dataset_path: masakhane/ntrex_african output_type: generate_until validation_split: test fewshot_split: test test_split: test metric_list: - metric: bleu aggregation: bleu higher_is_better: true - metric: chrf aggregation: chrf higher_is_better: true generation_kwargs: until: - \n do_sample: false temperature: 0.0 repeats: 1 metadata: version: 1.0关键设计点输出类型为generate_until翻译任务不是分类loglikelihood而是自由生成模型持续生成直至遇到换行符\n为止解码策略为贪心do_sample: false且temperature: 0.0保证评测可复现评测指标为 BLEU 与 chrF二者均为机器翻译标准指标higher_is_better: true表示越高越好aggregation: bleu/chrf表示对句级分数做句子级聚合后整体上报所有 split 均指向test测试集既作验证集也作少样本集fewshot_split: test即默认在测试集上做 zero-shot 生成评测tag 打标ntrex_tasks、ntrex_eng-afr、ntrex_eng-afr_prompt_1、afrobench_MT_tasks等标签用于按 tag 批量筛选任务afrobench_MT_tasks说明它是 AfroBench 机器翻译任务家族的一员。五、三种提示词模板从朴素翻译到专家角色设定gen_utils.py 中的prompt_func定义了 6 种提示词变体3 套模板 × 正反向。以 Swahili 为例完整对照如下模板方向提示词doc_to_textprompt_1afr→engSwahili: {{sentence_swa_Latn}} \nEnglish:prompt_1_reverseeng→afrEnglish: {{sentence_eng_Latn}} \nSwahili:prompt_2afr→engYou are a translation expert. Translate the following Swahili sentences to English \nSwahili: {{sentence_swa_Latn}}\nEnglish:prompt_2_reverseeng→afrYou are a translation expert. Translate the following English sentences to Swahili \nEnglish: {{sentence_eng_Latn}} \nSwahili:prompt_3afr→engAs a Swahili and English linguist, translate the following Swahili sentences to English \nSwahili: {{sentence_swa_Latn}}\nEnglish:prompt_3_reverseeng→afrAs a Swahili and English linguist, translate the following English sentences to Swahili \nEnglish: {{sentence_eng_Latn}} \nSwahili:设计逻辑一目了然prompt_1最朴素的语言: 句子 \nEnglish:形式用于测量模型在无角色引导下的原生翻译能力prompt_2加入You are a translation expert角色设定与显式指令 Translate the following ... sentences to ...更贴近翻译任务的指令形式prompt_3加入双语语言学家身份 As a Swahili and English linguist进一步强化对语言对的认知。三套模板配合两个方向共产生 6 组任务用于系统性地评估提示词敏感性prompt sensitivity同一模型在同一测试集上的翻译质量是否会因提示词表述方式不同而显著波动。这在 ntrex.yaml 中通过同时挂载 6 个任务得到体现。六、语言列表与批量生成脚本 gen_utils.pygen_utils.py 内置 31 个语言代码→语言名的映射表如swa_Latn: Swahili、amh_Ethi: Amharic、yor_Latn: Yoruba等并提供了命令行批量生成能力# 在 lm_eval/tasks/afrobench/ntrex 目录下执行 python gen_utils.py --mode prompt_1 --output-dir ./ --reverse False python gen_utils.py --mode prompt_2 --output-dir ./ --reverse TrueCLI 参数说明参数默认值可选值说明--overwriteTruestore_true—文件已存在时是否覆盖不覆盖时若文件已存在会抛出FileExistsError并列出冲突文件名--output-dir./任意目录YAML 输出根目录--modeprompt_1prompt_1/prompt_2/prompt_3选择生成哪套提示词--reverseFalseTrue/FalseFalse生成非洲→英语写入african-english/True生成英语→非洲写入english-african/生成规则对应 gen_utils.py反向False文件名ntrex_lang-eng_Latn.yamldoc_to_target恒为sentence_eng_Latn反向True文件名ntrex_eng_Latn-lang.yamldoc_to_target为sentence_lang所有文件首行写入# Generated by utils.py并统一include: ntrex复用公共模板若目标文件已存在且未开启--overwrite会在所有文件生成完毕后统一抛出FileExistsError。七、在本地运行 ntrex 评测完成上述配置后即可通过 lm-evaluation-harness 的标准 CLI 运行评测。单语言单模板任务示例# 英语 → 斯瓦希里语官方推荐的英语源方向prompt_1 lm_eval --model hf \ --model_args pretrainedEleutherAI/pythia-1b \ --tasks ntrex_eng_Latn-swa_Latn_prompt_1 \ --device cuda # 斯瓦希里语 → 英语反向对照 lm_eval --model hf \ --model_args pretrainedEleutherAI/pythia-1b \ --tasks ntrex_swa_Latn-eng_Latn_prompt_1 \ --device cuda整组运行6 个方向×模板组合的全部语言任务lm_eval --model hf \ --model_args pretrainedEleutherAI/pythia-1b \ --tasks african_ntrex \ --batch_size auto \ --device cuda运行说明与注意事项需要先安装 lm-evaluation-harness参见 README.md并保证datasets可访问 Hugging Face 上的masakhane/ntrex_african数据集任务组african_ntrex下每个语言子任务都会上报bleu与chrf两个指标组级聚合另输出按样本量加权的acc聚合值由于翻译任务为generate_until自由生成评估耗时取决于生成长度与模型解码速度建议使用--batch_size auto并优先使用 GPU可根据 README 中论文的方向性建议将英语源方向ntrex_eng_Latn-*作为主评测、反向作为辅助对照。八、引用信息在论文或技术报告中引用 NTREX-128 时可直接复用 README 中提供的 BibTeX 条目Federmann, Kocmi Xin, 2022发表于 Proceedings of the First Workshop on Scaling Up Multilingual Evaluationinproceedings{federmann-etal-2022-ntrex, title {NTREX}-128 {--} News Test References for {MT} Evaluation of 128 Languages, author Federmann, Christian and Kocmi, Tom and Xin, Ying, editor Ahuja, Kabir and Anastasopoulos, Antonios and Patra, Barun and Neubig, Graham and Choudhury, Monojit and Dandapat, Sandipan and Sitaram, Sunayana and Chaudhary, Vishrav, booktitle Proceedings of the First Workshop on Scaling Up Multilingual Evaluation, month nov, year 2022, address Online, publisher Association for Computational Linguistics, doi 10.18653/v1/2022.sumeval-1.4, pages 21--24 }九、总结从基准到可复现评测的完整链路NTREX-128 任务组展示了 lm-evaluation-harness 中数据基准 → 任务组 → 语言子任务的三层封装模式基准层NTREX-128 提供 128 语言的新闻翻译测试参考本仓库选取其非洲子集masakhane/ntrex_african31 语言任务组层ntrex.yaml 通过group: african_ntrex聚合 6 组方向×模板任务并配置按样本量加权的均值聚合子任务层gen_utils.py 自动生成 192 个语言级 YAML每个 YAML 通过include复用统一模板明确定义提示词、目标字段、生成参数与 BLEU/chrF 指标。对于希望评测自家多语言模型翻译能力的研究者直接运行--tasks african_ntrex即可获得横跨 31 个非洲语言、3 套提示词、2 个方向的系统化翻译质量报告同时务必遵循论文的方向性建议以英语源方向为主进行解读。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考