Quellcode für EMNLP2022-Langpapier: Parametereffizientes Tuning macht einen guten Klassifizierungskopf
arxiv
Das haben wir gefunden
- Optimieren Sie das vorab trainierte LM mit einem Parameter-effizienten Algorithmus.
- Optimieren Sie das vorab trainierte LM, indem Sie den Klassifizierungskopf als Gewicht von 1 initialisieren.
normalerweise besser als direkte Feinabstimmung.
Wir implementieren unsere Methoden auf Basis einer Open-Source-Bibliothek SwissArmyTransformers.
Schritt 1.
Laden Sie den Checkpoint von RoBERTa-Large oder BERT-Large (bereitgestellt von SwissArmyTransformer) herunter und dekomprimieren Sie ihn.
Schritt 2.
Fügen Sie den Pfad des Prüfpunktverzeichnisses zu Zeile 5 in EH-FT/roberta/scripts/finetune.sh hinzu
Schritt 3.
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
Schritt 4.
cd EH-FT/roberta
python scripts/run_multiseed.py --number-gpu 1 --gpu-s 0 --seed-per-gpu 1 --dataset rte --finetune-type 2step+bitfit
Das Skript startet [number-gpu] Prozesse mit gpu [gpu-s], gpu [gpu-s+1], ..., gpu [gpu-s + number-gpu - 1]. Jeder Prozess hat einen anderen Zufallsstartwert.
Sie können den Datensatz und den Feinabstimmungstyp ändern.
Datensatz: rte, mrpc, boolq, wic, cb, copa, wsc, qnli, stsb
Finetune-Typ | Name auf Papier |
---|---|
alle | traditionelle Feinabstimmung |
2Stufe+Kopf | LP-FT |
2step+bitfit | EH-FT(BitFit) |
2step+lora | EH-FT(LoRA) |
2Stufe+Pkt | EH-FT(PT) |
bitft/lora/pt | BitFit/LoRA/Präfix-Tuning |
Kopf | Lineare Sondierung |
Kind | Kindertuning |
Mischung | Mixout |
Schritt 4.
Siehe Ergebnisse in Läufen/mit Tensorboard.