Positionele codering voor volgorde
Voeg de positie in de reeks toe aan tokens.
Positionele codering voor volgorde is een gratis Deep Learning Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Deep Learning Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Deep Learning Academy bevat in totaal 4 lessen.
Attention negeert de volgorde
Self-attention behandelt een zin als een verzameling tokens. Herschik de woorden en de wiskunde verandert nauwelijks, dus het model heeft geen ingebouwd gevoel voor volgorde.
Volgorde draagt betekenis
Maar volgorde is belangrijk: "dog bites man" is niet "man bites dog". We moeten het model een signaal geven over de positie van elk token.
Optellen, niet toevoegen
De truc is een positievector rechtstreeks bij de embedding van elk token op te tellen. De vorm blijft gelijk, zodat attention inhoud en plaats samengevoegd ziet.
x = token_emb + pos_embSinusoïdale codering
De oorspronkelijke transformer gebruikte vaste sinus- en cosinus-golven met verschillende frequenties, één patroon per dimensie, om elke positie te markeren.
Waarom sinusgolven
Door frequenties te mengen krijgt elke positie een unieke vingerafdruk. De vloeiende golven laten het model bovendien generaliseren naar lengtes die het tijdens het trainen nooit zag.
De formule
Even dimensies gebruiken sinus, oneven dimensies cosinus, waarbij de golflengte over de dimensies groeit. Dat is het volledige recept voor deze codering.
pe[:, 0::2] = torch.sin(pos / div)
pe[:, 1::2] = torch.cos(pos / div)Relatieve afstand
Een mooie bonus: met sinusoïden is de verschuiving tussen twee posities eenvoudig uit te drukken, wat attention helpt redeneren over relatieve afstand.
Geleerde posities
Moderne modellen slaan sinusoïden vaak over en gebruiken een geleerde embeddingtabel, met één trainbare vector per positie, net als bij woordembeddings.
self.pos_emb = nn.Embedding(max_len, d_model)Vast tegenover geleerd
Vaste sinusoïden kunnen gratis extrapoleren naar nieuwe lengtes; geleerde tabellen passen bij je gegevens, maar zijn begrensd op de maximale lengte waarop je hebt getraind.
Rotatiecodering
Nieuwere transformers geven de voorkeur aan rotatiecodering voor posities. Daarbij worden query- en key-vectoren gedraaid met een aan de positie gekoppelde hoek, zodat volgorde rechtstreeks in attention wordt verwerkt.
Waar het wordt toegevoegd
Welke methode je ook kiest, positionele informatie wordt eenmalig aan de invoer toegevoegd, voordat de eerste aandachtslaag wordt uitgevoerd.
Korte controle
Laten we controleren waarom positionele codering bestaat.
Samenvatting
Je hebt geleerd dat attention de volgorde negeert. Daarom voegen we positionele coderingen toe — sinusoïdaal, geleerd of roterend — om aan te geven waar tokens staan. Goed gedaan!
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Positionele codering voor volgorde” gratis?
Ja — de volledige tekst van “Positionele codering voor volgorde” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Deep Learning Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Deep Learning Academy bevat in totaal 4 lessen.
Wat leer ik in “Positionele codering voor volgorde”?
Voeg de positie in de reeks toe aan tokens. Je oefent met Deep Learning Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Deep Learning Academy te beginnen?
Ervaring vooraf is niet nodig. Deep Learning Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Positionele codering voor volgorde”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Deep Learning Academy?
Ja. Elke les over Deep Learning Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Self-attention: query, key en value
- Geschaald dotproduct en multi-head
- Positionele codering voor volgorde
- Een Transformer-encoderblok stapelen