Le masquage du curriculum basé sur le concept (CCM) est une stratégie de formation pour une pré-formation de modèle linguistique efficace. Il peut être utilisé pour les transformateurs pré-formation avec des coûts de calcul relativement inférieurs. Notre cadre masque les concepts dans les phrases dans un ordre facile à difficulté. CCM obtient des performances comparatives avec Bert d'origine en utilisant uniquement 1/2 coûts de calcul sur la référence de colle.
Ce référentiel contient du code pour notre article EMNLP 2022: pré-formation efficace du modèle de langage masqué via le masquage du curriculum basé sur le concept. Pour une description détaillée et des résultats expérimentaux, veuillez vous référer au document.
Résultats sur l'ensemble de développement de colle
| Modèles | Cola | SST | MRPC | STS | Rte |
|---|---|---|---|---|---|
| Bert (petit, 14m) | 38.0 | 88.7 | 82.8 | 82.0 | 59.2 |
| CCM (petit, 14m) | 42.8 | 89.1 | 84.1 | 83.3 | 61.3 |
| Bert (moyen, 26m) | 44.9 | 89.6 | 85.4 | 82.7 | 60.3 |
| CCM (moyen, 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 |
| Modèles | MNLI | QQP | QNLI |
|---|---|---|---|
| Bert (petit, 14m) | 76.8 | 88.4 | 85.8 |
| CCM (petit, 14m) | 77.5 | 88.6 | 86.3 |
| Bert (moyen, 26m) | 78.9 | 89.4 | 87.6 |
| CCM (moyen, 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 |
Téléchargez les assertions conceptnets.
# 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
Utilisez ./script/basicconcept_selection.py pour créer la première étape du programme avec des concepts de base qui sont connectés à de nombreux autres concepts dans le graphique de connaissances et se produisent fréquemment dans le corpus pré-formation.
--conceptnet_path : un chemin d'accès au fichier conceptnet pré-conçu.--topk_connected_concepts : Concepts Top K qui sont connectés à de nombreux autres concepts du graphique de connaissances.--corpus_dir : un répertoire contenant des fichiers texte bruts pour se transformer en exemples de pré-formation MLM.--delete_threshold : Seuil de fréquence pour filtrer les concepts rares.--basicConcepts_num : Définissez le nombre de concepts de base utilisés pour le programme.--save_path : un chemin pour sauver l'ensemble des concepts de base. Utilisez ./script/curriculum_construction.py pour construire un curriculum basé sur le concept avec des concepts de base.
--conceptnet_path : un chemin d'accès au fichier conceptnet pré-conçu.--num_of_hops : définissez le nombre de houblon pour ajouter des concepts connexes à l'ensemble de concepts de scène suivant.--basic_concept_path : un chemin pour charger l'ensemble des concepts de base.--save_dir : un chemin pour sauver l'ensemble des concepts pour chaque étape du programme.--num_of_stages : définissez le nombre de stade pour le programme. Utilisez ./script/curriculum_construction.py pour identifier les concepts dans le corpus et les organiser avec le programme.
--corpus_dir : un répertoire contenant des fichiers texte bruts pour se transformer en exemples de pré-formation MLM.--save_dir : un chemin pour sauver le corpus pré-traité.--curriculum_dir : un répertoire contenant le programme basé sur le concept.--process_num : définissez le nombre de processeurs CPU pour le prétraitement. Enfin, utilisez ./script/pre-training.py pour pré-entraîner vos modèles avec le masquage du curriculum basé sur le concept.
--curriculum_dir : un répertoire contenant le programme basé sur le concept.--lr : définissez le taux d'apprentissage.--epochs : définissez le nombre d'époches.--batch_size : Réglez la taille du lot pour la conduite en même temps.--step_batch_size : définissez la taille du lot pour la mise à jour par chaque étape (si la mémoire de GPU est suffisante, définissez le Batch_Size et Step_Batch_Size le même.--data_path : un répertoire contenant des exemples prétraités.--warmup_steps : Définissez le nombre d'étapes pour réchauffer le modèle avec le MLM d'origine.--model_size : Choisissez la taille du modèle à pré-train. Pour obtenir de l'aide ou des problèmes à l'aide de CCM, veuillez soumettre un problème GitHub.
Pour la communication personnelle liée au CCM, veuillez contacter Mingyu Lee <[email protected]> ou Jun-Hyung Park <[email protected]> .