Sovrapporre un blocco encoder Transformer
Attention, feedforward e normalizzazioni
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_outNormalizzazione 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!
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
- Self-attention: query, key e value
- Prodotto scalare scalato e multi-head
- Codifica posizionale per l'ordine
- Sovrapporre un blocco encoder Transformer