Reti neurali artificiali e deep learning: Reti avanzate e trasformatori

Dai fondamenti dell’architettura Transformer fino alle varianti come BERT, GPT e Vision Transformer, passando per i modelli multimodali come CLIP e Flamingo: questa sezione di FAQ esplora i principi chiave che hanno rivoluzionato l’IA moderna. Una guida che unisce teoria e applicazioni, ideale per studenti, ricercatori e professionisti che vogliono comprendere meglio le architetture di deep learning, applicarle in progetti reali e restare aggiornati sulle innovazioni più rilevanti nel campo dell’intelligenza artificiale.

Come funziona l'architettura Transformer e il meccanismo di self-attention?

L'architettura Transformer ha rivoluzionato il deep learning grazie al meccanismo di self-attention, che consente a ogni token di una sequenza di "guardare" tutti gli altri token e pesarne l'importanza relativa. Questo supera i limiti delle reti ricorrenti (RNN) che elaboravano i dati in modo sequenziale e delle CNN che avevano receptive field limitati. Con il self-attention, l'informazione può fluire globalmente attraverso la sequenza, permettendo parallelizzazione ed efficienza.

Il meccanismo di self-attention, introdotto nell'originale paper "Attention Is All You Need" del 2017, funziona attraverso tre componenti principali: query (Q), key (K) e value (V). Ogni input viene moltiplicato per tre matrici di peso apprese durante l'addestramento per generare questi vettori. L'attenzione viene calcolata come la funzione softmax del prodotto scalato tra query e key, diviso per la radice quadrata della dimensionalità delle key per stabilizzare i gradienti. Matematicamente, questo si esprime come: Attention(Q, K, V) = softmax(QK^T/√d_k)V.

La forza del self-attention risiede nella sua capacità di catturare dipendenze a lungo raggio calcolando l'attenzione tra tutte le parole in una sequenza simultaneamente. A differenza dei modelli tradizionali che processano le parole una alla volta, il self-attention permette al modello di vedere l'intera sequenza contemporaneamente, rendendo possibile identificare quali parole sono più rilevanti l'una per l'altra. Questo meccanismo è particolarmente efficace per compiti di Natural Language Processing come la traduzione automatica e la generazione di testo.

Multi-Head Attention: suddivide lo spazio delle rappresentazioni in più "teste" di attenzione che catturano relazioni diverse in parallelo. Ogni testa di attenzione ha le proprie matrici di query, key e value, permettendo al modello di catturare diversi tipi di relazioni tra i token. Le multiple teste possono concentrarsi su diversi aspetti come le relazioni sintattiche o semantiche. I risultati di tutte le teste vengono concatenati e proiettati attraverso una matrice di output finale.

Residual Connections + Normalization: garantiscono stabilità del training e migliorano la propagazione del gradiente. Senza le connessioni residuali, l'informazione sulla sequenza originale verrebbe persa dopo il primo layer di attention. Il Layer Normalization svolge un ruolo importante nell'architettura Transformer abilitando un training più veloce e fornendo una piccola regolarizzazione. È preferito al Batch Normalization perché non dipende dalla batch size e funziona meglio con dati linguistici che hanno alta varianza.

Feed-Forward Layers: reti dense applicate a ogni posizione per trasformare le rappresentazioni apprese. Questi strati MLP utilizzano una trasformazione Lineare→ReLU→Lineare e permettono al modello di "post-processare" le nuove informazioni aggiunte dal precedente Multi-Head Attention. La dimensionalità interna dell'MLP è tipicamente 2-8 volte più grande di d_model per fornire maggiore capacità espressiva.

Quali sono le varianti di Transformer (BERT, GPT, Vision Transformer, Swin Transformer)?

Il framework Transformer è stato esteso in numerose varianti specializzate per diversi domini e compiti. Le differenze fondamentali tra queste architetture riguardano il tipo di attenzione utilizzata, la direzione di processamento e il dominio di applicazione.

BERT: modello encoder-only pre-addestrato con masking dei token, ottimale per tasks di comprensione del linguaggio (NLP). BERT utilizza un'architettura encoder-only che può guardare sia il contesto sinistro che destro simultaneamente attraverso l'attenzione bidirezionale. Durante il training, BERT utilizza il Masked Language Modeling (MLM) che predice parole mascherate utilizzando il contesto completo. Questo lo rende superiore per compiti che richiedono comprensione del contesto come sentiment analysis, question answering, named entity recognition e classificazione di testi. L'output di BERT sono classificazioni, embeddings o risposte estratte.

GPT: modello decoder-only autoregressivo, eccellente per generazione di testo e ragionamento sequenziale. GPT utilizza masked multi-head attention che impedisce ai token di vedere token futuri. Questo masking, combinato con il fatto che gli embeddings di output sono sfasati di una posizione, garantisce che le predizioni per la posizione i dipendano solo da output noti a posizioni minori di i. GPT eccelle nella generazione di testi poiché naturalmente impara a predire la prossima parola in una sequenza. È ideale per scrittura di storie, chatbot, generazione di codice e compiti creativi.

Vision Transformer (ViT): adatta i Transformer alle immagini dividendo l'input in patch e trattandoli come token. ViT divide un'immagine in patch di dimensioni fisse (tipicamente 16x16 pixel) e le appiattisce in vettori 1D. Ogni patch viene proiettata linearmente attraverso un layer di patch embedding, spesso implementato come una convoluzione 2D con kernel size e stride pari alla dimensione del patch. Un token speciale [CLS] viene aggiunto all'inizio della sequenza per la classificazione. Le posizioni delle patch vengono codificate attraverso positional embeddings apprendibili che vengono sommati agli embeddings delle patch. La rappresentazione finale del token [CLS] viene utilizzata per la classificazione attraverso un MLP.

Swin Transformer: introduce attenzione locale a finestra scorrevole, scalabile per immagini ad alta risoluzione. Swin Transformer affronta le sfide nell'adattare i Transformer dalla linguistica alla visione, come le grandi variazioni nella scala delle entità visive e l'alta risoluzione dei pixel. Utilizza uno schema di windowing spostato che porta maggiore efficienza limitando il calcolo della self-attention a finestre locali non sovrapposte, consentendo allo stesso tempo connessioni tra finestre. L'architettura gerarchica ha flessibilità per modellare a varie scale e ha complessità computazionale lineare rispetto alla dimensione dell'immagine. Le finestre spostate collegano le finestre del layer precedente, fornendo connessioni tra di esse che migliorano significativamente la capacità di modellazione.

Cosa sono i modelli encoder-decoder e come vengono usati in seq2seq?

I modelli encoder-decoder sono architetture tipiche del paradigma sequence-to-sequence (seq2seq), in cui l'encoder comprime l'input in una rappresentazione compatta e il decoder la trasforma in una sequenza di output. Questi modelli sono stati fondamentali per risolvere compiti di trasformazione sequenziale prima dell'avvento degli approcci basati su Transformer puri.

L'architettura encoder-decoder è lo standard paradigma di modellazione per compiti sequence-to-sequence. Mentre i modelli di linguaggio stimano la probabilità incondizionata p(y) di una sequenza, i modelli seq2seq devono stimare la probabilità condizionata p(y|x) di una sequenza y dato un input x. Questo li rende Conditional Language Models (CLM) che operano similarmente ai modelli di linguaggio ma ricevono informazioni addizionali dalla sorgente x.

Il modello più semplice encoder-decoder consiste in due RNN (LSTM): uno per l'encoder e un altro per il decoder. L'RNN encoder legge la frase sorgente e lo stato finale viene utilizzato come stato iniziale dell'RNN decoder. La speranza è che lo stato finale dell'encoder "codifichi" tutte le informazioni sulla sorgente, e il decoder possa generare la frase target basandosi su questo vettore. Questo approccio presenta il problema del "collo di bottiglia" poiché il vettore di codifica ha dimensioni fisse, quindi per sequenze di input lunghe, l'informazione tende a essere persa.

Encoder: estrae e comprime le caratteristiche rilevanti dalla sequenza di input. L'encoder RNN processa l'intera sequenza di input, come una frase in inglese per la traduzione automatica, e la trasforma in una rappresentazione numerica a dimensioni fisse chiamata vettore di contesto o "thought vector". Lo stato nascosto finale dell'encoder contiene informazioni cruciali sull'input del linguaggio sorgente. Tradizionalmente, l'encoder è una Rete Neurale Ricorrente (RNN) o una variante più avanzata come Long Short-Term Memory (LSTM), che è abile nel catturare informazioni sequenziali.

Decoder: genera passo dopo passo la sequenza target, utilizzando meccanismi di attenzione per concentrarsi sulle parti rilevanti dell'input. Il decoder prende il vettore di contesto dall'encoder come input iniziale e il suo compito è generare la sequenza di output un elemento alla volta. Per esempio, in un compito di traduzione, genererebbe la frase tradotta parola per parola. L'output di ogni passo viene reinserito nel decoder nel passo successivo, permettendogli di generare una sequenza coerente. Questo processo continua fino a quando viene prodotto un token speciale di fine sequenza.

Esempi di applicazioni includono traduzione automatica, riassunto di testi, generazione di didascalie per immagini. I modelli seq2seq sono progettati per trasformare una sequenza di input in una sequenza di output, dove le lunghezze dell'input e dell'output possono differire. Questa flessibilità li rende eccezionalmente potenti per una vasta gamma di compiti in Natural Language Processing e oltre. L'introduzione del meccanismo di attenzione nel 2014 ha risolto il problema del collo di bottiglia permettendo al decoder di accedere a tutti gli elementi della sequenza a ogni passo temporale.

Qual è il ruolo delle meccaniche di positional encoding?

Poiché i Transformer non hanno un'elaborazione sequenziale intrinseca, utilizzano il positional encoding per incorporare informazioni sull'ordine dei token. I modelli Transformer trattano l'input come un insieme di token indipendentemente dalle loro posizioni, quindi gli encoding posizionali sono cruciali per incorporare l'ordine della sequenza. Senza questo meccanismo, il modello non sarebbe in grado di distinguere tra sequenze con gli stessi token ma in ordine diverso.

L'encoding posizionale sinusoidale originale, introdotto nel paper "Attention is All You Need", utilizza funzioni seno e coseno di frequenze diverse per codificare unicamente ogni posizione. La formula matematica è: PE(pos, 2i) = sin(pos/10000^(2i/d_model)) e PE(pos, 2i+1) = cos(pos/10000^(2i/d_model)), dove pos è la posizione del token nella sequenza, i è l'indice della dimensione, e d_model è la dimensione totale dell'embedding. Questo schema genera un encoding posizionale unico per ogni posizione, con il pattern che permette al modello di imparare a prestare attenzione basandosi su posizioni relative.

Un aspetto affascinante dell'encoding sinusoidale è che codifica intrinsecamente la posizione relativa come rotazione. La derivazione matematica mostra che il risultato dello schema di encoding progettato nel 2017 era già l'encoding di posizioni relative come rotazioni, anticipando di 4 anni l'approccio RoPE (Rotary Position Embedding). Le frequenze seguono una progressione geometrica che diminuisce con l'indice di dimensione, permettendo al modello di distinguere facilmente tra posizioni vicine e lontane.

Encoding sinusoidali: assegnano una combinazione di sinusoidi di frequenze diverse a ciascuna posizione. Questo metodo non appreso e deterministico utilizza funzioni seno e coseno di lunghezze d'onda variabili. La motivazione chiave era creare una rappresentazione posizionale che permettesse la generalizzazione a sequenze più lunghe di quelle viste durante l'addestramento. Il periodo delle funzioni sinusoidali va da 2π a 10000·2π, creando una rappresentazione unica per ogni posizione fino a lunghezze di sequenza molto grandi. L'utilizzo di sia seno che coseno in tandem produce una relazione lineare tra due posizioni codificate, che si rivela essere matematicamente equivalente a una matrice di rotazione.

Embedding apprendibili: rappresentazioni apprese durante il training che codificano le posizioni in modo flessibile. Molti modelli pre-addestrati come BERT utilizzano embeddings posizionali apprendibili trattando ogni indice di posizione p come un embedding vettoriale discreto apprendibile. Questo approccio è generico ed efficace per adattare modelli Transformer pre-addestrati a domini e compiti specifici con vari comportamenti di sensibilità spaziale. Tuttavia, per compiti più sfidanti come la comprensione di documenti, le prestazioni dei modelli Transformer con approcci di encoding posizionale esistenti diminuiscono significativamente su dati rumorosi con informazioni di ordine inaffidabili. Recentemente sono stati proposti metodi ibridi che combinano l'apprendibilità degli embeddings con la struttura matematica degli encoding sinusoidali.

Questi meccanismi permettono al modello di distinguere tra sequenze con gli stessi token ma in ordine diverso. Gli encoding posizionali vengono sommati elemento per elemento agli embeddings dei token, così che la rappresentazione di ogni token rifletta non solo il suo significato intrinseco ma anche la sua posizione nella sequenza. Per i Vision Transformer, gli encoding posizionali sono particolarmente importanti perché le patch di immagine vengono trattate come una sequenza di token, e la posizione spaziale deve essere preservata per mantenere la struttura dell'immagine.

Come implementare modelli multimodali (CLIP, Flamingo, BLIP)?

I modelli multimodali integrano diverse sorgenti informative (testo, immagini, audio) per costruire rappresentazioni congiunte e più ricche. Questi modelli hanno rivoluzionato il campo dell'AI permettendo una comprensione più naturale e versatile che emula il modo in cui gli esseri umani apprendono da multiple modalità.

CLIP: allinea testo e immagini in uno spazio di embedding condiviso, permettendo ricerca e classificazione zero-shot. CLIP utilizza un'architettura dual-encoder dove un encoder elabora immagini (Vision Transformer o ResNet) e un altro elabora testi (Transformer basato su BERT). Entrambi gli encoder mappano i loro input in uno spazio di embedding condiviso dove immagini e testi semanticamente simili sono posizionati vicini. L'idea centrale è l'apprendimento contrastivo: durante l'addestramento, il modello impara a massimizzare la similarità tra embeddings di coppie immagine-testo corrette mentre minimizza la similarità per coppie incorrette. CLIP è stato addestrato su 400 milioni di coppie immagine-testo pubblicamente disponibili, permettendogli di generalizzare su un'ampia gamma di concetti visivi e testuali senza fine-tuning specifico per task. Il processo di training coinvolge l'alimentazione di batch di coppie immagine-testo nei due encoder, calcolando matrici di similarità coseno e applicando una funzione di perdita contrastiva.

Flamingo: combina Transformer multimodali con memoria contestuale, capace di comprendere sequenze miste di immagini e testo. Flamingo è un Visual Language Model (VLM) progettato per il few-shot learning che può adattarsi rapidamente a nuovi compiti usando solo pochi esempi annotati. Le innovazioni architetturali chiave permettono di: (i) collegare potenti modelli pre-addestrati solo visivi e solo linguistici, (ii) gestire sequenze di dati visivi e testuali arbitrariamente interlacciati, e (iii) ingerire senza soluzione di continuità immagini o video come input. Grazie alla loro flessibilità, i modelli Flamingo possono essere addestrati su corpora web multimodali su larga scala contenenti testo e immagini arbitrariamente interlacciate, chiave per dotarli di capacità di apprendimento few-shot in contesto. Flamingo stabilisce un nuovo stato dell'arte nel few-shot learning su 16 compiti multimodali di comprensione linguistica e di immagini/video, spesso superando metodi fine-tuned che utilizzano migliaia di volte più dati task-specifici.

BLIP: ottimizzato per generazione e comprensione di didascalie, integra visione e linguaggio con pre-training multimodale. BLIP (Bootstrapping Language-Image Pre-training) è un framework VLP unificato che trasferisce flessibilmente sia a compiti di comprensione che di generazione visione-linguaggio. BLIP utilizza efficacemente i dati web rumorosi attraverso il bootstrapping delle didascalie, dove un captioner genera didascalie sintetiche e un filtro rimuove quelle rumorose. L'architettura MED (Multimodal mixture of Encoder-Decoder) può operare come encoder unimodale, encoder di testo basato su immagine, o decoder di testo basato su immagine. Il modello viene pre-addestrato congiuntamente con tre obiettivi visione-linguaggio: apprendimento contrastivo immagine-testo, matching immagine-testo, e modellazione linguistica condizionata da immagine. BLIP raggiunge prestazioni stato dell'arte su un'ampia gamma di compiti come image-text retrieval, image captioning e VQA, dimostrando anche forte capacità di generalizzazione quando trasferito direttamente a compiti video-linguaggio in modalità zero-shot.

Reti neurali: Reti avanzate e trasformatori

Faq

Come funziona il meccanismo di self-attention nei Transformer?

Ogni token della sequenza calcola query, key e value; l’attenzione si ottiene come softmax(QKᵀ/√dₖ)V, permettendo a ciascun token di "guardare" l’intera sequenza e pesare i contributi degli altri.

Perché i Transformer hanno superato RNN e CNN?

Gli RNN soffrivano di elaborazione sequenziale e gradiente vanishing, mentre le CNN avevano receptive field limitati. Il self-attention consente parallelizzazione ed efficienza su lunghe dipendenze.

Qual è il ruolo del Multi-Head Attention?

Spezza lo spazio delle rappresentazioni in più teste indipendenti, ciascuna capace di catturare relazioni sintattiche o semantiche diverse. I risultati vengono concatenati e proiettati in un unico embedding.

In cosa differiscono BERT e GPT?

BERT è un modello encoder-only con attenzione bidirezionale ottimizzato per comprensione del linguaggio (MLM), mentre GPT è decoder-only, autoregressivo e ottimizzato per generazione sequenziale di testo.

Come funzionano i Vision Transformer (ViT)?

Un’immagine viene divisa in patch (es. 16×16 pixel), trattate come token. Ogni patch è proiettata in un embedding, con positional encoding per preservare la struttura spaziale, e un token speciale [CLS] guida la classificazione.

Che vantaggi porta l’architettura Swin Transformer?

Introduce finestre di attenzione locali scorrevoli, riducendo la complessità computazionale e garantendo scalabilità a immagini ad alta risoluzione, mantenendo relazioni tra finestre spostate.

Come funzionano i modelli encoder-decoder in seq2seq?

L’encoder comprime l’input in un vettore di contesto, il decoder genera sequenze di output condizionate. Con il meccanismo di attenzione, il decoder accede dinamicamente a tutti gli stati dell’encoder, evitando il collo di bottiglia informativo.

Perché il positional encoding è necessario nei Transformer?

I Transformer non hanno nozione di ordine intrinseca, quindi il positional encoding (sinusoidale o apprendibile) incorpora informazioni di posizione, distinguendo sequenze con gli stessi token ma in ordine diverso.

Come funziona CLIP nei modelli multimodali?

Usa due encoder separati per immagini e testo, che proiettano i dati in uno spazio di embedding condiviso. L’addestramento contrastivo allinea coppie corrette e allontana quelle incorrette, abilitando zero-shot learning.

Quali innovazioni portano Flamingo e BLIP?

Flamingo gestisce sequenze interlacciate immagine-testo per il few-shot learning multimodale, mentre BLIP ottimizza captioning e retrieval con un approccio encoder-decoder multimodale e bootstrapping dei dati rumorosi.


Author
Nicolò Caiti
I have made MarTech my profession. I specialize in artificial intelligence applied to digital marketing. In this blog, I analyze how AI is transforming the industry: improving web performance, optimizing digital strategies, and speeding up everyone’s work. With years of experience in marketing automation and managing advanced customer journeys, I share practical insights, case studies, and best practices to help everyone make the most of AI’s potential in their work. I hope you find the answers you’re looking for!