Deep Learning Academy · Lektion

Positionskodning för ordning

För in sekvenspositionen i tokenarna

Lektion 3 av 413 steg

Positionskodning för ordning är en gratis lektion i Deep Learning Academy på CoddyKit. Detta är lektion 3 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.

Attention ignorerar ordning

Self-attention behandlar en mening som en samling token. Blanda orden så förändras matematiken knappt alls, vilket innebär att modellen saknar en inbyggd känsla för ordning.

Ordningen bär på betydelse

Men ordningen spelar roll: "dog bites man" är inte "man bites dog". Vi måste ge modellen någon signal om varje tokens position.

Addera, lägg inte till

Tricket är att addera en positionsvektor direkt till varje tokens inbäddning. Formen är densamma, så attention ser innehåll och plats sammansmälta.

x = token_emb + pos_emb

Sinusformad kodning

Den ursprungliga transformatorn använde fasta sinus- och cosinusvågor med olika frekvenser, ett mönster per dimension, för att markera varje position.

Varför sinusvågor

En blandning av frekvenser ger varje position ett unikt fingeravtryck, och de jämna vågorna låter modellen generalisera till längder den aldrig såg under träningen.

Formeln

Jämna dimensioner använder sinus och udda dimensioner cosinus, medan våglängden växer över dimensionerna. Det är hela receptet för kodningen.

pe[:, 0::2] = torch.sin(pos / div)
pe[:, 1::2] = torch.cos(pos / div)

Relativt avstånd

En trevlig bonus är att förskjutningen mellan två positioner är lätt att uttrycka med sinusvågor, vilket hjälper attention att resonera om relativt avstånd.

Inlärda positioner

Moderna modeller hoppar ofta över sinusvågor och använder en inlärd embedding-tabell, med en träningsbar vektor per position, precis som ordinbäddningar.

self.pos_emb = nn.Embedding(max_len, d_model)

Fasta kontra inlärda

Fasta sinusvågor extrapolerar till nya längder utan extra kostnad; inlärda tabeller passar era data men är begränsade till den maximala längd ni tränade på.

Rotationskodning

Nyare transformatorer föredrar rotary-positionskodning, som roterar query- och key-vektorer med en vinkel kopplad till positionen och bygger in ordningen direkt i attention.

Var den hamnar

Oavsett vilket schema ni väljer matas positionsinformationen in en gång vid indata, innan det första attentionlagret körs.

Snabb kontroll

Låt oss kontrollera varför positionskodning finns.

Sammanfattning

Ni har lärt er att attention ignorerar ordning, så vi adderar positionskodningar – sinusformade, inlärda eller rotary – för att visa token var de befinner sig. Bra gjort!

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 ”Positionskodning för ordning” gratis?

Ja – hela texten till ”Positionskodning för ordning” 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 ”Positionskodning för ordning”?

För in sekvenspositionen i tokenarna 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 3 av 4.

Hur lång tid tar lektionen ”Positionskodning för ordning”?

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