El enmascaramiento del plan de estudios basado en conceptos (CCM) es una estrategia de capacitación para el pre-entrenamiento de modelo de lenguaje eficiente. Se puede utilizar para transformadores previos a la capacitación con costos de cómputo relativamente más bajos. Nuestro marco enmascara los conceptos dentro de las oraciones en orden fácil de tener un orden. CCM logra un rendimiento comparativo con Bert original al usar solo 1/2 costos de cálculo en el punto de referencia de pegamento.
Este repositorio contiene código para nuestro documento EMNLP 2022: pre-entrenamiento eficiente del modelo de lenguaje enmascarado a través del enmascaramiento del plan de estudios basado en conceptos. Para obtener una descripción detallada y resultados experimentales, consulte el documento.
Resultados en el conjunto de desarrollo de pegamento
| Modelos | Reajuste salarial | SST | MRPC | Sts | RTE |
|---|---|---|---|---|---|
| Bert (pequeño, 14m) | 38.0 | 88.7 | 82.8 | 82.0 | 59.2 |
| CCM (pequeño, 14m) | 42.8 | 89.1 | 84.1 | 83.3 | 61.3 |
| Bert (medio, 26m) | 44.9 | 89.6 | 85.4 | 82.7 | 60.3 |
| CCM (medio, 26m) | 48.0 | 90.9 | 86.7 | 83.6 | 61.4 |
| Bert (base, 110m) | 49.7 | 90.8 | 87.8 | 85.4 | 67.8 |
| CCM (base, 110m) | 60.3 | 93.1 | 88.3 | 85.5 | 65.0 |
| Modelos | Mnli | QQP | Qnli |
|---|---|---|---|
| Bert (pequeño, 14m) | 76.8 | 88.4 | 85.8 |
| CCM (pequeño, 14m) | 77.5 | 88.6 | 86.3 |
| Bert (medio, 26m) | 78.9 | 89.4 | 87.6 |
| CCM (medio, 26m) | 80.0 | 89.2 | 87.6 |
| Bert (base, 110m) | 81.7 | 90.4 | 89.5 |
| CCM (base, 110m) | 84.1 | 91.0 | 91.4 |
Descargue las afirmaciones de ConceptNet.
# Download assertions in the data folder.
$ wget ./data/assertions.csv https://s3.amazonaws.com/conceptnet/precomputed-data/2016/assertions/conceptnet-assertions-5.5.0.csv.gz
# run concept_extraction.py
$ python ./script/concept_extraction.py
Use ./script/basicconcept_selection.py para crear la primera etapa del plan de estudios con conceptos básicos que están conectados con muchos otros conceptos en el gráfico de conocimiento y con frecuencia ocurren en el corpus previo al entrenamiento.
--conceptnet_path : una ruta al archivo de concepto preprocesado.--topk_connected_concepts : Conceptos K superiores que están conectados a muchos otros conceptos en el gráfico de conocimiento.--corpus_dir : un directorio que contiene archivos de texto sin procesar para convertirse en ejemplos de pre-entrenamiento de MLM.--delete_threshold : umbral de frecuencia para filtrar conceptos raros.--basicConcepts_num : Establezca el número de conceptos básicos utilizados para el plan de estudios.--save_path : una ruta para guardar el conjunto de conceptos básicos. Use ./script/curriculum_construction.py para construir un plan de estudios basado en conceptos con conceptos básicos.
--conceptnet_path : una ruta al archivo de concepto preprocesado.--num_of_hops : establezca el número de lúpulo para agregar conceptos relacionados al siguiente conjunto de conceptos de etapa.--basic_concept_path : una ruta para cargar el conjunto de conceptos básicos.--save_dir : una ruta para guardar el conjunto de conceptos para cada etapa del plan de estudios.--num_of_stages : establezca el número de etapa para el plan de estudios. Use ./script/curriculum_construction.py para identificar conceptos en el corpus y organizarlos junto con el plan de estudios.
--corpus_dir : un directorio que contiene archivos de texto sin procesar para convertirse en ejemplos de pre-entrenamiento de MLM.--save_dir : una ruta para guardar el corpus preprocesado.--curriculum_dir : un directorio que contiene el plan de estudios basado en conceptos.--process_num : establezca el número de procesadores de CPU para el preprocesamiento. Finalmente, use ./script/pre-training.py para pre-entrenamiento de sus modelos con el enmascaramiento del plan de estudios basado en conceptos.
--curriculum_dir : un directorio que contiene el plan de estudios basado en conceptos.--lr : Establezca la tasa de aprendizaje.--epochs : Establezca el número de épocas.--batch_size : configure el tamaño del lote para realizar una vez.--step_batch_size : configure el tamaño de lotes para actualizar por cada paso (si la memoria de GPU es suficiente, configure el Batch_Size y Step_Batch_Size lo mismo.--data_path : un directorio que contiene ejemplos preprocesados.--warmup_steps : establezca el número de pasos para calentar el modelo con el MLM original.--model_size : elija el tamaño del modelo para pre-entrenado. Para obtener ayuda o problemas con CCM, envíe un problema de GitHub.
Para la comunicación personal relacionada con CCM, comuníquese con Mingyu Lee <[email protected]> o Jun-Hyung Park <[email protected]> .