许可证: mit
标签:
- 训练生成
指标:
- 准确率
- F1值
模型索引:
- 名称: xlm-roberta-base-language-detection
结果: []
该模型是基于xlm-roberta-base在语言识别数据集上微调后的版本。
模型描述
此模型是一个带有分类头(即在池化输出顶部的线性层)的XLM-RoBERTa变换器模型。更多信息请参考xlm-roberta-base模型卡片或Conneau等人的论文大规模无监督跨语言表示学习。
预期用途与限制
您可以直接将此模型用作语言检测器,即用于序列分类任务。目前支持以下20种语言:
阿拉伯语(ar)、保加利亚语(bg)、德语(de)、现代希腊语(el)、英语(en)、西班牙语(es)、法语(fr)、印地语(hi)、意大利语(it)、日语(ja)、荷兰语(nl)、波兰语(pl)、葡萄牙语(pt)、俄语(ru)、斯瓦希里语(sw)、泰语(th)、土耳其语(tr)、乌尔都语(ur)、越南语(vi)和中文(zh)
训练与评估数据
该模型在语言识别数据集上进行了微调,该数据集包含20种语言的文本序列。训练集包含7万个样本,验证集和测试集各1万个样本。测试集上的平均准确率为99.6%(这与测试集完美平衡的平均宏/加权F1分数相匹配)。更详细的评估如下表所示。
语言 |
精确率 |
召回率 |
F1分数 |
支持数 |
ar |
0.998 |
0.996 |
0.997 |
500 |
bg |
0.998 |
0.964 |
0.981 |
500 |
de |
0.998 |
0.996 |
0.997 |
500 |
el |
0.996 |
1.000 |
0.998 |
500 |
en |
1.000 |
1.000 |
1.000 |
500 |
es |
0.967 |
1.000 |
0.983 |
500 |
fr |
1.000 |
1.000 |
1.000 |
500 |
hi |
0.994 |
0.992 |
0.993 |
500 |
it |
1.000 |
0.992 |
0.996 |
500 |
ja |
0.996 |
0.996 |
0.996 |
500 |
nl |
1.000 |
1.000 |
1.000 |
500 |
pl |
1.000 |
1.000 |
1.000 |
500 |
pt |
0.988 |
1.000 |
0.994 |
500 |
ru |
1.000 |
0.994 |
0.997 |
500 |
sw |
1.000 |
1.000 |
1.000 |
500 |
th |
1.000 |
0.998 |
0.999 |
500 |
tr |
0.994 |
0.992 |
0.993 |
500 |
ur |
1.000 |
1.000 |
1.000 |
500 |
vi |
0.992 |
1.000 |
0.996 |
500 |
zh |
1.000 |
1.000 |
1.000 |
500 |
基准测试
作为与xlm-roberta-base-language-detection
对比的基准,我们使用了Python的langid库。由于它预训练了97种语言,我们使用其.set_languages()
方法将语言集限制为我们的20种语言。langid在测试集上的平均准确率为98.5%。更多细节如下表所示。
语言 |
精确率 |
召回率 |
F1分数 |
支持数 |
ar |
0.990 |
0.970 |
0.980 |
500 |
bg |
0.998 |
0.964 |
0.981 |
500 |
de |
0.992 |
0.944 |
0.967 |
500 |
el |
1.000 |
0.998 |
0.999 |
500 |
en |
1.000 |
1.000 |
1.000 |
500 |
es |
1.000 |
0.968 |
0.984 |
500 |
fr |
0.996 |
1.000 |
0.998 |
500 |
hi |
0.949 |
0.976 |
0.963 |
500 |
it |
0.990 |
0.980 |
0.985 |
500 |
ja |
0.927 |
0.988 |
0.956 |
500 |
nl |
0.980 |
1.000 |
0.990 |
500 |
pl |
0.986 |
0.996 |
0.991 |
500 |
pt |
0.950 |
0.996 |
0.973 |
500 |
ru |
0.996 |
0.974 |
0.985 |
500 |
sw |
1.000 |
1.000 |
1.000 |
500 |
th |
1.000 |
0.996 |
0.998 |
500 |
tr |
0.990 |
0.968 |
0.979 |
500 |
ur |
0.998 |
0.996 |
0.997 |
500 |
vi |
0.971 |
0.990 |
0.980 |
500 |
zh |
1.000 |
1.000 |
1.000 |
500 |
训练过程
微调通过Trainer
API完成。
训练超参数
训练期间使用了以下超参数:
- 学习率: 2e-05
- 训练批次大小: 64
- 评估批次大小: 128
- 随机种子: 42
- 优化器: Adam,参数beta=(0.9,0.999),epsilon=1e-08
- 学习率调度器类型: 线性
- 训练轮数: 2
- 混合精度训练: 原生AMP
训练结果
语言识别数据集valid
分割上的验证结果总结如下。
训练损失 |
轮次 |
步数 |
验证损失 |
准确率 |
F1值 |
0.2492 |
1.0 |
1094 |
0.0149 |
0.9969 |
0.9969 |
0.0101 |
2.0 |
2188 |
0.0103 |
0.9977 |
0.9977 |
简而言之,在验证集上取得了以下结果:
- 损失: 0.0101
- 准确率: 0.9977
- F1值: 0.9977
框架版本
- Transformers 4.12.5
- Pytorch 1.10.0+cu111
- Datasets 1.15.1
- Tokenizers 0.10.3