Protokollanfragen und -antworten für bereitstellende Endpunkte (Legacy)

Important

Eine neue Unity AI Gateway-Erfahrung ist allgemein verfügbar. Es ist die Enterprise-Kontrollebene zur Verwaltung von LLM-Endpunkten und Codierungsagenten mit erweiterten Funktionen. Siehe KI-Governance mit Unity AI Gateway.

In diesem Artikel werden KI-Gateway-fähige Inferenztabellen zur Überwachung bereitgestellter Modelle beschrieben. Die Ableitungstabelle erfasst automatisch eingehende Anforderungen und ausgehende Antworten für einen Endpunkt und protokolliert sie als Unity Catalog Delta-Tabelle. Sie können die Daten in dieser Tabelle verwenden, um Machine Learning-Modelle zu überwachen, auszuwerten, zu vergleichen und zu optimieren.

Was sind KI-Gateway-fähige Ableitungstabellen?

KI-Gateway-gestützte Inferenztabellen vereinfachen die Überwachung und Diagnose von Modellen, indem sie die Eingaben und Antworten (Vorhersagen) von Serving-Anfragen an Model-Serving-Endpunkten kontinuierlich protokollieren und in einer Delta-Tabelle in Unity Catalog speichern. Anschließend können Sie alle Funktionen der Databricks-Plattform wie Databricks SQL-Abfragen und -Notizbücher verwenden, um Ihre Modelle zu überwachen, zu debuggen und zu optimieren.

Sie können Schlussfolgerungstabellen für vorhandene oder neu erstellte Modellbereitstellungsendpunkt aktivieren, und Anforderungen an diesen Endpunkt werden dann automatisch in einer Tabelle im Unity-Katalog protokolliert.

Einige gängige Anwendungen für Rückschlusstabellen sind die folgenden:

  • Erstellen eines Trainingskorpus: Indem Sie Schlussfolgerungstabellen mit Boden-Wahrheitsbezeichnungen verknüpfen, können Sie einen Trainingskorpus erstellen, mit dem Sie Ihr Modell neu trainieren oder optimieren und verbessern können. Mithilfe von Lakeflow-Aufträgen können Sie eine kontinuierliche Feedbackschleife einrichten und die Neuschulung automatisieren.
  • Überwachen sie die Daten- und Modellqualität. Sie können ihre Modellleistung und Datenabweichung kontinuierlich mithilfe von Datenprofilen überwachen, wodurch automatisch Daten- und Modellqualitätsdashboards generiert werden, die Sie für die Projektbeteiligten freigeben können. Darüber hinaus können Sie Benachrichtigungen aktivieren, um zu erfahren, ob Sie Ihr Modell aufgrund von Veränderungen bei den eingehenden Daten oder verringerter Modellleistung neu trainieren müssen.
  • Debuggen von Produktionsproblemen. Rückschlusstabellen protokollieren Daten wie HTTP-Statuscodes, JSON-Codes für Anforderungen und Antworten, Modelllaufzeiten sowie die Ausgabe von Ablaufverfolgungen während der Modelllaufzeiten. Sie können diese Leistungsdaten für Debuggingzwecke verwenden. Sie können auch die verlaufsgeschichtlichen Daten in Schlussfolgerungstabellen verwenden, um die Modellleistung für historische Anforderungen zu vergleichen.
  • Bereitgestellte Agenten überwachen. Inference-Tabellen können auch MLflow-Ablaufverfolgungen für Agents speichern, die Ihnen helfen, Probleme zu debuggen und die Leistung zu überwachen.

Anforderungen

  • Ihr Arbeitsbereich muss für Unity Catalog aktiviert sein.
  • Sowohl der Ersteller des Endpunkts als auch der Modifizierer müssen über die Berechtigung Kann verwalten für den Endpunkt verfügen. Siehe Zugriffssteuerungslisten.
  • Sowohl der Ersteller des Endpunkts als auch der Modifizierer müssen über die folgenden Berechtigungen im Unity-Katalog verfügen:
    • USE CATALOG-Berechtigungen für den angegebenen Katalog.
    • USE SCHEMA-Berechtigungen für das angegebene Schema.
    • CREATE TABLE-Berechtigungen im Schema.
  • Der Katalog kann kein OpenSharing-Katalog für den aktuellen Metastore sein.

Hinweis

Das Angeben einer vorhandenen Tabelle wird nicht unterstützt. Azure Databricks erstellt automatisch eine neue Ableitungstabelle, wenn Sie einen Endpunkt erstellen oder die Unity AI Gateway-Konfiguration mit aktivierter Ableitungstabellenkonfiguration aktualisieren.

Warning

Die Ableitungstabelle könnte die Protokollierung von Daten beenden oder beschädigt werden, wenn Sie eine der folgenden Aktionen ausführen:

  • Ändern Sie das Tabellenschema.
  • Ändern Sie den Tabellennamen.
  • Löschen Sie die Tabelle.

Aktivieren und Deaktivieren von Rückschlusstabellen

In diesem Abschnitt erfahren Sie, wie Sie Mithilfe der Benutzeroberfläche "Bereitstellen" Schlussfolgerungstabellen aktivieren oder deaktivieren. Der Besitzer der Rückschlusstabellen ist der Benutzer, der die Rückschlusstabelle aktiviert hat. Alle Zugriffssteuerungslisten (Access Control Lists, ACLs) in der Tabelle folgen den Standardberechtigungen des Unity-Catalogs und können vom Tabellenbesitzer geändert werden.

Führen Sie die folgenden Schritte aus, um Rückschlusstabellen während der Endpunkterstellung zu aktivieren:

  1. Klicken Sie auf Serving in der benutzeroberfläche Azure Databricks.
  2. Klicken Sie auf "Bereitstellungsendpunkt erstellen".
  3. Wählen Sie im Abschnitt „AI Gateway“ Rückschlusstabellen aktivieren aus.

Sie können auch Rückschlusstabellen für einen vorhandenen Endpunkt aktivieren. Gehen Sie wie folgt vor, um eine vorhandene Endpunktkonfiguration zu bearbeiten:

  1. Klicken Sie im Abschnitt „AI Gateway“ auf AI Gateway bearbeiten.
  2. Wählen Sie Rückschlusstabelle aktivieren aus.

Führen Sie die folgenden Anweisungen aus, um Rückschlusstabellen zu deaktivieren:

  1. Navigieren Sie zu Ihrer Endpunktseite.
  2. Klicken Sie auf AI Gateway bearbeiten.
  3. Klicken Sie auf Rückschlusstabelle aktivieren, um das Häkchen zu entfernen.
  4. Nachdem Sie mit den Unity AI Gateway-Spezifikationen zufrieden sind, klicken Sie auf "Aktualisieren".

Aktivieren von Rückschlusstabellen für Agents

Sie können auch Rückschlusstabellen für bereitgestellte Agents aktivieren, diese Ableitungstabellen speichern Nutzlast- und Anforderungsdetails sowie MLflow-Ablaufverfolgungsprotokolle.

Aktivieren Von Rückschlusstabellen für Agents mithilfe der folgenden Methoden:

Weitere Informationen zur MLflow-Agent-Ablaufverfolgung finden Sie unter MLflow-Ablaufverfolgung – GenAI-Observability.

Abfragen und Analysieren von Ergebnissen in der Ableitungstabelle

Nachdem Ihre bereitgestellten Modelle fertig sind, werden alle Anforderungen an sie zusammen mit den Antworten automatisch in der Rückschlusstabelle protokolliert. Sie können die Tabelle auf der Benutzeroberfläche anzeigen, die Tabelle aus Databricks SQL oder einem Notizbuch abfragen oder die Tabelle mithilfe der REST-API abfragen.

Zum Anzeigen der Tabelle auf der Benutzeroberfläche: Klicken Sie auf der Seite „Endpunkt“ auf den Namen der Inferenztabelle, um sie im Katalog-Explorer zu öffnen.

Link zum Namen der Inferenz-Tabelle auf der Endpunkt-Seite

So fragen Sie die Tabelle aus Databricks SQL oder einem Databricks-Notizbuch ab: Sie können Code wie folgt ausführen, um die Ableitungstabelle abzufragen.

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

So verknüpfen Sie Ihre Ableitungstabellendaten mit Details zum zugrunde liegenden Foundation-Modell, das auf Ihrem Endpunkt bereitgestellt wird: Die Details des Foundation-Modells werden in der system.serving.served_entities Systemtabelle erfasst.

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

Unity AI Gateway-fähiges Ableitungstabellenschema

Inference-Tabellen, die mit Unity AI Gateway aktiviert sind, weisen das folgende Schema auf:

Spaltenname Beschreibung Typ
request_date Das UTC-Datum, an dem die Modellbereitstellungsanforderung empfangen wurde DATE
databricks_request_id Ein, von Azure Databricks generierter, Anforderungsbezeichner, der an alle Modellbereitstellungsanforderungen angehängt ist. STRING
client_request_id Der benutzerseitig bereitgestellte Anforderungsbezeichner, der im Anforderungstext für die Modellbereitstellung angegeben werden kann STRING
request_time Der Zeitstempel, zu dem die Anforderung eingegangen ist. TIMESTAMP
status_code Der HTTP-Statuscode, der vom Modell zurückgegeben wurde INT
sampling_fraction Der Stichprobenanteil, der verwendet wird, falls die Anforderung heruntergesampelt wurde. Dieser Wert liegt zwischen 0 und 1, wobei 1 angibt, dass 100 % der eingehenden Anforderungen einbezogen wurden. DOPPELT
execution_duration_ms Die Zeit in Millisekunden, für die das Modell Rückschlüsse ausgeführt hat. Dies schließt keine Overhead-Netzwerklatenz ein und stellt nur die Zeit dar, die für das Modell zum Generieren von Vorhersagen benötigt wurde. BIGINT
request Der JSON-Textkörper der unformatierten Anforderung, der an den Modellbereitstellungsendpunkt gesendet wurde STRING
response Der JSON-Textkörper der unformatierten Antwort, der vom Modellbereitstellungsendpunkt zurückgegeben wurde STRING
served_entity_id Die eindeutige ID der bereitgestellten Entität. STRING
logging_error_codes Die Fehler, die aufgetreten sind, wenn die Daten nicht protokolliert werden konnten. Fehlercodes umfassen MAX_REQUEST_SIZE_EXCEEDED und MAX_RESPONSE_SIZE_EXCEEDED. ARRAY
requester Die ID des Benutzer- oder Dienstprinzipals, dessen Berechtigungen für die Aufrufanforderung des bereitstellenden Endpunkts verwendet werden. Dieses Feld gibt NULL für routenoptimierte benutzerdefinierte Modellendpunkte zurück. STRING

Agent-Ableitungstabellenschemas

Warning

Anforderungsprotokolle und Bewertungsprotokolle sind veraltet und werden in einer zukünftigen Version entfernt. Weitere Informationen zur Migration finden Sie unter Abschaffung der Anforderungs- und Bewertungsprotokolle.

Für Agenten erstellt Databricks für jede Bereitstellung drei Inferenz-Tabellen, um Anfragen und Antworten an den bzw. vom Modell-Serving-Endpunkt zu protokollieren:

Rückschlusstabelle Beispielname der Azure Databricks-Tabelle Tabelleninhalt
Nutzlast {catalog_name}.{schema_name}.{model_name}_payload Rohe JSON-Anfrage- und Antwort-Payloads
Nutzlastanforderungsprotokolle {catalog_name}.{schema_name}.{model_name}_payload_request_logs Formatierte Anforderung und Antworten, MLflow-Ablaufverfolgungen
Nutzdatenbewertungsprotokolle {catalog_name}.{schema_name}.{model_name}_payload_assessment_logs Formatiertes Feedback, wie in der Rezensions-App angegeben, für jede Anforderung

Benutzer können die Daten in den Nutzlasttabellen innerhalb einer Stunde nach der Interaktion mit dem bereitstellenden Endpunkt erwarten. Nutzlastanforderungsprotokolle und Bewertungsprotokolle können länger dauern, bis sie aufgefüllt werden und von der Rohnutzlasttabelle abgeleitet werden. Sie können Anforderungs- und Bewertungsprotokolle aus der Payload-Tabelle selbst extrahieren. Löschungen und Aktualisierungen der Payload-Tabelle werden nicht in den Payload-Anforderungsprotokollen oder den Payload-Bewertungsprotokollen widergespiegelt.

Hinweis

Wenn Sie die Azure Storage-Firewall aktiviert haben, wenden Sie sich an Ihr Databricks-Kontoteam, um Rückschlusstabellen für Ihre Endpunkte zu aktivieren.

Im Folgenden wird das Schema für die Tabelle mit den Payload-Anforderungsprotokollen gezeigt.

Spaltenname Beschreibung Typ
databricks_request_id Ein, von Azure Databricks generierter, Anforderungsbezeichner, der an alle Modellbereitstellungsanforderungen angehängt ist. STRING
client_request_id Ein optionaler, vom Client generierter Anforderungsbezeichner, der im Anforderungstext des Modell-Servicedienstes spezifiziert werden kann. STRING
date Das UTC-Datum, an dem die Modellbereitstellungsanforderung empfangen wurde DATE
timestamp_ms Der Zeitstempel in Epochenmillisekunden, zu dem die Anforderung zur Modellbereitstellung empfangen wurde. LONG
timestamp Zeitstempel der Anforderung TIMESTAMP
status_code Der HTTP-Statuscode, der vom Modell zurückgegeben wurde INT
sampling_fraction Der Stichprobenanteil, der verwendet wird, falls die Anforderung heruntergesampelt wurde. Dieser Wert liegt zwischen 0 und 1, wobei 1 angibt, dass 100 % der eingehenden Anforderungen einbezogen wurden. DOPPELT
execution_time_ms Die Ausführungszeit in Millisekunden, für die das Modell eine Ableitung ausgeführt hat. Dies schließt keine Overhead-Netzwerklatenz ein und stellt nur die Zeit dar, die für das Modell zum Generieren von Vorhersagen benötigt wurde. LONG
conversation_id Die aus Anforderungsprotokollen extrahierte Konversations-ID. STRING
request Die letzte Benutzerabfrage aus dem Gespräch des Benutzers. STRING
response Die letzte Antwort an den Benutzer. STRING
request_raw Die Zeichenfolgenrepräsentation der Anforderung. STRING
response_raw Zeichenfolgendarstellung der Antwort STRING
trace Zeichenfolgendarstellung der Ablaufverfolgung, die aus den databricks_options der Antwortstruktur extrahiert wurde STRING
request_metadata Eine Karte von Metadaten im Zusammenhang mit dem Modellbereitstellungsendpunkt, der auf die Anforderung bezogen ist. Diese Karte enthält den Endpunktnamen, Modellnamen und die Modellversion, die für Ihren Endpunkt verwendet wird. MAP<STRING, STRING>
schema_version Die Schemaversion. STRING

Das folgende Beispiel zeigt das Schema für die Tabelle mit den Nutzlastbewertungsprotokollen:

Spaltenname Beschreibung Typ
request_id Eine Databricks-Anforderungs-ID. STRING
step_id Die Schritt-ID, abgeleitet von der Abrufbewertung. STRING
source Ein Strukturfeld, das angibt, wer die Bewertung erstellt hat STRUCT
timestamp Zeitstempel der Anforderung TIMESTAMP
text_assessment Die Daten für alle Rückmeldungen zu den Antworten des Agenten aus der Review-App. STRING
retrieval_assessment Die Daten für jedes Feedback zu den Dokumenten, die für eine Antwort abgerufen wurden. STRING

Schnelle Inferenztabelle für benutzerdefinierte modellbedienende Endpunkte

Für CPU-(benutzerdefiniertes Modell) bedienende Endpunkte liefert Unity AI Gateway Anfrage- und Antwortnutzlasten über Endpunkt-Telemetrie an die Inferenztabelle, sodass Zeilen typischerweise innerhalb von Sekunden verfügbar sind.

Die Inferenztabelle ({catalog_name}.{schema_name}.{model_name}_payload) ist eine Ansicht über eine Telemetrielog-Tabelle ({catalog_name}.{schema_name}.{model_name}_otel_logs). Wenn die Inferenztabelle aktiviert ist, werden Anfrage- und Antwortnutzdaten in _otel_logs geschrieben, und die Ansicht _payload liest daraus. Fragen Sie die Ansicht _payload ab, um Anfragen und Antworten zu lesen.

Hinweis

Die _otel_logs Tabelle der Telemetrieprotokolle wird im selben Katalog und Schema wie die Inferenztabelle erstellt und bleibt auch dann sichtbar, wenn nur die Inferenztabelle aktiviert ist – dies ist zu erwarten, da _payload eine Ansicht darüber ist. Wenn nur die Inferenztabelle aktiviert ist, _otel_logs enthält sie nur die Anfrage- und Antwortdaten der Inferenztabelle; sie enthält nicht die zusätzlichen Felder, die vorhanden sind, wenn andere Telemetriesignale (Logs, Spannen oder Metriken) aktiviert sind.

Die schnelle Inferenztabelle verwendet Zerobus im Backend, um Telemetrie zu liefern, sodass sie denselben Einschränkungen und Quoten unterliegt wie Zerobus. Siehe Zerobus Ingest-Quoten.

Hinweis

Endpunkt-Telemetrielieferung und Sampling gelten nur für CPU-Custom Modelle, die Endpunkte bereitstellen. Endpunkte, die für bereitgestellten Durchsatz, externe Modelle, Workloads der Foundation-Model-API oder Agenten verwendet werden, unterliegen dem in Einschränkungen beschriebenen Bereitstellungsverhalten.

Probenahme

Sampling ist eine Funktion der schnellen Inferenztabelle: Für CPU-Custom Model Serving Endpunkte kann man den Anteil der protokollierten Anfragen konfigurieren. Das Stichprobenverfahren senkt das Protokollierungsvolumen bei Endpunkten mit hohem Durchsatz, wobei eine repräsentative Stichprobe des Datenverkehrs erhalten bleibt.

  • Standard: 100%. Alle Anfragen werden protokolliert, es sei denn, Sie legen eine niedrigere Protokollierungsrate fest.
  • Bereich: 0 % bis 100 %, gespeichert als ein sampling_fraction zwischen 0 und 1.
  • Jede protokollierte Zeile zeichnet die angewendete Rate in ihrer sampling_fraction Spalte auf.

Um die Rate in der Benutzeroberfläche festzulegen, geben Sie eine Stichprobenrate (%) ein , wenn Sie Inferenztabellen im Unity AI Gateway-Abschnitt aktivieren. Geben Sie sampling_fraction zum programmgesteuerten Festlegen in der Telemetriekonfiguration des Endpunkts an.

Internes Checkpoint-Volume

Um Unity AI Gateway-fähige Ableitungstabellen zu unterstützen, erstellt Azure Databricks ein internes Volume im Schema der Ableitungstabelle. Das Volume hat einen vom System generierten Namen der Form <catalog>.<schema>.<payload table ID>_checkpoints. Das Löschen dieses Volumes kann die Inferenztabellen in einem fehlerhaften Zustand hinterlassen. Azure Databricks löscht das Volume automatisch, wenn Sie den entsprechenden Dienstendpunkt löschen.

Einschränkungen

  • Bereitgestellte Durchsatzarbeitslasten:
    • Wenn Sie ein neues Modell für Endpunkte erstellen, das den bereitgestellten Durchsatz verwendet, werden nur Unity AI Gateway-fähige Ableitungstabellen unterstützt.
    • Wenn Sie über einen bestehenden Modellbereitstellungsendpunkt verfügen, der den bereitgestellten Durchsatz verwendet und keine Inferenztabellen konfiguriert hat, können Sie ihn aktualisieren, um Unity AI Gateway-fähige Inferenztabellen zu verwenden.
    • Wenn Sie über ein vorhandenes Modell verfügen, das den bereitgestellten Durchsatz verwendet und ältere Rückschlusstabellen konfiguriert hat, müssen Sie die Legacy-Ableitungstabelle deaktivieren, bevor Sie den Endpunkt aktualisieren können, um Unity AI Gateway-fähige Rückschlusstabellen zu verwenden.
    • Nachdem Unity AI Gateway-fähige Rückschlusstabellen aktiviert wurden, können Sie nicht zu älteren Rückschlusstabellen wechseln.
    • Für Antwortprotokolle von Streaming-Agenten werden nur ChatCompletion-kompatible Felder und Traces aggregiert.
  • Benutzerdefinierte Modellarbeitslasten:
    • Wenn Sie ein neues Modell für Endpunkte erstellen, das ein benutzerdefiniertes Modell bedient, empfiehlt Databricks die Verwendung von Unity AI Gateway-fähigen Ableitungstabellen. Wenn die Legacy-Ableitungstabellenerfahrung erforderlich ist, können Sie ihren neuen Endpunkt nur für Unity AI Gateway mit der REST-API konfigurieren.
    • Wenn Sie über ein modellbasiertes Endpunkt verfügen, das ein benutzerdefiniertes Modell bedient und keine Ableitungstabellen konfiguriert hat, können Sie es aktualisieren, um Unity AI Gateway-fähige Rückschlusstabellen zu verwenden.
    • Wenn Sie über einen bestehenden Endpunkt zur Bereitstellung verfügen, der ein benutzerdefiniertes Modell bedient und Legacy-Inferenztabellen konfiguriert hat, müssen Sie die Legacy-Inferenztabelle deaktivieren, bevor Sie den Endpunkt aktualisieren können, um Unity AI Gateway-fähige Inferenztabellen zu verwenden.
    • Nachdem Unity AI Gateway-fähige Rückschlusstabellen aktiviert wurden, können Sie nicht zu älteren Rückschlusstabellen wechseln.
    • Die Protokollübermittlung für Inferenztabellen kann sich bei benutzerdefinierten Modellendpunkten mit einem Durchsatz von über 70 MB pro Sekunde verschlechtern. Um die Übermittlung mit höherem Durchsatz zu verwalten, verringern Sie die Ableitungstabellen-Samplingrate, um das Volumen der protokollierten Anforderungen zu verringern.
  • Die Protokollierung der Rückschlusstabellen für Modellbereitstellungspunkte, die Foundation-Model-API-Workloads, externe Modelle oder Agenten bedienen, erfolgt derzeit nach bestem Bemühen. Sie können davon ausgehen, dass Protokolle innerhalb von 1 Stunde nach einer Anforderung verfügbar sind. Wenden Sie sich an Ihr Databricks-Kontoteam, um weitere Informationen zu erfahren.
  • Die maximale Anforderungs-, Antwort- und Ablaufverfolgungsgröße, die protokolliert wird, beträgt 1 MiB (1.048.576 Bytes). Nutzlasten, die dies überschreiten, werden protokolliert als null und logging_error_codes werden mit MAX_REQUEST_SIZE_EXCEEDED oder MAX_RESPONSE_SIZE_EXCEEDEDausgefüllt.
  • Inferenztabellen für routenoptimierte model serving endpoints are in Public Preview.
  • Ableitungstabellenprotokolle werden nicht garantiert aufgefüllt, wenn das Modell, das den Endpunkt bedient, einen Fehler zurückgibt.
    • Bei benutzerdefinierten Modellendpunkten können Logeinträge für 4xx- oder 5xx-Fehler nicht aufgezeichnet werden.
    • Für andere Endpunkte werden Protokolle möglicherweise nicht für 401-, 403-, 429- oder 500-Fehler aufgezeichnet.

Einschränkungen für Unity AI Gateway finden Sie unter "Einschränkungen". Allgemeine Endpunkteinschränkungen finden Sie unter Modellbereitstellungseinschränkungen und Regionen.