ACL2020 Mejor Paper tiene un premio de nominación en papel, "No deje de preperarse: adapte los modelos de idiomas a dominios y tareas". Este documento realizó muchos experimentos en el modelo de lenguaje previamente entrenado y analizó sistemáticamente la mejora del modelo de capacitación del modelo de lenguaje en las subtareas. Hay varias conclusiones principales:
El pretruento continuo (DAPT) en el conjunto de datos del campo objetivo puede mejorar el efecto; Cuanto más no relacionado sea el corpus del campo objetivo para el corpus de pre-entrenamiento original de Roberta, más obvio será el efecto DAPT.
El pretruento continuo (TAPT) en el conjunto de datos de tareas específicas puede mejorar el efecto muy "barato".
La combinación de los dos (DAPT primero, luego TAPT) puede mejorar aún más el efecto.
El efecto es el mejor si puede obtener más datos sin marcar tareas y continuar priorizando (Tapto curado).
Si no puede obtener más datos no etiquetados relacionados con la tarea, adopte una estrategia de selección de datos muy liviana y simple, y el efecto también mejorará.
Aunque el modelo de lenguaje previa al entrenamiento en BET ya es una operación de punto estable en competiciones de algoritmos. Pero lo que es encomiable en el artículo anterior es que analiza sistemáticamente esta operación. La mayoría de los modelos de idioma chino están capacitados en TensorFlow, y un ejemplo común es el Proyecto Chino Roberta. Puede consultar https://github.com/brightmart/roberta_zh
Hay menos ejemplos de modelos de lenguaje Bert chino de pre-entrenamiento que utilizan Pytorch. En los Transformers de Huggingface, algunos código admiten el pre-entrenamiento del modelo de lenguaje (no muy rico, y muchas funciones no admiten como WWM). Para completar el modelo de capacitación del modelo de lenguaje Bert con un costo de código mínimo, este artículo presta algún código listo para usar. También trate de compartir algunas experiencias en el uso de Pytorch para la pretruación del modelo de lenguaje. Hay tres modelos comunes de idioma chino
(https://huggingface.co/bert-base-chinese)
Este es el modelo de lenguaje de apuesta chino más común, previamente entrenado basado en el corpus relacionado con Wikipedia chino. Es fácil pre-entrenamiento de modelos de lenguaje como línea de base sin datos de supervisión en el dominio. Solo usa los ejemplos oficiales.
https://github.com/huggingface/transformers/tree/master/examples/language-modeling (los transformadores utilizados en este artículo se actualizan a 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)
El modelo de lenguaje previamente entrenado publicado por el Laboratorio Conjunto del Instituto de Tecnología de Harbin. El método de pre-entrenamiento es utilizar métodos similares de Roberta, como máscara dinámica, más datos de entrenamiento, etc. En muchas tareas, este modelo es mejor que Bert-Base-chines. Porque los archivos de configuración de la clase Roberta china, como Vocab.txt, están diseñados utilizando el método BERT. El formato predeterminado del archivo de configuración de lectura del modelo Roberta inglés es Vocab.json. Para algunos modelos ingleses de Roberta, se pueden leer automáticamente a través de Automodel. Esto explica por qué el código de muestra de Roberta chino de la biblioteca modelo de Huggingface no puede ejecutarse. https://huggingface.co/models?
Si desea continuar pretrontrando a Roberta en función del código anterior run_language_modeling.py. Se necesitan dos cambios más.
Suponiendo que config.json ha sido modificado, puede ejecutar el siguiente comando.
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 es un modelo previamente entrenado publicado por Baidu basado en el corpus chino como Baidu Zhitieba combinado con la predicción de la entidad y otras tareas. La precisión de este modelo es mejor que la de Bert-Base-Chinese y Roberta en algunas tareas. Si realiza el pre-entrenamiento de datos de campo en función del modelo ERNIE1.0, solo necesita modificarlo en un solo paso.
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