news 2026/9/15 0:30:45

Belebele 多语言阅读理解基准评测指南:在 lm-evaluation-harness 中运行 122 语言变体的少样本评估

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Belebele 多语言阅读理解基准评测指南:在 lm-evaluation-harness 中运行 122 语言变体的少样本评估

Belebele 多语言阅读理解基准评测指南:在 lm-evaluation-harness 中运行 122 语言变体的少样本评估

【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness

Belebele 是一个覆盖 122 种语言变体的大规模多语言机器阅读理解(MRC)数据集,每条问题都基于 FLORES-200 平行语料中的短文片段,并配备四个选项。本文基于 lm-evaluation-harness 仓库中 lm_eval/tasks/belebele/README.md 及其完整任务配置,系统讲解该基准在框架中的任务/组结构、YAML 配置原理、配置生成脚本与具体运行方法,帮助你用 loglikelihood 多选评分方式,对单语与多语模型在高、中、低资源语言上的阅读理解能力进行统一评测与跨语言对比。

一、Belebele 基准简介

Belebele(论文《The Belebele Benchmark for Massively Multilingual NLU Evaluation》,arXiv:2308.16884)是一个覆盖122 种语言变体的多选题机器阅读理解(MRC)数据集,其主要设计目标包括:

  • 大规模多语言覆盖:同时涵盖高资源(high-resource)、中资源(medium-resource)与低资源(low-resource)语言,可用于评测单语与多语模型。
  • 四选一阅读理解:每个问题包含四个选项,且都关联到FLORES-200数据集中的一段短文。
  • 严格的人工标注与质检:标注流程经过精心设计,以构造能够区分不同层次通用语言理解能力的问题,并辅以大量质量检查。
  • 完全平行(fully parallel):同一问题在所有语言上平行存在,可直接对不同语言间的模型表现进行对比。
  • 有区分度:即使是纯英文数据集本身,也足以对当前最先进的(state-of-the-art)语言模型构成挑战。

该基准为评估与分析语言模型及 NLP 系统的多语言能力提供了新的途径。仓库 README 中还给出了标准的 BibTeX 引用条目(见 lm_eval/tasks/belebele/README.md),在论文或技术报告中引用该基准时可直接使用。

二、任务与组结构(Groups and Tasks)

在 lm-evaluation-harness 中,Belebele 被组织为一个组(group)与 122 个语言子任务(tasks),全部采用loglikelihood-based multiple-choice scoring(基于对数似然的多选题打分)进行评测。

2.1 组:belebele

组名belebele包含 Belebele 数据集全部 122 种语言的任务,评测方法遵循MMLU 原始实现的方法论(即通过每组语言的平均准确率聚合得到整体结果)。

该组的定义位于 lm_eval/tasks/belebele/_belebele.yaml,其结构要点如下:

  • group: belebele:声明组名;
  • task:下列出全部 122 个语言子任务(如belebele_acm_Arabbelebele_eng_Latnbelebele_zho_Hans等);
  • aggregate_metric_list:定义了组的聚合指标,对accacc_norm两个指标分别按mean(均值)聚合,并设置weight_by_size: true,即按各语言子任务的样本规模加权平均;
  • metadata: version: 0.1:组配置的版本号。

2.2 子任务:belebele_{language}

每个语言变体对应一个独立任务,命名遵循belebele_{language}约定,其中{language}采用 FLORES-200 的语言-文字代码(ISO 639-3 语言码 + 文字码),例如:

  • belebele_eng_Latn:英语(拉丁文字);
  • belebele_zho_Hans:简体中文;
  • belebele_arb_Arab:阿拉伯语(阿拉伯文字);
  • belebele_hin_Deva:印地语(天城文字)。

每个语言任务对应目录下独立的一个 YAML 文件,例如 belebele_eng_Latn.yaml、belebele_zho_Hans.yaml、belebele_arb_Arab.yaml。

仓库中评测的变体为0-shot 或 few-shot(少样本)评测,并使用英文指令(English Instructions)

三、任务配置深度解析:_default_template_yaml

所有 122 个语言任务的公共配置都集中在一个共享模板文件 lm_eval/tasks/belebele/_default_template_yaml 中,各语言 YAML 仅通过include: _default_template_yaml继承它,并覆盖语言相关的少量字段。该模板是整个 Belebele 评测的"灵魂",逐项解析如下:

dataset_path: facebook/belebele fewshot_config: sampler: first_n output_type: multiple_choice should_decontaminate: true doc_to_decontamination_query: "{{question}}" doc_to_text: "P: {{flores_passage}}\nQ: {{question.strip()}}\nA: {{mc_answer1}}\nB: {{mc_answer2}}\nC: {{mc_answer3}}\nD: {{mc_answer4}}\nAnswer:" doc_to_choice: ["A", "B", "C", "D"] doc_to_target: "{{['1', '2', '3', '4'].index(correct_answer_num)}}" metric_list: - metric: acc aggregation: mean higher_is_better: true - metric: acc_norm aggregation: mean higher_is_better: true metadata: version: 0.0
配置项取值含义与影响
dataset_pathfacebook/belebele数据集在 Hugging Face Hub 上的仓库 ID,评测时按需自动下载加载。
fewshot_config.samplerfirst_n少样本示例采样器采用"取前 N 条"策略,从fewshot_split中按顺序选取示例,保证可复现。
output_typemultiple_choice输出类型为多选题,框架将按选择题方式计算各选项的 loglikelihood 并取最高者作为预测。
should_decontaminatetrue开启数据去污染(decontamination)流程,用于检查评测数据是否与模型训练数据重叠。
doc_to_decontamination_query"{{question}}"去污染查询使用问题文本本身。
doc_to_text见上把样本渲染成模型输入 prompt:依次呈现 FLORES 短文(P:)、问题(Q:)与 A/B/C/D 四个选项,最后以Answer:引导模型作答。
doc_to_choice["A", "B", "C", "D"]四个选项的标签,框架将对每个选项计算条件 loglikelihood。
doc_to_target"{{['1', '2', '3', '4'].index(correct_answer_num)}}"将数据集中的正确答案编号('1'/'2'/'3'/'4')映射为选项索引(0/1/2/3),与doc_to_choice对应。
metric_listaccacc_norm评测指标为原始准确率与归一化准确率(详见第五节),均按均值聚合、越大越好。

各语言子任务(如 belebele_eng_Latn.yaml)只需四个字段即可复用模板:

dataset_name: eng_Latn # 指定语言-文字子集 fewshot_split: test # 少样本示例取自 test 划分 include: _default_template_yaml # 继承公共模板 task: belebele_eng_Latn # 任务名 test_split: test # 评测划分

四、配置生成脚本:_generate_configs.py

由于需要为 122 种语言分别维护任务,仓库提供了自动化生成脚本 lm_eval/tasks/belebele/_generate_configs.py,用于从一份基础 YAML 批量产出全部语言子任务与组配置。其工作流程为:

  1. 获取语言列表:调用 Hugging Face Datasets Server 的 splits API(https://datasets-server.huggingface.co/splits?dataset=facebook/belebele)查询facebook/belebele数据集包含的所有 split;
  2. 过滤默认划分:跳过名中包含"default"的 split,其余每个 split(即每种语言-文字变体)生成一个子任务 YAML;
  3. 批量生成子任务:每个子任务 YAML 包含include(指向基础模板文件名)、taskbelebele_{lang})、test_splitfewshot_split(均设为该语言);
  4. 生成组配置:汇总全部语言任务到_belebele.yaml,并写入aggregate_metric_listaccacc_norm的均值聚合)与版本号。

脚本还支持两个可选参数:

  • --task_prefix:为任务名添加前缀(如用于区分不同 prompt 变体,见下文第六节的 afrobench 用法);
  • --cot_prompt_path:指定 CoT(思维链)prompt JSON 文件路径(当前默认模板未使用)。

例如,基于当前模板重新生成全部配置的命令形态为:

python lm_eval/tasks/belebele/_generate_configs.py \ --base_yaml_path lm_eval/tasks/belebele/_default_template_yaml \ --save_prefix_path lm_eval/tasks/belebele/belebele

仓库中 122 个belebele_{lang}.yaml_belebele.yaml即由此类脚本流程产出并提交,保证了各语言配置的高度一致性与可维护性。

五、指标含义:acc 与 acc_norm

Belebele 任务(与 MMLU 方法论一致)使用两个指标:

  • acc(原始准确率):模型预测选项与正确答案一致的比例。预测基于各选项的 loglikelihood 比较得出。
  • acc_norm(长度归一化准确率):将各选项的条件 loglikelihood 按其 token 长度归一化后再比较,用于缓解模型对较短选项的系统性偏好,在多选题评测中通常更为稳健。

两个指标均以mean聚合、higher_is_better: true。在组级别(belebele),_belebele.yaml中两个指标均设置weight_by_size: true,按子任务规模加权后再求平均,从而得到全局的加权多语言平均分。

六、运行评测:命令行实操

6.1 运行单个语言任务

使用lm_evalCLI 评测英语任务,例如:

lm_eval --model hf \ --model_args pretrained=meta-llama/Llama-3.2-1B \ --tasks belebele_eng_Latn \ --device cuda \ --batch_size auto

6.2 运行整个组(全部 122 语言)

lm_eval --model hf \ --model_args pretrained=meta-llama/Llama-3.2-1B \ --tasks belebele \ --device cuda \ --batch_size auto

--tasks belebele会加载_belebele.yaml中列出的全部 122 个语言子任务,并在评测结束后输出每个子任务的acc/acc_norm以及组级加权聚合结果,便于直接观察模型在不同资源语言上的表现差异。

6.3 使用本地模型目录与量化参数

--model_args支持所有 Hugging Face 加载参数,例如指定本地路径与低精度:

lm_eval --model hf \ --model_args pretrained=./models/your-model,trust_remote_code=True,dtype=bfloat16 \ --tasks belebele \ --device cuda \ --batch_size auto

七、仓库内的衍生变体

除独立目录外,Belebele 任务配置还被其他任务族复用。例如 lm_eval/tasks/afrobench/belebele/ 下就包含了面向非洲语言的 Belebele 子集(afrobench组),其中通过_generate_configs.py--task_prefix机制派生了prompt_1prompt_2等多 prompt 变体(如 belebele_afr.yaml、belebele_eng.yaml 等),用于评估不同 prompt 设计对多语言理解的影响。这说明了本任务目录的配置模板与生成脚本具备良好的可复用性。

八、自定义与扩展建议

若要在现有基础上扩展(例如新增 CoT 评测变体或调整 prompt),可以遵循仓库既有的"模板 + 继承"模式:

  1. 复制_default_template_yaml或直接修改doc_to_textP: ... / Q: ... / Answer:的渲染格式;
  2. _generate_configs.py--save_prefix_path--task_prefix生成一套新的语言任务与组配置;
  3. lm_eval --tasks <新组名>验证配置可正常加载并输出指标。

在修改前,可通过lm_eval --tasks belebele --limit 10之类的小规模限流参数先行验证,确认 prompt 渲染与评分逻辑符合预期后再进行全量评测。

参考与延伸阅读

  • Belebele 任务 README:lm_eval/tasks/belebele/README.md
  • 公共任务模板:lm_eval/tasks/belebele/_default_template_yaml
  • 组配置:lm_eval/tasks/belebele/_belebele.yaml
  • 语言子任务示例:belebele_eng_Latn.yaml、belebele_zho_Hans.yaml、belebele_arb_Arab.yaml
  • 配置生成脚本:lm_eval/tasks/belebele/_generate_configs.py
  • 衍生变体:lm_eval/tasks/afrobench/belebele/

【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 0:30:10

IEEE 39节点系统暂态仿真与Simulink/PSCAD建模实战

1. IEEE 39节点系统与暂态仿真基础电力系统暂态仿真是分析系统在故障或扰动下动态行为的关键手段。IEEE 39节点系统作为电力系统研究领域的"标准测试床"&#xff0c;包含39个母线、10台发电机和46条支路&#xff0c;电压等级涵盖345kV和138kV。这个拓扑结构模拟了美国…

作者头像 李华
网站建设 2026/9/15 0:28:48

2026年9月高帧游戏平板选购指南:散热、调度与触控延迟实战解析

1. 项目概述&#xff1a;为什么2026年9月这个时间点&#xff0c;值得专门讨论“最适合打游戏的平板”&#xff1f;2026年9月不是随便选的一个月份——它处在新旧硬件周期的关键交汇口。我做数码测评和游戏设备适配工作十多年&#xff0c;每年都会盯紧两个窗口&#xff1a;一个是…

作者头像 李华
网站建设 2026/9/15 0:28:16

光模块固晶机高精度贴装为何首选三菱MR-J5伺服系统

1. 项目概述&#xff1a;光模块固晶机里&#xff0c;为什么非得用三菱MR-J5伺服系统做高精度贴装&#xff1f;光模块固晶机——这个听起来有点冷门的设备&#xff0c;其实是5G基站、数据中心光通信链路里最关键的“心脏手术台”。它要把几百微米大小的激光芯片&#xff08;VCSE…

作者头像 李华
网站建设 2026/9/15 0:26:57

模板代码安全审计:核心技术与企业级实践

1. 模板代码安全审计概述在软件开发领域&#xff0c;模板代码就像建筑工地上的预制构件——它们能大幅提升开发效率&#xff0c;但若质量把控不严&#xff0c;反而会成为整个系统的安全隐患。我经历过一个真实案例&#xff1a;某电商平台直接套用第三方支付模板&#xff0c;结果…

作者头像 李华
网站建设 2026/9/15 0:26:41

Python破解字体加密反爬技术实战指南

1. 字体加密技术背景与应用场景在当今互联网数据采集领域&#xff0c;字体加密已成为主流的反爬虫技术手段之一。这种技术通过自定义字体文件对网页中的关键内容进行视觉渲染&#xff0c;使得浏览器能正常显示文字&#xff0c;但爬虫直接获取的却是乱码或无效字符。我最早在201…

作者头像 李华
网站建设 2026/9/15 0:25:55

消息队列实战(4):RocketMQ 与 Pulsar 架构选型

上一篇拆解了 Kafka 的分区、副本与消费组&#xff0c;你会发现它本质上是一套"追加写日志 分区并行 副本容错"的系统。RocketMQ 和 Pulsar 都在这个思路上做了延伸&#xff0c;但方向不同&#xff1a;RocketMQ 更贴近电商事务场景&#xff0c;把延迟消息、事务消息…

作者头像 李华