adapter
Adapter er en parameter-effektiv finjusteringsteknik, hvor små trænbare moduler indsættes i en forudtrænet models lag for at tilpasse den til en ny opgave uden at ændre de originale vægte.
Kort fortalt
Adapter er en lille ekstra del, der sættes ind i en stor sprogmodel, så den kan lære nye opgaver uden at skulle trænes helt forfra.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /əˈdæptər/
Betydninger
1- 1
En parameter-effektiv finjusteringsmetode, hvor små, separate neurale netværksmoduler (adaptere) indsættes mellem lagene i en forudtrænet model. Under træning opdateres kun adapterne, mens de originale vægte forbliver frosne.
- Vi brugte adaptere til at finjustere BERT på tre forskellige klassifikationsopgaver uden at gemme tre separate modeller. — forskningsartikel, 2023
- Adaptere muliggør effektiv opgavespecifik tilpasning af store sprogmodeller med minimalt hukommelsesforbrug. — forskningsartikel, 2022
Hvornår bruges det
Adapter bruges især til at finjustere store sprogmodeller (f.eks. BERT, GPT) på specifikke opgaver med begrænsede data. Det gør det muligt at tilpasse modellen til mange forskellige opgaver uden at gemme en fuld kopi af modellen for hver opgave. Adapter bliver ofte brugt i forbindelse med multitask-læring og kontinuerlig læring.
Kodeeksempel
import torch.nn as nn
class Adapter(nn.Module):
def __init__(self, d_model, bottleneck_size=64):
super().__init__()
self.down = nn.Linear(d_model, bottleneck_size)
self.activation = nn.ReLU()
self.up = nn.Linear(bottleneck_size, d_model)
def forward(self, x):
return self.up(self.activation(self.down(x))) + xEn simpel PyTorch-implementering af et adapterlag med residualforbindelse. 'd_model' er inputdimensionen, og 'bottleneck_size' er den interne flaskehalsdimension, typisk meget mindre end d_model.
Oprindelse
Ordet 'adapter' kommer fra engelsk og betyder 'tilpasningsenhed' eller 'mellemstykke'. I maskinlæring refererer det til en lille neural netværkskomponent, der 'tilpasser' en stor model til en ny opgave.
Afledte ord
2Kilder
2- Parameter-Efficient Transfer Learning for NLP
- LoRA: Low-Rank Adaptation of Large Language Models