ACL2020 Best Paper memiliki penghargaan nominasi kertas, "Don't Stop Pretraining: Adapt Model Bahasa ke Domain dan Tugas". Makalah ini melakukan banyak percobaan pada model bahasa pra-pelatihan dan secara sistematis menganalisis peningkatan model bahasa pra-pelatihan pada subtugas. Ada beberapa kesimpulan utama:
Lanjutan Pra-Pelatihan (DAPT) pada kumpulan data bidang target dapat meningkatkan efek; Semakin tidak terkait korpus bidang target adalah corpus pra-pelatihan asli Roberta, semakin jelas efek DAPT.
Lanjutan Pra-Pelatihan (TAPT) pada dataset tugas-tugas tertentu dapat meningkatkan efeknya dengan sangat "murah".
Menggabungkan keduanya (DAPT terlebih dahulu, kemudian TAPT) dapat lebih meningkatkan efek.
Efeknya adalah yang terbaik jika Anda dapat memperoleh lebih banyak data yang tidak bertanda yang terkait dengan tugas dan terus pra-kereta (Tapt-tapt).
Jika Anda tidak dapat memperoleh lebih banyak data yang tidak berlabel terkait tugas, adopsi strategi pemilihan data yang sangat ringan dan sederhana, dan efeknya juga akan ditingkatkan.
Meskipun model bahasa pra-pelatihan pada BET sudah merupakan operasi point-up yang stabil dalam kompetisi algoritma. Tetapi apa yang terpuji dalam artikel di atas adalah secara sistematis menganalisis operasi ini. Sebagian besar model bahasa Cina dilatih pada TensorFlow, dan contoh umum adalah Proyek Roberta Tiongkok. Anda dapat merujuk ke https://github.com/brightmart/roberta_zh
Ada lebih sedikit contoh model bahasa Cina pra-pelatihan menggunakan pytorch. Dalam Transformers HuggingFace, beberapa kode mendukung model bahasa pra-pelatihan (tidak terlalu kaya, dan banyak fungsi tidak mendukung seperti WWM). Untuk menyelesaikan pra-pelatihan model bahasa BerT dengan biaya kode minimal, artikel ini meminjam beberapa kode siap pakai darinya. Juga cobalah untuk berbagi beberapa pengalaman dalam menggunakan Pytorch untuk pra-pelatihan model bahasa. Ada tiga model bahasa Cina yang umum
(https://huggingface.co/bert-base-chinese)
Ini adalah model bahasa taruhan Tiongkok yang paling umum, pra-terlatih berdasarkan korpus terkait Wikipedia Tiongkok. Mudah untuk model bahasa pra-pelatihan sebagai baseline tanpa data pengawasan dalam domain. Cukup gunakan contoh resmi.
https://github.com/huggingface/transformers/tree/master/examples/language-modeling (transformator yang digunakan dalam artikel ini diperbarui ke 3.0.2)
python run_language_model_bert.py --output_dir=output --model_type=bert --model_name_or_path=bert-base-chinese --do_train --train_data_file=train.txt --do_eval --eval_data_file=eval.txt --mlm --per_device_train_batch_size=4
(https://github.com/ymcui/chinese-bertwm)
Model bahasa pra-terlatih yang dirilis oleh Laboratorium Gabungan Institut Teknologi Harbin. Metode pra-pelatihan adalah menggunakan metode serupa Roberta, seperti mask dinamis, lebih banyak data pelatihan, dll. Dalam banyak tugas, model ini lebih baik daripada Bert-base-Chinese. Karena file konfigurasi dari kelas Roberta Cina seperti Vocab.txt semuanya dirancang menggunakan metode BERT. Format default file konfigurasi Bacaan Bahasa Inggris Bahasa Inggris adalah VOCAB.JSON. Untuk beberapa model Roberta bahasa Inggris, mereka dapat secara otomatis dibaca melalui Automodel. Ini menjelaskan mengapa kode sampel Roberta Tiongkok dari perpustakaan model Huggingface tidak dapat dijalankan. https://huggingface.co/models?
Jika Anda ingin melanjutkan pra-pelatihan Roberta berdasarkan kode di atas run_language_modeling.py. Dua perubahan lagi diperlukan.
Dengan asumsi bahwa config.json telah dimodifikasi, Anda dapat menjalankan perintah berikut.
python run_language_model_roberta.py --output_dir=output --model_type=bert --model_name_or_path=hflroberta --do_train --train_data_file=train.txt --do_eval --eval_data_file=eval.txt --mlm --per_device_train_batch_size=4
https://github.com/nghuyong/ernie-pytorch)
Ernie adalah model pra-terlatih yang dirilis oleh Baidu berdasarkan corpus Cina seperti Baidu Zhitieba yang dikombinasikan dengan prediksi entitas dan tugas-tugas lainnya. Keakuratan model ini lebih baik daripada Bert-Base-Chinese dan Roberta pada beberapa tugas. Jika Anda melakukan pra-pelatihan data lapangan berdasarkan model Ernie1.0, Anda hanya perlu memodifikasinya dalam satu langkah.
python run_language_model_ernie.py --output_dir=output --model_type=bert --model_name_or_path=ernie --do_train --train_data_file=train.txt --do_eval --eval_data_file=eval.txt --mlm --per_device_train_batch_size=4