prefix tuning
En parameter-effektiv finjusteringsteknik, hvor et lille antal trænbare præfikstokens indsættes foran inputtet i hvert Transformerlag, mens de oprindelige modelvægte fryses.
Kort fortalt
En metode til at tilpasse store sprogmodeller til nye opgaver uden at genoptræne hele modellen – i stedet træner man kun nogle få ekstra tokens, der sættes foran inputtet.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En del af parameter-effektiv finjustering (PEFT), hvor man tilføjer et lille sæt af trænbare kontinuerte præfiks-vektorer til hvert Transformerlag. Modellens oprindelige vægte forbliver uændrede, og kun præfiksets parametre optimeres under træning. Dette reducerer antallet af trænbare parametre betydeligt og muliggør opgaveadaptation med minimal hukommelses- og beregningsomkostning.
- Ved at anvende prefix tuning kan vi tilpasse GPT-3 til summarisering uden at ændre dens oprindelige vægte. — Eksempel
- Prefix tuning er særligt effektivt i få-skuds-læring, da det kræver meget få opgave-specifikke parametre. — Eksempel
Hvornår bruges det
Bruges typisk i naturlig sprogforståelse og -generering, hvor man ønsker at finjustere en stor model som GPT eller BERT til en specifik opgave med minimal ressourceforbrug. Det er særligt anvendeligt, når man har begrænset data eller ønsker at bevare den oprindelige models viden.
Kodeeksempel
from peft import PrefixTuningConfig, get_peft_model
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("gpt2")
config = PrefixTuningConfig(task_type="CAUSAL_LM", num_virtual_tokens=20)
model = get_peft_model(model, config)
# Now only the prefix parameters are trainableEksempel på opsætning af prefix tuning med Hugging Face PEFT-biblioteket. Kun præfiksparametrene (ca. 20 tokens) trænes, mens GPT-2's originale vægte fryses.
Oprindelse
Termen 'prefix tuning' blev introduceret af Li & Liang (2021) i artiklen 'Prefix-Tuning: Optimizing Continuous Prompts for Generation'. Præfikset refererer til de ekstra tokens, der sættes foran inputtet.