🚀 ヒンディー語のELECTRAモデルのリリース
これは、Google ResearchのELECTRAを用いて学習させたヒンディー語モデルの最初の試みです。
2022年現在、英語、ヒンディー語、およびその他の主要なインドの言語(文字表記とラテン文字表記の両方)で学習させたGoogleのMuRILモデルをおすすめします:https://huggingface.co/google/muril-base-cased と https://huggingface.co/google/muril-large-cased
因果言語モデルについては、https://huggingface.co/sberbank-ai/mGPT をおすすめしますが、これは大規模なモデルです
トークン化と学習のCoLab
当初は、修正版のELECTRAを微調整に使用していましたが、現在はSimpleTransformersを使用しています。
ブログ記事 - 私はhttps://huggingface.co/blog/how-to-train の影響を大きく受けています。
📚 ドキュメント
この小規模モデルは、BBCヒンディー語ニュース分類およびヒンディー語映画レビュー / 感情分析(SimpleTransformersを使用)において、多言語BERTと同等の結果を得ています。
学習率を調整することで(また、config.jsonのmodel_typeを変更することで - これはktrainの未解決の問題です)、ktrainを使用してより高い精度を得ることができます:https://colab.research.google.com/drive/1mSeeSfVSOT7e-dVhPlmSsQRvpn6xC05w?usp=sharing
MLQAデータセットでの質問応答:https://colab.research.google.com/drive/1i6fidh2tItf_-IDkljMuaIGmEU6HT2Ar#scrollTo=IcFoAHgKCUiQ
より大規模なモデル(Hindi-TPU-Electra)は、ヒンディー語映画レビュー / 感情分析では両方のモデルを上回りますが、BBCニュース分類タスクではそれほど良い結果を得られません。
📦 コーパス
ダウンロード:https://drive.google.com/drive/folders/1SXzisKq33wuqrwbfp428xeu_hDxXVUUu?usp=sharing
コーパスは2つのファイルで構成されています:
- OSCARによって重複排除されたヒンディー語CommonCrawl https://traces1.inria.fr/oscar/
- 最新のヒンディー語ウィキペディア( https://dumps.wikimedia.org/hiwiki/ ) + WikiExtractorを使用してtxtに変換
追加メモ:
- 英語のウィキテキストや並列コーパスを追加すると、多言語タスクと学習に役立つ可能性があります。
📖 語彙
https://drive.google.com/file/d/1-6tXrii3tVxjkbrpSJE9MOG_HhbvP66V/view?usp=sharing
追加メモ:
- HuggingFace Tokenizersを使用して作成されています。語彙サイズを増やして再学習することができます。ELECTRAのvocab_sizeを変更することを忘れないでください。
🔧 学習
ファイルを構成し、データディレクトリをここでは "trainer" と名付けます。
trainer
- vocab.txt
- pretrain_tfrecords
-- (すべての.tfrecord...ファイル)
- models
-- modelname
--- checkpoint
--- graph.pbtxt
--- model.*
CoLabノートブックでは、GPUとTPUのセットアップの例が示されています。
configure_pretraining.py
📝 変換
進行中または完了したELECTRAチェックポイントをTransformers対応のモデルに変換するには、次のプロセスを使用します。
git clone https://github.com/huggingface/transformers
python ./transformers/src/transformers/convert_electra_original_tf_checkpoint_to_pytorch.py
--tf_checkpoint_path=./models/checkpointdir
--config_file=config.json
--pytorch_dump_path=pytorch_model.bin
--discriminator_or_generator=discriminator
python
from transformers import TFElectraForPreTraining
model = TFElectraForPreTraining.from_pretrained("./dir_with_pytorch", from_pt=True)
model.save_pretrained("tf")
config.json、pytorch_model.bin、tf_model.h5、special_tokens_map.json、tokenizer_config.json、およびvocab.txtが同じレベルにある1つのディレクトリを作成したら、次のコマンドを実行します。
transformers-cli upload directory