Freigeben über


Konfigurieren des AI Gateway auf Modellbereitstellungsendpunkten

In diesem Artikel erfahren Sie, wie Sie Mosaik AI Gateway für ein Modell konfigurieren, das Endpunkt bedient.

Requirements

Konfigurieren des KI-Gateways mithilfe der Benutzeroberfläche

Im Abschnitt "AI-Gateway " der Seite "Endpunkterstellung" können Sie KI-Gateway-Features einzeln konfigurieren. Siehe Unterstützte Features, um herauszufinden, welche Funktionen auf externen Modellbereitstellungsendpunkten und bereitgestellten Durchsatzendpunkten verfügbar sind.

Konfigurieren von KI-Gateway-Funktionen

In der folgenden Tabelle wird zusammengefasst, wie Sie das KI-Gateway während der Erstellung des Endpunkts mithilfe der Benutzeroberfläche zur Bereitstellung konfigurieren. Wenn Sie dies lieber programmgesteuert ausführen möchten, lesen Sie das Beispiel "Notizbuch".

Feature Vorgehensweise zum Aktivieren Details
Nutzungsnachverfolgung Wählen Sie "Verwendungsnachverfolgung aktivieren " aus, um die Nachverfolgung und Überwachung von Datennutzungsmetriken zu ermöglichen.
    • Sie müssen den Unity-Katalog aktiviert haben.
    • Kontoadministratoren müssen das Systemtabellenschema aktivieren , bevor Sie die Systemtabellen verwenden:
      • system.serving.endpoint_usage, der die Tokenanzahl für jede Anforderung an den Endpunkt erfasst.
      • system.serving.served_entities, in dem Metadaten für jedes Foundation-Modell gespeichert werden.
      • Siehe Tabellenschemas zur Verwendungsnachverfolgung
    • Nur Kontoadministratoren verfügen über die Berechtigung zum Anzeigen oder Abfragen der served_entities Tabelle oder endpoint_usage Tabelle, obwohl der Benutzer, der den Endpunkt verwaltet, die Verwendungsnachverfolgung aktivieren muss. Siehe Gewähren des Zugriffs auf Systemtabellen.
    • Die Anzahl der Eingabe- und Ausgabetoken wird als (text_length+1)/4 geschätzt, wenn die Tokenanzahl nicht vom Modell zurückgegeben wird.
Nutzlastprotokollierung Wählen Sie "Rückschlusstabellen aktivieren" aus, um Anforderungen und Antworten von Ihrem Endpunkt automatisch in Delta-Tabellen zu protokollieren, die von Unity Catalog verwaltet werden.
    • Sie müssen den Unity Catalog aktiviert haben und über CREATE TABLE-Zugriff im angegebenen Katalogschema verfügen.
    • Von AI-Gateway aktivierte Ableitungstabellen weisen ein anderes Schema auf als ältere Ableitungstabellen , die nur für Endpunkte unterstützt werden, die benutzerdefinierte Modelle bereitstellen. Siehe AI Gateway-fähiges Schlussfolgerungstabellenschema.
    • Die Nutzlastprotokollierungsdaten füllen diese Tabellen weniger als eine Stunde nach der Abfrage des Endpunkts auf. Siehe Einschränkungen für Latenzerwartungen für benutzerdefinierte Modellbereitstellungsendpunkte.
    • Nutzlasten, die größer als 1 MiB sind, werden nicht protokolliert.
    • Die Antwortpayload aggregiert die Antwort aller zurückgegebenen Blöcke.
    • Streaming wird unterstützt. In Streamingszenarien aggregiert die Antwortpayload die Antwort zurückgegebener Blöcke.
    • Inference-Tabellen für „route optimized model serving endpoints“ befinden sich in der „Public Preview“.
AI Guardrails Siehe Konfigurieren von AI Guardrails in der Benutzeroberfläche.
    • Guardrails verhindern, dass das Modell mit unsicheren und schädlichen Inhalten interagiert, die in Modelleingaben und -ausgaben erkannt werden.
    • Ausgabeschutzmaßnahmen werden für Einbettungsmodelle oder Streaming nicht unterstützt.
Ratenbegrenzungen Wählen Sie "Ratelimits " aus, um die Anzahl von Abfragen pro Minute (QPM) oder Token pro Minute (TPM) zu verwalten und anzugeben, die Ihr Endpunkt unterstützen kann.
  • Preisbeschränkungen gelten nur für Benutzer, die über die Berechtigung zum Abfragen des Endpunkts verfügen. Sie können abfragebasierte und tokenbasierte Ratelimits auf verschiedenen Ebenen definieren:
    • Verwenden Sie das Feld "Endpunkt ", um den maximalen QPM- oder TPM-Wert anzugeben, den der gesamte Endpunkt verarbeiten kann. Dieser Grenzwert gilt unabhängig vom Benutzer für den gesamten Datenverkehr.
    • Verwenden Sie das Feld Benutzer (Standard), um einen Standardgrenzwert pro Benutzer festzulegen, der für alle Benutzer des Endpunkts gilt, es sei denn, es wird ein spezifischerer benutzerdefinierter Satzgrenzwert definiert.
    • Sie können benutzerdefinierte Ratenbeschränkungen für Folgendes angeben:
      • Einzelne Benutzer oder Dienstprinzipale. Diese haben Vorrang vor benutzerdefinierten Grenzwerten für Benutzergruppen.
      • Benutzergruppen. Dieser Grenzwert ist ein Gemeinsames Zinslimit für alle Mitglieder der Gruppe.
    • TPM-Ratenbeschränkungen können nicht auf Endpunkte angewendet werden, die benutzerdefinierte Modelle oder Agents bedienen.
    • Standardmäßig sind keine Ratenbeschränkungen für Benutzer oder den Endpunkt konfiguriert.
    • Auf einem Endpunkt können maximal 20 Ratenbegrenzungen und bis zu 5 gruppenspezifische Ratenbeschränkungen definiert werden.
    • Das Endpunktratenlimit ist ein globales Maximum. Wenn dieser Grenzwert überschritten wird, werden alle Anforderungen an den Endpunkt blockiert, unabhängig von benutzerspezifischen oder gruppenspezifischen Ratengrenzwerten.
    • Wenn ein Endpunkt, ein Benutzer oder ein Dienstprinzipal sowohl ein abfragebasiertes Zinslimit als auch ein tokenbasiertes Ratelimit angegeben hat, wird der restriktivere Satzgrenzwert erzwungen.
    • Benutzerdefinierte Ratenlimits überschreiben den Grenzwert für Benutzer (Standard).
      • Wenn ein Benutzer sowohl zu einem benutzerspezifischen Grenzwert als auch zu einem gruppenspezifischen Grenzwert gehört, wird der benutzerspezifische Grenzwert erzwungen.
      • Wenn ein Benutzer zu mehreren Benutzergruppen mit unterschiedlichen QPM- oder TPM-Ratelimits gehört, ist die Rate des Benutzers begrenzt, wenn er alle QPM-Ratengrenzwerte oder alle TPM-Rategrenzwerte seiner Benutzergruppen überschreitet.
Datenverkehrsteilung Geben Sie im Abschnitt "Bereitgestellte Entitäten " den Prozentsatz des Datenverkehrs an, den Sie an bestimmte Modelle weiterleiten möchten.
Informationen zum programmgesteuerten Konfigurieren der Datenverkehrsteilung auf Ihrem Endpunkt finden Sie unter "Bereitstellen mehrerer externer Modelle an einen Endpunkt".
    • Um den gesamten Datenverkehr an ein bestimmtes Modell weiterzuleiten, legen Sie ihn auf 100%fest.
    • Wenn Sie ein reines Fallbackmodell angeben möchten, fügen Sie dieses Modell dem Endpunkt hinzu, und legen Sie den Prozentsatz des Datenverkehrs auf 0 % fest.
    • Um den Datenverkehr über Modelle hinweg zu lastenausgleichen und Fallbacks einzurichten, können Sie das folgende Verhalten erwarten:
      • Anfragen werden zufällig auf die Entitäten aufgeteilt, basierend auf den zugewiesenen Prozentsätzen des Datenverkehrs.
      • Wenn die Anforderung auf die erste Entität trifft und fehlschlägt, tritt sie auf die nächste Entität in der Reihenfolge zurück, in der die bereitgestellten Entitäten während der Endpunkterstellung oder der letzten Endpunktaktualisierung aufgeführt wurden.
      • Die Datenverkehrsteilung beeinflusst nicht die Reihenfolge der Fallbackversuche.
Fallbacks Wählen Sie "Fallbacks aktivieren" im Abschnitt "AI-Gateway" aus, um Ihre Anforderung an andere bereitgestellte Modelle auf dem Endpunkt als Fallback zu senden.
    • Wenn die anfängliche Anforderung, die an eine bestimmte Entität weitergeleitet wurde, einen 429 Oder-Fehler 5XX zurückgibt, greift die Anforderung auf die nächste Entität zurück, die auf dem Endpunkt aufgeführt ist.
    • Die Reihenfolge, in der Anforderungen an bereitgestellte Fallback-Entitäten umgeleitet werden, basiert auf der Reihenfolge, in der die Modelle während der Endpunkterstellung oder der letzten Endpunktaktualisierung aufgeführt werden. Der Datenverkehrsprozentsatz beeinflusst nicht die Reihenfolge der Fallbackversuche, die an bereitgestellte Entitäten gesendet werden.
    • Fallbacks werden nur für externe Modelle unterstützt.
    • Bevor Sie Fallbacks für externe Modelle aktivieren können, müssen Sie anderen Modellen, die auf dem Endpunkt bereitgestellt werden, Prozentsätze des Datenverkehrs zuweisen.
    • Jedes externe Modell, dem 0% Datenverkehr zugewiesen wurde, funktioniert ausschließlich als Fallbackmodell.
    • Sie können maximal zwei Fallbacks haben.
    • Jede Entität wird einmal in sequenzieller Reihenfolge versucht, bis die Anforderung erfolgreich ist. Wenn alle aufgelisteten Entitäten ohne Erfolg versucht wurden, schlägt die Anforderung fehl.
    • Der erste erfolgreiche oder letzte fehlgeschlagene Anforderungsversuch und die Antwort werden sowohl in den Tabellen zur Verwendungsnachverfolgung als auch in der Nutzlastprotokollierung protokolliert.

Das folgende Diagramm zeigt ein Beispiel für Fallbacks, bei dem

  • Drei bereitgestellte Entitäten werden auf einem Modellbereitstellungs-Endpunkt bereitgestellt.
  • Die Anforderung wird ursprünglich an die bereitgestellte Entität 3 weitergeleitet.
  • Wenn die Anforderung eine Antwort von 200 zurückgibt, war die Anforderung für die bereitgestellte Entität 3 erfolgreich, und die Anforderung und ihre Antwort werden in den Tabellen zur Verwendungsnachverfolgung und Nutzlastprotokollierung des Endpunkts protokolliert.
  • Wenn die Anforderung einen 429- oder 5xx-Fehler für die bereitgestellte Entität 3 zurückgibt, greift die Anforderung auf die nächste bereitgestellte Entität auf den Endpunkt zurück, die Entität "Bereitgestellt" 1.
    • Wenn die Anforderung einen Fehler vom Typ 429 oder 5xx für die Bereitgestellte Entität 1 zurückgibt, greift die Anforderung auf die nächste bereitgestellte Entität auf dem Endpunkt zurück, die Entität "Bereitgestellt" 2.
    • Wenn die Anforderung einen Fehler vom Typ 429 oder 5xx für die bereitgestellte Entität 2 zurückgibt, schlägt die Anforderung fehl, da dies die maximale Anzahl von Fallbackentitäten ist. Die fehlgeschlagene Anforderung und der Antwortfehler werden in den Tabellen für die Verwendungsnachverfolgung und die Nutzlastprotokollierung protokolliert.

Beispiel für Fallbackdiagramm

Konfigurieren von KI-Schutzmaßnahmen in der Benutzeroberfläche

Important

Dieses Feature befindet sich in der Public Preview.

In der folgenden Tabelle wird gezeigt, wie unterstützten Schutzmaßnahmen konfiguriert werden.

Guardrail Vorgehensweise zum Aktivieren
Safety Wählen Sie "Sicherheit " aus, um Schutzmaßnahmen zu ermöglichen, um zu verhindern, dass Ihr Modell mit unsicheren und schädlichen Inhalten interagiert.
Erkennung personenbezogener Informationen (Personally Identifiable Information, PII) Wählen Sie diese Option aus, um PII-Daten wie Namen, Adressen, Kreditkartennummern zu blockieren oder zu maskieren , wenn solche Informationen in Endpunktanforderungen und -antworten erkannt werden. Wählen Sie andernfalls "Keine" aus, damit keine PII-Erkennung auftritt.

Konfigurieren der AI Guardrail-Funktionen

Schemas für die Verbrauchsnachverfolgungstabelle

In den folgenden Abschnitten werden die Schemas der Verwendungsnachverfolgungstabellen für die system.serving.served_entities und die system.serving.endpoint_usage Systemtabellen zusammengefasst.

system.serving.served_entities Schema der Verwendungsnachverfolgungstabelle

Die system.serving.served_entities-Systemtabelle für Nutzungsverfolgung verwendet das folgende Schema:

Spaltenname Description Type
served_entity_id Die eindeutige ID der bereitgestellten Entität. STRING
account_id Die Kundenkonto-ID für Delta Sharing. STRING
workspace_id Die Kundenarbeitsbereichs-ID des Bereitstellungsendpunkts STRING
created_by Die ID des Erstellers. Für Pay-per-Token-Endpunkte ist dies System-User STRING
endpoint_name Der Name des Bereitstellungsendpunkts STRING
endpoint_id Die eindeutige ID des Bereitstellungsendpunkts STRING
served_entity_name Der Name der bereitgestellten Entität STRING
entity_type Typ der Entität, die bedient wird. Kann FEATURE_SPEC, EXTERNAL_MODEL, FOUNDATION_MODEL oder CUSTOM_MODEL sein. STRING
entity_name Der zugrunde liegende Name der Entität. Unterscheidet sich von served_entity_name, welches ein vom Benutzer bereitgestellter Name ist. entity_name ist beispielsweise der Name des Unity Catalog-Modells. STRING
entity_version Die Version der bereitgestellten Entität STRING
endpoint_config_version Die Version der Endpunktkonfiguration. INT
task Der Aufgabentyp. Kann llm/v1/chat, llm/v1/completions oder llm/v1/embeddings sein. STRING
external_model_config Konfigurationen für externe Modelle. Beispiel: {Provider: OpenAI} STRUCT
foundation_model_config Konfigurationen für Basismodelle. Beispiel: {min_provisioned_throughput: 2200, max_provisioned_throughput: 4400} STRUCT
custom_model_config Konfigurationen für benutzerdefinierte Modelle. Beispiel: { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUCT
feature_spec_config Konfigurationen für Featurespezifikationen. Beispiel: { min_concurrency: 0, max_concurrency: 4, compute_type: CPU } STRUCT
change_time Zeitstempel der Änderung der bereitgestellten Entität TIMESTAMP
endpoint_delete_time Zeitstempel des Löschens der Entität. Der Endpunkt ist der Container für die bereitgestellte Entität. Nachdem der Endpunkt gelöscht wurde, wird auch die bereitgestellte Entität gelöscht. TIMESTAMP

system.serving.endpoint_usage Schema der Verwendungsnachverfolgungstabelle

Die system.serving.endpoint_usage-Systemtabelle für Nutzungsverfolgung verwendet das folgende Schema:

Spaltenname Description Type
account_id Die Debitorenkontokennung. STRING
workspace_id Die Kundenarbeitsbereichs-ID des Bereitstellungsendpunkts STRING
client_request_id Der vom Benutzer bereitgestellte Anforderungsbezeichner, der im Anforderungstext für die Modellbereitstellung angegeben werden kann Für benutzerdefinierte Modellendpunkte wird dies für Anforderungen, die größer als 4MiB sind, nicht unterstützt. STRING
databricks_request_id Ein von Azure Databricks generierter Anforderungsbezeichner, der an alle Modellbereitstellungsanforderungen angefügt ist STRING
requester Die ID des Benutzer- oder Dienstprinzipals, dessen Berechtigungen für die Aufrufanforderung des Bereitstellungsendpunkts verwendet werden STRING
status_code Der HTTP-Statuscode, der vom Modell zurückgegeben wurde INTEGER
request_time Der Zeitstempel, zu dem die Anforderung eingegangen ist. TIMESTAMP
input_token_count Die Tokenanzahl der Eingabe. Dies ist 0 für benutzerdefinierte Modellanforderungen. LONG
output_token_count Die Tokenanzahl der Ausgabe Dies ist 0 für benutzerdefinierte Modellanforderungen. LONG
input_character_count Die Zeichenanzahl der Eingabezeichenfolge oder der Eingabeaufforderung. Dies ist 0 für benutzerdefinierte Modellanforderungen. LONG
output_character_count Die Zeichenanzahl der Ausgabezeichenfolge der Antwort. Dies ist 0 für benutzerdefinierte Modellanforderungen. LONG
usage_context Die vom Benutzer bereitgestellte Zuordnung mit Bezeichnern des Endbenutzers oder der Kundenanwendung, die den Anruf an den Endpunkt sendet. Weitere Informationen finden Sie unter Weitere Definition der Verwendung mit usage_context. Für benutzerdefinierte Modellendpunkte wird dies für Anforderungen, die größer als 4MiB sind, nicht unterstützt. MAP
request_streaming Zeigt an, ob sich die Anforderung im Streammodus befindet. BOOLEAN
served_entity_id Die eindeutige ID, die zum Verknüpfen mit der system.serving.served_entities-Dimensionstabelle verwendet wird, um Informationen über den Endpunkt und die bereitgestellte Entität nachzuschlagen STRING

Weitere Definition der Nutzung mit usage_context

Wenn Sie ein externes Modell mit aktivierter Verwendungsnachverfolgung abfragen, können Sie den usage_context-Parameter mit Typ Map[String, String] angeben. Die Zuordnung des Verwendungskontexts wird in der Tabelle zur Verwendungsnachverfolgung in der usage_context-Spalte angezeigt. Die usage_context Kartengröße darf 10 KiB nicht überschreiten.

{
  "messages": [
    {
      "role": "user",
      "content": "What is Databricks?"
    }
  ],
  "max_tokens": 128,
  "usage_context":
    {
      "use_case": "external",
      "project": "project1",
      "priority": "high",
      "end_user_to_charge": "abcde12345",
      "a_b_test_group": "group_a"
    }
}

Wenn Sie den OpenAI Python-Client verwenden, können Sie usage_context angeben, indem Sie ihn im extra_body-Parameter einfügen.

from openai import OpenAI

client = OpenAI(
    api_key="dapi-your-databricks-token",
    base_url="https://example.staging.cloud.databricks.com/serving-endpoints"
)

response = client.chat.completions.create(
    model="databricks-claude-sonnet-4-5",
    messages=[{"role": "user", "content": "What is Databricks?"}],
    temperature=0,
    extra_body={"usage_context": {"project": "project1"}},
)
answer = response.choices[0].message.content
print("Answer:", answer)

Kontoadministratoren können unterschiedliche Zeilen basierend auf dem Verwendungskontext aggregieren, um Einblicke zu erhalten und diese Informationen mit den Informationen in der Nutzlastprotokollierungstabelle zu verknüpfen. Sie können z. B. end_user_to_charge zu usage_context für die Nachverfolgung der Kostenzuordnung für Endbenutzer hinzufügen.

Überwachen der Endpunktnutzung

Um die Endpunktnutzung zu überwachen, können Sie die Systemtabellen und -ableitungstabellen für Ihren Endpunkt verknüpfen.

Verknüpfen von Systemtabellen

Dieses Beispiel gilt für externe, bereitgestellte Durchsatz-, Pay-per-Token- und benutzerdefinierte Modellendpunkte.

Verwenden Sie die folgende SQL-Datei, um die endpoint_usage Tabellen und served_entities Systemtabellen zu verknüpfen:

SELECT * FROM system.serving.endpoint_usage as eu
JOIN system.serving.served_entities as se
ON eu.served_entity_id = se.served_entity_id
WHERE created_by = "\<user_email\>";

AI Gateway-Funktionen auf Endpunkten aktualisieren

Sie können AI Gateway-Funktionen auf Modellbereitstellungsendpunkten aktualisieren, für die sie zuvor aktiviert waren, und Endpunkte, die nicht aktiviert waren. Aktualisierungen der AI Gateway-Konfigurationen werden innerhalb von 20 bis 40 Sekunden durchgeführt, Aktualisierungen der Ratenbegrenzung können jedoch bis zu 60 Sekunden dauern.

Im Folgenden wird gezeigt, wie Sie die AI Gateway-Funktionen auf einem Modellbereitstellungsendpunkt mithilfe der Serving-Benutzeroberfläche aktualisieren.

Im Abschnitt "Gateway " der Endpunktseite können Sie sehen, welche Features aktiviert sind. Um diese Features zu aktualisieren, klicken Sie auf "KI-Gateway bearbeiten".

Aktualisieren von KI-Gateway-Features

Notebookbeispiel

Das folgende Notebook zeigt, wie Sie die Funktionen von Databricks Mosaic AI Gateway programmgesteuert aktivieren und nutzen können, um Modelle von Anbietern zu verwalten und zu steuern. Details zur REST-API finden Sie im PUT /api/2.0/serving-endpoints/{name}/ai-gateway .

Notebook mit Features von Databricks Mosaic AI Gateway aktivieren

Notebook abrufen

Weitere Ressourcen