Stable en Transformer-enkoderblokk
Oppmerksomhet pluss feedforward og normalisering
Stable en Transformer-enkoderblokk er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Deep Learning Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Byggeklossen
En transformer er ganske enkelt én encoder-blokk som gjentas. Lær deg blokken, så forstår du hele tårnet, fra små modeller til gigantiske modeller.
To underlag
Hver blokk har to deler: et attention-lag med flere hoder, etterfulgt av et lite feedforward-nettverk. Begge er pakket inn med residualkoblinger og normalisering.
Attention først
Blokken starter med self-attention, som lar hvert token blande inn kontekst fra resten av sekvensen før videre behandling.
attn_out, _ = self.attn(x, x, x)Residualkoblingen
En residualkobling legger inputen til underlaget tilbake i outputen. Denne snarveien lar gradientene flyte og gjør dype stakker trenbare.
x = x + attn_outLagernormalisering
Etter at residualen er lagt til, skalerer layer norm funksjonene til hvert token på nytt, slik at de får en stabil fordeling og treningen blir jevnere på tvers av lagene.
x = self.norm1(x)Feedforward-nettverket
Deretter kommer et posisjonsvist feedforward-nettverk: utvid til en bredere skjult størrelse, bruk en ikke-linearitet, og projiser deretter ned igjen.
ff = nn.Sequential(nn.Linear(d, 4*d), nn.GELU(), nn.Linear(4*d, d))Behandling per token
Feedforward-laget behandler hvert token uavhengig. Attention delte informasjon; dette trinnet videreutvikler hvert token for seg.
Andre residual og norm
Feedforward-outputen får samme behandling: en residual legges til, etterfulgt av enda en lagernormalisering, og dermed er blokken ferdig.
x = self.norm2(x + ff(x))Stable dem dypt
Stable mange identiske blokker, så bygger modellen rikere representasjoner lag for lag. Dybden er kilden til transformernes kraft.
layers = nn.ModuleList([Block(d) for _ in range(N)])Pre-norm kontra post-norm
Mange moderne modeller bruker layer norm før hvert sublag i stedet for etter. Pre-norm gir mer stabil trening i svært dype stakk.
Bruk den innebygde
PyTorch gir deg nn.TransformerEncoderLayer og nn.TransformerEncoder, slik at du kan sette sammen en full stakk på bare et par linjer.
layer = nn.TransformerEncoderLayer(d_model, nhead)
enc = nn.TransformerEncoder(layer, num_layers=6)Kort sjekk
La oss gå gjennom delene i en encoder-blokk.
Oppsummering
Du satte sammen en encoder-blokk: attention, residual, norm, feedforward, residual, norm. Stakk den dypt, så har du en transformer. Fantastisk arbeid!
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Stable en Transformer-enkoderblokk» gratis?
Ja – hele teksten i «Stable en Transformer-enkoderblokk» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Deep Learning Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Stable en Transformer-enkoderblokk»?
Oppmerksomhet pluss feedforward og normalisering Du øver på Deep Learning Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Deep Learning Academy?
Ingen tidligere erfaring er nødvendig. Deep Learning Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Stable en Transformer-enkoderblokk»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Deep Learning Academy-leksjonen?
Ja. Alle Deep Learning Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Selvoppmerksomhet: Query, key og value
- Skalert skalarprodukt og multi-head
- Posisjonell koding for rekkefølge
- Stable en Transformer-enkoderblokk