Home » Grok4 ha superato l’ultimo esame dell’umanità! Sarà l’AI più intelligente del mondo?

Grok4 ha superato l’ultimo esame dell’umanità! Sarà l’AI più intelligente del mondo?

Sono passati quasi 75 anni da quando Alan Turing ci propose il celebre Imitation Game, l’esperimento che avrebbe dovuto dirci se una macchina poteva pensare.

Oggi, l’intelligenza artificiale ha compiuto un passo storico: Grok 4 ha superato Humanity’s Last Exam, un test ai limiti della conoscenza umana, pensato per mettere in difficoltà persino gli esperti.

È solo una nuova tappa… o stiamo davvero entrando nell’era delle menti artificiali superiori?

In un mondo in cui le intelligenze artificiali parlano, scrivono, programmano e rispondono a domande complesse, ci chiediamo sempre più spesso: sono davvero intelligenti o stanno solo recitando bene una parte?
Per rispondere a questa domanda, oggi ci affidiamo ai benchmark, test standardizzati che mettono alla prova le capacità logiche, linguistiche e culturali dei modelli. Sono diventati la nostra bussola scientifica per capire fino a che punto l’intelligenza artificiale si stia avvicinando – o superando – quella umana.

Era il 1950 quando Alan Turing si chiese per la prima volta: “Le macchine possono pensare?” Con il suo celebre Imitation Game, oggi noto come test di Turing, immaginava un futuro in cui distinguere tra uomo e macchina sarebbe diventato impossibile. Oggi, quel futuro sembra più vicino che mai. Grok 4, il nuovo modello di intelligenza artificiale sviluppato da xAI, non si limita a conversare: supera esami universitari, risolve problemi olimpici di matematica e affronta benchmark estremi come Humanity’s Last Exam e ARC-AGI 2 — test progettati non per valutare la memoria, ma la capacità di ragionare, generalizzare e adattarsi come un essere umano. Alla base di questa rivoluzione c’è un’idea semplice e potentissima: l’attenzione. Con il paper “Attention Is All You Need”, i ricercatori di Google nel 2017 hanno introdotto i Transformer, architetture che hanno cambiato per sempre il modo in cui le AI “pensano”. Invece di leggere una frase parola per parola, i Transformer imparano a concentrarsi sulle parti davvero importanti — proprio come faremmo noi, quando leggiamo tra le righe. Ma anche questa tecnologia ha i suoi limiti. Per superarli, nascono nuove architetture come i Performer, che rendono l’attenzione più veloce e sostenibile, permettendo alla prossima generazione di modelli di spingersi ancora oltre. Tuttavia, la vera domanda non è solo fin dove può arrivare l’intelligenza artificiale, ma come noi esseri umani decideremo di interagirci. Perché se oggi l’IA può battere gli esami, scrivere codice, comporre musica e persino fingere di essere uno di noi, allora forse la sfida più grande non è più tecnologica, ma umana: Riusciremo a convivere con qualcosa che capisce, ragiona e apprende… ma non è umano?

I benchmark e i loro limiti nell’era dei modelli linguistici avanzati

Negli ultimi anni, i benchmark sono diventati strumenti chiave per valutare le capacità dei grandi modelli linguistici (LLM), come GPT-4, Gemini o Grok. Tuttavia, molti di questi test — come il celebre MMLU “Massive Multitask Language Understanding” — sono ormai diventati troppo facili: i modelli più avanzati superano il 90% di accuratezza, rendendo difficile distinguere tra miglioramenti reali e semplici ottimizzazioni. (Quando l’accuratezza è troppo alta su un benchmark maturo, quel test non riesce più a distinguere tra un modello “buono” e uno davvero “intelligente”.

È un po’ come se tutti prendessero 10/10 in un esame: non capisci più chi ha studiato meglio o chi ha solo ripetuto a memoria.)

Un benchmark diventa poco informativo quando i modelli lo “saturano”: serve qualcosa di più impegnativo per capire chi è veramente migliore. Per rispondere a questa sfida, è nato Humanity’s Last Exam, un nuovo benchmark pensato per portare le AI ai limiti della conoscenza umana. Composto da 2.500 domande su oltre 100 discipline, copre ambiti come matematica, medicina, filosofia e scienze naturali. È strutturato per evitare il sovra-addestramento, con un set di test pubblico e uno privato, e rappresenta oggi uno degli strumenti più rigorosi per misurare l’intelligenza artificiale in ambito accademico e scientifico.

Modello Precisione (%) ↑ Errore di calibrazione (%) ↓
Grok 425.4
Gemini 2.5 Pro21.672.0
o320.334.0
o4-mini18.157.0
DeepSeek-R1-0528*14.078.0
o3-mini*13.480.0
Gemini 2.5 Flash12.180.0
Qwen3-235B*11.874.0
Claude 4 Opus10.773.0
DeepSeek-R1*8.573.0
Claude 3.7 Sonetto8.080.0
o18.083.0
Claude 4 Sonetto7.780.0
Llama 4 Maverick5.783.0
Anteprima GPT-4.55.485.0
GPT-4.15.489.0
Claude 3.5 Sonetto4.184.0
GPT-4o2.789.0
*Il modello non è multimodale, valutato solo su un sottoinsieme di testo.
Dataset aggiornato: 3 aprile 2025 – Modello di giudice: o3-mini
Fonte: Humanity’s Last Exam – disponibile anche nelle classifiche SEAL LLM

Nei benchmark più avanzati e selettivi, Grok 4 si è imposto con risultati straordinari. Su test come GPQA, AIME25 e USAMO25 (competizioni matematiche americane), HMMT25, LCB e Humanity’s Last Exam, il modello di xAI ha ottenuto i punteggi più alti tra tutte le AI testate fino ad oggi (arancio).
Questi test non sono semplici quiz: sono basati su prove accademiche reali, progettate per studenti di alto livello, in ambiti come matematica olimpionica, fisica teorica e ragionamento avanzato.
Tuttavia, è importante ricordare che i benchmark non dicono tutto: misurano specifiche abilità in contesti controllati, e non sempre riflettono la comprensione del mondo, il buon senso o l’affidabilità nel lungo periodo.
In altre parole, Grok 4 ha battuto la concorrenza in questi test, ma l’intelligenza artificiale va ancora valutata nel suo uso reale, quotidiano, e nel modo in cui interagisce con noi.

ARC-AGI 2

È sorprendente vedere come Grok 4 abbia ottenuto risultati così elevati su ARC-AGI 2, uno dei benchmark più ambiziosi e impegnativi mai sviluppati. Questa seconda versione dell’Abstraction and Reasoning Corpus è progettata per testare una qualità ancora sfuggente alla maggior parte delle intelligenze artificiali: la capacità di generalizzare come un essere umano.

A differenza dei test basati su conoscenze pregresse, ARC-AGI 2 propone compiti inediti che richiedono ragionamento astratto, riconoscimento di pattern, creatività e adattamento a regole sconosciute — il tutto su griglie visive apparentemente semplici, ma concettualmente complesse.

Sono problemi che gli esseri umani risolvono con facilità, spesso in pochi secondi, mentre le AI attuali riescono a malapena a superare il 5% di successo.

È per questo che ARC-AGI 2 è considerato da molti un banco di prova autentico per l’Intelligenza Artificiale Generale (AGI): superarlo significherebbe che un modello non solo sa “ricordare”, ma anche “pensare”.

Ogni immagine mostra delle griglie di pixel colorati o in scala di grigi con forme geometriche o simboli. L’obiettivo è capire la regola che trasforma la griglia di sinistra in quella di destra, ad esempio raggruppando o cambiando il colore di certe forme seguendo uno schema specifico.

L’ultimo pannello con il punto interrogativo è un esercizio di completamento: l’AI deve capire la regola e applicarla per completare la griglia mancante.

Transformer

Un transformer è un tipo di rete neurale progettata per gestire dati sequenziali (come testi, immagini suddivise in patch, serie temporali ecc.) e ottenere rappresentazioni utili di questi dati. È stato introdotto nel lavoro “Attention is All You Need” (Vaswani et al., 2017) e da allora ha rivoluzionato l’elaborazione del linguaggio naturale, la visione artificiale e molti altri settori.

Tokens

Un transformer è un’architettura di rete neurale composta da blocchi ripetuti, ognuno dei quali elabora una sequenza di “token” (che possono essere parole, patch di immagini, ecc.) per costruire una rappresentazione utile. A differenza delle RNN, i transformer non trattano i dati in ordine, ma usano un meccanismo chiamato self-attention per decidere a cosa prestare attenzione.

Immagina di leggere un libro e, a ogni nuova parola, il tuo cervello riesca istantaneamente a ricordare e confrontare tutto ciò che ha letto fino a quel momento — non solo le parole vicine, ma anche frasi all’inizio del capitolo, dettagli sottili, emozioni, persino toni impliciti. Questo è, in sostanza, ciò che fa un transformer: una macchina che, nel leggere una sequenza — che sia un testo, un’immagine spezzata in pezzi, o una serie temporale — riesce a comprendere ogni parte in relazione a tutte le altre, in un solo colpo d’occhio.

Gli ingredienti fondamentali del transformer

Il funzionamento del transformer si basa su alcuni elementi chiave che, insieme, ne determinano l’efficacia e la flessibilità:

  • Multi-head Attention
    Il cuore del transformer è il meccanismo di attenzione, che consente al modello di “guardare” l’intera sequenza e stabilire, per ogni token, quali altri sono rilevanti. Questo processo viene eseguito in parallelo attraverso più “teste” (heads), ognuna specializzata nel cogliere diverse relazioni o prospettive all’interno della sequenza. È come avere più osservatori indipendenti che, contemporaneamente, interpretano la stessa scena da angolazioni diverse.
  • Connessioni Residuali
    Per facilitare l’apprendimento e la stabilità del modello, ogni blocco del transformer include connessioni residue: scorciatoie che bypassano le trasformazioni non lineari, permettendo al flusso dell’informazione originale di arrivare ai livelli più profondi. Questo aiuta il modello a non “dimenticare” ciò che ha già appreso e rende l’ottimizzazione più semplice.
  • Normalizzazione (LayerNorm)
    Per evitare che le attivazioni crescano o si riducano troppo durante l’elaborazione, ogni token viene normalizzato in modo indipendente. Questo processo, chiamato layer normalization, contribuisce a mantenere stabile l’allenamento e migliora la qualità delle rappresentazioni apprese.
  • Codifica Posizionale (Positional Encoding)
    Poiché il transformer non ha una struttura interna che rispetta l’ordine dei dati (a differenza, ad esempio, delle RNN), è necessario fornire esplicitamente informazioni sulla posizione di ciascun token nella sequenza. Questo avviene attraverso vettori detti positional encodings, che vengono sommati o concatenati alle rappresentazioni dei token, permettendo al modello di distinguere, ad esempio, tra “il gatto insegue il topo” e “il topo insegue il gatto”.

Funzionamento dell’Encoder nel Transformer

L’encoder del Transformer ha l’obiettivo di trasformare una sequenza di token (ad esempio una frase) in una rappresentazione numerica contestuale, utile per compiti come traduzione, classificazione o comprensione semantica. Vediamo in dettaglio i passaggi.

1. Embedding dei token + Positional Encoding

Ogni parola o token della frase viene prima convertito in un vettore denso (embedding) di dimensione fissa \( D \). Inoltre, poiché il Transformer non ha una struttura sequenziale interna, si aggiunge un encoding di posizione:

\[ x_i^{(0)} = \text{Embedding}(\text{token}_i) + p_i \]

dove \( p_i \) è il positional encoding del token alla posizione \( i \), e \( x_i^{(0)} \in \mathbb{R}^D \) è il vettore iniziale che rappresenta il token \( i \).

2. Calcolo di Query, Key e Value

Per ogni token si calcolano tre rappresentazioni: Query, Key e Value, attraverso trasformazioni lineari apprese:

\[ Q = X W^Q,\quad K = X W^K,\quad V = X W^V \]

dove \( X \in \mathbb{R}^{N \times D} \) è la matrice che contiene tutti i token \( x_i^{(0)} \), e \( W^Q, W^K, W^V \in \mathbb{R}^{D \times d_k} \) sono matrici di peso apprese durante l’addestramento.

3. Calcolo della Self-Attention

La self-attention calcola quanto ogni token dovrebbe “guardare” gli altri. Si usa il prodotto scalare tra query e key, normalizzato, e poi si applica la softmax:

\[ A = \text{softmax}\left( \frac{Q K^\top}{\sqrt{d_k}} \right) \]

La matrice \( A \in \mathbb{R}^{N \times N} \) contiene i pesi di attenzione: ogni riga somma a 1 e indica l’importanza degli altri token per il token corrente.

4. Combinazione con le Value

La nuova rappresentazione di ogni token è una somma pesata delle value:

\[ Y = A \cdot V \]

Il risultato \( Y \in \mathbb{R}^{N \times d_v} \) contiene i token aggiornati secondo il contesto della sequenza.

5. Residual Connection e Layer Normalization

Si aggiunge la rappresentazione originale (residual connection) e si normalizza il risultato:

\[ Z = \text{LayerNorm}(X + Y) \]

6. Feed-Forward Network

Ogni token passa attraverso una rete neurale feed-forward identica per tutti, applicata individualmente:

\[ \text{FFN}(z_i) = \text{ReLU}(z_i W_1 + b_1) W_2 + b_2 \]

7. Seconda Residual + Norm

Anche qui si applica un’altra residual connection e normalizzazione:

\[ \text{Output}_i = \text{LayerNorm}(z_i + \text{FFN}(z_i)) \]

Risultato dell’Encoder

Alla fine dell’encoder (dopo M layer ripetuti), si ottiene una matrice:

\[ Z \in \mathbb{R}^{N \times D} \]

che rappresenta ogni token arricchito dal contesto completo. Questa matrice può essere usata per traduzione, classificazione o come input al decoder.

Storicamente, le reti ricorrenti come LSTM e GRU sono state tra le architetture più usate per gestire sequenze, perché elaborano i dati passo dopo passo, mantenendo una memoria del passato. Questo le rendeva particolarmente efficaci nel catturare le cosiddette dipendenze puntuali, cioè le relazioni tra elementi vicini in una sequenza. Ad esempio, nella frase “Il gatto nero dorme”, la connessione tra “gatto” e “nero” è puntuale: le due parole sono vicine e legate semanticamente. Le RNN riescono facilmente a modellare questo tipo di relazione. Tuttavia, quando la distanza tra le parole aumenta, come in “Il gatto che hai visto ieri è salito sul tetto”, il soggetto “gatto” e il verbo “è salito” sono separati da molte parole. Qui entra in gioco una dipendenza a lungo raggio, che le reti ricorrenti faticano a gestire senza perdita di informazione. Il Transformer, invece, grazie al meccanismo di self-attention, riesce a valutare ogni parola rispetto a tutte le altre, assegnando importanza a quelle più rilevanti, anche se distanti. Così, può riconoscere che “gatto” è ancora il soggetto di “è salito”, superando elegantemente i limiti strutturali delle reti ricorrenti.

✍️ L’encoder prende una sequenza di token e restituisce una sequenza di vettori \(z_i\) che rappresentano i token, ma arricchiti del significato di tutto il contesto.

ESEMPIO concreto:

Passo 1 – Embedding della sequenza

Consideriamo una sequenza composta da 3 token già tokenizzati:

["Il", "gatto", "dorme"]

Supponiamo che ogni token sia rappresentato da un vettore embedding di dimensione 2. Allora la matrice di input \( X \in \mathbb{R}^{3 \times 2} \) sarà:

\[ X = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \]

Ogni riga rappresenta il vettore embedding di un token nella sequenza:

  • \( x_1 = [1,\ 0] \) → “Il”
  • \( x_2 = [0,\ 1] \) → “gatto”
  • \( x_3 = [1,\ 1] \) → “dorme”

Questa matrice \( X \) è l’input che verrà usato per calcolare le matrici Q, K e V nel passo successivo.

Passo 2 – Calcolo di Query, Key e Value

A partire dalla matrice \( X \in \mathbb{R}^{3 \times 2} \) (vettori embedding dei 3 token), calcoliamo le matrici di Query (\( Q \)), Key (\( K \)) e Value (\( V \)).

Per farlo, usiamo tre matrici di peso apprese (inizialmente casuali) di dimensione \( 2 \times 2 \):

\[ W^Q = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix},\quad W^K = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix},\quad W^V = \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} \]

Ora applichiamo le trasformazioni:

\[ Q = X W^Q,\quad K = X W^K,\quad V = X W^V \]

Calcolo:

\[ X = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \Rightarrow Q = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \]

\[ K = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \cdot \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ 1 & 0 \\ 1 & 1 \end{bmatrix} \]

\[ V = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ 1 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & -1 \\ 2 & 0 \end{bmatrix} \]

Abbiamo quindi ottenuto le tre matrici:

  • \( Q \in \mathbb{R}^{3 \times 2} \): rappresenta le query dei token (Cosa cerca ogni token nel contesto: Usi Q per chiedere: “a cosa devo prestare attenzione?”)
  • \( K \in \mathbb{R}^{3 \times 2} \): rappresenta le key dei token (Cosa offre ogni token al contesto: Usi K per dire: “ecco in che cosa posso aiutare gli altri”)
  • \( V \in \mathbb{R}^{3 \times 2} \): rappresenta le informazioni da trasmettere (Informazione da trasferire: Se un token è considerato importante, il suo V viene aggregato)

Nel prossimo passo, useremo \( Q \) e \( K \) per calcolare la matrice di attenzione \( A \).

Esempio intuitivo

Frase di esempio:

"Il gatto dorme"

Poniamo che stiamo esaminando il token "dorme".

  • Query di “dorme” → chiede:
    “Quali parole mi aiutano a capire cosa o chi dorme?”
  • Key di “gatto” → risponde:
    “Io rappresento un soggetto, potrei essere chi dorme.”
  • Il prodotto scalare tra query e key:

    \[ q_{\text{“dorme”}} \cdot k_{\text{“gatto”}} \]

    sarà alto ⇒ “dorme” presterà attenzione a “gatto”.
  • Di conseguenza, il vettore value di “gatto” verrà usato per aggiornare il significato del token "dorme".

Passo 3 – Calcolo dei punteggi di attenzione (prima della softmax)

Dopo aver ottenuto le matrici \( Q \), \( K \) e \( V \), il prossimo passo è calcolare la matrice dei punteggi di attenzione grezzi \( S \), che indica quanto ogni token presta attenzione agli altri:

\[ S = \frac{Q K^\top}{\sqrt{d_k}} \]

Dove:

  • \( Q \in \mathbb{R}^{N \times d_k} \): matrice delle query
  • \( K \in \mathbb{R}^{N \times d_k} \): matrice delle key
  • \( K^\top \in \mathbb{R}^{d_k \times N} \): trasposta per il prodotto
  • \( S \in \mathbb{R}^{N \times N} \): matrice dei punteggi grezzi

Ogni elemento \( S_{i,j} \) rappresenta il punteggio di attenzione tra il token \( i \) (che fa la query) e il token \( j \) (che offre la key). Più alto è il valore, maggiore sarà l’attenzione di \( i \) verso \( j \).

La divisione per \( \sqrt{d_k} \) serve a normalizzare i punteggi e migliora la stabilità numerica della successiva funzione softmax.

Passo 4 – Applicazione della softmax alla matrice dei punteggi

Dopo aver calcolato la matrice dei punteggi grezzi \( S \), applichiamo la softmax riga per riga per ottenere la matrice di attenzione \( A \).

\[ A_{i,j} = \frac{\exp(S_{i,j})}{\sum_{j’=1}^N \exp(S_{i,j’})} \]

In forma vettoriale:

\[ A = \text{softmax}(S) \]

La softmax trasforma ogni riga di \( S \) in una distribuzione di probabilità: ogni riga di \( A \) conterrà valori tra 0 e 1, e la somma degli elementi su ogni riga sarà pari a 1.

Questo significa che il token \( i \) “presta attenzione” a tutti gli altri token \( j \), ma con pesi diversi. I pesi maggiori sono assegnati ai token più rilevanti nel contesto.

GIUX

Physical / Engineer - Author of YouSciences

Post navigation

Esperimenti Strabilianti di Ottica: Rifrazione, Riflessione e le Leggi della Luce nel Laboratorio di Giux

DOCTOR GIUX il nuovo canale

Euler's Gamma

Gaussian

Euler's angles

Sea shell

Riemann surface

Calabi-Yau Manifold