模型:

papluca/xlm-roberta-base-language-detection

英文

xlm-roberta-base-language-detection

这个模型是在 Language Identification 数据集上对 xlm-roberta-base 进行微调的版本。

模型描述

这个模型是基于XLM-RoBERTa变换器模型的,在其顶部添加了一个分类头(即在合并后的输出之上的线性层)。有关更多信息,请参考 xlm-roberta-base 模型卡片或Conneau等人的 Unsupervised Cross-lingual Representation Learning at Scale 论文。

预期用途和限制

您可以直接将此模型用作语言检测器,即用于序列分类任务。目前,它支持以下20种语言:

阿拉伯语(ar),保加利亚语(bg),德语(de),现代希腊语(el),英语(en),西班牙语(es),法语(fr),印地语(hi),意大利语(it),日语(ja),荷兰语(nl),波兰语(pl),葡萄牙语(pt),俄语(ru),斯瓦希里语(sw),泰语(th),土耳其语(tr),乌尔都语(ur),越南语(vi)和中文(zh)

训练和评估数据

该模型是在 Language Identification 数据集上进行微调的,该数据集包含20种语言的文本序列。训练集包含70k个样本,验证集和测试集各有10k个样本。测试集的平均准确率为99.6%(这与平均宏F1-score和加权F1-score在测试集上完全平衡的情况相匹配)。以下是更详细的评估结果表格。

Language Precision Recall F1-score support
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 库进行比较的基线,我们使用了Python langid 库。由于它预先训练了97种语言,我们使用其.set_languages()方法将语言集限制为我们的20种语言。langid在测试集上的平均准确率为98.5%。下表提供了更多详细信息。

Language Precision Recall F1-score support
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
  • 优化器:具有betas=(0.9,0.999)和epsilon=1e-08的Adam
  • lr_scheduler_type:线性
  • 训练周期数:2
  • 混合精度训练:本地AMP

训练结果

表格

Training Loss Epoch Step Validation Loss Accuracy F1
0.2492 1.0 1094 0.0149 0.9969 0.9969
0.0101 2.0 2188 0.0103 0.9977 0.9977
总结了在语言识别数据集上的验证结果。

Training Loss Epoch Step Validation Loss Accuracy 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