Registrazione delle risposte LLM per l'analisi

Tim Fan immagine frontale
4 lettura minima
Riassumere questo con l'AI

Perché abbiamo bisogno dell'osservabilità LLM?

Le applicazioni GenAI sono fantastiche, rispondono proprio come farebbe un essere umano. Ma come si fa a sapere se GPT non sta essendo "troppo creativo" quando i risultati dell'LLM mostrano che "le finanze dell'azienda stanno affrontando problemi a causa di una copertura solare insufficiente"?

Man mano che l'ambito delle app GenAI si amplia, la vulnerabilità aumenta e, poiché i risultati dell'LLM non sono deterministici, una configurazione che una volta funzionava non è garantita che funzioni sempre. Ecco un esempio di confronto tra i motivi per cui un prompt LLM fallisce e quelli per cui un'applicazione RAG fallisce. 

Cosa potrebbe andare storto nella configurazione?

Suggerimenti LLM

  • Parametri del modello non ottimali
    • Temperatura troppo alta / gettoni troppo piccoli
  • Messaggi di sistema non informativi

RAG

  • Indicizzazione 
  • I dati non sono stati suddivisi in blocchi della dimensione corretta, le informazioni sono scarse e la finestra è piccola.
  • È stata utilizzata una distanza errata. È stata utilizzata la distanza euclidea invece della distanza coseno.
  • La dimensione era troppo piccola / troppo grande
  • Recupero
  • Top K troppo grande, troppo contesto irrilevante recuperato
  • Top K troppo piccolo, contesto non abbastanza rilevante per generare risultati
  • Filtro utilizzato in modo improprio 
  • E tutto ciò che è contenuto nei prompt LLM

Sebbene l'osservabilità non risolva magicamente tutti i problemi, ci offre una buona opportunità per capire cosa potrebbe essere andato storto. LLM Observability fornisce metodologie che aiutano gli sviluppatori a comprendere meglio le applicazioni LLM, le prestazioni dei modelli e i bias, e può aiutare a risolvere i problemi prima che raggiungano gli utenti finali.

Quali sono i problemi più comuni e in che modo l'osservabilità può essere d'aiuto?

L'osservabilità aiuta la comprensione in molti modi, dai colli di bottiglia delle prestazioni al rilevamento degli errori, alla sicurezza e al debug. Ecco un elenco di domande comuni che potremmo porci e come l'osservabilità può tornare utile.

  1. Quanto tempo occorre per generare una risposta?
    • Monitorare i tempi di risposta dell'LLM e i tempi di query del database aiuta a identificare potenziali colli di bottiglia dell'applicazione.
  2. Il contesto recuperato dal database vettoriale è pertinente?
    • La registrazione delle query del database e dei risultati recuperati aiuta a identificare le query più performanti.
    • Può fornire assistenza nella configurazione delle dimensioni dei blocchi in base ai risultati recuperati.
  3. Quanti token vengono utilizzati in una chiamata?
    • Il monitoraggio dell'utilizzo dei token può aiutare a determinare il costo di ogni chiamata LLM.
  4. Quanto è migliore/peggiore la mia nuova configurazione?
    • Il monitoraggio dei parametri e la registrazione delle risposte aiutano a confrontare le prestazioni di diversi modelli e configurazioni di modelli.
  5. Come sta funzionando complessivamente l'applicazione GenAI?
    • Il monitoraggio delle fasi di applicazione e valutazione aiuta a identificare le prestazioni dell'applicazione.
  6. Cosa chiedono gli utenti?
    • La registrazione e l'analisi dei prompt degli utenti aiutano a comprendere le loro esigenze e possono contribuire a valutare se è possibile introdurre ottimizzazioni per ridurre i costi.
    • Aiuta a identificare le vulnerabilità di sicurezza monitorando i tentativi dannosi e contribuisce a rispondere in modo proattivo per mitigare le minacce.

Cosa dovrebbe essere monitorato?

Le applicazioni GenAI coinvolgono componenti concatenati tra loro. A seconda del caso d'uso, ci sono eventi e parametri di input/output che vogliamo acquisire e analizzare.

Elenco dei componenti da considerare:

Metadati del database vettoriale

  • Dimensione vettoriale: la dimensione vettoriale utilizzata nel database vettoriale.
  • Funzione di distanza: il modo in cui vengono confrontati due vettori nel database vettoriale

Parametri di indicizzazione vettoriale

  • Configurazione dei blocchi: come è configurato un blocco, comprese le dimensioni del blocco, l'unità dei blocchi, ecc. Ciò influisce sulla densità delle informazioni in un blocco.

Parametri di query vettoriale

  • Query: query utilizzata per recuperare il contesto dal database vettoriale.
  • Top K: il numero massimo di vettori da recuperare dal database dei vettori

Modelli di prompt

  • Richiesta di sistema: la richiesta da utilizzare nell'intera applicazione
  • Modello di prompt: il modello utilizzato per costruire un prompt. I prompt funzionano in modo diverso a seconda dei modelli e dei fornitori di LLM.

Metadati della richiesta LLM

  • Prompt: L'input inviato al modello LLM da ciascun utente finale, combinato con il modello.
  • Nome del modello: il modello LLM utilizzato per la generazione, che influisce sulle capacità dell'applicazione.
  • Token: il numero massimo di token consentiti per una singola richiesta
  • Temperatura: il parametro per impostare la creatività e la casualità del modello
  • Top P: La gamma di selezione delle parole, minore è il valore, più ristretta è la selezione delle parole campionate.

Metadati di risposta LLM

  • Token: il numero di token utilizzati nella generazione di input e output influisce sui costi.
  • Dettagli della richiesta: possono includere informazioni quali guardrail, ID della richiesta, ecc.

Metriche di esecuzione

  • Tempo di esecuzione: tempo impiegato per elaborare le singole richieste

Esempi di pipeline

Registrazione di una pipeline di completamenti chat

tfan_2-1728484625795.png

Utilizziamo MongoDB per archiviare i parametri del modello e le risposte LLM come documenti JSON per facilitarne l'elaborazione.

Registrazione di una pipeline RAG

tfan_3-1728484893624.png

In questo caso, stiamo memorizzando i parametri nel sistema RAG (Agent Retrieve in questo caso) e nel modello. Stiamo utilizzando JSON Generator Snaps per parametrizzare tutti i parametri di input nel sistema RAG e nei modelli LLM. Quindi concateniamo la risposta dal database vettoriale, dal modello LLM e dai parametri che abbiamo fornito per le richieste.

Tim Fan immagine frontale
Ingegnere software presso SnapLogic
Categoria: Tecnica