Die konzeptbasierte Lehrplanmaskierung (CCM) ist eine Trainingsstrategie für ein effizientes Sprachmodell vor dem Training. Es kann für Voraussetzer-Transformatoren mit relativ niedrigeren Berechnungskosten verwendet werden. Unsere Framework maskiert Konzepte in Sätzen in leicht zu differenzierter Reihenfolge. CCM erzielt eine vergleichende Leistung mit Original Bert, indem nur 1/2 Rechenkosten für die Kleberbenchmark verwendet werden.
Dieses Repository enthält Code für unser EMNLP 2022-Papier: Effiziente Vorverarbeitung des maskierten Sprachmodells über eine konzeptbasierte Lehrplanmaskierung. Eine detaillierte Beschreibung und experimentelle Ergebnisse finden Sie im Papier.
Ergebnisse auf dem Kleber -Dev -Set
| Modelle | Cola | Sst | MRPC | Sts | Rte |
|---|---|---|---|---|---|
| Bert (klein, 14m) | 38.0 | 88.7 | 82.8 | 82.0 | 59,2 |
| CCM (klein, 14m) | 42,8 | 89.1 | 84.1 | 83.3 | 61.3 |
| Bert (mittel, 26 m) | 44,9 | 89,6 | 85.4 | 82.7 | 60.3 |
| CCM (mittel, 26 m) | 48.0 | 90,9 | 86,7 | 83.6 | 61.4 |
| Bert (Basis, 110 m) | 49,7 | 90,8 | 87,8 | 85.4 | 67,8 |
| CCM (Basis, 110 m) | 60.3 | 93.1 | 88.3 | 85,5 | 65.0 |
| Modelle | Mnli | QQP | Qnli |
|---|---|---|---|
| Bert (klein, 14m) | 76,8 | 88,4 | 85,8 |
| CCM (klein, 14m) | 77,5 | 88,6 | 86.3 |
| Bert (mittel, 26 m) | 78,9 | 89,4 | 87.6 |
| CCM (mittel, 26 m) | 80.0 | 89,2 | 87.6 |
| Bert (Basis, 110 m) | 81.7 | 90.4 | 89,5 |
| CCM (Basis, 110 m) | 84.1 | 91.0 | 91.4 |
Download conceptNet -Behauptungen.
# 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
Verwendung ./script/basicconcept_selection.py Um die erste Stufe des Lehrplans mit grundlegenden Konzepten zu erstellen, die mit vielen anderen Konzepten im Wissensgraphen verbunden sind und häufig im Vorauslaufkorpus auftreten.
--conceptnet_path : Ein Pfad zur vorabgestellten ConceptNet-Datei.--topk_connected_concepts : Top-K-Konzepte, die mit vielen anderen Konzepten im Wissensgraphen verbunden sind.--corpus_dir : Ein Verzeichnis, das Rohtextdateien enthält, um sich in MLM-Beispiele vor dem Training zu verwandeln.--delete_threshold : Frequenzschwelle für die Filterung seltener Konzepte.--basicConcepts_num : Legen Sie die Anzahl der für den Lehrplan verwendeten grundlegenden Konzepte fest.--save_path : Ein Pfad zum Speichern der Grundkonzepte. Verwendung ./script/curriculum_construction.py um konzeptbasierte Lehrpläne mit grundlegenden Konzepten zu konstruieren.
--conceptnet_path : Ein Pfad zur vorabgestellten ConceptNet-Datei.--num_of_hops : Legen Sie die Anzahl der Hops fest, um verwandte Konzepte zum Konzept der nächsten Stufe hinzuzufügen.--basic_concept_path : Ein Pfad zum Laden der Grundkonzepte.--save_dir : Ein Pfad zum Speichern der Konzepte für jede Phase des Lehrplans.--num_of_stages : Stellen Sie die Anzahl der Bühne für den Lehrplan fest. Verwendung ./script/curriculum_construction.py um Konzepte im Korpus zu identifizieren und zusammen mit dem Lehrplan zu ordnen.
--corpus_dir : Ein Verzeichnis, das Rohtextdateien enthält, um sich in MLM-Beispiele vor dem Training zu verwandeln.--save_dir : Ein Weg zum Speichern des vorverarbeiteten Korpus.--curriculum_dir : Ein Verzeichnis, das den konzeptbasierten Lehrplan enthält.--process_num : Stellen Sie die Anzahl der CPU-Prozessoren für die Vorverarbeitung ein. Schließlich verwenden Sie ./script/pre-training.py , um Ihre Modelle mit der konzeptbasierten Lehrplanmaskierung vorzubinden.
--curriculum_dir : Ein Verzeichnis, das den konzeptbasierten Lehrplan enthält.--lr : Legen Sie die Lernrate fest.--epochs : Stellen Sie die Anzahl der Epochen fest.--batch_size : Stellen Sie die Stapelgröße für das gleichzeitige Durchführen fest.--step_batch_size : Setzen Sie die Stapelgröße für die Aktualisierung pro Schritt (Wenn der Speicher von GPU ausreicht, setzen Sie die batch_size und step_batch_size dasselbe.--data_path : Ein Verzeichnis mit vorverarbeiteten Beispielen.--warmup_steps : Stellen Sie die Anzahl der Schritte ein, um das Modell mit dem ursprünglichen MLM aufzuwärmen.--model_size : Wählen Sie die Größe des Modells für vor dem Training. Für Hilfe oder Probleme mit CCM senden Sie bitte ein GitHub -Problem.
Für eine persönliche Mitteilung im Zusammenhang mit CCM wenden Sie sich bitte an Mingyu Lee <[email protected]> oder Jun-Hyung Park <[email protected]> .