XTREME 零样本跨语言迁移实战:只用英语训练,如何评估 40 种语言?
【免费下载链接】xtremeXTREME is a benchmark for the evaluation of the cross-lingual generalization ability of pre-trained multilingual models that covers 40 typologically diverse languages and includes nine tasks.项目地址: https://gitcode.com/gh_mirrors/xt/xtreme
XTREME 是一个用于评估预训练多语言模型跨语言泛化能力的跨语言基准测试(benchmark),它覆盖 40 种类型学上差异极大的语言和 9 大经典 NLP 任务。它的核心玩法只有一个:只用英语标注数据微调模型,再零样本迁移到其余语言上直接评估,全程无需任何外语训练语料。本文以最少的代码,带你完整走通"安装依赖 → 下载数据 → 英语微调 → 多语言预测 → 一键评分"的实战全流程。
什么是 XTREME 跨语言基准测试
XTREME(Cross-lingual TRansfer Evaluation of Multilingual Encoders)由 Google 与 DeepMind 团队提出,目标只有一个:回答"预训练多语言模型在没见过的语言上到底行不行"。
它的两个关键设计让这个问题变得可量化:
- 40 种语言:横跨 12 个语系,除了英、法、德、日等常见语言,还特意纳入了泰米尔语、斯瓦希里语、约鲁巴语等长期被忽视的低资源语言;
- 9 大任务:覆盖句子分类、结构化预测、句子检索、问答四大范式,从词法到语义全面考察模型。
如果你想知道一个多语言模型能同时应付多少种语言,XTREME 就是目前最权威的"考场"之一。项目完整说明见 README.md。
为什么"只用英语训练"就够了:零样本跨语言迁移原理
普通的多语言模型(如 mBERT、XLM-R)在预训练阶段就学会了把不同语言映射到共享的语义空间。因此你只需要:
- 用英语标注数据对模型做微调(fine-tune);
- 推理时直接喂入其他语言的句子;
- 模型凭借共享表示自动"迁移"能力,这就是零样本跨语言迁移。
这种方案的价值在于:为 40 种语言逐一标注数据成本极高,而英语数据唾手可得。XTREME 的评估设置也正是如此——README.md 中明确说明,所有模型都只在英语数据上微调,再应用到各语言测试集上出预测。
一张表看懂 9 大任务与 40 种语言
上面那张架构图展示了 XTREME 的四大任务族。具体每个任务考什么、怎么打分,整理如下:
| 任务族 | 任务 | 考核内容 | 评估指标 |
|---|---|---|---|
| 句子分类 | XNLI | 跨语言自然语言推断 | 准确率 |
| 句子分类 | PAWS-X | 跨语言释义识别 | 准确率 |
| 结构化预测 | UD-POS | 词性标注 | F1 |
| 结构化预测 | PANX(Wikiann) | 命名实体识别 | F1 |
| 问答 | XQuAD | 抽取式问答 | EM / F1 |
| 问答 | MLQA | 多语言问答 | EM / F1 |
| 问答 | TyDiQA-GoldP | 多语言问答 | EM / F1 |
| 句子检索 | BUCC | 平行句对检索 | F1 |
| 句子检索 | Tatoeba | 跨语言句对检索 | 准确率 |
每项任务覆盖的语言子集各不相同,完整映射表定义在 evaluate.py 的XTREME_TASK2LANGS中,例如 XNLI 覆盖 15 种语言,而 NER(PANX)覆盖多达 40 种。
实战第一步:安装依赖与下载数据
动手前先准备环境,项目提供了两个便捷脚本:
- 运行
bash install_tools.sh安装transformers、seqeval、jieba、kytea、pythainlp、sacremoses等依赖; - 创建
download目录,手动放入 NER 数据集(panx_dataset),再执行bash scripts/download_data.sh自动下载其余全部数据集。
这里有个贴心设计:预处理阶段会移除测试集标签并打乱句子顺序,防止你在做实验时不小心"偷看"答案,保证评估公平。相关代码见 scripts/download_data.sh。
实战第二步:一键微调英语模型
下载完数据后,你不需要写任何训练代码——项目把全部训练逻辑封装进了 scripts/train.sh:
bash scripts/train.sh [MODEL] [TASK]比如用 XLM-R 微调命名实体识别任务:
bash scripts/train.sh xlm-roberta-large panx支持的模型包括bert-base-multilingual-cased、xlm-mlm-100-1280和xlm-roberta-large,任务支持udpos、panx、pawsx、xnli、xquad、mlqa、tydiqa、bucc2018、tatoeba九项。其中 BUCC 和 Tatoeba 属于检索类任务,无需训练,直接用预训练表示打分即可。
每个任务还有独立的专项脚本(如 scripts/train_xnli.sh、scripts/train_qa.sh),方便你按需调用。
实战第三步:统一评估,一键出分
预测完成后,把结果按照规范整理成目录,再运行评估脚本就能得到标准分数:
python evaluate.py --prediction_folder [预测目录] --label_folder [标签目录] --xtreme_version xtreme --output_file report.json目录结构要求每个任务一个子文件夹,文件命名为test-{语言代码}.json(问答任务)或test-{语言代码}.tsv(其他任务)。你可以在 mock_test_data/predictions/ 看到现成的示例结构,在 mock_test_data/labels/ 对照真实标签格式。
评估逻辑定义在 evaluate.py:每个任务按语言逐项打分,再取所有语言的平均值,最后汇总成分类、标注、问答、检索四组的综合得分。
进阶:从 XTREME 到 XTREME-R
如果你觉得 9 个任务还不够过瘾,评估脚本还内置了升级版XTREME-R——在 evaluate.py 中通过--xtreme_version xtreme-r切换。它新增了 XCOPA(常识推理)、LaReQA、Mewsli-X 等任务,并把语言覆盖进一步扩展,例如 NER 任务的语言数从 40 增至 48 种,对模型的低资源语言能力提出更严苛的考验。
小结
用英语训练、零样本评估 40 种语言,XTREME 用一套标准化的流程把"跨语言泛化能力"变成了可量化的分数。从 install_tools.sh 装环境,到 scripts/train.sh 微调,再到 evaluate.py 出分,全程只需几条命令。
想动手试一试?克隆仓库即可开始:
git clone https://gitcode.com/gh_mirrors/xt/xtreme下一个登上 XTREME 排行榜的多语言模型,说不定就出自你的实验室。🚀
【免费下载链接】xtremeXTREME is a benchmark for the evaluation of the cross-lingual generalization ability of pre-trained multilingual models that covers 40 typologically diverse languages and includes nine tasks.项目地址: https://gitcode.com/gh_mirrors/xt/xtreme
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考