Remote-KI-Modelle in AlloyDB Omni registrieren und aufrufen

Auf dieser Seite wird eine Vorabversion beschrieben, mit der Sie einen Endpunkt für ein KI-Modell registrieren und Vorhersagen mit der Modellendpunktverwaltung in AlloyDB Omni aufrufen können. Informationen zur Verwendung von KI-Modellen in Produktionsumgebungen finden Sie unter Generative KI-Anwendungen mit AlloyDB AI erstellen und Mit Vektoreinbettungen arbeiten.

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

Übersicht

Mit der Vorabversion der Verwaltung von Modellendpunkten können Sie einen Modellendpunkt registrieren, die Metadaten des Modellendpunkts in Ihrem Datenbankcluster verwalten und dann mithilfe von SQL-Abfragen mit den Modellen interagieren. Sie bietet die Erweiterung google_ml_integration, die Funktionen zum Hinzufügen und Registrieren der Modellendpunktmetadaten enthält, die sich auf die Modelle beziehen. Anschließend können Sie mit den Modellen Vektoreinbettungen generieren oder Vorhersagen aufrufen.

Im Folgenden finden Sie einige Beispiele für Modelltypen, die Sie mithilfe der Modellendpunktverwaltung registrieren können:

  • Vertex AI-Modelle für die Texteinbettung
  • Einbetten von Modellen von Drittanbietern wie Anthropic, Hugging Face oder OpenAI
  • Benutzerdefiniert gehostete Texteinbettungsmodelle
  • Generische Modelle mit einer JSON-basierten API, z. B. das facebook/bart-large-mnli-Modell, das auf Hugging Face gehostet wird, oder das gemini-pro-Modell aus dem Vertex AI Model Garden

So funktioniert es

Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, der den folgenden Anforderungen entspricht:

  • Für die Modelleingabe und -ausgabe wird das JSON-Format unterstützt.
  • Das Modell kann über das 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 für das Modell angegeben haben. Mit dieser Modell-ID können Sie Modelle abfragen:

  • Erstellen Sie Einbettungen, um Textprompts in numerische Vektoren umzuwandeln. Sie können generierte Einbettungen als Vektordaten speichern, wenn die pgvector-Erweiterung in der Datenbank aktiviert ist. Weitere Informationen finden Sie unter Einbettungen mit pgvector abfragen und indexieren.

  • Vorhersagen aufrufen, um ein Modell mit SQL innerhalb einer Transaktion aufzurufen.

Ihre Anwendungen können über die Erweiterung google_ml_integration auf die Modellendpunktverwaltung zugreifen. Diese Erweiterung bietet folgende 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 Geheimnisse im Google CloudSecret Manager verwendet, in dem die API-Schlüssel gespeichert sind.
  • Die SQL-Funktion google_ml.embedding() ist eine Vorhersagefunktion, die Text-Embeddings generiert.
  • Die SQL-Funktion google_ml.predict_row(), mit der Vorhersagen generiert werden, wenn Sie generische Modelle aufrufen, die das JSON-Eingabe- und -Ausgabeformat unterstützen.
  • Andere Hilfsfunktionen, die zum Generieren benutzerdefinierter URLs, zum Generieren von HTTP-Headern oder zum Übergeben von Transformationsfunktionen für Ihre generischen Modelle verwendet 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 {: #model-provider}̦

Unter Modellanbieter werden die unterstützten Anbieter des Modell-Hostings angegeben. In der folgenden Tabelle finden Sie den Wert für den Modellanbieter, den Sie je nach verwendetem Modellanbieter festlegen müssen:

Modellanbieter In Funktion als… festlegen
Vertex AI google
Hugging Face-Modelle custom
Anthropische Modelle custom
Andere Modelle custom
OpenAI open_ai

Der Standardmodellanbieter ist custom.

Die unterstützte Authentifizierungsmethode hängt vom Anbietertyp ab. Die Vertex AI-Modelle verwenden das AlloyDB-Dienstkonto für die Authentifizierung, während andere Anbieter den Secret Manager verwenden können. Weitere Informationen finden Sie unter Authentifizierung einrichten.

Modelltyp

Modelltyp gibt den Typ des KI-Modells an. Die Erweiterung unterstützt die Texteinbettung sowie jeden generischen Modelltyp. Die unterstützten Modelltypen, die Sie beim Registrieren eines Modellendpunkts festlegen können, sind text-embedding und generic. Das Festlegen des Modelltyps ist beim Registrieren von Endpunkten für generische Modelle optional, da generic der Standardmodelltyp ist.

Texteinbettungsmodelle mit integrierter Unterstützung
Die Modellendpunktverwaltung bietet integrierte Unterstützung für alle Versionen des textembedding-gecko-Modells von Vertex AI und des text-embedding-ada-002-Modells von OpenAI. Verwenden Sie die Funktion google_ml.create_model(), um diese Modellendpunkte zu registrieren. AlloyDB richtet automatisch Standardtransformationsfunktionen für diese Modelle ein.
Der Modelltyp für diese Modelle ist text-embedding.
Weitere Modelle für die Texteinbettung
Bei anderen Modellen für die Textbelegung müssen Sie Transformationsfunktionen erstellen, um die vom Modell unterstützten Eingabe- und Ausgabeformate zu verarbeiten. Optional können Sie die Funktion zur Generierung von HTTP-Headern verwenden, mit der benutzerdefinierte Header generiert werden, die für Ihr Modell erforderlich sind.
Der Modelltyp für diese Modelle ist text-embedding.
Generische Modelle
Die Endpunktverwaltung für Modelle unterstützt auch die Registrierung aller anderen Modelltypen mit Ausnahme von Modellen für Text-Embeddings. Verwenden Sie die Funktion google_ml.predict_row(), um Vorhersagen für generische Modelle aufzurufen. Sie können Metadaten für den Modellendpunkt festlegen, z. B. einen Anfrageendpunkt und HTTP-Header, die für Ihr Modell spezifisch sind.
Sie können keine Transformationsfunktionen übergeben, wenn Sie einen generischen Modellendpunkt registrieren. Achten Sie darauf, dass die Eingabe der Funktion beim Aufrufen von Vorhersagen im JSON-Format vorliegt, 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, mit dem Sie über die Erweiterung google_ml_integration eine Verbindung zur Endpunktverwaltung des Modells herstellen können. Die 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 für die Authentifizierung verwendet. Bei anderen Modellen kann ein API-Schlüssel oder ein Bearer-Token, das als Secret im Secret Manager gespeichert ist, mit der google_ml.create_sm_secret()-SQL-Funktion verwendet werden.

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

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

Vorhersagefunktionen

Die google_ml_integration-Erweiterung enthält die folgenden Vorhersagefunktionen:

google_ml.embedding()
Wird verwendet, um einen registrierten Endpunkt für ein Modell für Texteinbettungen aufzurufen und Einbettungen zu generieren. Es bietet integrierte Unterstützung für das textembedding-gecko-Modell von Vertex AI und das text-embedding-ada-002-Modell von OpenAI.
Bei Modellen für Texteinbettungen ohne integrierte Unterstützung sind die Eingabe- und Ausgabeparameter für jedes Modell eindeutig und müssen transformiert werden, damit die Funktion das Modell aufrufen kann. Erstellen Sie eine Eingabetransformationsfunktion, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe zu transformieren, und eine Ausgabetransformationsfunktion, um die modellspezifische Ausgabe in die Ausgabe der Vorhersagefunktion zu transformieren.
google_ml.predict_row()
Wird verwendet, um einen registrierten generischen Modellendpunkt aufzurufen, sofern dieser eine JSON-basierte API unterstützt, um Vorhersagen aufzurufen.

Transformationsfunktionen

Transformierungsfunktionen ändern die Eingabe in ein Format, das vom Modell verstanden wird, und wandeln die Modellantwort in das Format um, das von der Prognosefunktion erwartet wird. Die Transformationsfunktionen werden verwendet, wenn der text-embedding-Modellendpunkt ohne integrierte Unterstützung registriert wird. Die Signatur der Transformationsfunktionen hängt von der Vorhersagefunktion für den Modelltyp ab.

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

Im Folgenden finden Sie die Signaturen für die Vorhersagefunktion für Text-Embedding-Modelle:

// 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 im 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 Funktion zur Headergenerierung.

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;

Die Signatur der Vorhersagefunktion google_ml.predict_row() lautet:

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

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

Nächste Schritte