ACL2020 Best Paper에는 종이 지명 상이 있습니다. 이 논문은 언어 모델 사전 훈련에 대한 많은 실험을 수행했으며 하위 작업에서 언어 모델 사전 훈련의 개선을 체계적으로 분석했습니다. 몇 가지 주요 결론이 있습니다.
대상 필드의 데이터 세트에서 계속 사전 훈련 (DAPT)을 사용하면 효과가 향상 될 수 있습니다. 대상 필드의 코퍼스가 더 관련이 없을 때 Roberta의 원래 사전 훈련 코퍼스에 대한 것입니다. DAPT 효과는 더 명백 할 것입니다.
특정 작업의 데이터 세트에 대한 사전 훈련 (TAPT)은 그 효과를 매우 "저렴하게"향상시킬 수 있습니다.
둘을 결합하면 (먼저, TAPT) 효과를 더욱 향상시킬 수 있습니다.
더 많은 작업 관련 표시되지 않은 데이터를 얻고 미리 훈련 (Curated-TAPT)을 계속할 수있는 경우 효과가 가장 좋습니다.
더 많은 작업 관련 표지되지 않은 데이터를 얻을 수없는 경우 매우 가볍고 간단한 데이터 선택 전략을 채택하면 효과도 향상됩니다.
BET에 대한 언어 모델 사전 훈련은 이미 알고리즘 경쟁에서 안정적인 포인트 업 작업입니다. 그러나 위의 기사에서 칭찬 할 수있는 것은이 작업을 체계적으로 분석한다는 것입니다. 대부분의 중국어 모델은 Tensorflow에 대한 교육을 받고 있으며 일반적인 예는 중국 Roberta 프로젝트입니다. https://github.com/brightmart/roberta_zh를 참조 할 수 있습니다
Pytorch를 사용하여 미리 훈련 된 중국어 버트 언어 모델의 예는 적습니다. HuggingF 최소한의 코드 비용으로 Bert Language 모델의 사전 훈련을 완료하기 위해이 기사는 기성품 코드를 빌려줍니다. 또한 언어 모델 사전 훈련에 Pytorch를 사용하는 경험을 공유하십시오. 세 가지 일반적인 중국어 모델이 있습니다
(https://huggingface.co/bert-base-chinese)
이것은 중국 위키 백과 관련 코퍼스를 기반으로 미리 훈련 된 가장 일반적인 중국 베팅 언어 모델입니다. 도메인의 감독 데이터없이 언어 모델을 기준선으로 사전 훈련하는 것은 쉽습니다. 공식 예제 만 사용하십시오.
https://github.com/huggingface/transformers/tree/master/examples/language-modeling (이 기사에 사용 된 변압기는 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-bert wwm)
Harbin Institute of Technology의 공동 실험실에서 발표 한 미리 훈련 된 언어 모델. 사전 훈련 방법은 동적 마스크, 더 많은 교육 데이터 등과 같은 Roberta 유사한 방법을 사용하는 것입니다. 많은 작업 에서이 모델은 Bert-Base-Chinese보다 낫습니다. vocab.txt와 같은 중국 Roberta 클래스의 구성 파일은 모두 Bert 메소드를 사용하여 설계되었습니다. 영어 Roberta 모델 읽기 구성 파일의 기본 형식은 vocab.json입니다. 일부 영어 Roberta 모델의 경우 자동으로 자동으로 읽을 수 있습니다. 이것은 Huggingface 모델 라이브러리의 중국 Roberta 샘플 코드가 실행될 수없는 이유를 설명합니다. https://huggingface.co/models?
위의 코드를 기반으로 Roberta를 계속 미리 훈련하려면 run_language_modeling.py. 두 가지 추가 변경이 필요합니다.
config.json이 수정되었다고 가정하면 다음 명령을 실행할 수 있습니다.
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는 Baidu가 기업 예측 및 기타 작업과 결합 된 Baidu Zhitieba와 같은 중국 코퍼스를 기반으로 발표 한 미리 훈련 된 모델입니다. 이 모델의 정확성은 일부 작업에서 Bert-Base-Chinese와 Roberta의 정확도보다 낫습니다. Ernie1.0 모델을 기반으로 필드 데이터 사전 훈련을 수행하는 경우 한 단계 만 수정하면됩니다.
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