Condividi tramite


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

Importante

Se l'endpoint di gestione del modello personalizzato richiede l'esperienza della tabella di inferenza legacy, vedere Tabelle di inferenza per il monitoraggio e il debug dei modelli.

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 tramite il gateway di intelligenza artificiale semplificano il monitoraggio e la diagnostica per i modelli registrando continuamente gli input delle richieste di servizio e le risposte (previsioni) dagli endpoint di servizio del modello AI di Mosaic e salvandoli in una tabella Delta nel Catalogo Unity. È 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 di 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 Il monitoraggio di Lakehouse. Il monitoraggio di Lakehouse 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 ai cambiamenti nei dati in ingresso o a riduzioni 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.

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.
  • Perdere le autorizzazioni nel catalogo o schema del Unity Catalog.
  • Modificare o eliminare il proprietario della 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 creato l'endpoint. 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 Serve nell'interfaccia utente di Databricks Mosaic AI.
  2. Fare clic su Crea 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 del gateway di intelligenza artificiale, 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 - generative AI observability (Traccia MLflow - osservabilità dell'intelligenza artificiale generativa).

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 .

Annotazioni

La system.serving.served_entities tabella di sistema non è supportata per gli endpoint con pagamento in base al token, ma è possibile aggiungere tabelle di inferenza e utilizzo per ottenere dettagli simili.

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 con abilitazione per il gateway di intelligenza artificiale

Le tabelle di inferenza abilitate con il gateway di intelligenza artificiale hanno lo schema seguente:

Nome colonna Descrizione Tipo
request_date Data UTC in cui è stata ricevuta la richiesta di gestione del modello. DATTERO
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 Il timestamp a cui viene 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 sotto-campionata. 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 Il corpo non elaborato della richiesta JSON inviato all'endpoint del modello di servizio. 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

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
Carico utile {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.

Annotazioni

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 colonna Descrizione 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. DATTERO
timestamp_ms Timestamp in millisecondi di periodo in cui è stata ricevuta la richiesta di gestione del modello. LUNGO
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 sotto-campionata. 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. LUNGO
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 colonna Descrizione 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. STRUTTURA
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

Limitazioni

  • Carichi di lavoro con throughput configurato
    • Se si crea un nuovo endpoint di servizio del modello che utilizza la velocità effettiva provvisionata, sono supportate solo le tabelle di inferenza abilitate per l'AI Gateway.
    • Se si dispone di un modello esistente che serve un endpoint che usa il throughput provisionato e non aveva mai tabelle di inferenza legacy configurate in precedenza, è possibile aggiornarlo per usare le tabelle di inferenza abilitate per l'AI Gateway.
    • Se si dispone di un endpoint di servizio del modello esistente che usa throughput con provisioning e dispone di tabelle di inferenza legacy attualmente configurate o configurate in precedenza, non è possibile aggiornarlo per usare le tabelle di inferenza abilitate dall'AI Gateway.
    • 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:
    • Se si crea un nuovo modello che gestisce un endpoint che gestisce un modello personalizzato, Databricks consiglia di usare le tabelle di inferenza abilitate per il gateway di intelligenza artificiale. Se è necessaria l'esperienza di tabella di inferenza legacy, è possibile configurare solo il nuovo endpoint per il gateway di intelligenza artificiale usando l'API REST.
    • Se si dispone di un endpoint esistente che gestisce un modello personalizzato e non sono configurate tabelle di inferenza, è possibile aggiornarlo per usare le tabelle di inferenza abilitate per il gateway di intelligenza artificiale.
    • Se si dispone di un endpoint esistente che gestisce un modello personalizzato e che dispone di 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.
    • Dopo l'abilitazione delle tabelle di inferenza abilitate per il gateway di intelligenza artificiale, non è possibile passare alle tabelle di inferenza legacy.
  • 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 altre informazioni, contattare il team dell'account Databricks.
  • La dimensione massima di richiesta e risposta registrata è 1 MiB (1.048.576 byte). I payload di richiesta e risposta 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 del gateway di intelligenza artificiale, vedere Limitazioni. Per informazioni generali sulle limitazioni degli endpoint, vedere limiti e aree di gestione dei modelli .