Cosa rimane, cosa cambia: mappatura delle tue conoscenze sui test web nel nuovo mondo degli LLM.
Applicazione di esempio
ThemeBuilder è l'applicazione di esempio in questa serie. ThemeBuilder restituisce un oggetto JSON contenente un motto generato da un LLM e una tavolozza di colori.
- Il motto e la tavolozza devono corrispondere al nome, alla descrizione, al segmento di pubblico e al tono del brand inseriti.
- Il motto non deve essere tossico e deve essere breve (meno di 6 parole).
- Il contrasto della tavolozza dei colori deve essere accessibile, come definito dalle linee guida minime WCAG, con un rapporto di contrasto di 4,5:1.
Valutazioni oggettive e soggettive
Come si verifica che ThemeBuilder funzioni come previsto?
Le valutazioni basate su regole (a volte chiamate valutazioni esatte) sono test oggettivi con una risposta binaria corretta o errata. Queste sono ideali per domande su formato dei dati, rapporto di contrasto o altre con una risposta definitiva. Puoi implementare questi test con codice programmatico normale.
Alcuni controlli sono oggettivi, con una risposta binaria corretta o errata. Queste sono ideali per domande su formato dei dati, rapporto di contrasto o altre con una risposta definitiva. Puoi implementare questi test con codice programmatico normale. Questi vengono chiamati rule-based-evals o exact evals.
Ad esempio:
// Example rule-based eval: data format
function evaluateFormat(appOutput) {
// Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
// Use deterministic tools like zod for schema validation
return "PASS"; // or "FAIL"
}
Altri controlli sono soggettivi, ad esempio l'allineamento del brand e del pubblico per il motto e la tavolozza dei colori. Anche se il rilevamento della tossicità è un'attività di classificazione, è anche soggettiva perché implica un giudizio.
Sebbene anche i test soggettivi prevedano la classificazione, la gamma di ciò che è corretto e non corretto può variare notevolmente. Ad esempio, valutare l'allineamento del brand e del pubblico per il motto e la tavolozza dei colori. Anche il rilevamento della tossicità è soggettivo.
Sebbene la valutazione di qualità soggettive possa sembrare qualcosa che solo un esperto umano può fare, puoi automatizzare questi test su larga scala con la tecnica LLM-as-a-judge.
[I giudici LLM] sono veloci, facili da usare e relativamente economici [...] Sono diventati uno dei metodi più comuni, se non il più comune, per valutare i modelli di AI in produzione.
– AI Engineering, Chip Huyen
Ad esempio:
// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
const brandPrompt = `You are an expert brand strategist. Evaluate the
following generated motto for the company whose target audience is
${userInput.audience}, and who describes itself as
${userInput.companyDescription}: ${appOutput.motto}`
// Call the LLM judge
const evalResult = evalWithLLM(brandPrompt);
// Return the consolidated results
return {
mottoBrandFit: evalResult,
};
}
// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
// ... Call LLM with the prompt ...
// ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
return {
status: "PASS",
rationale: "This motto perfectly captures the brand and tone, because..."
};
}
Il modello imita il giudizio umano, quindi devi indicare al giudice esattamente cosa stai cercando. Puoi farlo offrendo al giudice una rubrica.
Una griglia è un insieme strutturato di criteri o linee guida per l'assegnazione del punteggio che un giudice (umano o AI) utilizza per valutare un output. Fornisce un framework coerente per valutare le qualità soggettive in ogni valutazione.
Altri tipi di valutazioni
Ti consigliamo di utilizzare valutazioni basate su riferimenti o a coppie.
Basato sui riferimenti
Queste metriche misurano la somiglianza con una risposta basata su dati di fatto. Utilizzali per attività come traduzioni o fatti tecnici per cui esiste una risposta valida nota.
Basata su coppie
Un giudice potrebbe assegnare un punteggio PASS a due versioni diverse, anche se una è
migliore dell'altra. La valutazione basata su coppie risolve questo problema fornendo al giudice due
output (A e B) per lo stesso input e chiedendogli di scegliere un vincitore.
Ad esempio, immagina di valutare un motto per un bar accogliente:
Input: "Friendly cafe"
Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!
Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.
Utilizza la valutazione basata su coppie per selezionare la versione del modello da implementare o per confrontare due prompt diversi.
Test web standard e valutazioni dell'AI
Presumiamo che tu, lettore di questo corso, sappia già come testare un sito web e un'applicazione web. Quando aggiungi l'AI, devi cambiare il tuo modello mentale esistente. Utilizza la valutazione dell'AI per eseguire le seguenti azioni:
- Esegui test di regressione: quando modifichi il prompt o il modello, l'applicazione si interrompe? Ricevi tavolozze di colori danneggiate o motti tossici? A differenza di un'app web in cui una pausa è una funzionalità software, qui stai controllando se l'output dell'LLM è di alta qualità e sicuro. Ciò comporta soggettività.
- Ottimizza la tua applicazione: la tua applicazione sta migliorando? Stai migliorando le metriche che ti interessano? Ad esempio, stai ottenendo più motti in linea con il brand senza aumentare la tossicità?
- Scegli il modello giusto: esiste un modello migliore per il tuo caso d'uso? Prima dell'AI, scegli lo stack web una sola volta. Con l'AI, devi eseguire regolarmente il benchmarking dei modelli per identificare le opportunità di passare a un modello migliore (e potenzialmente più economico).
Sovrapporre i test
Un codebase integro deve avere più livelli di test: test delle unità, test di regressione e integrazione e test end-to-end. Anche le valutazioni devono essere stratificate.
- Utilizza le valutazioni basate su regole combinate con le valutazioni LLM-as-a-judge per automatizzare completamente i test per la tua applicazione AI. In questo modo, puoi rilevare i problemi nello sviluppo quotidiano e nella CI/CD e verificare che le versioni candidate soddisfino i tuoi standard di qualità.
- Esegui test di integrazione e regressione per verificare la qualità su larga scala.
- Esegui valutazioni umane manuali come test di accettazione.
Oltre a queste valutazioni eseguite in fase di compilazione, monitora il traffico di produzione con le valutazioni in fase di esecuzione. Questi possono aiutarti a individuare problemi di qualità o sicurezza negli input del mondo reale.
Continua a far evolvere le tue valutazioni
Le valutazioni devono crescere insieme alla tua applicazione. Man mano che i modelli diventano più intelligenti, aggiorna le valutazioni precedenti.
Aggiungi regolarmente esempi difficili ai tuoi set di dati di test, ad esempio nuovi casi limite o input utente sorprendenti che trovi in produzione.
Che cosa misurano le tue valutazioni?
Prima di progettare le valutazioni, devi capire come valutare un output. Ci sono alcuni termini che devi conoscere.
I criteri sono le regole, le dimensioni da testare. Ad esempio, allineamento al brand, tossicità e accessibilità.
Ogni criterio di valutazione viene misurato da una metrica. Una metrica è un singolo punteggio concreto che misura l'output del modello rispetto al criterio. Questo punteggio può essere un valore binario o un valore compreso in un intervallo che misura quanto l'output si avvicina o si allontana dalle aspettative del valutatore.
È possibile misurare lo stesso criterio con diversi tipi di metriche. Ad esempio, per l'allineamento del brand:
- "Questo motto è in linea con il brand?" La metrica è
PASSoFAIL. - "Su una scala da 1 a 5, quanto è in linea il motto con il brand?" La metrica è un numero intero compreso tra 1 e 5.
Un valutatore è il codice o il modello che assegna un punteggio al criterio. I valutatori determinano le metriche.