중국어 설명 | 영어

이 프로젝트는 중국 자연 언어 처리 자원을 풍부하게하고 다양한 중국의 미리 훈련 된 모델 선택을 제공하는 중국에 대한 XLNET 미리 훈련 된 모델을 제공합니다. 우리는 모든 전문가와 학자들이 그것을 다운로드하고 사용하고, 중국 자원의 건설을 공동으로 홍보하고 개발하도록 환영합니다.
이 프로젝트는 CMU/Google의 공식 XLNET (https://github.com/zihangdai/xlnet)을 기반으로합니다
중국어 | 중국 영어 pert | 중국 맥버트 | 중국 전자 | 중국어 xlnet | 중국 버트 | 지식 증류 도구 텍스트 브루어 | 모델 절단 도구 TextPruner
HARBIN Institute of Technology (HFL)의 IFL이 발표 한 자료를 더 많이보기 : https://github.com/ymcui/hfl-anthology
2023/3/28 오픈 소스 중국 라마 & 알파카 빅 모델.
2022/10/29 우리는 언어 정보를 통합하는 미리 훈련 된 모델 lert를 제안합니다. 보기 : https://github.com/ymcui/lert
2022/3/30 우리는 새로운 미리 훈련 된 모델 pert를 오픈 소스. 보기 : https://github.com/ymcui/pert
2021/12/17 Iflytek Joint Laboratory를 시작하여 모델 절단 툴킷 TextPruner를 시작합니다. 보기 : https://github.com/airaria/textpruner
2021/10/24 Iflytek Joint Laboratory는 소수 민족 언어를위한 미리 훈련 된 모델 Cino를 발표했습니다. 보기 : https://github.com/ymcui/chinese-minority-plm
2021/7/21 "자연 언어 처리 : Harbin Institute of Technology SCIR의 많은 학자들이 작성한 사전 훈련 모델을 기반으로하는 방법"이 출판되었으며 모든 사람들이 구매를 환영합니다.
2021/1/27 모든 모델은 Tensorflow 2를 지원했습니다. Transformers 라이브러리를 통해 전화하거나 다운로드하십시오. https://huggingface.co/hfl
2020/8/27 IFL 공동 실험실은 접착제 일반 자연어 이해 평가에서 목록을 1 위, 접착제 목록, 뉴스를 확인하십시오.
2020/3/11 요구를 더 잘 이해하기 위해 더 나은 자원을 제공하기 위해 설문지를 작성하도록 초대받습니다.
2020/2/26 Iflytek Joint Laboratory는 지식 증류 도구 텍스트 브루어를 출시합니다
2019/12/19이 디렉토리에 게시 된 모델은 빠른 로딩을 볼 수 있도록 Huggingface-Transformers와 연결되었습니다.
2019/9/5 XLNet-base 다운로드 할 수 있습니다. 모델 다운로드보기
2019/8/19는 대규모 유니버설 코퍼스 (5.4B 워드 카운트),보기 모델 다운로드에 대한 중국어 XLNet-mid 모델 제공
| 장 | 설명하다 |
|---|---|
| 모델 다운로드 | 미리 훈련 된 XLNET의 다운로드 주소를 중국어로 제공합니다 |
| 기준 시스템 효과 | 기준 시스템 효과를 나열하십시오 |
| 사전 훈련 세부 사항 | 사전 훈련 세부 사항에 대한 설명 |
| 다운 스트림 작업 미세 조정 세부 사항 | 다운 스트림 작업에 대한 관련 설명 미세 조정 세부 사항 |
| FAQ | FAQ와 답변 |
| 인용하다 | 이 디렉토리의 기술 보고서 |
XLNet-mid : 24 층, 768- 히든, 12- 헤드, 209m 매개 변수XLNet-base : 12 층, 768- 히든, 12 헤드, 117m 매개 변수| 모델 약어 | 재료 | Google 다운로드 | Baidu NetDisk 다운로드 |
|---|---|---|---|
XLNet-mid, Chinese | 중국 위키+ 일반 데이터 [1] | 텐서 플로 Pytorch | 텐서 플로우 (비밀번호 2JV2) |
XLNet-base, Chinese | 중국 위키+ 일반 데이터 [1] | 텐서 플로 Pytorch | 텐서 플로우 (비밀번호 GE7W) |
[1] 일반적인 데이터에는 다음이 포함됩니다 : 백과 사전, 뉴스, Q & A 및 기타 데이터는 우리가 발표 한 Bert-WWM-EXT Training Corpus와 동일한 총 5.4b에 도달하는 전체 단어가 있습니다.
Pytorch 버전이 필요한 경우
1) Transformers가 제공 한 변환 스크립트를 통해 직접 변환하십시오.
2) 또는 Huggingface의 공식 웹 사이트를 통해 Pytorch를 직접 다운로드하십시오 : https://huggingface.co/hfl
방법 : 다운로드하려는 모든 모델을 클릭하십시오 → 하단으로 당기고 "모델의 모든 파일 나열"→ 팝업 상자에서 Bin 및 JSON 파일을 다운로드하십시오.
중국 본토에서 Baidu Netdisk 다운로드 포인트를 사용하는 것이 좋습니다. 해외 사용자는 Google 다운로드 포인트를 사용하는 것이 좋습니다. XLNet-mid 모델 파일 크기는 약 800m 입니다. TensorFlow 버전 XLNet-mid, Chinese 예로 들어, 다운로드 한 후 ZIP 파일을 압축하여 얻으십시오.
chinese_xlnet_mid_L-24_H-768_A-12.zip
|- xlnet_model.ckpt # 模型权重
|- xlnet_model.meta # 模型meta信息
|- xlnet_model.index # 模型index信息
|- xlnet_config.json # 模型参数
|- spiece.model # 词表
Huggingface-Transformers 2.2.2에 의존하면 위의 모델을 쉽게 호출 할 수 있습니다.
tokenizer = AutoTokenizer.from_pretrained("MODEL_NAME")
model = AutoModel.from_pretrained("MODEL_NAME")
MODEL_NAME 의 해당 목록은 다음과 같습니다.
| 모델 이름 | model_name |
|---|---|
| xlnet-mid | HFL/Chinese-XLNET-MID |
| xlnet-base | HFL/중국어-XLNET-베이스 |
기준 효과를 비교하기 위해 다음 중국 데이터 세트에서 테스트했습니다. 중국어 버트, 버트 -WWM, BERT-WWM-EXT, XLNET-BASE, XLNET-MID를 비교했습니다. 그중에서도 중국 버트, Bert-WWM 및 Bert-WWM-EXT의 결과는 중국 Bert-WWM 프로젝트에서 가져온 것입니다. 시간과 에너지는 제한되어 있으며 더 많은 범주의 작업을 다룰 수 없었습니다. 직접 시도해보십시오.
참고 : 결과의 신뢰성을 보장하기 위해 동일한 모델에 대해 모델 성능의 최대 및 평균 값을보고하기 위해 10 배 (다른 임의의 시드)를 실행합니다. 예상치 못한 일이 발생하지 않으면 작업 결과 가이 범위에 있어야합니다.
평가 표시기에서 평균값은 괄호로 표시되며 최대 값은 괄호 외부로 표시됩니다.
** CMRC 2018 데이터 세트 **는 Iflytek Joint Laboratory에서 출시 한 중국 기계 판독 이해 데이터입니다. 주어진 질문에 따르면, 시스템은 분대와 동일한 형태로 챕터에서 답으로 조각을 추출해야합니다. 평가 지표는 다음과 같습니다. EM / F1
| 모델 | 개발 세트 | 테스트 세트 | 도전 세트 |
|---|---|---|---|
| 버트 | 65.5 (64.4) / 84.5 (84.0) | 70.0 (68.7) / 87.0 (86.3) | 18.6 (17.0) / 43.3 (41.3) |
| Bert-WWM | 66.3 (65.0) / 85.6 (84.7) | 70.5 (69.1) / 87.4 (86.7) | 21.0 (19.3) / 47.0 (43.9) |
| Bert-WWM-EXT | 67.1 (65.6) / 85.7 (85.0) | 71.4 (70.0) / 87.7 (87.0) | 24.0 (20.0) / 47.3 (44.6) |
| xlnet-base | 65.2 (63.0) / 86.9 (85.9) | 67.0 (65.8) / 87.2 (86.8) | 25.0 (22.7) / 51.3 (49.5) |
| xlnet-mid | 66.8 (66.3) / 88.4 (88.1) | 69.3 (68.5) / 89.2 (88.8) | 29.1 (27.1) / 55.8 (54.9) |
** DRCD 데이터 세트 **는 중국 대만 델타 리서치 연구소에서 발표합니다. 그 형태는 분대와 동일하며 전통적인 중국어를 기반으로 한 추출 된 독해 이해 데이터 세트입니다. 평가 지표는 다음과 같습니다. EM / F1
| 모델 | 개발 세트 | 테스트 세트 |
|---|---|---|
| 버트 | 83.1 (82.7) / 89.9 (89.6) | 82.2 (81.6) / 89.2 (88.8) |
| Bert-WWM | 84.3 (83.4) / 90.5 (90.2) | 82.8 (81.8) / 89.7 (89.0) |
| Bert-WWM-EXT | 85.0 (84.5) / 91.2 (90.9) | 83.6 (83.0) / 90.4 (89.9) |
| xlnet-base | 83.8 (83.2) / 92.3 (92.0) | 83.5 (82.8) / 92.2 (91.8) |
| xlnet-mid | 85.3 (84.9) / 93.5 (93.3) | 85.5 (84.8) / 93.6 (93.2) |
감정 분류 작업에서 우리는 Chnsenticorp 데이터 세트를 사용했습니다. 이 모델은 텍스트를积极과消极두 가지 범주로 나누어야합니다. 평가 표시기는 정확도입니다
| 모델 | 개발 세트 | 테스트 세트 |
|---|---|---|
| 버트 | 94.7 (94.3) | 95.0 (94.7) |
| Bert-WWM | 95.1 (94.5) | 95.4 (95.0) |
| xlnet-base | ||
| xlnet-mid | 95.8 (95.2) | 95.4 (94.9) |
다음은 XLNet-mid 모델을 사용하여 사전 훈련 세부 사항을 예로 들어 설명하는 것입니다.
XLNET 공식 튜토리얼의 단계를 따르십시오. 먼저 문장을 사용하여 어휘 목록을 생성해야합니다. 이 프로젝트에서는 32000의 어휘 크기를 사용했으며 나머지 매개 변수는 공식 예제의 기본 구성에서 구성됩니다.
spm_train
--input=wiki.zh.txt
--model_prefix=sp10m.cased.v3
--vocab_size=32000
--character_coverage=0.99995
--model_type=unigram
--control_symbols=<cls>,<sep>,<pad>,<mask>,<eod>
--user_defined_symbols=<eop>,.,(,),",-,–,£,€
--shuffle_input_sentence
--input_sentence_size=10000000
어휘 목록을 생성 한 후 원래 텍스트 코퍼스는 TRANION TF_RECORDS 파일을 생성하는 데 사용됩니다. 원본 텍스트는 원본 자습서와 같은 방식으로 구성됩니다.
다음은 데이터를 생성 할 때의 명령입니다 (실제 슬라이스 수를 기준으로 num_task 및 task 설정하십시오).
SAVE_DIR=./output_b32
INPUT=./data/*.proc.txt
python data_utils.py
--bsz_per_host=32
--num_core_per_host=8
--seq_len=512
--reuse_len=256
--input_glob=${INPUT}
--save_dir=${SAVE_DIR}
--num_passes=20
--bi_data=True
--sp_path=spiece.model
--mask_alpha=6
--mask_beta=1
--num_predict=85
--uncased=False
--num_task=10
--task=1
위의 데이터를 얻은 후 사전 훈련 XLNET이 공식적으로 시작됩니다. XLNet-mid 라고 불리는 이유는 XLNet-base (12 층이 24 개의 층으로 증가)에 비해 레이어 수가 증가하고 나머지 매개 변수는 주로 컴퓨팅 장치의 한계로 인해 변경되지 않았기 때문입니다. 사용 된 명령은 다음과 같습니다.
DATA=YOUR_GS_BUCKET_PATH_TO_TFRECORDS
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
TPU_NAME=v3-xlnet
TPU_ZONE=us-central1-b
python train.py
--record_info_dir=$DATA
--model_dir=$MODEL_DIR
--train_batch_size=32
--seq_len=512
--reuse_len=256
--mem_len=384
--perm_size=256
--n_layer=24
--d_model=768
--d_embed=768
--n_head=12
--d_head=64
--d_inner=3072
--untie_r=True
--mask_alpha=6
--mask_beta=1
--num_predict=85
--uncased=False
--train_steps=2000000
--save_steps=20000
--warmup_steps=20000
--max_save=20
--weight_decay=0.01
--adam_epsilon=1e-6
--learning_rate=1e-4
--dropout=0.1
--dropatt=0.1
--tpu=$TPU_NAME
--tpu_zone=$TPU_ZONE
--use_tpu=True
다운 스트림 작업의 미세 조정에 사용되는 장치는 Google Cloud TPU V2 (64G HBM)입니다. 다음은 미세 조정이 수행 될 때 각 작업의 구성을 간략하게 설명합니다. 미세 조정을 위해 GPU를 사용하는 경우 해당 매개 변수를 변경하여 적응하여 batch_size , learning_rate 및 기타 매개 변수를 변경하십시오. 관련 코드는 src 디렉토리를 확인하십시오.
이해력을 읽기 위해서는 TF_Records 데이터가 먼저 필요합니다. 여기에 설명되지 않은 XLNET 공식 튜토리얼의 Squad 2.0 처리 방법을 참조하십시오. 다음은 CMRC 2018 중국 기계 읽기 이해 작업에 사용 된 스크립트 매개 변수입니다.
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_cmrc_drcd.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--tpu_zone=${TPU_ZONE}
--use_tpu=True
--tpu=${TPU_NAME}
--num_hosts=1
--num_core_per_host=8
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--predict_dir=${MODEL_DIR}/eval
--train_file=${DATA_DIR}/cmrc2018_train.json
--predict_file=${DATA_DIR}/cmrc2018_dev.json
--uncased=False
--max_answer_length=40
--max_seq_length=512
--do_train=True
--train_batch_size=16
--do_predict=True
--predict_batch_size=16
--learning_rate=3e-5
--adam_epsilon=1e-6
--iterations=1000
--save_steps=2000
--train_steps=2400
--warmup_steps=240
다음은 DRCD 전통적인 중국 기계 판독 이해 작업에 사용 된 스크립트 매개 변수입니다.
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_cmrc_drcd.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--tpu_zone=${TPU_ZONE}
--use_tpu=True
--tpu=${TPU_NAME}
--num_hosts=1
--num_core_per_host=8
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--predict_dir=${MODEL_DIR}/eval
--train_file=${DATA_DIR}/DRCD_training.json
--predict_file=${DATA_DIR}/DRCD_dev.json
--uncased=False
--max_answer_length=30
--max_seq_length=512
--do_train=True
--train_batch_size=16
--do_predict=True
--predict_batch_size=16
--learning_rate=3e-5
--adam_epsilon=1e-6
--iterations=1000
--save_steps=2000
--train_steps=3600
--warmup_steps=360
독해 작업과 달리 분류 작업은 TF_Record를 미리 생성 할 필요가 없습니다. 다음은 chnsenticorp 감정 분류 작업에 사용 된 스크립트 매개 변수입니다.
XLNET_DIR=YOUR_GS_BUCKET_PATH_TO_XLNET
MODEL_DIR=YOUR_OUTPUT_MODEL_PATH
DATA_DIR=YOUR_DATA_DIR_TO_TFRECORDS
RAW_DIR=YOUR_RAW_DATA_DIR
TPU_NAME=v2-xlnet
TPU_ZONE=us-central1-b
python -u run_classifier.py
--spiece_model_file=./spiece.model
--model_config_path=${XLNET_DIR}/xlnet_config.json
--init_checkpoint=${XLNET_DIR}/xlnet_model.ckpt
--task_name=csc
--do_train=True
--do_eval=True
--eval_all_ckpt=False
--uncased=False
--data_dir=${RAW_DIR}
--output_dir=${DATA_DIR}
--model_dir=${MODEL_DIR}
--train_batch_size=48
--eval_batch_size=48
--num_hosts=1
--num_core_per_host=8
--num_train_epochs=3
--max_seq_length=256
--learning_rate=2e-5
--save_steps=5000
--use_tpu=True
--tpu=${TPU_NAME}
--tpu_zone=${TPU_ZONE}
Q : 더 큰 모델이 출시됩니까?
A : 확실하지 않고 보장되지 않습니다. 성능이 크게 향상되면 출판을 고려할 것입니다.
Q : 일부 데이터 세트에서는 좋지 않습니까?
A : 다른 모델을 선택 하거나이 체크 포인트에서 사전 훈련을 위해 데이터를 계속 사용하십시오.
Q : 사전 훈련 데이터가 해제됩니까?
A : 죄송합니다. 저작권 문제로 인해 게시 할 수 없습니다.
Q : XLNet을 훈련하는 데 얼마나 걸립니까?
A : 클라우드 TPU V3 (128G HBM)을 사용하여 XLNet-mid 훈련 2m 단계 (Batch = 32). XLNet-base 4m 단계를 훈련 시켰습니다.
Q : XLNET이 공식적으로 다국어 또는 중국어 XLNet을 출시하지 않은 이유는 무엇입니까?
A : (다음은 개인적인 의견입니다) 알 수 없음, 많은 사람들이 희망이 있다고 말하는 메시지를 남겼습니다. xlnet-issue-#3을 클릭하십시오. XLNET의 공식 기술과 컴퓨팅 능력을 통해 이러한 모델을 교육하는 것은 어렵지 않습니다 (다국어 버전은 더 복잡 할 수 있으며 다른 언어 간의 균형을 고려해야합니다. 또한 다국어 버트의 설명을 참조 할 수도 있습니다). 그러나 반면에 그것에 대해 생각하면서 저자들은 그렇게 할 의무가 없습니다. 학자로서, 그들의 기술적 기여는 충분하고 그들이 출판되지 않으면 비판을 받아서는 안되며, 모든 사람이 다른 사람들의 일을 합리적으로 대우하도록 요구합니다.
Q : 대부분의 경우 XLNet이 Bert보다 낫습니까?
A : 현재, 적어도 위의 작업이 효과적이며 사용 된 데이터는 우리가 릴리스 한 Bert-WWM-EXT와 동일합니다.
Q :?
A :.
이 디렉토리의 내용이 연구 작업에 도움이되는 경우 논문의 다음 기술 보고서를 참조하십시오 : https://arxiv.org/abs/2004.13922
@inproceedings{cui-etal-2020-revisiting,
title = "Revisiting Pre-Trained Models for {C}hinese Natural Language Processing",
author = "Cui, Yiming and
Che, Wanxiang and
Liu, Ting and
Qin, Bing and
Wang, Shijin and
Hu, Guoping",
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings",
month = nov,
year = "2020",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2020.findings-emnlp.58",
pages = "657--668",
}
프로젝트 저자 : Cui Yiming (Iflytek Joint Laboratory), Che Wanxiang (Harbin Institute of Technology), Liu Ting (Harbin Institute of Technology), Wang Shijin (Iflytek), Hu Guoping (iflytek)
이 프로젝트는 Google의 Tensorflow Research Cloud (TFRC) 프로그램에서 자금을 지원합니다.
이 프로젝트를 건설하는 동안 우리는 다음 창고를 언급했으며 여기에서 감사의 말을 전하고 싶습니다.
이 프로젝트는 XLNET이 공식적으로 발표 한 중국 XLNET 모델이 아닙니다. 동시에이 프로젝트는 Harbin Institute of Technology 또는 IFLYTEK의 공식 제품이 아닙니다. 이 프로젝트의 내용은 기술적 연구 참조를위한 것이며 결론적으로 사용되지 않습니다. 사용자는 라이센스 범위 내에서 언제든지 모델을 사용할 수 있지만 프로젝트 컨텐츠 사용으로 인한 직간접 손실에 대해 책임을지지 않습니다.
Iflytek Joint Laboratory의 공식 WeChat 공식 계정을 따라 오신 것을 환영합니다.

궁금한 점이 있으면 GitHub 문제로 제출하십시오.
우리는 수술이 없으며 네티즌이 서로 문제를 해결하도록 돕도록 격려합니다.
구현 문제를 발견하거나 프로젝트를 공동으로 구축하려는 경우 풀 요청을 제출하십시오.