Vai al contenuto
SDETRole
SDETRole

Glossario · AI nel testing

Valutazione degli LLM (LLM evaluation)

In inglese: LLM evaluation

Detto anche: LLM eval, LLM evals, eval degli LLM, valutazione LLM

Definizione

Misurare in modo sistematico la qualità di una funzionalità basata su LLM su input e criteri fissi, perché gli output variano e le asserzioni esatte di rado bastano.

La valutazione degli LLM (“eval”) è il modo in cui testi una funzionalità costruita su un large language model: la esegui su un insieme fisso di input, assegni a ogni output un punteggio in base a criteri definiti e segui l’andamento dei punteggi nel tempo. I test tradizionali verificano un unico valore atteso esatto. L’output di un LLM è testo libero che varia tra un’esecuzione e l’altra, quindi la valutazione sostituisce l’uguaglianza esatta con un mix di controlli deterministici, punteggi graduati e revisione umana, e giudica la funzionalità in base ai tassi di successo su molti casi invece che su un singolo esempio.

Esempio

Un classificatore di ticket di supporto valutato su un dataset etichettato:

import { readFileSync } from 'node:fs';
import { classifyTicket } from '../src/classifier';

type Case = { input: string; expected: 'billing' | 'bug' | 'account' | 'other' };
const cases: Case[] = JSON.parse(readFileSync('evals/tickets.json', 'utf8'));

let correct = 0;
for (const c of cases) {
  const result = await classifyTicket(c.input);
  if (result.label === c.expected) correct++;
  else console.log(`MISS expected=${c.expected} got=${result.label} :: ${c.input}`);
}

const accuracy = correct / cases.length;
console.log(`accuracy ${(accuracy * 100).toFixed(1)}% over ${cases.length} cases`);
if (accuracy < 0.9) process.exit(1); // regression gate

Tipi di controllo, dal più al meno affidabile

  • Deterministici. JSON valido, conforme a uno schema, contiene un campo obbligatorio, resta sotto un limite di lunghezza, sceglie un’etichetta da un insieme consentito. Economici e ripetibili; usali ovunque siano applicabili.
  • Basati su un riferimento. Confronto con una risposta nota come corretta: corrispondenza esatta per le etichette, oppure punteggi di sovrapposizione e similarità per il testo libero. I punteggi di similarità sono approssimativi e vanno calibrati.
  • Valutati da un modello. Un altro LLM assegna un punteggio all’output in base a una rubrica (LLM-as-judge). Scala sui testi aperti, ma introduce errori propri.
  • Revisione umana. La più affidabile per la qualità nelle sfumature, e il riferimento su cui calibrare i controlli automatici.

Cosa è consolidato e cosa è ancora in evoluzione

Consolidato: valutare su un dataset versionato, eseguire le eval a ogni modifica del prompt o del modello, seguire l’andamento dei punteggi nel tempo e includere casi avversariali come la prompt injection. Ancora in evoluzione: la scelta delle metriche per la generazione aperta, quanto fidarsi dei punteggi assegnati da un modello e gli strumenti, che cambiano rapidamente.

Errori comuni

Giudicare una modifica da una manciata di chat manuali; usare troppo pochi casi per distinguere un cambiamento reale dal rumore; eseguire ogni caso una sola volta quando gli output variano (eseguilo più volte e riporta la dispersione); e lasciare che il set di eval invecchi mentre il traffico reale degli utenti cambia.

Scrivi per cercare in tutto SDETRole.

Ricerca full-text con Pagefind · funziona nel tuo browser Apri la pagina di ricerca →