OJBench: A Competition Level Code Benchmark For Large Language Models

Il paper presenta OJBench, un nuovo benchmark competitivo composto da 232 problemi di programmazione tratti da NOI e ICPC, che rivela come anche i modelli di linguaggio più avanzati faticino a risolvere compiti di ragionamento su codice di livello agonistico.

Zhexu Wang, Yiping Liu, Yejie Wang, Wenyang He, Bofei Gao, Muxi Diao, Yanxu Chen, Kelin Fu, Flood Sung, Zhilin Yang, Tianyu Liu, Weiran Xu

Pubblicato 2026-03-03
📖 4 min di lettura☕ Lettura da pausa caffè

Each language version is independently generated for its own context, not a direct translation.

Immagina il mondo dell'Intelligenza Artificiale come una scuola di cucina. Per anni, abbiamo testato i nostri chef robot (i modelli di linguaggio) con ricette semplici: "Come si fa un uovo sodo?" o "Come si prepara una pasta al pomodoro?". Questi test sono come i LiveCodeBench menzionati nel paper: utili per vedere se lo chef sa usare il coltello di base, ma non ci dicono se è capace di vincere un campionato mondiale di cucina.

1. Il Problema: La "Cucina" è diventata troppo facile

Fino a poco tempo fa, i modelli di intelligenza artificiale sembravano dei geni nella programmazione. Ma, come dice il paper, stavano superando test troppo facili. Era come se un bambino di 5 anni avesse vinto il premio "Miglior Cuoco" perché sapeva fare un toast perfetto, mentre i veri chef professionisti (i problemi di programmazione competitiva) stavano ancora aspettando di essere sfidati.

Gli scienziati si sono resi conto che mancava un vero Olimpiade della Programmazione. Serviva un test dove gli errori fossero fatali e la difficoltà fosse estrema, proprio come nelle gare reali dove i migliori programmatori del mondo si sfidano.

2. La Soluzione: OJBench, la "Olimpiade"

Gli autori del paper hanno creato OJBench (Olympic Judge Benchmark).
Pensa a OJBench non come a un compito a casa, ma come a una gara di Formula 1.

  • Da dove arrivano i problemi? Non sono esercizi inventati da professori. Sono problemi reali presi dalle gare più difficili al mondo: le Olimpiadi Nazionali di Informatica (NOI) della Cina e le gare ICPC (il campionato mondiale universitario di programmazione).
  • Quanti sono? 232 problemi.
  • La difficoltà: Sono divisi in tre livelli: "Facile" (come guidare in città), "Medio" (corsa in pista) e "Difficile" (cercare di battere il record del mondo con la pioggia).

3. Cosa hanno scoperto? (Il Verdetto)

Hanno fatto gareggiare 37 chef robot diversi (sia modelli gratuiti che a pagamento, sia "semplici" che "pensanti") contro questi problemi. Ecco cosa è successo:

  • Nessuno è perfetto: Anche i modelli più avanzati e costosi (come o4-mini o Gemini-2.5-pro) faticano moltissimo. È come se anche i migliori piloti di F1 avessero difficoltà a guidare su un terreno roccioso e impervio.
  • I "Pensanti" vincono, ma con fatica: I modelli addestrati specificamente per "ragionare" (quelli che pensano prima di parlare, come un umano che fa calcoli mentali) sono molto meglio di quelli che scrivono codice a caso. Ma anche loro sbagliano spesso sui problemi più difficili.
  • La lingua conta: Hanno scoperto che i robot funzionano meglio se usano il C++ (un linguaggio veloce e potente, come un'auto da corsa) invece del Python (più lento, come una macchina familiare). È strano, perché di solito si insegna Python, ma nelle gare vere si usa il C++ per la velocità.
  • L'errore è un'opportunità: Hanno visto che se dai al robot un messaggio di errore (es. "Hai sbagliato la formula" o "Il motore si è surriscaldato"), il robot può correggersi e migliorare. È come se un allenatore gridasse al pilota: "Frena prima alla curva!", e il pilota riesca a correggere la traiettoria. Tuttavia, se il problema è che l'auto è troppo lenta per natura (algoritmo inefficiente), il robot fatica a capire come ripararla.

4. Perché è importante?

Prima di OJBench, era come dire che un'auto è veloce perché corre bene su un tapis roulant. OJBench ha messo l'auto su una montagna russa.

  • Mostra i limiti: Ci dice che, anche se l'IA è bravissima, non è ancora un "genio" capace di risolvere problemi complessi e nuovi senza aiuto.
  • Guida il futuro: Aiuta gli scienziati a capire su cosa lavorare. Ad esempio, devono insegnare ai robot a usare meglio il C++ o a capire meglio gli errori di tempo (quando il codice è troppo lento).

In sintesi

OJBench è il nuovo "esame di maturità" per le Intelligenze Artificiali. Finora, molti modelli stavano prendendo il 10 perché l'esame era troppo facile. Ora, con OJBench, stiamo vedendo che molti prendono un 4 o un 5. Non è un fallimento, ma una mappa: ci dice esattamente dove i nostri robot devono ancora studiare di più per diventare veri maestri della programmazione.