Remote-KI-Modelle in AlloyDB Omni registrieren und aufrufen

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird eine Vorabversion beschrieben, mit der Sie das Registrieren eines KI-Modellendpunkts und das Aufrufen von Vorhersagen mit der Endpunktverwaltung von Modellen in AlloyDB Omni testen können. Informationen zur Verwendung von KI-Modellen in Produktionsumgebungen finden Sie unter Generative KI-Anwendungen mit AlloyDB AI und Mit Vektoreinbettungen arbeiten.

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

Übersicht

Mit der Vorschau Verwaltung von Modellendpunkten können Sie einen Modellendpunkt registrieren, Metadaten für Modellendpunkte in Ihrem Datenbankcluster verwalten und dann mit SQL-Abfragen mit den Modellen interagieren. Sie bietet die google_ml_integration Erweiterung, die Funktionen zum Hinzufügen und Registrieren der Metadaten für Modellendpunkte enthält, die mit den Modellen verknüpft sind, und zum anschließenden Verwenden der Modelle zum Generieren von Vektoreinbettungen oder zum Aufrufen von Vorhersagen.

Einige der Beispielmodelltypen, die Sie mit der Endpunktverwaltung von Modellen registrieren können, sind:

  • Vertex AI-Modelle zur Texteinbettung
  • Einbettungsmodelle von Drittanbietern wie Anthropic, Hugging Face oder OpenAI
  • Benutzerdefinierte Texteinbettungsmodelle
  • Allgemeine Modelle mit einer JSON-basierten API, z. B. das Modell facebook/bart-large-mnli, das auf Hugging Face gehostet wird, oder das Modell gemini-pro aus Vertex AI Model Garden

Funktionsweise

Mit der Endpunktverwaltung für Modelle können Sie einen Modellendpunkt registrieren, der die folgenden Anforderungen erfüllt:

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

Wenn Sie einen Modellendpunkt bei der Modell-Endpunktverwaltung registrieren, wird jeder Endpunkt mit einer eindeutigen Modell-ID registriert, die Sie als Referenz zum Modell angegeben haben. Mit dieser Modell-ID können Sie Modelle abfragen:

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

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

Ihre Anwendungen können über die Erweiterung google_ml_integration auf die Verwaltung von Modellendpunkten 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.
  • 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 und HTTP-Header generiert oder Transformationsfunktionen für Ihre allgemeinen Modelle übergeben werden.
  • Funktionen zum Verwalten der registrierten Modellendpunkte und Secrets.

Wichtige Konzepte

Bevor Sie die Endpunktverwaltung für Modelle 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 von Modell-Hosting an. In der folgenden Tabelle sehen Sie den Wert für den Modellanbieter, den Sie je nach verwendetem Modellanbieter festlegen müssen:

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

Der Standardmodellanbieter ist custom.

Je nach Anbietertyp unterscheidet sich die unterstützte Authentifizierungsmethode. Die Vertex AI-Modelle verwenden das AlloyDB-Dienstkonto zur Authentifizierung, während andere Anbieter Secret Manager zur Authentifizierung verwenden können. Weitere Informationen finden Sie unter Authentifizierung einrichten.

Modelltyp

Modelltyp gibt den Typ des KI-Modells an. Die Erweiterung unterstützt Texteinbettungen sowie 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.

Texteinbettungsmodelle mit integrierter Unterstützung
Die Verwaltung von Modellendpunkten 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.
Andere Modelle zur Texteinbettung
Für andere Modelle zur Texteinbettung müssen Sie Transformationsfunktionen erstellen, um die von dem Modell unterstützten Ein- und Ausgabeformate zu verarbeiten. Optional können Sie die Funktion zum Generieren von HTTP-Headern verwenden, die benutzerdefinierte Header generiert, die für Ihr Modell erforderlich sind.
Der Modelltyp für diese Modelle ist text-embedding.
Allgemeine Modelle
Die Endpunktverwaltung von Modellen unterstützt auch die Registrierung aller anderen Modelltypen außer Modelle zur Texteinbettung. 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 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, den Sie verwenden können, um über die Erweiterung google_ml_integration eine Verbindung zur Endpunktverwaltung von Modellen 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.

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 für Texteinbettungen aufzurufen und Einbettungen zu generieren. Sie bietet integrierte Unterstützung für das textembedding-gecko Modell von Vertex AI und das text-embedding-ada-002 Modell von OpenAI.
Für Modelle zur Texteinbettung 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. Erstellen Sie eine Transformationsfunktion für die Eingabe, 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 er eine JSON-basierte API unterstützt, um Vorhersagen aufzurufen.

Transformationsfunktionen

Transformationsfunktionen ändern die Eingabe in ein Format, das das Modell versteht, und konvertieren die Antwort des Modells in das Format, das die Vorhersagefunktion erwartet. Die Transformationsfunktionen werden beim Registrieren des Modellendpunkts text-embedding ohne integrierte Unterstützung verwendet. 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.

Unten sehen Sie die Signaturen für die Vorhersagefunktion für Modelle 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 Funktion zum Generieren von Headern.

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() lautet die Signatur so:

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