Descripción china | Inglés

Este proyecto proporciona un modelo previamente capacitado XLNet para los chinos, con el objetivo de enriquecer los recursos de procesamiento de lenguaje natural chino y proporcionar una selección diversificada de modelos pre-capacitados chino. Damos la bienvenida a todos los expertos y académicos para descargarlo y usarlo, y promover y desarrollar conjuntamente la construcción de recursos chinos.
Este proyecto se basa en el XLNet oficial de CMU/Google: https://github.com/zihangdai/xlnet
Lert chino | Inglés chino Pert | Macbert chino | Electra chino | Chino xlnet | Bert chino | Herramienta de destilación de conocimiento TextBrewer | Herramienta de corte de modelos Pruner de texto
Ver más recursos publicados por IFL del Harbin Institute of Technology (HFL): https://github.com/ymcui/hfl-anthology
2023/3/28 Open Source chino Llama y Alpaca Big Model, que se puede implementar y experimentar rápidamente en PC, Ver: https://github.com/ymcui/chinese-llama-alpaca
2022/10/29 Proponemos un modelo de modelo previamente capacitado que integra información lingüística. Ver: https://github.com/ymcui/lert
2022/3/30 Open Source Un nuevo modelo previamente capacitado PERT. Ver: https://github.com/ymcui/pert
2021/12/17 Iflytek Conjunto Laboratorio de comunicación lanza el modelo de herramienta de corte Textpruner. Ver: https://github.com/airaria/textpruner
2021/10/24 Laboratorio Conjunto de Iflytek liberó un modelo Cino previamente capacitado para idiomas minoritarios étnicos. Ver: https://github.com/ymcui/chinese-minority-plm
2021/7/21 "Procesamiento del lenguaje natural: métodos basados en modelos de pre-entrenamiento" escritos por muchos académicos del Harbin Institute of Technology Scir, y todos pueden comprarlo.
2021/1/27 Todos los modelos han admitido TensorFlow 2, llamándolo o descargándolo a través de la Biblioteca Transformers. https://huggingface.co/hfl
2020/8/27 El laboratorio conjunto IFL encabezó la lista en la evaluación de comprensión del lenguaje natural del pegamento general, consulte la lista de pegamento, noticias.
2020/3/11 Para comprender mejor las necesidades, está invitado a completar el cuestionario para proporcionarle mejores recursos.
2020/2/26 Iflytek Laboratorio conjunto Liberación de la herramienta de destilación de conocimiento TextBrewer
2019/12/19 El modelo publicado en este directorio se ha conectado a Huggingface-Transformers para ver la carga rápida
2019/9/5 XLNet-base está disponible para descargar, vea la descarga del modelo
2019/8/19 proporciona modelo chino XLNet-mid entrenado en Universal Corpus a gran escala (5.4B Recuento de palabras), Ver Descarga del modelo
| capítulo | describir |
|---|---|
| Descargar modelo | Proporciona la dirección de descarga de XLNet previamente capacitado en chino |
| Efectos del sistema de referencia | Enumere algunos efectos del sistema de referencia |
| Detalles previos al entrenamiento | Descripción de los detalles previos al entrenamiento |
| Detalles de ajuste de la tarea aguas abajo | Descripciones relacionadas de los detalles de ajuste de tareas aguas abajo |
| Preguntas frecuentes | Preguntas frecuentes y respuestas |
| Cita | Informes técnicos en este directorio |
XLNet-mid : 24 capas, 768 escondidas, 12 cabezas, 209m parámetrosXLNet-base : 12 capas, 768 escondidas, 12 cabezas, 117m parámetros| Abreviatura del modelo | Materiales | Descarga de Google | Descargar Baidu NetDisk |
|---|---|---|---|
XLNet-mid, Chinese | Wiki chino+ Datos generales [1] | Flujo tensor Pytorch | TensorFlow (contraseña 2JV2) |
XLNet-base, Chinese | Wiki chino+ Datos generales [1] | Flujo tensor Pytorch | TensorFlow (contraseña GE7W) |
[1] Los datos generales incluyen: Enciclopedia, noticias, preguntas y respuestas y otros datos, con un número total de palabras que alcanzan 5.4b, lo mismo que el Corpus de capacitación Bert-WWM-EXT que lanzamos.
Si necesita la versión de Pytorch,
1) Convívelo usted mismo a través del script de conversión proporcionado por Transformers.
2) o descargue directamente Pytorch a través del sitio web oficial de Huggingface: https://huggingface.co/hfl
Método: haga clic en cualquier modelo que desee descargar → Tire de la parte inferior y haga clic en "Lista todos los archivos en el modelo" → Descargar archivos bin y json en el cuadro emergente.
Se recomienda utilizar puntos de descarga Baidu NetDisk en China continental, y se recomienda a los usuarios en el extranjero usar puntos de descarga de Google. XLNet-mid es de aproximadamente 800 m . Tomar la versión TensorFlow XLNet-mid, Chinese como ejemplo, después de descargar, descomprima el archivo zip para obtener:
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 # 词表
Confiando en Huggingface-Transformers 2.2.2, los modelos anteriores se pueden llamar fácilmente.
tokenizer = AutoTokenizer.from_pretrained("MODEL_NAME")
model = AutoModel.from_pretrained("MODEL_NAME")
La lista correspondiente de MODEL_NAME es la siguiente:
| Nombre del modelo | Model_name |
|---|---|
| XLNET-MID | HFL/chino-xlnet-mid |
| Base xlnet | HFL/chino-xlnet-base |
Para comparar el efecto de referencia, lo probamos en los siguientes conjuntos de datos chinos. Se compararon los chinos Bert, Bert-WWM, Bert-WWM-EXT, XLNET-Base, XLNet-Mid. Entre ellos, los resultados de los chinos Bert, Bert-WWM y Bert-WWM-EXT están tomados del proyecto chino Bert-WWM. El tiempo y la energía son limitados y no han podido cubrir más categorías de tareas. Por favor pruébelo usted mismo.
Nota: Para garantizar la confiabilidad de los resultados, para el mismo modelo, ejecutamos 10 veces (diferentes semillas aleatorias) para informar los valores máximos y promedio del rendimiento del modelo. Si no ocurre nada inesperado, el resultado de su operación debe estar en este rango.
En el indicador de evaluación, el valor promedio se representa en los soportes y el valor máximo se representa entre paréntesis externos.
** Conjunto de datos CMRC 2018 ** Es datos chinos de comprensión de lectura a máquina publicada por el Laboratorio Conjunto IFLYTEK. Según una pregunta dada, el sistema necesita extraer fragmentos del capítulo como la respuesta, en la misma forma que el escuadrón. Los indicadores de evaluación son: EM / F1
| Modelo | Conjunto de desarrollo | Set de prueba | Conjunto de desafío |
|---|---|---|---|
| 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) |
| Base xlnet | 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) |
** El conjunto de datos DRCD ** es publicado por Delta Research Institute, Taiwán, China. Su forma es la misma que el escuadrón y es un conjunto de datos de comprensión de lectura extraída basado en el chino tradicional. Los indicadores de evaluación son: EM / F1
| Modelo | Conjunto de desarrollo | Set de prueba |
|---|---|---|
| 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) |
| Base xlnet | 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) |
En la tarea de clasificación de emociones, utilizamos el conjunto de datos Chnsenticorp. El modelo necesita dividir el texto en dos categorías:积极y消极. El indicador de evaluación es: precisión
| Modelo | Conjunto de desarrollo | Set de prueba |
|---|---|---|
| Bert | 94.7 (94.3) | 95.0 (94.7) |
| Bert-wwm | 95.1 (94.5) | 95.4 (95.0) |
| Base xlnet | ||
| XLNET-MID | 95.8 (95.2) | 95.4 (94.9) |
Lo siguiente es describir los detalles de pre-entrenamiento utilizando XLNet-mid como ejemplo.
Siga los pasos del tutorial oficial de XLNet, primero debe usar la pieza de oraciones para generar una lista de vocabulario. En este proyecto, utilizamos un tamaño de vocabulario de 32000, y el resto de los parámetros se configuran en la configuración predeterminada en el ejemplo 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
Después de generar la lista de vocabulario, el Corpus de texto original se utiliza para generar el archivo TF_records de entrenamiento. El texto original se construye de la misma manera que el tutorial original:
Los siguientes son los comandos al generar datos (configure num_task y task en función del número real de rebanadas):
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
Después de obtener los datos anteriores, la capacitación XLNet comienza oficialmente. La razón por la que se llama XLNet-mid es que el número de capas aumenta solo en comparación con XLNet-base (12 capas aumentan a 24 capas), y los parámetros restantes no han cambiado, principalmente debido a las limitaciones de los dispositivos de computación. Los comandos utilizados son los siguientes:
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
El dispositivo utilizado para el ajuste de las tareas aguas abajo es Google Cloud TPU V2 (64G HBM). Lo siguiente describe brevemente la configuración de cada tarea cuando se realiza el ajuste fino. Si usa la GPU para un ajuste fino, cambie los parámetros correspondientes para adaptarse, especialmente batch_size , learning_rate y otros parámetros. Para el código relacionado, consulte el directorio src .
Para las tareas de comprensión de lectura, primero se necesitan los datos TF_Records. Consulte el método de procesamiento del escuadrón 2.0 del tutorial oficial de XLNet, que no se describirá aquí. Los siguientes son los parámetros de script utilizados en la tarea de comprensión de lectura a máquina 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
Los siguientes son los parámetros de script utilizados en la tarea de comprensión de lectura máquina tradicional china 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
A diferencia de las tareas de comprensión de lectura, las tareas de clasificación no necesitan generar TF_records con anticipación. Los siguientes son los parámetros de script utilizados en la tarea de clasificación de emoción de 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: ¿Se lanzará un modelo más grande?
R: No estoy seguro, no garantizado. Si obtenemos mejoras significativas en el rendimiento, consideraremos publicar.
P: ¿No es bueno en algunos conjuntos de datos?
R: Elija otros modelos o continúe utilizando sus datos para la capacitación previa en este punto de control.
P: ¿Se lanzarán los datos previos al entrenamiento?
R: Lo siento, no se puede publicar debido a problemas de derechos de autor.
P: ¿Cuánto tiempo se tarda en entrenar xlnet?
R: Pasos de 2 m capacitados por XLNet-mid (lotes = 32) usando Cloud TPU V3 (128G HBM), que toma aproximadamente 3 semanas. XLNet-base entrenó 4M Pasos.
P: ¿Por qué XLNet no ha lanzado oficialmente XLNet multilingüe o chino?
R: (las siguientes son opiniones personales) Es desconocido, muchas personas dejaron mensajes diciendo que esperan que lo haya, haga clic en XLNet-emitir-#3. Con la tecnología oficial y la potencia informática de XLNet, la capacitación de este tipo no es difícil (la versión multilingüe puede ser más complicada y requiere consideración del equilibrio entre diferentes idiomas. También puede consultar la descripción en multilingüe-bert.). Pero por otro lado, los autores no están obligados a hacerlo. Como académicos, su contribución técnica es suficiente y no deben ser criticados si no se publican, y piden a todos que traten el trabajo de otras personas racionalmente.
P: ¿Es XLNet mejor que Bert en la mayoría de los casos?
R: En la actualidad, parece que al menos las tareas anteriores son efectivas, y los datos utilizados son los mismos que el Bert-WWM-EXT que lanzamos.
P :?
A: .
Si el contenido en este directorio es útil para su trabajo de investigación, consulte el siguiente informe técnico en su documento: 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 del proyecto: Cui Yiming (Laboratorio Conjunto de Iflytek), Che Wanxiang (Harbin Institute of Technology), Liu Ting (Harbin Institute of Technology), Wang Shijin (Iflytek), Hu Guoping (Iflytek)
Este proyecto está financiado por el programa TensorRflow Research Cloud (TFRC) de Google.
Durante la construcción de este proyecto, nos hemos referido al siguiente almacén, y nos gustaría expresar nuestro agradecimiento aquí:
Este proyecto no es el modelo chino XLNet publicado oficialmente por XLNet. Al mismo tiempo, este proyecto no es un producto oficial del Harbin Institute of Technology o Iflytek. El contenido en este proyecto es solo para referencia de investigación técnica y no se utiliza como base final. Los usuarios pueden usar el modelo en cualquier momento dentro del alcance de la licencia, pero no somos responsables de las pérdidas directas o indirectas causadas por el uso del contenido del proyecto.
Bienvenido a seguir la cuenta oficial oficial de WeChat del Laboratorio Conjunto Iflytek.

Si tiene alguna pregunta, envíelo en el problema de GitHub.
No tenemos operaciones y alentamos a los internautas a que se ayuden mutuamente a resolver problemas.
Si encuentra problemas de implementación o está dispuesto a construir conjuntamente el proyecto, envíe una solicitud de extracción.