Remote-KI-Modelle in AlloyDB Omni registrieren und aufrufen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite werden die wichtigsten Konzepte erläutert, die Sie kennen müssen, bevor Sie einen KI-Modellendpunkt registrieren und Vorhersagen mit der Modellendpunktverwaltung aufrufen.

Informationen zum Registrieren von Remote-Modellendpunkten mit AlloyDB Omni finden Sie unter Remote-KI-Modelle in AlloyDB registrieren und aufrufen.

Übersicht

Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, Metadaten für Modellendpunkte in Ihrem Datenbankcluster verwalten und mit SQL-Abfragen Aufrufe an die Remote-Modellendpunkte senden. Sie bietet die google_ml_integration Erweiterung mit Funktionen, mit denen Sie die Metadaten zu KI-Modellen bei AlloyDB registrieren können. Diese registrierten Metadaten werden verwendet, um Vektoreinbettungen zu generieren oder Vorhersagen aufzurufen.

Einige der Beispielmodelltypen, die Sie mit der Modellendpunktverwaltung registrieren können, sind:

  • Vertex AI-Modelle zur Texteinbettung und allgemeine Modelle
  • Einbettungsmodelle von Drittanbietern wie Hugging Face oder OpenAI
  • Benutzerdefinierte Texteinbettungsmodelle, einschließlich selbst gehosteter Modelle oder Modelle, die über private Endpunkte verfügbar sind
  • Allgemeine Modelle mit einer JSON-basierten API, z. B. das Modell facebook/bart-large-mnli, das auf Hugging Face gehostet wird, das Modell gemini-pro aus Vertex AI Model Garden oder claude-Modelle von Anthropic

Funktionsweise

Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, der die folgenden Anforderungen erfüllt:

  • Die Modelleingabe und -ausgabe unterstützen das JSON-Format.
  • Das Modell kann mit dem REST-Protokoll aufgerufen werden.

Wenn Sie einen Modellendpunkt bei der Modellendpunktverwaltung registrieren, wird jeder Endpunkt mit einer eindeutigen Modell-ID registriert, die Sie als Referenz zum Modell angegeben haben.

Mit der Modellendpunkt-ID können Sie Modelle abfragen, um Folgendes zu tun:

  • Einbettungen generieren, um Text-Prompts in numerische Vektoren zu übersetzen. Sie können generierte Einbettungen als Vektordaten speichern, wenn die Erweiterung vector in der Datenbank aktiviert ist. Weitere Informationen finden Sie unter Vektoreinbettungen speichern.

  • Vorhersagen mit SQL aufrufen.

Ihre Anwendungen können über die Erweiterung google_ml_integration auf die Modellendpunktverwaltung zugreifen. Diese Erweiterung bietet die folgenden Funktionen:

  • Die SQL-Funktion google_ml.create_model(), mit der der Modellendpunkt registriert wird, der in der Vorhersage- oder Einbettungsfunktion verwendet wird.
  • Die google_ml.create_sm_secret() SQL-Funktion, die Secrets in Google Cloud Secret Manager verwendet, wo die API-Schlüssel gespeichert sind.
  • Die SQL-Funktion google_ml.embedding(), eine Vorhersagefunktion, die Texteinbettungen generiert. Der Rückgabetyp der Einbettungsfunktion ist REAL[].
  • Die SQL-Funktion google_ml.predict_row(), die Vorhersagen generiert, wenn Sie allgemeine Modelle aufrufen, die das JSON-Ein- und -Ausgabeformat unterstützen.
  • Andere Hilfsfunktionen, mit denen benutzerdefinierte URLs generiert, HTTP-Header generiert oder Transformationsfunktionen übergeben werden.
  • Funktionen zum Verwalten der registrierten Modellendpunkte und Secrets.

Wichtige Konzepte

Bevor Sie die Modellendpunktverwaltung verwenden, sollten Sie die Konzepte kennen, die für die Verbindung zu den Modellen und deren Verwendung erforderlich sind.

Modellanbieter

Modellanbieter gibt die unterstützten Anbieter für das Modellhosting an. Das Festlegen des Modellanbieters ist optional, hilft aber der Modellendpunktverwaltung, den Anbieter zu identifizieren und Header für unterstützte Modelle automatisch zu formatieren. In der folgenden Tabelle sehen Sie den Wert für den Modellanbieter, den Sie basierend auf dem verwendeten Modellanbieter festlegen können:

Modellanbieter In der Funktion festlegen als…
Vertex AI google
Hugging Face-Modelle hugging_face
Anthropic-Modelle anthropic
OpenAI open_ai
Andere Modelle custom

Der Standardmodellanbieter ist custom.

Je nach Anbietertyp unterscheidet sich die unterstützte Authentifizierungsmethode. Die Vertex AI-Modelle verwenden das Dienstkonto, das zum Installieren von AlloyDB Omni verwendet wurde, zur Authentifizierung. Andere Anbieter können Secret Manager verwenden oder Authentifizierungsdetails über Header übergeben. Weitere Informationen finden Sie unter Authentifizierung einrichten.

Modelltyp

Modelltyp gibt den Typ des KI-Modells an. Die Erweiterung unterstützt sowohl Texteinbettungen als auch alle allgemeinen Modelltypen. Die unterstützten Modelltypen, die Sie beim Registrieren eines Modellendpunkts festlegen können, sind text-embedding und generic.

Das Festlegen des Modelltyps ist optional, wenn Sie allgemeine Modellendpunkte registrieren, da generic der Standardmodelltyp ist.

Vorregistrierte Vertex AI-Modelle
Die Modellendpunktverwaltung unterstützt einige Texteinbettungs- und allgemeine Vertex AI-Modelle als vorregistrierte Modell-IDs. Sie können die Modell-ID direkt verwenden, um Einbettungen zu generieren oder Vorhersagen aufzurufen, je nach Modelltyp.
Weitere Informationen zu unterstützten vorregistrierten Modellen finden Sie unter Vorregistrierte Vertex AI-Modelle.

Wenn Sie beispielsweise das vorregistrierte Modell textembedding-gecko aufrufen möchten, können Sie das Modell direkt mit der Einbettungsfunktion aufrufen:

SELECT
      google_ml.embedding(
        model_id => 'textembedding-gecko',
        content => 'AlloyDB is a managed, cloud-hosted SQL database service');
Modelle mit integrierter Unterstützung
Die Modellendpunktverwaltung bietet integrierte Unterstützung für einige Modelle von Vertex AI, Anthropic und OpenAI. Für Texteinbettungsmodelle mit integrierter Unterstützung richtet AlloyDB automatisch Standardtransformationsfunktionen ein.
Wenn Sie diese Modellendpunkte registrieren, legen Sie den qualifizierten Namen explizit fest. Eine Liste der Modelle mit integrierter Unterstützung finden Sie unter Modelle mit integrierter Unterstützung.
Der Modelltyp für diese Modelle kann text-embedding oder generic sein.
Andere Modelle zur Texteinbettung
Wenn Sie einen Modellendpunkt zur Texteinbettung ohne integrierte Unterstützung registrieren möchten, empfehlen wir, Transformationsfunktionen zu erstellen, um die Ein- und Ausgabeformate zu verarbeiten, die vom Modell unterstützt werden. Je nach den Modellanforderungen müssen Sie möglicherweise auch eine benutzerdefinierte Header-Funktion erstellen, um den Header anzugeben.
Der Modelltyp für diese Modelle ist text-embedding.
Allgemeine Modelle
Die Modellendpunktverwaltung unterstützt auch die Registrierung aller anderen Modelltypen außer Texteinbettungsmodellen. Verwenden Sie die google_ml.predict_row() Funktion, um Vorhersagen für allgemeine Modelle aufzurufen. Sie können Metadaten für Modellendpunkte festlegen, z. B. einen Anfrageendpunkt und HTTP-Header, die für Ihr Modell spezifisch sind.
Sie können keine Transformationsfunktionen übergeben, wenn Sie einen allgemeinen Modellendpunkt registrieren. Achten Sie darauf, dass die Eingabe für die Funktion im JSON-Format vorliegt, wenn Sie Vorhersagen aufrufen, und dass Sie die JSON-Ausgabe parsen, um die endgültige Ausgabe abzuleiten.
Der Modelltyp für diese Modelle ist generic.

Authentifizierung

Authentifizierungstypen geben den Authentifizierungstyp an, den Sie verwenden können, um mit der Erweiterung google_ml_integration eine Verbindung zur Modellendpunktverwaltung herzustellen. Das Einrichten der Authentifizierung ist optional und nur erforderlich, wenn Sie sich authentifizieren müssen, um auf Ihr Modell zuzugreifen.

Für Vertex AI-Modelle wird das AlloyDB-Dienstkonto zur Authentifizierung verwendet. Für andere Modelle können API-Schlüssel oder Bearertokens, die als Secret in Secret Manager gespeichert sind, mit der SQL-Funktion google_ml.create_sm_secret() verwendet werden. Wenn Sie die Authentifizierung über Header übergeben, können Sie das Festlegen der Authentifizierungsmethode überspringen.

In der folgenden Tabelle sind die Authentifizierungstypen aufgeführt, die Sie festlegen können:

Authentifizierungsmethode In der Funktion festlegen als… Modellanbieter
AlloyDB-Dienst-Agent alloydb_service_agent_iam Vertex AI-Anbieter
Secret Manager secret_manager Drittanbieter wie Anthropic, Hugging Face oder OpenAI

Vorhersagefunktionen

Die Erweiterung google_ml_integration enthält die folgenden Vorhersagefunktionen:

google_ml.embedding()
Wird verwendet, um einen registrierten Modellendpunkt zur Texteinbettung aufzurufen und Einbettungen zu generieren.
Bei Texteinbettungsmodellen ohne integrierte Unterstützung sind die Ein- und Ausgabeparameter für ein Modell eindeutig und müssen transformiert werden, damit die Funktion das Modell aufrufen kann. Sie müssen eine Transformationsfunktion für die Eingabe erstellen, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe zu transformieren, und eine Transformationsfunktion für die Ausgabe, um die modellspezifische Ausgabe in die Ausgabe der Vorhersagefunktion zu transformieren.
google_ml.predict_row()
Wird verwendet, um einen registrierten allgemeinen Modellendpunkt aufzurufen, sofern das Modell eine JSON-basierte API unterstützt, um Vorhersagen aufzurufen.

Transformationsfunktionen

Transformationsfunktionen ändern die Eingabe in ein Format, das das Modell versteht, und konvertieren die Modellantwort in das Format, das die Vorhersagefunktion erwartet. Die Transformationsfunktionen werden verwendet, wenn der Modellendpunkt text-embedding ohne integrierte Unterstützung registriert wird. Die Signatur der Transformationsfunktionen hängt von der Eingabe ab, die vom Modell erwartet wird.

Sie können keine Transformationsfunktionen verwenden, wenn Sie einen Modellendpunkt vom Typ generic registrieren.

Unten sehen Sie die Signaturen für die Vorhersagefunktion für Modellendpunkte zur Texteinbettung:

// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;

CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];

Weitere Informationen zum Erstellen von Transformationsfunktionen finden Sie unter Beispiel für Transformationsfunktionen.

Funktion zum Generieren von HTTP-Headern

Die Funktion zum Generieren von HTTP-Headern generiert die Ausgabe in JSON-Schlüssel/Wert-Paaren, die als HTTP-Header verwendet werden. Die Signatur der Vorhersagefunktion definiert die Signaturen der Header-Generierungsfunktion.

Das folgende Beispiel zeigt die Signatur für die Vorhersagefunktion google_ml.embedding():

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;

Für die Vorhersagefunktion google_ml.predict_row() sieht die Signatur so aus:

CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;

Weitere Informationen zum Erstellen einer Header-Generierungsfunktion finden Sie unter Beispiel für eine Funktion zum Generieren von Headern.

Nächste Schritte