Маскировка учебной программы на основе концепций (CCM) является стратегией обучения для эффективной предварительной тренировки языка. Его можно использовать для предварительных тренировочных трансформаторов с относительно более низкими вычислительными затратами. Наши структуры маскируют концепции в предложениях в простом в разъединном порядке. CCM достигает сравнительной производительности с оригинальной BERT, используя только 1/2 вычислительных затрат на эталоне клея.
Этот репозиторий содержит код для нашей бумаги EMNLP 2022: эффективное предварительное обучение модели маскированного языка посредством маскировки учебной программы на основе концепции. Для получения подробного описания и экспериментальных результатов, пожалуйста, обратитесь к статье.
Результаты на наборе Dev Glue
| Модели | Кола | SST | MRPC | Стр | Rte |
|---|---|---|---|---|---|
| Берт (маленький, 14 м) | 38.0 | 88.7 | 82,8 | 82.0 | 59,2 |
| CCM (маленький, 14м) | 42,8 | 89.1 | 84.1 | 83,3 | 61.3 |
| Берт (средний, 26м) | 44,9 | 89,6 | 85,4 | 82,7 | 60.3 |
| CCM (средняя, 26м) | 48.0 | 90.9 | 86.7 | 83,6 | 61.4 |
| Берт (база, 110 м) | 49,7 | 90.8 | 87.8 | 85,4 | 67.8 |
| CCM (база, 110 м) | 60.3 | 93.1 | 88.3 | 85,5 | 65,0 |
| Модели | Mnli | QQP | Qnli |
|---|---|---|---|
| Берт (маленький, 14 м) | 76.8 | 88.4 | 85,8 |
| CCM (маленький, 14м) | 77.5 | 88.6 | 86.3 |
| Берт (средний, 26м) | 78.9 | 89.4 | 87.6 |
| CCM (средняя, 26м) | 80.0 | 89,2 | 87.6 |
| Берт (база, 110 м) | 81.7 | 90.4 | 89,5 |
| CCM (база, 110 м) | 84.1 | 91.0 | 91.4 |
Скачать утверждения 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
Используйте ./script/basicconcept_selection.py , чтобы создать первый этап учебной программы с основными понятиями, которые связаны со многими другими понятиями в графике знаний и часто встречаются в предварительном корпусе.
--conceptnet_path : путь к предварительному концептуальному файлу.--topk_connected_concepts : Top K концепции, которые связаны со многими другими понятиями на графике знаний.--corpus_dir : каталог, содержащий необработанные текстовые файлы, чтобы превратиться в примеры предварительного обучения MLM.--delete_threshold : порог частоты для фильтрации редких концепций.--basicConcepts_num : установите количество основных концепций, используемых для учебной программы.--save_path : путь для сохранения набора основных понятий. Используйте ./script/curriculum_construction.py для построения учебной программы, основанной на концепции с основными понятиями.
--conceptnet_path : путь к предварительному концептуальному файлу.--num_of_hops : Установите количество прыжков для добавления связанных концепций в набор концепции следующего этапа.--basic_concept_path : путь для загрузки набора основных концепций.--save_dir : путь для сохранения набора концепций для каждой стадии учебной программы.--num_of_stages : Установите количество этапа для учебной программы. Используйте ./script/curriculum_construction.py , чтобы определить концепции в корпусе и расположить их вместе с учебной программой.
--corpus_dir : каталог, содержащий необработанные текстовые файлы, чтобы превратиться в примеры предварительного обучения MLM.--save_dir : путь к сохранению предварительно обработанного корпуса.--curriculum_dir : каталог, содержащий учебную программу на основе концепции.--process_num : установите количество процессоров ЦП для предварительной обработки. Наконец, используйте ./script/pre-training.py для предварительного обучения ваших моделей с помощью маскирования учебной программы на основе концепций.
--curriculum_dir : каталог, содержащий учебную программу на основе концепции.--lr : установите скорость обучения.--epochs : установить количество эпох.--batch_size : установите размер партии для проведения сразу.--step_batch_size : Установите размер партии для обновления на каждом шаге (если достаточно графического процессора, установите то же самое.--data_path : каталог, содержащий предварительно обработанные примеры.--warmup_steps : Установите количество шагов, чтобы прогреть модель с исходным MLM.--model_size : выберите размер модели для предварительного обучения. Для получения помощи или проблем с использованием CCC, пожалуйста, отправьте проблему GitHub.
Для личного общения, связанного с CCM, пожалуйста, свяжитесь с Mingyu Lee <[email protected]> или Jun-Hyung Park <[email protected]> .