← Ultimi articoli
💻 computer science

Reducing Hallucinations in LLM-Generated Code via Semantic Triangulation

Il paper introduce la "triangolazione semantica", un framework teorico che riduce le allucinazioni nei codici generati da LLM trasformando il problema in una variante dissociativa per verificare la coerenza tra soluzioni indipendenti, ottenendo risultati significativamente superiori rispetto ai metodi esistenti nella selezione di programmi corretti.

Autori originali: Yihan Dai, Sijie Liang, Haotian Xu, Peichu Xie, Sergey Mechtaev

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

Autori originali: Yihan Dai, Sijie Liang, Haotian Xu, Peichu Xie, Sergey Mechtaev

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina di avere un assistente molto intelligente, ma un po' distratto, che scrive codice per te. Quando gli chiedi di creare un programma, lui spesso ne produce uno che sembra funzionare, ma che in realtà contiene errori nascosti. Questo fenomeno si chiama "allucinazione" dell'IA: l'IA inventa soluzioni che sembrano plausibili ma sono sbagliate.

Il problema è: come fai a capire se il codice che ti ha dato è davvero corretto?

Fino a poco tempo fa, il metodo standard era chiedere all'IA di generare molte versioni dello stesso codice e scegliere quella che appare più spesso (come un voto a maggioranza). Ma ecco il trucco: se l'IA è distratta, tende a fare lo stesso errore in tutte le versioni. È come se interrogassi dieci testimoni che hanno già cospirato per raccontare la stessa bugia: il loro "accordo" non prova che stiano dicendo la verità, anzi, conferma solo la bugia!

Altri metodi provavano a chiedere all'IA di scrivere dei "test" o delle "specifiche" per verificare il codice. Ma anche qui, l'IA scrive i test basandosi sulla stessa logica sbagliata, quindi i test confermano l'errore invece di scoprirlo.

La Soluzione: La "Triangolazione Semantica"

Gli autori di questo paper hanno pensato: "Cosa farebbe un detective esperto per smascherare un bugiardo?"
Risposta: Non chiedere la stessa domanda in modi diversi. Chiedigli di raccontare la storia da un angolo completamente inaspettato e diverso. Se il bugiardo è stato preparato solo su una versione della storia, crollerà quando gli chiederai dettagli da un'altra prospettiva.

Hanno chiamato questo metodo Triangolazione Semantica. Ecco come funziona, spiegato con una metafora:

1. Il Detective e il Sosia (Inversione del Problema)

Immagina che il problema originale sia: "Scrivi un programma che prende una lista di nomi e restituisce il numero totale di lettere."
L'IA potrebbe sbagliare e restituire un numero sbagliato.

Invece di chiedere di nuovo "conta le lettere", il metodo della triangolazione chiede all'IA di risolvere il problema inverso: "Dato un numero (es. 15), scrivi un programma che genera tutte le possibili liste di nomi che hanno esattamente 15 lettere."

  • Perché funziona? Per risolvere il primo problema serve un algoritmo di "conteggio". Per risolvere il secondo serve un algoritmo di "generazione" (molto più complesso e diverso).
  • Il trucco: È molto difficile che l'IA faccia lo stesso identico errore in due compiti che richiedono logiche completamente diverse. Se il programma originale conta male, è improbabile che il programma inverso generi esattamente le liste sbagliate che corrispondono a quel conteggio errato.

2. Il Controllo di Incrocio (La Triangolazione)

Ora, il sistema prende la soluzione del problema originale e la soluzione del problema inverso e le mette in relazione:

  • Se prendo la lista generata dal programma inverso e la passo al programma originale, il numero che ottengo torna a combaciare con quello di partenza?
  • Se sì, è un segnale fortissimo che entrambi i programmi sono corretti.
  • Se no, significa che almeno uno dei due sta "allucinando" (mentendo), e il sistema scarta la soluzione.

3. Gestire i "Problemi Vaghi" (Enumerazione)

A volte, un problema non ha una sola risposta giusta, ma molte. Esempio: "Scrivi un programma che ordina una lista di numeri in modo che sia crescente." (Qui ci sono molte liste diverse che soddisfano il criterio).
In questi casi, la triangolazione chiede all'IA di fare un elenco completo di tutte le risposte possibili (enumerazione) e di verificare che la soluzione scelta sia inclusa in questo elenco "sicuro". È come se il detective chiedesse: "Mostrami tutte le possibili versioni della storia, e poi dimmi quale di queste è quella vera".

I Risultati nella Vita Reale

Gli autori hanno testato questo metodo su modelli di intelligenza artificiale molto potenti (come GPT-4o e DeepSeek). I risultati sono stati sorprendenti:

  • Hanno aumentato la probabilità di scegliere il codice corretto del 24% rispetto ai metodi tradizionali.
  • Sono riusciti a salvare soluzioni corrette anche quando l'IA aveva solo il 7% di probabilità di indovinarle da sola (un livello di difficoltà dove gli altri metodi fallivano completamente).
  • Funziona anche quando ci sono più soluzioni corrette possibili, cosa che i vecchi metodi faticavano a gestire.

In Sintesi

La Triangolazione Semantica è come avere un detective che non si fida della prima storia che sente. Invece di chiedere "È vero?", chiede: "Dimmi come faresti il contrario di quello che hai appena detto". Se le due storie si incastrano perfettamente, allora la verità è stata trovata. Se c'è un buco, il detective sa che c'è una bugia (un errore nel codice) e scarta la soluzione.

È un modo intelligente, basato sulla logica matematica, per "pulire" il codice generato dall'IA, rendendolo molto più affidabile senza bisogno di leggere ogni riga manualmente.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →