
Wir haben Checkpoints im Umarmungsgesicht für eine leichtere Reproduktion hinzugefügt!
Wir haben Continual_Pretrain.ipynb als eigenständiges Beispiel für das Soft-Masking-Szenario hinzugefügt. Es läuft ohne GPUs gut!
Soft-Masking kann auch bei herkömmlicher kontinuierlicher Feinabstimmung funktionieren. Schauen Sie sich unser neuestes EMNLP23 -Papier an!
Sie fragen sich, ob Sie einen Black-Box-LLM anpassen können, ohne sich über das Update seiner Parameter zu sorgen? Schauen Sie sich hier unser neuestes Papier zur Abruf-Augmented-Generation (LAG) an!
Im Jahr 2021 haben wir Pycontinual eingeführt, ein unkompliziertes und flexibles Rahmen für kontinuierliches Lernen. Unsere Forschung hat von diesem Rahmen erheblich profitiert. Heute freuen wir uns, den Continuallm zu teilen, ein erweiterbares kontinuierliches Lernrahmen, das sich auf Sprachmodelle (LMS) konzentriert, um die Vorteile des kontinuierlichen Lernens (CL) in diesem Bereich aufrechtzuerhalten.
Das kontinuierliche Lernen für LMS unterscheidet sich von traditionellem CL, weil
Unser Repository enthält eine Pytorch-Implementierung einer Sammlung hochmoderner Methoden (SOTA) unter Verwendung derselben Trainings- und Evaluierungspipeline. Dieses Repository verpflichtet sich, das Gebiet des kontinuierlichen Lernens für LMS voranzutreiben. Die enthaltenen Methoden sind:
Von unserer Gruppe:
Von anderen Gruppen (noch mehr) :
Weit verbreitete Baselines für kontinuierliches Lernen:
Wir haben continual_pretrain.ipynb als eigenständiges Beispiel für das Soft-Masking-Szenario hinzugefügt. Es läuft ohne GPUs gut!
Wenn es um das kontinuierliche Lernen von Sprachmodellen (LMS) geht, ist das Finden geeigneter Datensätze von entscheidender Bedeutung. Die Datensätze, die wir bereitstellen, halten die folgenden Prinzipien ein:
Wir geben unseren Datensatz mit 6 verschiedenen Domänen frei, die jeweils von der entsprechenden Endaufgabe begleitet werden. Der Datensatz finden Sie hier. Im Folgenden finden Sie einige Statistiken für jede Domäne:
| Domain Corpus | Größe | Endaufgabe | Aufgabe | #Ausbildung | #Testen | #Klassen |
|---|---|---|---|---|---|---|
| Yelp Restaurant | 758 MB | Restaurant | Aspektgefühl Klassifizierung (ASC) | 3.452 | 1,120 | 3 |
| Amazon Telefon | 724MB | Telefon | Aspektgefühl Klassifizierung (ASC) | 239 | 553 | 2 |
| Amazon -Kamera | 319MB | Kamera | Aspektgefühl Klassifizierung (ASC) | 230 | 626 | 2 |
| ACL -Papiere | 867MB | ACL | Klassifizierung von Zitierabsichten | 1.520 | 421 | 6 |
| KI -Papiere | 507 MB | Ai | Beziehungklassifizierung | 2.260 | 2.388 | 7 |
| PubMed Papers | 989MB | PubMed | Vorhersage der chemischen Proteinwechselwirkung | 2.667 | 7.398 | 13 |
Die Architektur von Continuallm folgt weitgehend der von Pycontinual, CPT und DGA.
conda create --name continuallm --file requirements.txt
transformers==4.17.0 und adapter-transformers==3.0.1 . Wir empfehlen, diese spezifischen Versionen zu verwenden, da die Verwendung anderer Versionen zu unerwarteten Fehler führen kann.
Hier geschieht kontinuierliches Lernen. Wir werden eine Sequnce von Domänen lernen.
max_samples=640000
for idrandom in 0
do
for pt_task in 0 1 2 3 4 5
do
python -m torch.distributed.launch --nproc_per_node 4 --use_env posttrain.py
--per_device_train_batch_size 62
--fp16
--max_seq_length 164
--max_samples ${max_samples}
--idrandom ${idrandom}
--ntasks 6
--pt_task ${pt_task}
--baseline ' das '
done
done --idrandom : Wählen Sie die Aufgabensequenz. Weitere Informationen finden Sie in ./sequences .--baseline : Siehe Einführung für verfügbare Basismodelle (siehe choices in config.py ). Nach dem konitinuellen Lernen von LMS können wir das Performance nun bewerten, indem wir Endaufgaben individuell ausführen.
max_samples=640000
seed=(2021 111 222 333 444 555 666 777 888 999)
for round in 0 ; do
for idrandom in 0 ;
do
for pt_task in 0 1 2 3 4 5
do
for ft_task in $( seq 0 ${pt_task} ) ;
do
python finetune.py
--max_seq_length 164
--pt_task ${pt_task}
--ft_task ${ft_task}
--idrandom ${idrandom}
--ntasks 6
--max_samples ${max_samples}
--seed ${seed[$round]}
--baseline ' das '
done
done
done
done Für diejenigen, die sich ausschließlich am resultierenden Modell interessieren oder das Modell mit eigenen Daten pro Schulung fortsetzen möchten, haben wir gute Nachrichten! Wir bieten Kontrollpunkte durch das umarme Gesicht.
Sie können unser kontinuierlich nachgebildetes Modell mit transformers von Huggingface problemlos importieren!
import torch
from transformers import AutoTokenizer , AutoModelForSequenceClassification
# Import our model. The package will take care of downloading the models automatically
tokenizer = AutoTokenizer . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" )
model = AutoModelForSequenceClassification . from_pretrained ( "UIC-Liu-Lab/DAS-Rest2Cam" , trust_remote_code = True )
# Tokenize input texts
texts = [
"There's a kid on a skateboard." ,
"A kid is skateboarding." ,
"A kid is inside the house."
]
inputs = tokenizer ( texts , padding = True , truncation = True , return_tensors = "pt" )
# Get the model output!
res = model ( ** inputs ) Wenn Sie auf ein Problem stoßen, wenn Sie die Modelle direkt durch die API von Huggingface laden, können Sie die Modelle auch manuell aus dem Repo herunterladen und model = AutoModel.from_pretrained({PATH TO THE DOWNLOAD MODEL}) verwenden.
Die kontinuierliche Sequenz vor dem Training ist die erste Sequenz in ./sequences/posttrain (von Restaurant zur Kamera ).
Wenn Sie an den Wichtigkeitsdateien interessiert sind, lesen Sie bitte before_distill0 und after_mlm{domain_id} . before die vor der Vorausbildung berechnete Bedeutung bedeutet, die nur einmal vor der ersten Domäne für allgemeine vorgebrachte Kenntnisse durchgeführt wird. after Angabe der Bedeutung, die nach dem Vorbild von Domain_id berechnet wurde.
Wir schätzen Ihren Akt des Starrens und Zitierens sehr. Ihre Liebe zum Detail und Ihre Anerkennung wird sehr geschätzt.
@inproceedings { ke2022dgs ,
title = { Continual Learning of Language Models } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Konishi, Tatsuya and Kim, Gyuhak and Liu, Bing } , booktitle = { International Conference on Learning Representations (ICLR) } , year = { 2023 } }
@inproceedings { ke2022dga ,
title = { Adapting a Language Model While Preserving its General Knowledge } , author = { Ke, Zixuan and Shao, Yijia and Lin, Haowei and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } }
@inproceedings { ke2022continual ,
title = { Continual Training of Language Models for Few-Shot Learning } , author = { Ke, Zixuan and Lin, Haowei and Shao, Yijia and Xu, Hu and Shu, Lei, and Liu, Bing } , booktitle = { Empirical Methods in Natural Language Processing (EMNLP) } , year = { 2022 } } Wenn Sie Fragen zum Code haben, senden Sie bitte eine E -Mail an Zixuan Ke, Yijia Shao oder Haowei Lin. Alternativ können Sie ein Problem eröffnen. Wir möchten Bing Liu, Hu Xu und Lei Shu für ihre wertvollen Kommentare und Meinungen bedanken