Deep Learning Academy · leksjon

Stable en Transformer-enkoderblokk

Oppmerksomhet pluss feedforward og normalisering

Leksjon 4 av 413 trinn

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_out

Lagernormalisering

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!

Gratis å komme i gang

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

  1. Selvoppmerksomhet: Query, key og value
  2. Skalert skalarprodukt og multi-head
  3. Posisjonell koding for rekkefølge
  4. Stable en Transformer-enkoderblokk
← Tilbake til Deep Learning Academy