Quando crei prompt per applicazioni reali, emerge un compromesso fondamentale: bilanciare la brevità con l'efficacia. A parità di fattori, un prompt conciso è più veloce, più economico e più facile da gestire rispetto a un prompt più lungo. Ciò è particolarmente importante negli ambienti web in cui la latenza e i limiti dei token sono importanti. Tuttavia, se il prompt è troppo minimale, il modello potrebbe non avere il contesto, le istruzioni o gli esempi necessari per produrre risultati di alta qualità.
Lo sviluppo basato sulla valutazione (EDD) consente di monitorare e ottimizzare sistematicamente questo compromesso. Offre un processo ripetibile e verificabile per migliorare gli output in passaggi piccoli e sicuri, rilevare le regressioni e allineare il comportamento del modello alle aspettative degli utenti e del prodotto nel tempo.
Consideralo come uno sviluppo basato sui test (TDD), adattato all'incertezza dell'AI. A differenza dei test unità deterministici, le valutazioni AI non possono essere codificate in modo rigido perché gli output, sia quelli ben formati sia quelli non riusciti, possono assumere forme impreviste.
EDD supporta anche le tue attività di discovery. Proprio come la scrittura di test aiuta a chiarire il comportamento di una funzionalità, la definizione dei criteri di valutazione e la revisione degli output del modello ti costringono ad affrontare la mancanza di chiarezza e ad aggiungere gradualmente più dettagli e struttura a attività aperte o sconosciute.
Definisci il problema
Puoi inquadrare il problema come un contratto API, inclusi il tipo di input, il formato di output e qualsiasi vincolo aggiuntivo. Ad esempio:
- Tipo di input: bozza del post del blog
- Formato di output: array JSON con 3 titoli di post
- Vincoli: meno di 128 caratteri, con un tono amichevole
Poi, raccogli gli input di esempio. Per garantire la diversità dei dati, includi esempi ideali e input reali e disordinati. Pensa a varianti e casi limite, ad esempio post con emoji, struttura nidificata e molti snippet di codice.
Inizializzare una base di riferimento
Scrivi il tuo primo prompt. Puoi iniziare con zero-shot e includere:
- Istruzioni chiare
- Formato di output
- Segnaposto per la variabile di input
Aumenti la complessità e lavori con altri componenti e tecniche di prompt avanzate quando valuti e ottimizzi. Innanzitutto, dobbiamo configurare un sistema di valutazione per indirizzare l'impegno di ottimizzazione nella giusta direzione.
Creare il sistema di valutazione
Nel TDD, inizi a scrivere i test una volta che conosci i requisiti. Con l'AI generativa, non esistono output definitivi da testare, quindi devi impegnarti di più per creare il ciclo di valutazione.
Probabilmente hai bisogno di più strumenti di misurazione per eseguire una valutazione efficace.
Definisci le metriche di valutazione
Le metriche di valutazione possono essere deterministiche. Ad esempio, puoi verificare se il modello restituisce un JSON valido o genera il numero corretto di elementi.
Tuttavia, gran parte del tuo tempo deve essere dedicata all'identificazione e al perfezionamento di metriche soggettive o qualitative, come chiarezza, utilità, tono o creatività. Potresti iniziare con obiettivi generali, ma incontrare rapidamente problemi più sfumati.
Ad esempio, supponiamo che il generatore di titoli utilizzi eccessivamente determinate frasi o pattern, generando risultati ripetitivi e meccanici. In questo caso, devi definire nuove metriche per incoraggiare la variazione e scoraggiare le strutture o le parole chiave troppo utilizzate. Nel tempo, le metriche principali si stabilizzeranno e potrai monitorare i miglioramenti.
Questo processo può trarre vantaggio da esperti che comprendono l'aspetto di un buon risultato nel dominio della tua applicazione e che possono individuare modalità di errore sottili. Ad esempio, se stai sviluppando un assistente di scrittura, collabora con un produttore o un editor di contenuti per assicurarti che la tua valutazione sia in linea con la sua visione del mondo.
Scegliere i giudici
Criteri di valutazione diversi richiedono valutatori diversi:
- I controlli basati sul codice funzionano bene per gli output deterministici o basati su regole. Ad esempio, puoi scansionare i titoli per individuare le parole che vuoi evitare, controllare il conteggio dei caratteri o convalidare la struttura JSON. Sono veloci, ripetibili e perfetti per elementi UI a output fisso, come pulsanti o campi dei moduli.
- Il feedback umano è essenziale per valutare qualità più soggettive, tra cui tono, chiarezza o utilità. Soprattutto all'inizio, la revisione degli output del modello da parte tua (o con esperti del settore) consente un'iterazione rapida. Tuttavia, questo approccio non è facilmente scalabile. Una volta avviata l'applicazione, puoi anche raccogliere indicatori in-app, ad esempio una valutazione a stelle, ma questi tendono a essere rumorosi e non hanno le sfumature necessarie per un'ottimizzazione precisa.
- LLM-as-judge offre un modo scalabile per valutare i criteri soggettivi utilizzando un altro modello di AI per assegnare un punteggio o criticare gli output. È più veloce della revisione umana, ma non priva di insidie: in un'implementazione ingenua, può perpetuare e persino rafforzare i pregiudizi e le lacune di conoscenza del modello.
Dai la priorità alla qualità rispetto alla quantità. Nel machine learning classico e nell'AI predittiva, è una pratica comune fare crowdsourcing dell'annotazione dei dati. Per l'AI generativa, gli annotatori di crowdsourcing spesso non hanno un contesto di dominio. La valutazione di alta qualità e ricca di contesto è più importante della scala.
Valutare e ottimizzare
Più velocemente puoi testare e perfezionare i prompt, prima arriverai a qualcosa che sia in linea con le aspettative degli utenti. Devi prendere l'abitudine di ottimizzare continuamente. Prova un miglioramento, valuta e prova qualcos'altro.
Una volta in produzione, continua a osservare e valutare il comportamento degli utenti e del sistema di AI. Quindi, analizza e trasforma questi dati in passaggi di ottimizzazione.
Automatizzare la pipeline di valutazione
Per ridurre l'attrito nelle attività di ottimizzazione, è necessaria un'infrastruttura operativa che automatizzi la valutazione, monitori le modifiche e colleghi lo sviluppo alla produzione. Questo approccio è comunemente chiamato LLMOps. Esistono piattaforme che possono aiutarti con l'automazione, ma devi progettare il flusso di lavoro ideale prima di scegliere una soluzione di terze parti.
Ecco alcuni componenti chiave da prendere in considerazione:
- Controllo delle versioni: memorizza i prompt, le metriche di valutazione e gli input di test nel controllo delle versioni. Trattali come codice per garantire la riproducibilità e una cronologia delle modifiche chiara.
- Valutazioni batch automatizzate: utilizza flussi di lavoro (come GitHub Actions) per eseguire valutazioni su ogni aggiornamento del prompt e generare report di confronto.
- CI/CD per i prompt: controlla le implementazioni con controlli automatici, ad esempio test deterministici, punteggi LLM-as-judge o guardrail, e blocca i merge quando la qualità regredisce.
- Logging e osservabilità della produzione: acquisisci input, output, errori, latenza e utilizzo dei token. Monitora la deriva, i pattern imprevisti o i picchi di errori.
- Inserimento del feedback: raccogli i segnali degli utenti (Mi piace, riscritture, abbandono) e trasforma i problemi ricorrenti in nuovi scenari di test.
- Monitoraggio degli esperimenti: monitora le versioni dei prompt, le configurazioni dei modelli e i risultati della valutazione.
Esegui iterazioni con modifiche piccole e mirate
Il perfezionamento dei prompt inizia in genere con il miglioramento del linguaggio del prompt. Ciò potrebbe significare rendere le istruzioni più specifiche, chiarire l'intento o rimuovere le ambiguità.
Fai attenzione a non eseguire l'overfitting. Un errore comune è quello di aggiungere regole eccessivamente restrittive per risolvere i problemi del modello di patch. Ad esempio, se il generatore di titoli continua a produrre titoli che iniziano con La guida definitiva, potresti essere tentato di vietare esplicitamente questa frase. Estrai invece il problema e modifica l'istruzione di livello superiore. Ciò potrebbe significare che enfatizzi l'originalità, la varietà o uno stile editoriale specifico, in modo che il modello impari la preferenza sottostante anziché una singola eccezione.
Un altro modo è sperimentare con più tecniche di prompt e combinare questi sforzi. Quando scegli una tecnica, chiediti: questa attività si risolve meglio per analogia (few-shot), ragionamento passo passo (chain-of-thought) o miglioramento iterativo (self-reflection)?
Quando il sistema entra in produzione, il volano EDD non dovrebbe rallentare. Se possibile, dovrebbe accelerare. Se il tuo sistema elabora e registra l'input dell'utente, questi dati diventeranno la tua fonte di informazioni più preziosa. Aggiungi pattern ricorrenti alla tua suite di valutazione e identifica e implementa continuamente i passaggi di ottimizzazione successivi migliori.
I tuoi concetti principali
Lo sviluppo di prompt basato sulla valutazione ti offre un modo strutturato per affrontare l'incertezza dell'AI. Definendo chiaramente il problema, creando un sistema di valutazione personalizzato e apportando piccoli miglioramenti mirati, crei un ciclo di feedback che migliora costantemente gli output del modello.
Risorse
Ecco alcuni materiali di lettura consigliati se vuoi implementare LLM-as-judge:
- Confronta la funzionalità LLM con il riepilogo.
- Leggi la guida di Hamel Husain sull'utilizzo di LLM come giudice.
- Leggi l'articolo: A Survey on LLM-as-a-Judge.
Se ti interessa migliorare ulteriormente i prompt, scopri di più sullo sviluppo sensibile al contesto. Questa operazione viene eseguita al meglio da un machine learning engineer.
Verifica la tua comprensione
Qual è l'obiettivo principale dello sviluppo basato sulla valutazione?
Perché utilizzare modelli più grandi per valutare un sistema lato client?
Qual è un potenziale problema dell'utilizzo di LLM come giudice per la valutazione?
Quale componente fa parte di una pipeline di valutazione automatica consigliata?
Quando scegli i giudici per il tuo sistema di valutazione, qual è la limitazione principale dell'utilizzo del feedback umano?