🚀 XLM-RoBERTa基礎語言檢測模型
本模型基於XLM-RoBERTa架構,在多語言識別任務上進行了微調,能夠精準識別20種不同語言,為多語言處理場景提供了高效的解決方案。
🚀 快速開始
可直接從 https://huggingface.co/papluca/xlm-roberta-base-language-detection 克隆該模型。
✨ 主要特性
- 微調優化:該模型是 xlm-roberta-base 在 語言識別 數據集上的微調版本。
- 多語言支持:支持20種語言的識別,包括阿拉伯語、保加利亞語、德語等。
- 高精度表現:在測試集上平均準確率達到 99.6% ,與平均宏/加權F1分數相匹配。
📚 詳細文檔
模型描述
此模型是一個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種語言的文本序列組成。訓練集包含70k個樣本,而驗證集和測試集各有10k個樣本。測試集上的平均準確率為 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,β值為(0.9, 0.999),ε值為1e - 08
- 學習率調度器類型:線性
- 訓練輪數:2
- 混合精度訓練:原生自動混合精度(Native 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
📄 許可證
本項目採用MIT許可證。