🚀 xlm-roberta-base-language-detection
このモデルは、言語識別タスクに特化したXLM-RoBERTaベースのモデルです。Language Identificationデータセットで微調整され、20種類の言語を高精度に識別できます。
🚀 クイックスタート
このモデルはhttps://huggingface.co/papluca/xlm-roberta-base-language-detection からクローンできます。
✨ 主な機能
- 20種類の言語を高精度に識別できます。
- テキストシーケンスの分類タスクに直接使用できます。
📚 ドキュメント
モデルの説明
このモデルは、xlm-roberta-baseをLanguage Identificationデータセットで微調整したものです。XLM-RoBERTaトランスフォーマーモデルの上に分類ヘッド(プールされた出力の上に線形層)があります。詳細については、xlm-roberta-baseのモデルカードまたは論文 Unsupervised Cross-lingual Representation Learning at Scale (Conneau et al.) を参照してください。
想定される用途と制限
このモデルは言語検出器として直接使用でき、シーケンス分類タスクに適しています。現在、以下の20種類の言語をサポートしています。
アラビア語 (ar), ブルガリア語 (bg), ドイツ語 (de), 現代ギリシャ語 (el), 英語 (en), スペイン語 (es), フランス語 (fr), ヒンディー語 (hi), イタリア語 (it), 日本語 (ja), オランダ語 (nl), ポーランド語 (pl), ポルトガル語 (pt), ロシア語 (ru), スワヒリ語 (sw), タイ語 (th), トルコ語 (tr), ウルドゥー語 (ur), ベトナム語 (vi), 中国語 (zh)
学習と評価データ
このモデルは、20種類の言語のテキストシーケンスから構成されるLanguage Identificationデータセットで微調整されました。学習セットには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を介して行われました。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは以下の通りです。
- learning_rate: 2e-05
- train_batch_size: 64
- eval_batch_size: 128
- seed: 42
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- num_epochs: 2
- mixed_precision_training: 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ライセンスの下で提供されています。