Code Repo für das Papier Conll 2021 :
Mirrorwic: Zum Auslösen von Word-in-Kontext-Darstellungen aus vorbereiteten Sprachmodellen
von Qianchu Liu*, Fangyu Liu*, Nigel Collier, Anna Korhonen, Ivan Vulić
Mirrorwic ist ein vollständig unbeaufsichtigter Ansatz zur Verbesserung der WOC-Darstellungen (Word-in-Context) in vorbereiteten Sprachmodellen, die durch ein einfaches und effizientes WIC-zielgerichteter Feinabstimmungsverfahren erreicht wird. Die vorgeschlagene Methode nutzt nur Rohtexte, die aus Wikipedia abgetastet wurden, wobei keine sinnanannten Daten angenommen werden, und lernt kontextbezogene Wortdarstellungen in einem Standard-kontrastiven Lernaufbau.
| Modell | WIC (dev) | Usim |
|---|---|---|
| Grundlinie: Bert-Base-Unbekannte | 68.49 | 54,52 |
| Spiegelwic-Bert-Base-Unbekannter | 71.94 | 61.82 |
| Spiegelwic-Roberta-Base | 71.15 | 57.95 |
| Spiegelwic-Deberta-Base | 71.78 | 62.79 |
./train_data/en_wiki.txt bietet Beispieleingaben. In den Ausgabedaten ist jedes Zielwort mit Klammern gekennzeichnet und es wird zufällig mit Maskierung angewendet. >> python get_mirrorwic_traindata.py
--data [input data]
--lg [language]
--random_er [random erasing length]Z.B.
>> python get_mirrorwic_traindata.py
--data ./train_data/en_wiki.txt
--lg en
--random_er 10 >> cd train_scripts
>> bash ./mirror_sentence.sh [CUDA] [training data] [base model] [dropout]Z.B.
>> bash ./mirror_wic.sh 1,0 ../train_data/en_wiki.txt.mirror.wic.re10 bert-base-uncased 0.4Laden Sie hier die Bewertungsdaten herunter und legen Sie den Ordner in das Stammverzeichnis.
Dann rennen:
>> cd evaluation_scripts
>> bash ./eval.sh [task] [model] [cuda] [task] : wic , wic-tsv , usim , cosimlex , wsd , am2ico , xlwic
Z.B.
>> bash ./eval.sh usim cambridgeltl/mirrorwic-bert-base-uncased 0Sie können die spiegelwischen Einbettungen erhalten, indem Sie Folgendes ausführen:
>> from evaluation_scripts . src . helpers import get_embed
>> from transformers import AutoTokenizer , AutoModel
>> model = AutoModel . from_pretrained ( 'cambridgeltl/mirrorwic-bert-base-uncased' )
>> tokenizer = AutoTokenizer . from_pretrained ( 'cambridgeltl/mirrorwic-bert-base-uncased' )
>> texts = [ 'This is a [ sample ] .' , 'This is another [ sample ] .' ] #target words are indicated by brackets
>> embeddings = get_embed ( texts , tokenizer , model , flag = 'token' , layer_start = 9 , layer_end = 13 , maxlen = 64 ) # get the average embedding of the top 4 layers (layer 9 to layer 13) @inproceedings { liu2021mirrorwic ,
title = { MirrorWiC: On Eliciting Word-in-Context Representations from Pretrained Language Models } ,
author = { Liu, Qianchu and Liu, Fangyu and Collier, Nigel and Korhonen, Anna and Vuli{'c}, Ivan } ,
booktitle = " Proceedings of the 25rd Conference on Computational Natural Language Learning (CoNLL) "
year= { 2021 }
}Der Code wird auf der Grundlage von Mirror-Bert geändert.