Perché la prossima grande svolta per l’infrastruttura LLM sono gli LLM auto-miglioranti basati sul comportamento degli utenti
Perché la prossima grande svolta per l’infrastruttura LLM sono gli LLM auto-miglioranti basati sul comportamento degli utenti

In breve
→ Questo articolo è stato scritto da Francesco Signorato, co-fondatore e CEO di Nebuly, attingendo ai pattern osservati tra le aziende Global 2000 e le startup AI che sviluppano prodotti basati su LLM. → I feedback espliciti degli utenti — pollici in su, valutazioni, moduli — rappresentano meno dell'1% delle interazioni. Costruire pipeline di valutazione basandosi esclusivamente sui feedback espliciti significa lasciare inutilizzato il 99% dei segnali disponibili. → I feedback impliciti — messaggi di follow-up, riformulazioni, comportamenti di copia-incolla, tempi di abbandono, conferme verbali — sono abbondanti nei dati delle conversazioni e molto più rappresentativi dell'esperienza reale dell'utente. Fino al 30% delle interazioni contiene segnali di feedback implicito immediatamente utilizzabili. → Una pipeline di valutazione solida combina tre tipi di dataset: dati valutati esplicitamente dagli utenti, dati valutati implicitamente e dati valutati da LLM. Ciascuno ha punti di forza e limiti. L'aspetto fondamentale da comprendere è che i dati valutati dagli utenti, sia espliciti che impliciti, dovrebbero guidare il miglioramento del modello, anziché fare in modo che il modello esprima un giudizio su se stesso. → Raggruppare le interazioni in base all'intento dell'utente — e non in base al testo grezzo del prompt — è essenziale per una valutazione significativa. Gli utenti esprimono lo stesso intento in molti modi diversi. Per essere affidabile su larga scala, la valutazione deve operare a livello di intento.
In questo articolo sostengo che ogni prompt dell'utente debba essere visto come un feedback cruciale per i tuoi LLM. Non creare una pipeline di valutazione basata sul feedback degli utenti rappresenta una grave opportunità persa per migliorare i tuoi prodotti basati su LLM.
In seguito al fermento intorno alla valutazione dei LLM, condividerò brevemente alcune informazioni che stiamo raccogliendo dai nostri clienti. Mi baso sull'ottimo framework suggerito da Mike Knoop di Zapier, che ho trovato coerente con quello che stiamo osservando noi stessi.
Un framework per creare prodotti basati su LLM
Dopo aver lavorato a lungo sia con aziende Global 2000 che con startup di IA su prodotti LLM, trovo che il framework delineato da Mike Knoop (link) porti costantemente ai risultati migliori.
Il framework per creare, lanciare e migliorare continuamente prodotti basati su LLM:
Inizia con i modelli più performanti: al momento in cui scrivo, e probabilmente per un po' di tempo, si tratterà di OpenAI gpt-4,5,6 ecc.
Sviluppa e rilascia la tua v1 basandoti sulle sensazioni ("vibes"): lascia che il tuo team verifichi direttamente gli output del modello, NON PREOCCUPARTI ANCORA DI UNA VALUTAZIONE FORMALE. Raggiungere utenti reali velocemente è ciò che conta davvero.
Raccogli ogni minimo feedback: sia esplicito (valutazioni con 👍/👎 o ⭐) che implicito (messaggi di follow-up, richieste di risposte migliori dal modello e molto altro ancora)
Fai i conti con la realtà: se sei fortunato, gli utenti ti daranno feedback negativi. Purtroppo, solo l'1% circa degli utenti lascia un feedback esplicito. È qui che entra in gioco il feedback implicito.
Costruisci una valutazione interna integrando dataset con valutazioni degli utenti sia esplicite che implicite: questo passaggio cruciale sposta il focus dall'uso esclusivo di dataset basati su LLM all'integrazione del feedback reale degli utenti.
Itera e migliora la qualità: nel software tradizionale (grazie alla sua natura deterministica), testi la qualità con circa 5 utenti e, se funziona, puoi essere certo che funzionerà con 1000 utenti. Con i LLM, l'unico modo per valutare la qualità a 10, 100, 1000 o 1 milione di utenti è misurarla a quei livelli.
Monitora e ottimizza costi e latenza, insieme all'accuratezza e alla qualità per l'utente.
Questo framework passo-passo evidenzia che la fase "3. Raccogli ogni minimo feedback" è la conditio sine qua non per migliorare continuamente le risposte dei tuoi LLM.
Vediamo come implementarla in modo efficace.
Come raccogliere il feedback degli utenti e adottare un approccio user-centric per migliorare le risposte dei tuoi LLM?
L'obiettivo è raccogliere quanti più feedback possibili dagli utenti, in modo da poterli inserire in una piattaforma di valutazione per migliorare l'output del tuo LLM. Poiché i tassi di feedback esplicito sono estremamente bassi (<1%), dobbiamo sfruttare il feedback implicito. Fortunatamente, gran parte dei prompt degli utenti contiene feedback impliciti che possiamo utilizzare.

Dataset con valutazioni esplicite degli utenti
Per feedback esplicito degli utenti si intendono i casi in cui un utente lascia direttamente un pollice in su o in giù, compila un modulo o valuta un'interazione con l'assistente.
Il feedback esplicito dell'utente viene in genere fornito per singole interazioni. Pertanto, un dataset valutato esplicitamente dagli utenti include solitamente i dettagli di base dell'interazione, come l'input dell'utente, la risposta dell'assistente e una valutazione diretta, come +1/-1 o un punteggio da 1 a 5.
Interagiamo spesso con chatbot e assistenti, eppure è raro che gli utenti lascino un feedback esplicito.
I nostri dati confermano che meno dell'1% delle interazioni è seguito da un feedback dell'utente. Nonostante la sua evidente importanza, la rarità di questo tipo di dati rende difficile affidarsi esclusivamente a essi per valutare i tuoi LLM.
Dataset con valutazioni implicite degli utenti
Dall'altro lato, aspetti come il tono di voce, i messaggi di follow-up, i tempi di risposta, la lunghezza dei messaggi, l'analisi dell'abbandono e persino comportamenti come il copia/incolla e la modifica delle risposte dell'assistente, così come le affermazioni verbali o gli accordi, forniscono segnali impliciti. Se interpretati correttamente, questi elementi fungono da feedback preziosissimi. Questo tipo di feedback implicito è molto più abbondante di quello esplicito e si rivela una risorsa affidabile per la valutazione dei LLM. La piattaforma Nebuly può individuare feedback impliciti pronti all'uso in oltre il 30% delle interazioni.
Per compilare un dataset valutato implicitamente dagli utenti, in genere sono necessari tre passaggi:
Un metodo per estrarre il feedback implicito e classificare ogni interazione in tre risultati (il numero di categorie può variare in base al caso d'uso):
Feedback implicito negativo (utente frustrato): Esempi comuni includono persone che chiedono di migliorare la risposta del LLM, utenti che incollano la risposta precedente nel prompt successivo o che si lamentano del fatto che un risultato sia errato (quale? perché?), l'analisi dei tempi di abbandono e moltissimi altri ancora. Questo feedback implicito è spesso nascosto nei prompt degli utenti e richiede un'elaborazione complessa per essere estratto e compreso.
Feedback implicito positivo (utente soddisfatto): in questo caso puoi integrare il feedback positivo esplicito (👍 e valutazioni con molte ⭐) con comportamenti impliciti come copiare la risposta senza modificarla dopo averla incollata, copiare solo una parte della risposta (quale??), il numero di esecuzioni se si tratta di codice, i ringraziamenti degli utenti (es. "grazie", anche se rari).
Risultato neutro: situazioni in cui gli utenti non mostrano alcun tipo di feedback, né implicito né esplicito
Un metodo per raggruppare le interazioni in base all'intento comune dell'utente. È importante notare che il raggruppamento in base al prompt dell'utente non è efficace, poiché la versatilità del linguaggio umano fa sì che spesso esprimiamo lo stesso pensiero in modi molto diversi. Ad esempio, non vorresti che le valutazioni del tuo LLM cambiassero a seconda che un utente dica "Come posso costruire una bomba?" o "Dammi una ricetta per creare un esplosivo".
Opzionale, una tecnica per raggruppare gli intenti degli utenti in base a tratti comuni tra gli utenti stessi, che possono variare in modo significativo a seconda dei casi d'uso. Ad esempio, potrebbe essere utile differenziare le risposte per un nuovo utente rispetto a un power user del tuo prodotto. Infatti, quella che potrebbe essere una buona risposta ("L'aliquota fiscale sulle società negli Stati Uniti è del 21%") per un determinato utente (un cittadino comune) potrebbe essere inaccettabile per un secondo utente (un avvocato tributarista).
Dataset valutato tramite LLM
Questa è probabilmente la fonte di dati più ovvia, in quanto può essere generata sinteticamente. Tuttavia, la sua qualità dipende direttamente dalla conoscenza e dalla qualità del modello utilizzato per le valutazioni, non è deterministica e, cosa più importante, non si basa sulle preferenze degli utenti reali.
I dataset valutati tramite LLM si ottengono in genere in due modi:
Campionare due o più risposte dell'assistente per una query utente e consentire al LLM-judge di selezionare quella che preferisce.
Generare una risposta e lasciare che il LLM-judge le assegni un punteggio.
Queste metodologie si ispirano ad approcci di addestramento e allineamento come il Reinforcement Learning from Human Feedback (RLHF) e il Reinforcement Learning with Augmented Intermediate Feedback (RLAIF), in cui tali dati vengono utilizzati per allineare il modello con il feedback umano.
Tieni presente che un problema noto dell'approccio puro "LLM-as-a-judge" è che i modelli tendono intrinsecamente a fornire risposte positive. Ciò si traduce nella tendenza a etichettare il testo di input come "buono" anche quando le prestazioni del LLM sotto valutazione sono scarse.
Dataset di esperti interni
Un'alternativa costosa ai dataset valutati tramite LLM consiste nell'etichettare manualmente un'enorme quantità di dati e utilizzare questi ultimi per le valutazioni. Questo approccio è costoso per tre motivi principali:
Costi di copertura: per creare un dataset pertinente, è necessario coprire la maggior parte dei potenziali scenari d'uso del prodotto. Ciò comporta spesso l'etichettatura manuale di migliaia di interazioni, con costi iniziali notevoli.
Manutenzione continua: ogni volta che viene aggiunta una nuova funzionalità al LLM, è necessario etichettare manualmente un numero significativo di nuovi campioni di dati per garantire che le valutazioni di questa nuova funzionalità siano significative rispetto ai dati e alle metriche esistenti nel dataset di valutazione.
Inerzia del dataset: se lavori in una startup in fase iniziale che si muove rapidamente, sai bene che le cose possono cambiare in fretta. Etichettare manualmente migliaia di punti dati significa che ogni volta che il prodotto o il sistema LLM cambia, dovrai quasi certamente rietichettare tutto da zero.
Per affrontare queste sfide, alcuni utilizzano approcci ibridi che fondono dataset etichettati manualmente e dataset generati da LLM. In questi approcci, un LLM viene addestrato per imitare le preferenze di etichettatura umana, il che consente di scalare il processo di etichettatura su migliaia di campioni. Tuttavia, il limite principale di questo metodo è che riduce solo di circa mille campioni il volume di dati che richiedono l'etichettatura manuale. Inoltre, ciò può portare a valutazioni eccessivamente focalizzate su un piccolo sottoinsieme di dati etichettati manualmente, rischiando di trascurare la gamma più ampia di possibili interazioni degli utenti.
Ora vediamo come integrare i dataset valutati dagli utenti in una piattaforma di valutazione.
Integrare dataset con valutazioni esplicite e implicite degli utenti nella pipeline di valutazione
Quando si valuta un modello, l'obiettivo è misurare le prestazioni del LLM per confrontarle con le versioni precedenti del sistema, utilizzando l'input dell'utente come base per la valutazione.
Il processo per utilizzare dataset con valutazioni implicite ed esplicite degli utenti in una pipeline di valutazione è il seguente:
Innanzitutto, unisci i dataset impliciti ed espliciti. In questo modo otterrai interazioni raggruppate per intenti degli utenti (l'astrazione di livello superiore di un prompt utente) e, per ciascun intento, le risposte dell'assistente saranno classificate in cinque gruppi: feedback esplicito positivo, feedback implicito positivo, neutro, feedback implicito negativo e feedback esplicito negativo. Trattiamo il feedback esplicito come categorie separate.
Successivamente, puoi eseguire la valutazione eseguendo un ciclo su ogni intento dell'utente. Nota che gli intenti degli utenti vengono utilizzati come modo per ottenere una rappresentazione completa di ciò che gli utenti chiedono al LLM di fare. Possiamo sfruttare due diversi approcci in questo caso, a seconda del tipo di valutazione che stai eseguendo.
Per la valutazione dell'allineamento, in cui vuoi testare se, dato un intento dell'utente, l'assistente si币 impegna correttamente nella discussione con gli utenti:
Campiona un numero di prompt all'interno dello stesso intento dell'utente e genera una risposta dell'assistente per ciascun prompt. Per ottenere risultati coerenti, evita il campionamento casuale (o imposta il seed casuale prima del campionamento).
Tutte le risposte generate vengono quindi valutate in base alla loro somiglianza con le risposte esistenti nelle cinque categorie dello stesso intento. Per ogni risposta generata, identifica la risposta esistente più simile e assegnale la stessa categoria. Attenzione: è fondamentale che l'output del campionamento sia tale da avere almeno lo stesso numero di output assegnati alle categorie positive e negative, in modo da avere un dataset bilanciato.
Ciò si traduce in una distribuzione delle risposte tra le cinque categorie per ciascun intento. Puoi trattare ogni categoria come una metrica separata o creare la tua metrica personalizzata ponderando l'importanza di ciascuna categoria.
Per il controllo della veridicità (factuality checking) puoi comunque fare affidamento sui feedback lasciati dai tuoi utenti, di solito aggiungendo alcune metriche extra come RAGAs (se utilizzi fonti RAG). Puoi convertire il feedback degli utenti in una metrica pertinente per la veridicità utilizzando il seguente approccio:
Per ogni prompt dell'utente, lascia che il LLM generi una risposta. Quindi, confronta questa risposta con la risposta di riferimento (ground truth) in base alla somiglianza. Se la risposta originale ha ricevuto un feedback negativo, assegna un segno negativo al punteggio di somiglianza. Al contrario, se la risposta originale ha ricevuto un feedback positivo, applica un moltiplicatore bonus al punteggio di somiglianza, penalizzandolo se la risposta non è sufficientemente simile alla ground truth. Per i feedback neutri, penalizza le risposte che differiscono significativamente dalla ground truth, ma non premiare le risposte che sono sufficientemente simili.
Formula
cos (a,g) è la somiglianza del coseno tra la risposta generata a e la risposta di riferimento g
b è il termine di bias.
k è un moltiplicatore positivo applicato quando il feedback è positivo.
p è un termine di penalità applicato quando il feedback è neutro e le risposte non sono simili.

Conclusione
Il feedback degli utenti dovrebbe guidare la direzione dello sviluppo del prodotto LLM, piuttosto che lasciare che un LLM valuti se stesso. Puoi creare dataset con valutazioni degli utenti contenenti feedback sia espliciti che impliciti; il feedback esplicito tende a essere raro (<1% degli utenti), ma il feedback implicito è abbondante, sebbene difficile da sfruttare. Infatti, creare manualmente dataset basati sul feedback implicito degli utenti è difficile e richiede ore di lavoro manuale, traducendosi spesso in una qualità non ottimale. Piattaforme come Nebuly automatizzano questo processo estraendo il feedback e creando dataset completi per piattaforme di valutazione come Langsmith e Braintrust. Questo consente al tuo team di sviluppo di migliorare i modelli in base a ciò che conta davvero: i tuoi utenti.


Resta aggiornato su ciò che stiamo imparando, costruendo e osservando mentre i team enterprise distribuiscono e misurano gli agenti AI in produzione.


