Deep Learning Academy · Lektion

Skalad skalärprodukt och multi-head

Använd attention parallellt i delrum

Lektion 2 av 413 steg

Skalad skalärprodukt och multi-head är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Deep Learning Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Skalningsproblemet

När key-vektorerna är långa blir skalärprodukternas poäng enorma och softmax blir knivskarp. Det dödar gradienterna, så vi måste skala ned poängen.

Dividera med roten ur d

Lösningen är att dividera varje poäng med kvadratroten ur key-dimensionen. Det håller talen inom ett stabilt intervall före softmax.

scores = (q @ k.transpose(-2, -1)) / d_k ** 0.5

Skalad skalärproduktsattention

Sätt ihop det: beräkna poäng, skala, använd softmax och blanda sedan values. Detta recept i fyra steg är den berömda scaled dot-product attention.

w = scores.softmax(dim=-1)
out = w @ v

Ett huvud, ett perspektiv

Ett enda attentionhuvud lär sig bara ett sätt att relatera token till varandra. Men språk har många relationer samtidigt, så ett huvud är begränsande.

Många huvuden parallellt

Multi-head attention kör flera attentionhuvuden sida vid sida, vart och ett med egna Q-, K- och V-projektioner, där varje huvud fokuserar på ett annat delrum.

Dela upp dimensionen

Ni gör inte modellen bredare. Ni delar upp modelldimensionen mellan huvudena, så att varje huvud arbetar med en mindre del parallellt.

d_head = d_model // num_heads

Ändra form till huvuden

För att köra huvudena parallellt ändrar ni form på Q, K och V för att lägga till en axel för huvuden och utför sedan attention oberoende inom varje huvud.

q = q.view(B, T, H, d_head).transpose(1, 2)

Olika mönster

Ett huvud kan följa grammatik, medan ett annat kopplar ett pronomen till sitt substantiv. Flera huvuden fångar de olika mönster som samma indata innehåller.

Sammanfoga huvudena

När varje huvud har producerat sina utdata sammanfogar ni dem till en enda vektor med den ursprungliga modelldimensionen.

out = out.transpose(1, 2).reshape(B, T, d_model)

Slutlig projektion

En sista utdataprojektion blandar de sammanfogade resultaten från huvudena, så att modellen kan kombinera det som varje huvud upptäckte.

out = self.W_o(out)

Använd den inbyggda

I praktiken levererar PyTorch nn.MultiheadAttention, så ni behöver sällan skriva omformningarna för hand. Att känna till matematiken hjälper ändå vid felsökning.

attn = nn.MultiheadAttention(d_model, num_heads)

Snabb kontroll

Låt oss bekräfta varför vi skalar poängen.

Sammanfattning

Ni har sett hur skalning stabiliserar softmax och hur multi-head attention delar upp arbetet mellan parallella huvuden, som sedan sammanfogas och projiceras. Ni gör stora framsteg!

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Skalad skalärprodukt och multi-head” gratis?

Ja – hela texten till ”Skalad skalärprodukt och multi-head” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Deep Learning Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Deep Learning Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skalad skalärprodukt och multi-head”?

Använd attention parallellt i delrum Ni övar på Deep Learning Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Deep Learning Academy?

Du behöver inga förkunskaper. Utbildningen i Deep Learning Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Skalad skalärprodukt och multi-head”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Deep Learning Academy-lektionen?

Ja. Varje Deep Learning Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Self-attention: query, key och value
  2. Skalad skalärprodukt och multi-head
  3. Positionskodning för ordning
  4. Stapla ett Transformer-encoderblock
← Tillbaka till Deep Learning Academy