Crea un giudice esperto

Prepara il giudice per la produzione.

Il giudice di base che hai creato in Configurare un modello di giudice di base, parte 1 e parte 2, si basava su dati autoetichettati. È un ottimo modo per stabilire una base di riferimento per i test. Tuttavia, per ottenere una qualità di livello di produzione, hai bisogno di un giudice che pensi come uno specialista del dominio e di metriche statistiche solide per poterti fidare su larga scala. Questo è ciò che tratteremo qui.

Creare un set di dati di allineamento con esperti

L'utilizzo di esperti umani per l'etichettatura del set di dati di allineamento è fondamentale per creare un giudice LLM affidabile. Dai la priorità alla qualità rispetto alla quantità. Trenta etichette di alta qualità di un esperto di dominio sono infinitamente migliori di 300 etichette di non esperti.

Trovare i labeler

Utilizza designer interni ed esperti di brand per l'allineamento del brand. Per la toxicity, puoi affidarti agli stessi labeler o utilizzare il crowdsourcing delle etichette dal tuo team in base a una griglia centrale per assicurarti che i labeler condividano gli stessi criteri di valutazione.

Quanti labeler esperti?

  • Un esperto: è veloce ed è un buon modo per iniziare, ma il giudice erediterà i pregiudizi della persona.
  • Due esperti: può essere un ottimo punto di riferimento per il budget. Non puoi risolvere i pareggi, ma puoi individuare i disaccordi.
  • Tre o più esperti: è lo standard per eccellenza. L'utilizzo di un numero dispari ti offre un tie-breaker automatico per le valutazioni binarie PASS e FAIL, come nel nostro esempio, perché puoi scegliere la valutazione della maggioranza.

Per ThemeBuilder, supponiamo che tu abbia la fortuna di avere tre brand designer interni che accettano di essere i nostri labeler esperti.

Gli esperti formulano una griglia

Prima dell'etichettatura, chiedi agli esperti di definire una griglia rigorosa dei criteri specifici per un PASS. In questo modo, gli esperti possono essere coerenti nel loro giudizio, sia individualmente che collettivamente.

Ad esempio:

Criteria:
• Psychological association: Do the colors evoke the emotions associated with the desired tone?
• Harmony: Do the colors work together to create the right atmosphere?
• Appropriateness: Is the palette suitable for the company's industry?

Gli esperti etichettano i dati

Chiedi agli esperti di esaminare da 30 a 50 campioni, assegnare un'etichetta PASS o FAIL in base alla griglia e scrivere una rationale che spieghi il loro giudizio. La motivazione è fondamentale perché la utilizzerai per risolvere i problemi e correggere il disallineamento tra il nostro giudice e i nostri esperti.

Un'interfaccia a foglio di lavoro per aiutare gli esperti a valutare i temi.
Applicazione web per labeler esperti. Questa UI è ispirata ad AlignEvalsAlignEvals di Eugene Yan.

Suggerimenti per un'etichettatura efficiente

L'etichettatura manuale è costosa. Prova queste tecniche per ottimizzare l'efficienza dei tuoi esperti:

  • Verifica: utilizza un LLM per generare etichette e motivazioni iniziali, quindi chiedi agli esperti di eseguirne il controllo e la correzione. È più veloce verificare che creare un giudizio da zero.
  • Etichettatura selettiva: chiedi a un secondo esperto di controllare un piccolo sottoinsieme del lavoro del primo esperto. Se non sono d'accordo, interrompi e correggi la griglia prima di etichettare altro.
  • LLM come secondo parere: chiedi a un esperto e a un giudice LLM di etichettare gli stessi elementi. Se il livello di accordo è basso, significa che l'LLM interpreta la griglia in modo diverso. Modifica la griglia finché non si allineano.
  • Controllo intra-valutatore: se hai un solo esperto, chiedigli di etichettare nuovamente alla cieca il 10% dei dati a caso una settimana dopo. Se non è d'accordo con se stesso, la griglia non è stabile.

Di seguito è riportato uno snippet JSON di una voce del set di dati etichettata da un esperto, inclusa l'etichetta PASS e FAIL dell'esperto e la relativa motivazione dettagliata:

{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    // Company description, audience and tone
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    // ... Color palette
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
        engineering with the ambitious goals of its elite athletic audience.
        Relevance: Leverages 'kinetic' to expertly link the brand to physical
        energy. Audience appeal: 'Unlock your potential' resonates perfectly
        with competitive runners. Tone consistency: Nails the required
        aggressive, high-performance marks."
    },
    // ... Human evals for colorBrandFit and mottoToxicity:
  }
}

Raggiungere e misurare l'accordo degli esperti

La griglia funge da istruzioni per il modello, quindi è importante dedicarci del tempo per perfezionarla. Se un designer definisce "giocoso" come "linguaggio creativo" mentre un altro lo interpreta come "colori vivaci", anche il tuo LLM sarà in conflitto. Devi rafforzare la griglia per eliminare queste ambiguità prima di fornirla al giudice. Noto come affidabilità inter-labeler o accordo inter-valutatore, un elevato livello di accordo garantisce che il modello di giudice fornisca etichette affidabili e di alta qualità.

I disaccordi umani sono indicatori utili che ti indicano dove la griglia di punteggio richiede più lavoro. Modificala finché gli esperti non sono d'accordo su quali sono i casi PASS e FAIL.

Il giudice non può essere più allineato degli esperti che lo hanno creato.

Accordo di base

Un modo per misurare l'accordo tra persone, che abbiamo utilizzato anche per il nostro punteggio di accordo del giudice umano nel nostro giudice di base, è una percentuale di frequenza con cui i nostri esperti sono d'accordo.

// total = all test cases
// aligned = test cases where human1Eval.label === human2Eval.label
// (for example PASS and PASS)
const alignment = (aligned / total) * 100;

Accordo oltre la fortuna: Kappa

L'accordo percentuale di base è semplice, ma può essere fuorviante. Immagina un set di dati composto per metà da PASS e per metà da FAIL. Se due esperti lanciano una moneta, saranno comunque d'accordo il 50% delle volte per pura fortuna. Questo è chiamato soglia di fortuna.

Per calcolare l'accordo in modo accurato, utilizza invece metriche statistiche che misurano l'affidabilità oltre la pura casualità:

  • Kappa di Cohen per due labeler.
  • Kappa di Fleiss per tre o più labeler.

  • Test: punta a un punteggio Kappa di almeno 0.61, che è lo standard per un accordo sostanziale. Un punteggio di 0 non è migliore di un'ipotesi casuale, mentre 1.0 indica un accordo perfetto.

  • Correzione: se il punteggio Kappa è inferiore a 0.61, la griglia è troppo vaga. Raggruppa i campioni in cui gli esperti non sono d'accordo, esamina le loro motivazioni, aggiorna la griglia per coprire questi casi limite specifici e ripeti l'operazione finché non raggiungi 0.61. Procedi al passaggio successivo solo quando gli esperti sono allineati.

Punteggio Kappa Azione
Meno di 0.60: scadente Modifica e scopri perché gli esperti vedono le cose in modo diverso. La griglia potrebbe essere troppo vaga, quindi perfezionala.
0.610.80: buono La base di riferimento è affidabile. Procedi con questa griglia.
0.81-1.00 Quasi perfetto Quasi troppo bello per essere vero. Verifica se l'attività è troppo semplice o se gli esperti la semplificano eccessivamente.

Comprimere le etichette degli esperti

Se hai utilizzato tre o più esperti umani per etichettare i dati, comprimi i loro voti in una singola valutazione della maggioranza per ogni campione. Questo elenco diventa il tuo dato empirico reale.

Configurare il giudice

Come hai fatto per il giudice di base, devi configurare i parametri del modello e scrivere il prompt. Imposta le istruzioni di sistema su una persona esperta rigorosa e mantieni la temperatura a 0 per la massima coerenza. Nel prompt, fornisci la griglia esatta utilizzata dagli esperti umani per valutare i dati. Aggiungi alcuni campioni etichettati da esperti come esempi few-shot per mostrare al giudice esattamente come ragionare.

Allineare e testare il giudice

Una volta che gli esperti umani sono d'accordo, è il momento di verificare se il giudice LLM è d'accordo con loro.

Nella configurazione di base, abbiamo esaminato l'allineamento grezzo (accuratezza). Ma questo numero da solo può essere ingannevole. Immagina che il 90% dei dati di test sia un PASS. Un giudice pigro potrebbe restituire PASS ogni volta e ottenere un'accuratezza del 90% senza riuscire a individuare un singolo motto tossico.

Definire una classe positiva

Definisci la classe positiva. La classe positiva, chiamata anche condizione target o evento di interesse, è il risultato specifico che stai cercando di rilevare, misurare o contrassegnare. La pipeline di valutazione funge da gatekeeper: il suo obiettivo principale è intercettare e bloccare gli output errati.

Supponendo che ThemeBuilder sia generalmente in grado di generare slogan e tavolozze in linea con il brand e che anche i motti tossici siano un evento raro, la classe positiva per tutti i criteri di valutazione è FAIL.

Tenendo presente questo:

  • I falsi positivi sono output validi contrassegnati erroneamente come FAIL.
  • I falsi negativi sono FAIL che non sono stati rilevati.
  • I veri positivi sono FAIL identificati correttamente.

Precisione e richiamo

Tenendo presente la classe positiva, ora puoi utilizzare la precisione e il richiamo, che sono metriche migliori dell'allineamento grezzo:

  • Precisione: quando il giudice LLM dice FAIL, quanto spesso ha ragione? Ad esempio: quando il giudice ha contrassegnato un motto come tossico, quanto spesso aveva effettivamente ragione?
  • Richiamo: quando l'esperto dice FAIL, quanto spesso il giudice LLM lo ha rilevato? Ad esempio: su tutti gli output effettivamente tossici e su tutti i motti e le tavolozze effettivamente fuori brand, quanti ne ha rilevati il giudice?

Comprendere il costo degli errori + impostare i punteggi target

Poni la domanda: qual è l'errore peggiore per la tua applicazione?

  • Toxicity: la toxicity è un problema di sicurezza. Vogliamo intercettare ogni motto tossico (ridurre al minimo i falsi negativi), anche se ciò significa che il nostro giudice è occasionalmente troppo severo e contrassegna un motto sicuro. Contrassegnare un motto sicuro (falso positivo) comporta un leggero ritardo o una revisione umana. Pertanto, puntiamo a un richiamo del 100%. La precisione può essere inferiore.
  • Adattamento al brand: abbiamo bisogno di un equilibrio. Sia la mancata rilevazione di design errati sia il rifiuto di quelli validi sono ugualmente costosi. Pertanto, vogliamo una precisione e un richiamo solidi.
Riconoscimento di pattern per precisione e richiamo
Di Walber - CC BY-SA 4.0

Punteggio F1

Quando il richiamo aumenta, la precisione spesso diminuisce. Per la toxicity, non è un problema, perché ti interessa solo il richiamo.

Per l'adattamento al brand, sia il richiamo sia la precisione sono importanti. Per bilanciare questa importanza, puoi utilizzare una nuova metrica: F1. Il punteggio F1 combina precisione e richiamo in un'unica metrica bilanciata.

Raggiungere l'allineamento

Esegui il giudice sul set di dati etichettato da esperti e calcola i punteggi di accuratezza, precisione, richiamo e F1 per ciascuno dei tuoi criteri. Valuta se stai raggiungendo i tuoi target.

In caso contrario, raggruppa i casi di errore e leggi le motivazioni dell'LLM. Aggiorna le istruzioni di sistema e la griglia di punteggio del giudice per colmare le lacune finché le metriche non raggiungono i target.

Una volta che il giudice raggiunge i target, è allineato.

Convalida finale

Ora, convalidiamo il giudice utilizzando esattamente gli stessi passaggi che abbiamo trattato nella configurazione del giudice di base, ma applichiamo le nuove metriche avanzate:

  • Test di stress con bootstrapping: esegui un nuovo campionamento casuale del set di dati con sostituzione per 10 iterazioni. Calcola la varianza dei punteggi di precisione, richiamo e F1 in queste esecuzioni per dimostrare matematicamente che i punteggi elevati non sono solo frutto della fortuna.
  • Test di autoconsistenza: esegui gli stessi input nel giudice più volte per assicurarti che i suoi verdetti siano stabili al 100%. Vogliamo una varianza pari a zero in tutte le iterazioni.
  • Fai fare al giudice un esame finale: testa il giudice su un set di 15-20 campioni nuovi etichettati da esperti che non ha mai visto prima. Calcola i punteggi di Kappa di Cohen, precisione, richiamo e F1 su questo set nascosto. Se queste metriche rimangono simili, significa che il giudice non ha eseguito l'overfitting sui dati di allineamento ed è pronto per generalizzare al mondo reale.

Riportare il giudice in linea

Una volta terminato, congratulazioni. Hai creato una pipeline di valutazione altamente affidabile.

Ricorda di riportare il giudice in linea ogni volta che aggiorni l'LLM sottostante su cui si basa o quando il set di funzionalità dell'applicazione cambia radicalmente.