Dieses Repository enthält den Code, der dem folgenden Papier zugeordnet ist:
Spezialisierte unbeaufsichtigte Vorbetragsmodelle für die semantische Ähnlichkeit auf Wortebene (Anne Lauscher, Ivan Vulić, Edoardo Maria Ponti, Anna Korhonen, Goran Glavaš) https://arxiv.org/pdf/1909.02339.pdf
Das Modell unterscheidet sich nur vom ursprünglichen Bert -Code in der Art und Weise, wie es die Einbettungen teilt. Dafür haben wir einen konditionierten variablen Bereich verwendet. Dies wird in implementiert
conditioned_scope.pymodeling.py Zeile 179 mit cond_scope(is_shared=shared_embeddings): ...Wir haben sowohl Bert als auch Libert auf einer Müllkippe der englischen Wikipedia ausgebildet. Dafür haben wir benutzt
poc_pretraining_bert.shpoc_create_pretraining_data.sh Die lexiko-semantischen Einschränkungen wurden in einer einfachen, von Raum getrennten Datei angegeben:
en_zymosis en_fermentation
en_zymosis en_fermentation
en_zymosis en_fermenting
en_zymosis en_fermenting
en_zymosis en_zymolysis
Der Code, der für die Vorverarbeitung dieser Einschränkungen erforderlich ist, ist in preprocess_wn.py angegeben.
create_data_syn_hyp_constraints )write_input_data_syn_hyp_constraints ) erstellt. Libert wird über zwei Klassen von Zielen (1) Berts "Standard" -Ziele MLM und NSP und (2) lexikalische Beziehungsklassifizierung von Grund auf neu vorgezogen. Wir geben daher das Vorab -Skript in zwei Varianten entsprechend an:
run_pretraining_bert.py implementiert nur die Standardziele (zum Vergleich entlang des Trainingsprozesses mit Bert)run_pretraining_libert.py implementiert die Standardziele plus die LRCDies wird in gezeigt
poc_pretraining_bert.shpos_pretraining_libert.shFür die Ausführung einfacher Klassifizierungs- und Regressionsaufgaben, beispielsweise zur Bewertung des Klebers, beziehen wir uns auf die folgenden Skripte:
run_classifier_libert.pyrun_regression_libert.py Wir haben die ursprünglichen Bert -Tensorflow -Skripte so angepasst, dass das variable Bereich mit unseren Modellen übereinstimmt, damit das Modell korrekt geladen wird. Dieses Verhalten wird über einen zusätzlichen Parameter original_model gesteuert. Darüber hinaus haben wir Unterstützung für die Suche nach Grid -Suche über Hyperparameter -Konfigurationen über diese Skripte hinzugefügt.
Wie man die Skripte aufruft
poc_finetuning_bert.shpos_finetuning_libert.shFür die Vorhersagen beziehen wir uns auf
poc_predictions_bert.shpos_predictions_libert.sh Für die Bewertung der lexikalischen Vereinfachung haben wir den Bert-Ls-Code verwendet: https://github.com/qiang2100/bert-ls. Dafür mussten wir die Modelle nach Pytorch portieren, was über das Transformatoren -Libray durchgeführt wurde (stellen Sie einfach sicher, dass der Code so anpassen, dass die Variablen von Libert korrecly geladen werden.
Die 2 Millionen MLM+NSP -Schritte Libert Checkpoint, die wir in unseren Experimenten besprochen haben, können hier heruntergeladen werden: https://drive.google.com/drive/Folders/1ghvw7ZDBGDGQLNLGXXVOHNJKTDZBMPYO?usp=sharing.
Der Code basiert auf dem ursprünglichen Bert TensorFlow-Code unter: https://github.com/google-research/bert
Bitte zitieren Sie das Papier wie folgt:
@misc{lauscher2019specializing,
title={Specializing Unsupervised Pretraining Models for Word-Level Semantic Similarity},
author={Anne Lauscher and Ivan Vulić and Edoardo Maria Ponti and Anna Korhonen and Goran Glavaš},
year={2019},
eprint={1909.02339},
archivePrefix={arXiv},
primaryClass={cs.CL}
}```