Deep Learning Academy · Lezione

Sovrapporre un blocco encoder Transformer

Attention, feedforward e normalizzazioni

Lezione 4 di 413 passaggi

Sovrapporre un blocco encoder Transformer è una lezione Deep Learning Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Deep Learning Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Deep Learning Academy include 4 lezioni in totale.

Il componente fondamentale

Un transformer è semplicemente un blocco encoder ripetuto. Imparando il blocco, si comprende l’intera architettura, dai modelli più piccoli a quelli più grandi.

Due sottolivelli

Ogni blocco ha due parti: un sottolivello di multi-head attention, seguito da una piccola rete feedforward. Entrambi sono racchiusi da connessioni residuali e normalizzazione.

Prima l’attention

Il blocco inizia con la self-attention, che consente a ogni token di incorporare il contesto dal resto della sequenza prima di qualsiasi ulteriore elaborazione.

attn_out, _ = self.attn(x, x, x)

La connessione residuale

Una connessione residuale somma l’input del sottolivello al suo output. Questa scorciatoia consente ai gradienti di propagarsi e mantiene addestrabili le architetture profonde.

x = x + attn_out

Normalizzazione dei livelli

Dopo aver aggiunto la connessione residuale, la layer norm ridimensiona le caratteristiche di ogni token secondo una distribuzione stabile, rendendo più regolare l’addestramento tra i livelli.

x = self.norm1(x)

La rete feedforward

Segue una rete feedforward indipendente dalla posizione: si espande fino a una dimensione nascosta più ampia, si applica una non linearità e poi si proietta nuovamente verso il basso.

ff = nn.Sequential(nn.Linear(d, 4*d), nn.GELU(), nn.Linear(4*d, d))

Elaborazione per token

Il livello feedforward tratta ogni token indipendentemente. L’attention ha condiviso le informazioni; questo passaggio perfeziona ogni token separatamente.

Seconda connessione residuale e normalizzazione

L’output feedforward riceve lo stesso trattamento: una somma residuale più un’altra layer norm, completando il blocco.

x = self.norm2(x + ff(x))

Impilarli in profondità

Impilando molti blocchi identici, il modello costruisce rappresentazioni più ricche livello dopo livello. La profondità è alla base della potenza dei transformer.

layers = nn.ModuleList([Block(d) for _ in range(N)])

Pre-Norm o Post-Norm

Molti modelli moderni applicano la normalizzazione dei livelli prima di ogni sottolivello invece che dopo. La pre-normalizzazione garantisce un addestramento più stabile nelle architetture molto profonde.

Usare i componenti integrati

PyTorch mette a disposizione nn.TransformerEncoderLayer e nn.TransformerEncoder, così può assemblare un'intera pila in appena un paio di righe.

layer = nn.TransformerEncoderLayer(d_model, nhead)
enc = nn.TransformerEncoder(layer, num_layers=6)

Verifica rapida

Ripassiamo i componenti di un blocco encoder.

Riepilogo

Ha assemblato un blocco encoder: attenzione, connessione residua, normalizzazione, rete feedforward, connessione residua, normalizzazione. Ne impili diversi in profondità e ottiene un transformer. Ottimo lavoro!

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Sovrapporre un blocco encoder Transformer» è gratuita?

Sì — il testo completo di «Sovrapporre un blocco encoder Transformer» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Deep Learning Academy, passa a CoddyKit PRO. Il corso Deep Learning Academy include 4 lezioni in totale.

Cosa imparerò in «Sovrapporre un blocco encoder Transformer»?

Attention, feedforward e normalizzazioni Eserciti Deep Learning Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Deep Learning Academy?

Non è richiesta alcuna esperienza precedente. Deep Learning Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Sovrapporre un blocco encoder Transformer»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Deep Learning Academy?

Sì. Ogni lezione Deep Learning Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Self-attention: query, key e value
  2. Prodotto scalare scalato e multi-head
  3. Codifica posizionale per l'ordine
  4. Sovrapporre un blocco encoder Transformer
← Torna a Deep Learning Academy