Skip to content

Valutazione umana del testo generato

Come condurre una valutazione umana difendibile dell'output di LLM e sistemi NLG: definire i criteri con precisione, scegliere tra giudizi assoluti e a coppie, dimensionare lo studio e documentarlo abbastanza da poterlo ripetere.

Le metriche automatiche come BLEU e ROUGE correlano poco con la qualità reale del testo generato, quindi la valutazione umana resta lo standard, e il più delle volte viene fatta male. Tre cose distinguono una valutazione umana affidabile da una di facciata: definire ogni criterio con precisione, preferire i giudizi relativi ai punteggi assoluti e documentare abbastanza dettagli perché qualcun altro possa rifarla. Questa guida riguarda il protocollo, non la formulazione della rubrica.

Perché serve la valutazione umana, e perché è difficile fidarsene

Per la generazione aperta, i riassunti, il dialogo, la traduzione, le risposte di un LLM, le metriche automatiche confrontano il testo con dei riferimenti e si perdono quasi tutto ciò che conta: una risposta scorrevole e fedele ma formulata diversamente dal riferimento prende un punteggio basso, mentre una menzogna ben scritta lo prende alto. Il giudizio umano resta quindi il riferimento vero. Il problema è che anche la valutazione umana è uno strumento di misura, e se è progettata male produce numeri rumorosi quanto le metriche che doveva sostituire.

Le dimensioni del problema sono documentate. Howcroft et al. (2020) hanno passato in rassegna vent'anni di valutazioni NLG e hanno scoperto che il campo non riusciva nemmeno a mettersi d'accordo sul significato dei propri criteri: termini come «fluency», «adequacy» e «naturalness» erano definiti in modo diverso da un articolo all'altro, o non erano definiti affatto, rendendo i risultati incomparabili. La loro soluzione è il punto di partenza di qualsiasi valutazione seria: stabilisci esattamente cosa significa ogni criterio prima di raccogliere anche un solo giudizio.

Definisci i criteri con precisione

I criteri vaghi sono la causa più frequente di valutazioni umane sbagliate. «Valuta la qualità da 1 a 5» invita ogni annotatore a inventarsi la propria definizione di qualità. Scomponi il giudizio in dimensioni con un nome e una definizione separata, e scrivi per ciascuna una definizione operativa di una frase:

  • Fluenza: il testo è grammaticale e ben formato, a prescindere dalla sua correttezza?
  • Coerenza: le frasi si susseguono in modo sensato nel loro insieme?
  • Fedeltà / accuratezza fattuale: ogni affermazione è supportata dalla fonte (per riassunto e RAG) o vera (per la generazione aperta)? È qui che si individuano le allucinazioni.
  • Pertinenza: la risposta affronta davvero la richiesta?
  • Utilità: nei task in stile assistente, la risposta ottiene quello che l'utente voleva?

Misurarle separatamente ti dice perché un sistema batte l'altro, non solo che l'ha battuto.

Punteggi assoluti o confronti relativi

La scelta di progetto più importante è se gli annotatori valutano un output alla volta o ne confrontano diversi.

  • I punteggi assoluti (scale Likert) sono semplici ma soffrono di bias di scala: ogni annotatore si ancora a un punto diverso, evita gli estremi e cambia criterio nel corso della sessione, così un «4» dato da una persona non è il «4» di un'altra.
  • La preferenza a coppie (è migliore A o B?) elimina del tutto il bias di scala ed è in genere più affidabile, ed è per questo che sta alla base dei dati di preferenza per RLHF e del confronto tra modelli. Il costo è che ottieni un ordinamento, non un livello assoluto.
  • Il best-worst scaling mostra un piccolo insieme e chiede solo il migliore e il peggiore: un modo economico per ottenere ordinamenti affidabili da pochi giudizi.

van der Lee et al. (2021) propongono delle linee guida di buona pratica che coprono proprio queste scelte, quanti elementi e quanti valutatori, quale scala, quale analisi statistica, e vale la pena leggerle prima di fissare il disegno dello studio.

Dimensionalo e documentalo

Anche con un buon disegno restano due modi di sbagliare.

Il primo è la potenza statistica insufficiente. Rilevare una piccola differenza di qualità tra due sistemi già buoni richiede più elementi di quanti se ne immaginino; fai prima l'analisi di potenza, usa un test di significatività appropriato e riporta le dimensioni dell'effetto, non solo quale media era più alta.

Il secondo è la mancanza di dettagli nel resoconto. Belz et al. (2021) hanno esaminato la riproducibilità in NLP e hanno trovato che le valutazioni umane sono particolarmente difficili da riprodurre, di solito perché l'articolo omette i criteri esatti, le istruzioni, la composizione del gruppo di annotatori e l'analisi. Registra tutto questo mentre conduci lo studio, non dopo.

Alcuni accorgimenti pratici evitano bias facilmente prevenibili: randomizza l'ordine degli output perché la posizione non faccia da indizio (le persone tendono a preferire la prima opzione), nascondi l'identità del sistema perché gli annotatori non possano capire quale modello ha prodotto cosa, e fai un pilota su un piccolo lotto per misurare l'accordo e correggere i criteri confusi prima di scalare.

Farlo in Potato

Potato ha uno schema per ciascuno stile di valutazione, quindi la scelta di progetto si traduce direttamente in configurazione. Per punteggi assoluti su singoli criteri:

yaml
annotation_schemes:
  - name: faithfulness
    annotation_type: likert
    description: "Is every claim in the response supported by the source? 1 = many unsupported, 5 = fully supported."
    size: 5
  - name: fluency
    annotation_type: likert
    description: "Is the response grammatical and well-formed?"
    size: 5

Per un confronto A/B alla cieca, usa uno schema pairwise e randomizza quale sistema viene mostrato come A:

yaml
annotation_schemes:
  - name: preference
    annotation_type: pairwise
    description: "Which response is more helpful overall?"
    labels: ["A is better", "Tie", "B is better"]

Per un punteggio strutturato su più criteri in un solo passaggio, lo schema rubric_eval raccoglie un punteggio per ogni dimensione della rubrica. Qualunque sia la scelta, mantieni una sovrapposizione su un sottoinsieme condiviso per poter riportare l'accordo, e conserva le etichette per singolo annotatore nell'export, così il test di significatività ha la varianza che gli serve.

Approfondimenti