任务:AfroBench 五种非洲语言评估实战指南)
lm-evaluation-harness 中的自动变音符恢复ADR任务AfroBench 五种非洲语言评估实战指南【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harnessAutomatic Diacritics RestorationADR自动变音符恢复是 AfroBench 基准在 lm-evaluation-harness 中落地的一项文本生成任务要求模型在失去变音符的句子中恢复正确读音、意义与语法结构。本文以 ADR 任务文档 为主体结合其 YAML 配置、提示词生成脚本与运行脚本讲解如何在当前仓库中理解、配置并运行面向 Gbomola、Fon、Igbo、Wolof、Yoruba 五种非洲语言的 ADR 评估读者可据此掌握从任务定义、提示词设计到 CLI 运行与结果聚合的完整链路。ADR 任务概述为什么变音符恢复是重要的语言能力评估Automatic Diacritics Restoration 指在文本中变音符diacritical marks被省略或移除之后将其重新恢复的任务。变音符对很多语言而言并非装饰它会改变单词的发音、意义乃至语法结构。因此模型能否准确预测并回填变音符直接反映其对语言上下文、句法syntax与语义semantics的深层理解能力。在 AfroBench 的语境下ADR 被定义为一个文本生成生成式任务模型拿到一段丢失变音符的句子需要输出只包含恢复后句子本身的文本而非从有限候选中做分类。该任务由 lm_eval/tasks/afrobench/adr/README.md 正式描述数据来自 mafand 数据集家族中的masakhane/diacritics-restoration覆盖五种非洲语言Gbomolabbj、Fonfon、Igboibo、Wolofwol、Yorubayor。说明任务文档中 Gbomola 对应的 ISO 639-3 代码为bbj在 gen_utils.py 的语言字典中其拼写为 Gbomala二者指同一语言。ADR 在 AfroBench 基准中的位置AfroBench 是一个面向非洲语言的多任务评测基准详见 AfroBench README覆盖 64 种非洲语言、15 类任务与 22 个数据集。ADR 是其中的文本生成类任务之一与 afrisenti情感分类、belebele阅读理解、mafand机器翻译等并列。在 lm-evaluation-harness 中ADR 任务通过两级分组参与评估任务级分组adr见 afridiacritics.yaml它聚合了adr_prompt_1到adr_prompt_5五个提示词变体并定义聚合指标详见下文结果聚合。基准级分组afrobench/afrobench_liteafrobench_lite包含 adr、afrimgsm、afrimmlu、afrixnli、sib、intent、flores 等任务用于快速运行精简版基准afrobench则运行全部任务。二者的运行脚本见 sample_run_scripts。此外所有 ADR 相关数据集统一带有adr_tasks标签便于按任务类型筛选参见 AfroBench README 的 Task Tags 一节。任务配置解析从数据源到生成式评估每个提示词目录prompt_1至prompt_5下都有一份共享的基础模板文件afridiacritics_yaml无扩展名它定义了 ADR 任务的公共配置。以 prompt_1 的基础模板 为例关键字段如下tag: - adr_tasks - adr_prompt_1 dataset_path: masakhane/diacritics-restoration doc_to_target: target output_type: generate_until fewshot_split: dev test_split: test training_split: train metric_list: - metric: bleu aggregation: bleu higher_is_better: true - metric: chrf aggregation: chrf higher_is_better: true generation_kwargs: do_sample: false until: - eos - /s - |im_end| metadata: version: 1.0各字段的语义与实现要点如下字段值说明dataset_pathmasakhane/diacritics-restorationHugging Face 数据集路径属于 Masakhane 社区发布的数据集集合doc_to_targettarget将样本中的target字段作为参考答案带变音符的标准句子output_typegenerate_until声明该任务是自由文本生成而非 loglikelihood 打分模型持续生成直到遇到终止符fewshot_splitdev少样本示例few-shot demos取自 dev 划分test_split/training_splittest/train评测与训练划分metric_listbleu、chrf生成质量评估指标均higher_is_better: truegeneration_kwargsdo_sample: false关闭采样等价于贪心解码保证可复现性until列表给出生成终止符生成终止符与输出长度约束until中列出了三个常见的序列结束标记eos、/s、|im_end|。在 lm-evaluation-harness 的生成式任务中generate_until会在模型输出出现任一终止符时截断结果覆盖多种 EOS 标记是为了兼容不同模型家族如 Llama 使用/s部分指令微调模型使用|im_end|。do_sample: false表示使用贪心解码确保同一模型在相同输入下输出稳定。语言变体配置include 机制每个语言变体 YAML 通过include继承基础模板再覆盖dataset_name数据集的语言子集、doc_to_text提示词模板和task任务名。例如 prompt_1/afridiacritics_fon.yaml# Generated by utils.py dataset_name: fon doc_to_text: Please restore the missing diacritics in the following sentence: {{text}}. Return output sentence only include: afridiacritics_yaml task: afridiacritics_fon_prompt_1这里{{text}}是 lm-evaluation-harness 的字段插值语法运行时会替换为样本中丢失变音符的句子dataset_name: fon告诉数据集加载器取用masakhane/diacritics-restoration中 fon 对应的子集。同理prompt_5 的 Yoruba 变体 展示了带语言专家身份设定的提示词模板。五套提示词从直接指令到语言专家角色ADR 评估的核心变量是提示词设计。通过 gen_utils.py 中的 prompt_func 可以一次性看到五套提示词模板的完整定义模式提示词要点语言是否注入prompt_1Please restore the missing diacritics in the following sentence: {{text}}. Return output sentence only否prompt_2Given a sentence without diacritics, add the appropriate diacritics to make it grammatically and semantically correct. Sentence: {{text}}. Return output sentence only否prompt_3This text is in {lang}. Restore all diacritical marks to their proper places in the following sentence: {{text}}. Return output sentence only是陈述语言prompt_4You are a linguist specializing in diacritical marks for {lang}. Add the appropriate diacritics to this {lang} sentence: {{text}}. Return output sentence only是语言专家角色prompt_5You are a linguist specializing in diacritical marks for {lang}. Diacritics are essential for proper pronunciation and meaning in {lang}. You are tasked with converting {lang} sentences without diacritics into their correctly accented forms. Heres the input: {{text}}. Return output sentence only是专家角色 重要性说明从源码结构可以推断出设计思路prompt_1/prompt_2为无语言标注的通用指令考察模型从上下文自行推断语言与变音符规则的能力prompt_3显式告知语言prompt_4/prompt_5引入精通该语言变音符的语言学家角色设定其中prompt_5还补充了变音符对正确发音与意义至关重要的说明引导模型关注语言学知识。五套提示词统一以 Return output sentence only 收尾要求模型只输出恢复后的句子便于后续与参考答案做 BLEU/chrF 计算。任务与结果聚合adr分组的设计afridiacritics.yaml 将五个提示词变体聚合为一个adr分组group: adr task: - adr_prompt_1 - adr_prompt_2 - adr_prompt_3 - adr_prompt_4 - adr_prompt_5 aggregate_metric_list: - metric: acc aggregation: mean weight_by_size: true metadata: version: 1这里task列表中的adr_prompt_1至adr_prompt_5是各提示词目录下的分组任务每个分组再包含五种语言的变体语言 YAML 中以task: afridiacritics_{lang}_{mode}命名。aggregate_metric_list声明了跨提示词变体的聚合规则对acc指标取平均且weight_by_size: true表示按各任务样本量加权避免样本量不均导致的结果偏差。由此一次运行--tasks adr即可得到每个语言 × 提示词组合的 BLEU、chrF以及分组层面的加权平均准确率方便横向比较提示词设计对 ADR 效果的影响。实战运行在 lm-evaluation-harness 中评估 ADR单独运行 ADR 分组使用lm_eval命令行入口指定分组名adr即可lm_eval --model hf \ --model_args pretrainedmeta-llama/Llama-3.1-8B-Instruct,parallelizetrue \ --tasks adr \ --batch_size 5 \ --num_fewshot 0 \ --verbosity DEBUG \ --output_path path_to_results/ \ --log_samples--tasks adr运行全部 ADR 提示词与语言变体--batch_size 5批大小需根据显存调整--num_fewshot 0零样本如需 few-shot 可调大few-shot 示例取自dev划分--log_samples保存每个样本的模型输出便于人工检查恢复后的句子parallelizetrue启用模型并行多卡场景。作为 AfroBench 一部分运行仓库提供了开箱即用的示例脚本run_afrobench.sh 与 run_afrobench_lite.sh。两者均遍历 gemma、AfroLlama、Llama-2/3、aya-101 等模型列表逐一对afrobench全量或afrobench_lite精简版包含 adr执行上述形式的lm_eval命令。若只想评估 ADR 相关的模型表现将--tasks改为adr即可复用同一套 CLI 参数。扩展新语言或提示词使用 gen_utils.py仓库为 ADR 任务提供了可复用的生成工具 gen_utils.py支持一键生成指定提示词模式下所有语言的 YAML 文件python lm_eval/tasks/afrobench/adr/gen_utils.py \ --output-dir ./output \ --mode prompt_1 \ --overwrite脚本内置五种语言映射fon、bbj、ibo、wol、yor会将afridiacritics_yaml模板、dataset_name、任务名与对应提示词组合写入output-dir/mode/afridiacritics_lang.yaml。--mode的可选值为prompt_1至prompt_5见 gen_utils.py 的 choices 定义--overwrite控制是否覆盖已存在文件默认开启。新增提示词时只需在prompt_func的prompt_map字典中追加模板并相应扩展choices即可批量生成新的语言变体配置。小结ADR 任务展示了 lm-evaluation-harness 如何把一项语言学任务完整落地为可运行的评估基准masakhane/diacritics-restoration提供五种非洲语言的数据afridiacritics_yaml基础模板定义生成式评估协议generate_until BLEU/chrF五套提示词覆盖从直接指令到语言专家角色的提示范式adr分组与afrobench_lite基准则提供不同粒度的聚合视图。从 ADR 任务文档 出发配合 AfroBench README 与 示例运行脚本即可复现或扩展针对非洲语言变音符恢复能力的系统评估。【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考