Monitorare i modelli serviti utilizzando le tabelle di inferenza abilitate dal Gateway di intelligenza artificiale

Importante

Una nuova esperienza di Unity AI Gateway è disponibile nella versione beta. Il nuovo Gateway Unity AI è il piano di controllo aziendale per la gestione degli endpoint LLM e degli agenti di codifica con funzionalità avanzate. Consulta la governance dell'IA con Unity AI Gateway.

Questo articolo descrive le tabelle di inferenza abilitate dal gateway di intelligenza artificiale per il monitoraggio dei modelli serviti. La tabella di inferenza acquisisce automaticamente le richieste in ingresso e le risposte in uscita per un endpoint e le registra come tabella Delta del catalogo Unity. È possibile usare i dati in questa tabella per monitorare, valutare, confrontare e ottimizzare i modelli di Machine Learning.

Che cosa sono le tabelle di inferenza abilitate per il gateway di intelligenza artificiale?

Le tabelle di inferenza abilitate da AI Gateway semplificano il monitoraggio e la diagnostica dei modelli registrando continuamente gli input delle richieste di servizio e le risposte (previsioni) dagli endpoint di Model Serving e salvandoli in una tabella Delta in Unity Catalog. È quindi possibile usare tutte le funzionalità della piattaforma Databricks, ad esempio query e notebook SQL di Databricks per monitorare, eseguire il debug e ottimizzare i modelli.

È possibile abilitare le tabelle di inferenza in un endpoint esistente o appena creato e le richieste a tale endpoint vengono quindi registrate automaticamente in una tabella nel catalogo unity.

Di seguito sono riportate alcune applicazioni comuni per le tabelle di inferenza:

  • Creare un corpus per il training. Unendo le tabelle di inferenza con etichette di ground truth, è possibile creare un corpus di addestramento che è possibile usare per addestrare nuovamente e ottimizzare e migliorare il modello. Usando i Lakeflow Jobs, è possibile configurare un ciclo di feedback continuo e automatizzare il ri-addestramento.
  • Monitorare i dati e la qualità del modello. È possibile monitorare continuamente le prestazioni del modello e la deriva dei dati usando la profilatura dei dati, che genera automaticamente dashboard di qualità dei dati e dei modelli che è possibile condividere con gli stakeholder. Inoltre, è possibile abilitare gli avvisi per sapere quando è necessario riaddestrare il modello in base a cambiamenti nei dati in ingresso o a diminuzioni delle prestazioni del modello.
  • Eseguire il debug dei problemi di produzione. Le tabelle di inferenza registrano dati come codici di stato HTTP, codice JSON di richiesta e risposta, tempi di esecuzione del modello e tracce di output durante i tempi di esecuzione del modello. È possibile usare questi dati sulle prestazioni a scopo di debug. È anche possibile usare i dati cronologici nelle tabelle di inferenza per confrontare le prestazioni del modello sulle richieste cronologiche.
  • Monitorare gli agenti di intelligenza artificiale distribuiti. Le tabelle di inferenza possono anche archiviare tracce MLflow per gli agenti di intelligenza artificiale che consentono di eseguire il debug dei problemi e monitorare le prestazioni.

Requisiti

  • L'area di lavoro deve avere Unity Catalog abilitato.
  • Sia l'autore dell'endpoint che il modificatore devono disporre dell'autorizzazione Can Manage per l'endpoint. Vedere Elenchi di controllo di accesso.
  • Sia l'autore dell'endpoint che il modificatore devono avere le seguenti autorizzazioni nel catalogo Unity.
    • Autorizzazioni USE CATALOG sul catalogo specificato.
    • USE SCHEMA autorizzazioni per lo schema specificato.
    • CREATE TABLE autorizzazioni nello schema.
  • Il catalogo non può essere un catalogo OpenSharing nel metastore corrente.

Nota

La specifica di una tabella esistente non è supportata. Azure Databricks crea automaticamente una nuova tabella di inferenza quando si crea un endpoint o si aggiorna la configurazione del gateway di intelligenza artificiale Unity con la configurazione della tabella di inferenza abilitata.

Avvertimento

La tabella di inferenza potrebbe arrestare la registrazione dei dati o essere danneggiata se si esegue una delle operazioni seguenti:

  • Modificare lo schema della tabella.
  • Modificare il nome della tabella.
  • Eliminare la tabella.

Abilitare e disabilitare le tabelle di inferenza

Questa sezione illustra come abilitare o disabilitare le tabelle di inferenza usando l'interfaccia utente Di servizio. Il proprietario delle tabelle di inferenza è l'utente che ha abilitato la tabella di inferenza. Tutti gli elenchi di controllo di accesso (ACL) nella tabella seguono le autorizzazioni standard del catalogo Unity e possono essere modificati dal proprietario della tabella.

Per abilitare le tabelle di inferenza durante la creazione dell'endpoint, seguire questa procedura:

  1. Fare clic su Serving nell'interfaccia utente di Azure Databricks.
  2. Fare click su Crea l'endpoint di servizio.
  3. Nella sezione Gateway di intelligenza artificiale selezionare Abilita tabelle di inferenza.

È anche possibile abilitare le tabelle di inferenza in un endpoint esistente. Per modificare una configurazione dell'endpoint esistente, eseguire le operazioni seguenti:

  1. Nella sezione Gateway di intelligenza artificiale fare clic su Modifica gateway di intelligenza artificiale.
  2. Selezionare Abilita tabelle di inferenza.

Seguire queste istruzioni per disabilitare le tabelle di inferenza:

  1. Vai alla pagina dell'endpoint.
  2. Fare clic su Modifica gateway di intelligenza artificiale.
  3. Fare clic su Abilita tabella di inferenza per rimuovere il segno di spunta.
  4. Dopo aver soddisfatto le specifiche di Unity AI Gateway, fare clic su Aggiorna.

Abilitare le tabelle di inferenza per gli agenti di intelligenza artificiale

È anche possibile abilitare le tabelle di inferenza per gli agenti di intelligenza artificiale distribuiti, queste tabelle di inferenza archiviano i dettagli del payload e delle richieste, nonché i log di traccia MLflow.

Abilitare le tabelle di inferenza per gli agenti di intelligenza artificiale usando i metodi seguenti:

Per altre informazioni sulla traccia dell'agente MLflow, vedere MLflow Tracing - GenAI observability(Traccia MLflow - GenAI).

Eseguire query e analizzare i risultati nella tabella di inferenza

Dopo che i modelli serviti sono pronti, tutte le richieste effettuate ai modelli vengono registrate automaticamente nella tabella di inferenza, insieme alle risposte. È possibile visualizzare la tabella nell'interfaccia utente, eseguire query sulla tabella da Databricks SQL o da un notebook oppure eseguire query sulla tabella usando l'API REST.

Per visualizzare la tabella nell'interfaccia utente: Nella pagina endpoint fare clic sul nome della tabella di inferenza per aprire la tabella in Esplora cataloghi.

collegamento al nome della tabella di inferenza nella pagina dell'endpoint

Per eseguire query sulla tabella da Databricks SQL o da un notebook di Databricks: È possibile eseguire codice simile al seguente per eseguire una query sulla tabella di inferenza.

SELECT * FROM <catalog>.<schema>.<payload_table>

Per unire i dati della tabella di inferenza con i dettagli sul modello di base sottostante servito nell'endpoint: I dettagli del modello di base vengono acquisiti nella tabella di sistema system.serving.served_entities .

SELECT * FROM <catalog>.<schema>.<payload_table> payload
JOIN system.serving.served_entities se on payload.served_entity_id = se.served_entity_id

Schema della tabella di inferenza abilitata da gateway di intelligenza artificiale di Unity

Le tabelle di inferenza abilitate con Unity AI Gateway hanno lo schema seguente:

Nome della colonna Description Tipo
request_date Data UTC in cui è stata ricevuta la richiesta di gestione del modello. DATE
databricks_request_id Identificatore di richiesta generato da Azure Databricks associato a tutte le richieste di gestione del modello. filo
client_request_id Identificatore di richiesta fornito dall'utente che può essere specificato nel corpo della richiesta di gestione del modello. filo
request_time La data e l'ora in cui è stata ricevuta la richiesta. TIMESTAMP
status_code Codice di stato HTTP restituito dal modello. INT
sampling_fraction Frazione di campionamento utilizzata nel caso in cui la richiesta sia stata sottocampionata. Questo valore è compreso tra 0 e 1, dove 1 rappresenta che sono stati inclusi 100% di richieste in ingresso. DOPPIO
execution_duration_ms Tempo in millisecondi per il quale il modello ha eseguito l'inferenza. Ciò non include latenze di rete sovraccariche e rappresenta solo il tempo impiegato per generare stime dal modello. BIGINT
request Corpo JSON della richiesta non elaborato e inviato all'endpoint di gestione del modello. filo
response Corpo JSON della risposta non elaborata restituito dall'endpoint di gestione del modello. filo
served_entity_id ID univoco dell'entità servita. filo
logging_error_codes Errori che si sono verificati quando non è stato possibile registrare i dati. I codici di errore includono MAX_REQUEST_SIZE_EXCEEDED e MAX_RESPONSE_SIZE_EXCEEDED. ARRAY
requester ID dell'utente o del principale del servizio le cui autorizzazioni vengono utilizzate per la richiesta di invocazione dell'endpoint di servizio. Questo campo restituisce NULL per gli endpoint personalizzati ottimizzati per il routing del modello. filo

Schemi delle tabelle di inferenza dell'agente di intelligenza artificiale

Avvertimento

I log delle richieste e i log di valutazione sono deprecati e verranno rimossi in una versione futura. Per indicazioni sulla migrazione, vedere la deprecazione dei log delle richieste e dei log di valutazione.

Per gli agenti di intelligenza artificiale, Databricks crea tre tabelle di inferenza per ogni distribuzione per registrare le richieste e le risposte da e verso il modello che gestisce l'endpoint:

Tabella di inferenza Nome di esempio della tabella Azure Databricks Contenuto della tabella
Payload {catalog_name}.{schema_name}.{model_name}_payload Payload di richiesta e risposta JSON non elaborati
Log delle richieste di payload {catalog_name}.{schema_name}.{model_name}_payload_request_logs Richieste e risposte formattate, tracce MLflow
Registro di valutazione del payload {catalog_name}.{schema_name}.{model_name}_payload_assessment_logs Feedback formattato, come fornito nell’app di recensione, per ogni richiesta

Gli utenti possono aspettarsi i dati nelle tabelle di payload entro un'ora dall'interazione con l'endpoint di servizio. I log delle richieste di payload e i log di valutazione potrebbero impiegare più tempo a popolarsi e derivano dalla tabella del payload non elaborato. È possibile estrarre manualmente i log di richiesta e valutazione dalla tabella del payload. Le eliminazioni e gli aggiornamenti alla tabella del payload non vengono riflesse nei log delle richieste di payload o nei log di valutazione del payload.

Nota

Se hai attivato il Firewall di Archiviazione di Azure, contatta il team del tuo account Databricks per permettere l'utilizzo delle tabelle di inferenza per gli endpoint.

Di seguito viene illustrato lo schema per la tabella dei log delle richieste di payload:

Nome della colonna Description Tipo
databricks_request_id Identificatore di richiesta generato da Azure Databricks associato a tutte le richieste di gestione del modello. filo
client_request_id Identificatore di richiesta generato dal client facoltativo che può essere specificato nel corpo della richiesta di gestione del modello. filo
date Data UTC in cui è stata ricevuta la richiesta di gestione del modello. DATE
timestamp_ms Timestamp in millisecondi di periodo in cui è stata ricevuta la richiesta di gestione del modello. LONG
timestamp Data e ora della richiesta. TIMESTAMP
status_code Codice di stato HTTP restituito dal modello. INT
sampling_fraction Frazione di campionamento utilizzata nel caso in cui la richiesta sia stata sottocampionata. Questo valore è compreso tra 0 e 1, dove 1 rappresenta che sono stati inclusi 100% di richieste in ingresso. DOPPIO
execution_time_ms Tempo di esecuzione in millisecondi per il quale il modello ha eseguito l'inferenza. Ciò non include latenze di rete sovraccariche e rappresenta solo il tempo impiegato per generare stime dal modello. LONG
conversation_id ID conversazione estratto dai log delle richieste. filo
request Ultima query dell'utente nella conversazione. filo
response Ultima risposta all’utente. filo
request_raw Rappresentazione della richiesta in forma di stringa. filo
response_raw Rappresentazione di stringa della risposta. filo
trace Rappresentazione della stringa della traccia estratta dalla struttura della risposta databricks_options. filo
request_metadata Mappa dei metadati correlati all'endpoint di gestione del modello associato alla richiesta. Questa mappa contiene il nome dell'endpoint, il nome del modello e la versione del modello usati per l'endpoint. MAPPATURA<STRINGA, STRINGA>
schema_version Versione dello schema. filo

Di seguito è illustrato lo schema per la tabella dei log del payload di valutazione.

Nome della colonna Description Tipo
request_id ID di richiesta Databricks. filo
step_id Il passaggio ID, derivato dalla valutazione del recupero. filo
source Campo struttura contenente le informazioni su chi ha creato la valutazione. STRUCT
timestamp Data e ora della richiesta. TIMESTAMP
text_assessment I dati relativi a qualsiasi feedback sulle risposte dell'agente provenienti dall'app di revisione. filo
retrieval_assessment I dati relativi a eventuali feedback sui documenti ottenuti per una risposta. filo

campionamento

Nota

Il campionamento si applica alle tabelle di inferenza nel modello di CPU che gestisce gli endpoint, in cui i payload vengono recapitati tramite i dati di telemetria degli endpoint. Gli endpoint che gestiscono la velocità effettiva con provisioning, i modelli esterni, i carichi di lavoro dell'API del modello di base o gli agenti seguono il comportamento di recapito in Limitazioni.

Per il modello di CPU che gestisce gli endpoint, è possibile configurare la frazione di richieste registrate nella tabella di inferenza. Il campionamento riduce il volume di registrazione e i costi di archiviazione sugli endpoint a velocità effettiva elevata mantenendo un campione rappresentativo del traffico.

  • Impostazione predefinita: 100%. Tutte le richieste vengono registrate a meno che non si imposti una frequenza inferiore.
  • Intervallo: da 0% a 100%, archiviato tra sampling_fraction 0 e 1.
  • Ogni riga registrata registra la frequenza applicata nella relativa sampling_fraction colonna.

Per impostare la frequenza nell'interfaccia utente, immettere una frequenza di campionamento (%) quando si abilitano le tabelle di inferenza nella sezione Gateway di intelligenza artificiale. Per impostarlo a livello di codice, specificare sampling_fraction nella configurazione dei dati di telemetria dell'endpoint.

Volume del punto di controllo interno

Per supportare le tabelle di inferenza abilitate per Unity AI Gateway, Azure Databricks crea un volume interno nello schema della tabella di inferenza. Il volume ha un nome generato dal sistema nel formato <catalog>.<schema>.<payload table ID>_checkpoints. L'eliminazione di questo volume può lasciare le tabelle di inferenza in formato non valido. Azure Databricks elimina automaticamente il volume quando si elimina l'endpoint di gestione corrispondente.

Limitazioni

  • Carichi di lavoro con throughput configurato
    • Se si crea un nuovo endpoint di servizio del modello che utilizza il throughput fornito, sono supportate solo le tabelle di inferenza abilitate per il Unity AI Gateway.
    • Se si dispone di un endpoint esistente che gestisce un modello che usa la velocità effettiva con provisioning e non disponga di tabelle di inferenza configurate, è possibile aggiornarlo per utilizzare le tabelle di inferenza abilitate per Unity AI Gateway.
    • Se si dispone di un endpoint di gestione del modello esistente che usa la velocità effettiva con provisioning e con tabelle di inferenza legacy configurate, è necessario disabilitare la tabella di inferenza legacy prima di poter aggiornare l'endpoint per usare le tabelle di inferenza abilitate per Il gateway di intelligenza artificiale di Unity.
    • Dopo che le tabelle di inferenza abilitate per Unity AI Gateway sono abilitate, non è possibile passare alle tabelle di inferenza legacy.
    • Per i log di risposta dell'agente di intelligenza artificiale in streaming, vengono aggregati solo i campi e le tracce compatibili con ChatCompletion.
  • Carichi di lavoro del modello personalizzati:
    • Quando si crea un nuovo endpoint di servizio per un modello personalizzato, Databricks consiglia di utilizzare le tabelle di inferenza abilitate tramite il Gateway Unity di intelligenza artificiale. Se è necessaria l'esperienza di tabella di inferenza legacy, è possibile configurare solo il nuovo endpoint per Unity AI Gateway usando l'API REST.
    • Se si dispone di un endpoint esistente che gestisce un modello personalizzato e non dispone di tabelle di inferenza configurate, è possibile aggiornarlo per usare le tabelle di inferenza abilitate per il Gateway di Intelligenza Artificiale Unity.
    • Se si dispone di un endpoint esistente che gestisce un modello personalizzato con tabelle di inferenza legacy configurate, è necessario disabilitare la tabella di inferenza legacy prima di poter aggiornare l'endpoint per usare le tabelle di inferenza abilitate per Il gateway di intelligenza artificiale unity.
    • Dopo che le tabelle di inferenza abilitate per Unity AI Gateway sono abilitate, non è possibile passare alle tabelle di inferenza legacy.
    • L'invio dei log della tabella di inferenza potrebbe subire un degrado per gli endpoint di modelli personalizzati con throughput superiore a 70 MB al secondo. Per gestire il recapito a una velocità effettiva più elevata, ridurre la frequenza di campionamento della tabella di inferenza per ridurre il volume delle richieste registrate.
  • Il recapito dei log delle tabelle di inferenza per gli endpoint che servono carichi di lavoro delle API dei modelli di base, modelli esterni o agenti è attualmente al meglio delle capacità attuali. È possibile prevedere che i log siano disponibili entro 1 ora da una richiesta. Per maggiori informazioni, si prega di contattare il team del vostro account Databricks.
  • La dimensione massima di richiesta, risposta e traccia registrata è 1 MiB (1.048.576 byte). I payload che superano questo valore vengono registrati come null e logging_error_codes vengono popolati con MAX_REQUEST_SIZE_EXCEEDED o MAX_RESPONSE_SIZE_EXCEEDED.
  • Le tabelle di inferenza per il modello ottimizzato per il percorso negli endpoint di servizio sono disponibili in anteprima pubblica.
  • Non è garantito che i log delle tabelle di inferenza vengano popolati se l'endpoint di gestione del modello restituisce un errore.
    • Per gli endpoint del modello personalizzati, i log potrebbero non essere registrati per eventuali errori 4xx o 5xx.
    • Per altri endpoint, i log potrebbero non essere registrati per errori 401, 403, 429 o 500.

Per le limitazioni specifiche per Unity AI Gateway, vedere Limitazioni. Per informazioni generali sulle limitazioni degli endpoint, vedere Limiti e aree di gestione dei modelli.