AdapterLayer
Et lille neuralt netværk med en flaskehals, der indsættes mellem lagene i en fortrænet model, så kun adapterlagets parametre opdateres under finjustering, mens resten af modellen forbliver frossen.
Kort fortalt
Adapterlag er små ekstra lag, der sættes ind i en stor sprogmodel, så man kan finjustere den til en ny opgave uden at ændre på hele modellen – det sparer tid og hukommelse.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /əˈdæptər ˈleɪər/
Betydninger
1- 1
Et lille neuralt netværk med en flaskehalsstruktur, der indsættes mellem lagene i en fortrænet transformer-model. Adapterlaget består typisk af en ned-projektion til en mindre dimension, en ikke-lineær aktivering og en op-projektion tilbage til den oprindelige dimension. Under finjustering opdateres kun adapterlagets parametre, mens den oprindelige models parametre forbliver frosne. Dette gør det muligt at tilpasse modellen til nye opgaver med minimal ekstra parameterplads og beregningsomkostning.
- Ved at indsætte adapterlag i BERT-modellen kunne vi finjustere den til tekstklassifikation med kun 5 % af de oprindelige parametre. — eksempel, 2024
- Adapterlag muliggør multitask-læring, hvor samme fortrænede model deles på tværs af opgaver ved at have opgavespecifikke adaptere. — forskningsartikel, 2021
Hvornår bruges det
Adapterlag bruges ofte i parameter-effektiv finjustering (PEFT) af store sprogmodeller. I stedet for at finjustere alle modelparametre indsættes adapterlag på strategiske steder i modellen, og kun disse trænes. Det gør finjustering muligt selv med begrænsede computerressourcer og reducerer risikoen for katastrofal glemsel.
Kodeeksempel
class AdapterLayer(nn.Module):
def __init__(self, d_model, bottleneck_size):
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 x + self.up(self.activation(self.down(x)))En simpel PyTorch-implementering af et adapterlag med residualforbindelse.
Oprindelse
Udtrykket 'adapter' stammer fra teknikker til at tilpasse (adaptere) en model til en ny opgave. Adapterlag blev først foreslået af Houlsby et al. (2019) i artiklen 'Parameter-Efficient Transfer Learning for NLP'.
Afledte ord
2Kilder
2- Parameter-Efficient Transfer Learning for NLP
- AdapterFusion: Non-Destructive Task Composition for Transfer Learning