🚀 发布印地语ELECTRA模型
这是首次尝试使用谷歌研究的 ELECTRA 训练印地语语言模型。
截至2022年,我推荐使用谷歌在英语、印地语和其他主要印度语言(包括其文字和拉丁化文字)上训练的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相当的结果。
通过调整学习率,使用ktrain可以获得更高的准确率(此外,在config.json中更改model_type - 这是ktrain的一个开放问题):https://colab.research.google.com/drive/1mSeeSfVSOT7e-dVhPlmSsQRvpn6xC05w?usp=sharing
在MLQA数据集上的问答任务:https://colab.research.google.com/drive/1i6fidh2tItf_-IDkljMuaIGmEU6HT2Ar#scrollTo=IcFoAHgKCUiQ
一个更大的模型(印地语-TPU-Electra)使用ELECTRA基础大小,在印地语电影评论/情感分析任务上优于上述两个模型,但在BBC新闻分类任务上表现不佳。
📚 详细文档
语料库
下载链接:https://drive.google.com/drive/folders/1SXzisKq33wuqrwbfp428xeu_hDxXVUUu?usp=sharing
语料库包含两个文件:
- 由OSCAR去重的印地语CommonCrawl:https://traces1.inria.fr/oscar/
- 最新的印地语维基百科(https://dumps.wikimedia.org/hiwiki/ )+ 使用WikiExtractor转换为文本
额外提示:
- 添加英语维基文本或平行语料库有助于跨语言任务和训练
词汇表
下载链接: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的目录后,运行:
transformers-cli upload directory