Descrição chinesa | Inglês

Este projeto fornece um modelo pré-treinado XLNET para chinês, com o objetivo de enriquecer os recursos chineses de processamento de idiomas naturais e fornecer seleção de modelo pré-treinada em chinês diversificado. Congratulamo -nos com todos os especialistas e estudiosos para baixá -lo e usá -lo e promover e desenvolver em conjunto a construção de recursos chineses.
Este projeto é baseado no XLNet oficial da CMU/Google: https://github.com/zihangdai/xlnet
Lert chinês | Pert inglesa chinesa | MacBert chinês | Electra chinês | Xlnet chinês | Bert chinês | Ferramenta de destilação do conhecimento Textbrewer | Ferramenta de corte de modelos Princinente de texto
Veja mais recursos divulgados pela IFL do Harbin Institute of Technology (HFL): https://github.com/ymcui/hfl-anthology
2023/3/28 Llama chinesa de código aberto e modelo Alpaca, que pode ser rapidamente implantado e experimentado no PC, View: https://github.com/ymcui/chinese-llama-alpaca
2022/10/29 Propomos um modelo pré-treinado Lert que integra informações linguísticas. View: https://github.com/ymcui/lert
2022/3/30 Nós abrimos um novo modelo pré-treinado pert. View: https://github.com/ymcui/pert
2021/12/17 O Laboratório Conjunto IFLYTEK lança o Model Cutting Toolkit TextPruner. View: https://github.com/airaria/textpruner
2021/10/24 O Laboratório Conjunto Iflytek divulgou um modelo pré-treinado Cino para idiomas minoritários étnicos. View: https://github.com/ymcui/chinese-minority-plm
2021/7/21 "Processamento de linguagem natural: métodos baseados em modelos de pré-treinamento" escritos por muitos estudiosos do Instituto de Tecnologia da Harbin foram publicados, e todos podem comprá-lo.
2021/1/27 Todos os modelos suportaram o TensorFlow 2, ligue ou faça o download da biblioteca Transformers. https://huggingface.co/hfl
2020/8/27 O Laboratório Conjunto da IFL liderou a lista na avaliação da Entendendo da Linguagem Natural Geral de cola, verifique a lista de cola, notícias.
2020/11/11 Para entender melhor as necessidades, você é convidado a preencher o questionário para fornecer melhores recursos.
2020/2/26 IFLYTEK LABORATÓRIO LABORATÓRIO LABERNAMENTO DO CONHECIMENTO DIRETO DE TEXTBREWER TEXTBREWER
2019/12/19 O modelo publicado neste diretório foi conectado a Huggingface-transformers para ver o carregamento rápido
2019/9/5 XLNet-base está disponível para download, veja o download do modelo
2019/8/19 fornece modelo chinês XLNet-mid treinado em corpus universal em larga escala (contagem de palavras 5.4b), download do modelo
| capítulo | descrever |
|---|---|
| Download do modelo | Fornece o endereço de download do XLNet pré-treinado em chinês |
| Efeitos da linha de base do sistema | Liste alguns efeitos do sistema de linha de base |
| Detalhes pré-treinamento | Descrição dos detalhes pré-treinamento |
| Detalhes de ajuste fino da tarefa a jusante | Descrições relacionadas de detalhes de ajuste fino da tarefa a jusante |
| Perguntas frequentes | Perguntas frequentes e respostas |
| Citar | Relatórios técnicos neste diretório |
XLNet-mid : parâmetros de 24 camadas, 768-Hidden, 12 cabeças, 209mXLNet-base : parâmetros de 12 camadas, 768-Hidden, 12 cabeças, 117m| Abreviação de modelo | Materiais | Download do Google | Download do Baidu NetDisk |
|---|---|---|---|
XLNet-mid, Chinese | Wiki chinês+ Dados gerais [1] | Tensorflow Pytorch | Tensorflow (senha 2JV2) |
XLNet-base, Chinese | Wiki chinês+ Dados gerais [1] | Tensorflow Pytorch | Tensorflow (senha ge7w) |
[1] Os dados gerais incluem: Enciclopédia, notícias, perguntas e respostas e outros dados, com um número total de palavras atingindo 5,4b, o mesmo que o corpus de treinamento BERT-WWM-EXT que lançamos.
Se você precisar da versão pytorch,
1) Converta você mesmo através do script de conversão fornecido pelos Transformers.
2) Ou faça o download diretamente de Pytorch através do site oficial do HuggingFace: https://huggingface.co/hfl
Método: Clique em qualquer modelo que você deseja baixar → Puxe para a parte inferior e clique em "Liste todos os arquivos no modelo" → Baixar arquivos JSON e JSON na caixa pop-up.
Recomenda -se usar pontos de download do Baidu NetDisk na China continental, e os usuários estrangeiros são recomendados para usar pontos de download do Google. XLNet-mid é de cerca de 800m . Tomando o TensorFlow versão XLNet-mid, Chinese como exemplo, após o download, descompacte o arquivo zip para obter:
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 # 词表
Baseando-se em Huggingface-Transformers 2.2.2, os modelos acima podem ser facilmente chamados.
tokenizer = AutoTokenizer.from_pretrained("MODEL_NAME")
model = AutoModel.from_pretrained("MODEL_NAME")
A lista correspondente de MODEL_NAME é a seguinte:
| Nome do modelo | Model_name |
|---|---|
| XLNET-MID | HFL/Chinês-Xlnet-Mid |
| XLNET-BASE | HFL/Chinês-Xlnet-Base |
Para comparar o efeito da linha de base, testamos -o nos seguintes conjuntos de dados chineses. Foram comparados chineses Bert, Bert-WWM, Bert-WWM-EXT, XLNET-BASE, XLNET-MID. Entre eles, os resultados dos chineses BERT, BERT-WWM e BERT-WWM-EXT são retirados do projeto chinês de Bert-Wwm. O tempo e a energia são limitados e não foram capazes de cobrir mais categorias de tarefas. Por favor, tente você mesmo.
Nota: Para garantir a confiabilidade dos resultados, para o mesmo modelo, executamos 10 vezes (sementes aleatórias diferentes) para relatar os valores máximos e médios do desempenho do modelo. Se nada inesperado acontecer, o resultado de sua operação deve estar nesse intervalo.
No indicador de avaliação, o valor médio é representado entre colchetes e o valor máximo é representado por colchetes externos.
** Conjunto de dados do CMRC 2018 ** são dados de compreensão de leitura de máquina chinesa divulgados pelo Laboratório Conjunto de Iflytek. De acordo com uma determinada pergunta, o sistema precisa extrair fragmentos do capítulo como a resposta, da mesma forma que o esquadrão. Os indicadores de avaliação são: em / f1
| Modelo | Conjunto de desenvolvimento | Conjunto de testes | Conjunto de desafios |
|---|---|---|---|
| Bert | 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) |
** O conjunto de dados DRCD ** é lançado pelo Delta Research Institute, Taiwan, China. Sua forma é a mesma do esquadrão e é um conjunto de dados de compreensão de leitura extraído baseado no chinês tradicional. Os indicadores de avaliação são: em / f1
| Modelo | Conjunto de desenvolvimento | Conjunto de testes |
|---|---|---|
| Bert | 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) |
Na tarefa de classificação de emoção, usamos o conjunto de dados CHNSENTICORP. O modelo precisa dividir o texto em duas categorias:积极e消极. O indicador de avaliação é: precisão
| Modelo | Conjunto de desenvolvimento | Conjunto de testes |
|---|---|---|
| Bert | 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) |
O seguinte é descrever os detalhes de pré-treinamento usando XLNet-mid como exemplo.
Siga as etapas do Tutorial Oficial do XLNET, primeiro você precisa usar a peça de frase para gerar uma lista de vocabulário. Neste projeto, usamos um tamanho de vocabulário de 32000 e o restante dos parâmetros é configurado na configuração padrão no exemplo oficial.
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
Depois de gerar a lista de vocabulário, o corpus de texto original é usado para gerar o arquivo TF_Records de treinamento. O texto original é construído da mesma maneira que o tutorial original:
A seguir, são apresentados os comandos ao gerar dados (defina num_task e task com base no número real de fatias):
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
Após obter os dados acima, o XLNet pré-treinamento começa oficialmente. A razão pela qual é chamada XLNet-mid é que o número de camadas é aumentado apenas em comparação com a XLNet-base (12 camadas aumentam para 24 camadas) e os parâmetros restantes não mudaram, principalmente devido às limitações dos dispositivos de computação. Os comandos usados são os seguintes:
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
O dispositivo usado para ajuste fino de tarefas a jusante é o Google Cloud TPU V2 (64g HBM). A seguir, descreve brevemente a configuração de cada tarefa quando o ajuste fino é executado. Se você usar a GPU para ajuste fino, altere os parâmetros correspondentes para se adaptar, especialmente batch_size , learning_rate e outros parâmetros. Para código relacionado, verifique o diretório src .
Para tarefas de compreensão de leitura, os dados TF_Records são necessários primeiro. Consulte o método de processamento do Esquadrão 2.0 do tutorial oficial do XLNET, que não será descrito aqui. A seguir, são apresentados os parâmetros de script usados na tarefa de compreensão de leitura de máquina chinesa do 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
A seguir, são apresentados os parâmetros de script usados na tarefa tradicional de compreensão de leitura de máquina chinesa 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
Ao contrário das tarefas de compreensão de leitura, as tarefas de classificação não precisam gerar antecedência TF_Records. A seguir, são apresentados os parâmetros de script usados na tarefa de classificação de emoção 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}
P: Um modelo maior será lançado?
A: Não tenho certeza, não é garantido. Se obtivermos melhorias significativas de desempenho, consideraremos a publicação.
P: Não é bom em alguns conjuntos de dados?
R: Escolha outros modelos ou continue usando seus dados para pré-treinamento neste ponto de verificação.
P: Os dados de pré-treinamento serão divulgados?
R: Desculpe, ele não pode ser publicado devido a questões de direitos autorais.
P: Quanto tempo leva para treinar XLNet?
A: XLNet-mid treinado 2m Etapas (lote = 32) usando a nuvem TPU V3 (128G HBM), que leva cerca de 3 semanas. XLNet-base treinado 4m etapas.
P: Por que a XLNET não foi lançada oficialmente o XLNET multilíngue ou chinês?
R: (A seguir são opiniões pessoais) Não se sabe, muitas pessoas deixaram mensagens dizendo que esperam que exista, clique em XLNet-Issue-#3. Com a tecnologia oficial da XLNET e o poder de computação, o treinamento desse modelo não é difícil (a versão multilíngue pode ser mais complicada e requer consideração do equilíbrio entre diferentes idiomas. Você também pode se referir à descrição em Bert multilíngue). Mas, pensando nisso, por outro lado, os autores não são obrigados a fazê -lo. Como estudiosos, sua contribuição técnica é suficiente e não deve ser criticada se não forem publicados, e eles pedem a todos que tratem racionalmente o trabalho de outras pessoas.
P: O XLNet é melhor que Bert na maioria dos casos?
R: Atualmente, parece que pelo menos as tarefas acima são eficazes e os dados utilizados são os mesmos que o BERT-WWM-EXT lançamos.
P:?
A :.
Se o conteúdo deste diretório for útil para o seu trabalho de pesquisa, consulte o seguinte relatório técnico em seu artigo: 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",
}
Autores de projeto: Cui Yiming (Laboratório Conjunto de Iflytek), Che Wanxiang (Instituto de Tecnologia Harbin), Liu Ting (Instituto de Tecnologia Harbin), Wang Shijin (Iflytek), Hu Guoping (Iflytek)
Este projeto é financiado pelo programa TensorFlow Research Cloud (TFRC) do Google.
Durante a construção deste projeto, nos referimos ao seguinte armazém e gostaríamos de expressar nossos agradecimentos aqui:
Este projeto não é o modelo XLNET chinês lançado oficialmente pela XLNet. Ao mesmo tempo, este projeto não é um produto oficial do Harbin Institute of Technology ou Iflytek. O conteúdo deste projeto é apenas para referência de pesquisa técnica e não é usada como base final. Os usuários podem usar o modelo a qualquer momento dentro do escopo da licença, mas não somos responsáveis por perdas diretas ou indiretas causadas pelo uso do conteúdo do projeto.
Bem -vindo a seguir o relato oficial oficial do WeChat do Laboratório Conjunto de Iflytek.

Se você tiver alguma dúvida, envie -o no problema do GitHub.
Não temos operações e incentivamos os internautas a se ajudarem a resolver problemas.
Se você encontrar problemas de implementação ou estiver disposto a construir em conjunto o projeto, envie uma solicitação de tração.