Definire i criteri di successo e creare valutazioni
Costruire un'applicazione di successo basata su LLM inizia con la definizione chiara dei criteri di successo e poi con la progettazione di valutazioni per misurare le prestazioni rispetto a tali criteri. Questo ciclo è centrale nel prompt engineering.
Definisci i tuoi criteri di successo
Buoni criteri di successo sono:
Specifici: Definisci chiaramente cosa vuoi ottenere. Invece di "buone prestazioni", specifica "classificazione accurata del sentiment".
Misurabili: Usa metriche quantitative o scale qualitative ben definite. I numeri forniscono chiarezza e scalabilità, ma le misure qualitative possono essere preziose se applicate in modo coerente insieme alle misure quantitative.
Anche argomenti "vaghi" come etica e sicurezza possono essere quantificati:
Criteri di sicurezza
Cattivo
Output sicuri
Buono
Meno dello 0,1% degli output su 10.000 prove segnalati per tossicità dal nostro filtro dei contenuti.
Raggiungibili: Basa i tuoi obiettivi su benchmark di settore, esperimenti precedenti, ricerca sull'IA o conoscenze di esperti. Le tue metriche di successo non dovrebbero essere irrealistiche rispetto alle capacità attuali dei modelli di frontiera.
Rilevanti: Allinea i tuoi criteri allo scopo della tua applicazione e alle esigenze degli utenti. Un'elevata accuratezza delle citazioni potrebbe essere fondamentale per le app mediche, ma meno per i chatbot informali.
Criteri di successo comuni
Ecco alcuni criteri che potrebbero essere importanti per il tuo caso d'uso. Questo elenco non è esaustivo.
La maggior parte dei casi d'uso richiederà una valutazione multidimensionale su diversi criteri di successo.
Crea le valutazioni
Principi di progettazione delle valutazioni
Sii specifico per il compito: Progetta valutazioni che rispecchino la distribuzione dei compiti nel mondo reale. Non dimenticare di considerare i casi limite!
Automatizza quando possibile: Struttura le domande in modo da consentire la valutazione automatica (ad es. scelta multipla, corrispondenza di stringhe, valutazione tramite codice, valutazione tramite LLM).
Dai priorità al volume rispetto alla qualità: Più domande con valutazione automatica a segnale leggermente inferiore sono meglio di meno domande con valutazioni manuali umane di alta qualità.
Esempi di valutazioni
Scrivere centinaia di casi di test può essere difficile da fare a mano! Chiedi a Claude di aiutarti a generarne altri a partire da un set di base di casi di test di esempio.
Se non sai quali metodi di valutazione potrebbero essere utili per valutare i tuoi criteri di successo, puoi anche fare brainstorming con Claude!
Valuta le tue valutazioni
Quando decidi quale metodo utilizzare per valutare le eval, scegli il metodo più veloce, più affidabile e più scalabile:
Valutazione basata su codice: La più veloce e affidabile, estremamente scalabile, ma manca di sfumature per giudizi più complessi che richiedono meno rigidità basata su regole.
Corrispondenza esatta: output == golden_answer
Corrispondenza di stringa: key_phrase in output
Valutazione umana: La più flessibile e di alta qualità, ma lenta e costosa. Evitala se possibile.
Valutazione basata su LLM: Veloce e flessibile, scalabile e adatta a giudizi complessi. Testa prima per garantire l'affidabilità, poi scala.
Suggerimenti per la valutazione basata su LLM
Usa rubriche dettagliate e chiare: "La risposta dovrebbe sempre menzionare 'Acme Inc.' nella prima frase. In caso contrario, la risposta viene automaticamente valutata come 'errata'."
Un determinato caso d'uso, o anche uno specifico criterio di successo per quel caso d'uso, potrebbe richiedere diverse rubriche per una valutazione olistica.
Empirico o specifico: Ad esempio, istruisci l'LLM a produrre solo 'corretto' o 'errato', oppure a giudicare su una scala da 1 a 5. Le valutazioni puramente qualitative sono difficili da valutare rapidamente e su larga scala.
Incoraggia il ragionamento: Chiedi all'LLM di riflettere prima di decidere un punteggio di valutazione, e poi scarta il ragionamento. Questo aumenta le prestazioni della valutazione, in particolare per compiti che richiedono giudizi complessi.