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 Modellendpunktverwaltung in AlloyDB Omni testen 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 Vorschau für die Verwaltung von Modellendpunkten können Sie einen Modellendpunkt registrieren, Metadaten von Modellendpunkten in Ihrem Datenbankcluster verwalten und dann mit den Modellen über SQL-Abfragen interagieren. Sie bietet die Erweiterung google_ml_integration, die Funktionen zum Hinzufügen und Registrieren der Metadaten des Modellendpunkts für die Modelle enthält. Anschließend können Sie die Modelle verwenden, um Vektoreinbettungen zu generieren oder Vorhersagen aufzurufen.

Hier sind einige Beispiele für Modelltypen, die Sie mit der Modellendpunktverwaltung registrieren können:

  • Vertex AI-Modelle zur Texteinbettung
  • Einbettungsmodelle 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

Funktionsweise

Mit der Verwaltung von Modellendpunkten können Sie einen Modellendpunkt registrieren, der den folgenden Anforderungen entspricht:

  • Die Eingabe und Ausgabe des Modells unterstützt das JSON-Format.
  • Das Modell kann über das REST-Protokoll aufgerufen werden.

Wenn Sie einen Modellendpunkt in 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:

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

  • Rufen Sie Vorhersagen auf, 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 SQL-Funktion google_ml.create_sm_secret(), die Secrets im Google CloudSecret Manager verwendet, in dem die API-Schlüssel gespeichert sind.
  • Die SQL-Funktion google_ml.embedding(), eine Vorhersagefunktion, die Texteinbettungen generiert.
  • Die SQL-Funktion google_ml.predict_row(), mit der Vorhersagen generiert werden, wenn Sie generische Modelle aufrufen, die das JSON-Ein- und -Ausgabeformat unterstützen.
  • Andere Hilfsfunktionen, die das Generieren benutzerdefinierter URLs, das Generieren von HTTP-Headern oder das Übergeben von Transformationsfunktionen für Ihre generischen Modelle verarbeiten.
  • Funktionen zum Verwalten der registrierten Modellendpunkte und Secrets.

Wichtige Konzepte

Bevor Sie mit der Verwaltung von Modellendpunkten beginnen, sollten Sie die Konzepte kennen, die für die Verbindung zu den Modellen und deren Verwendung erforderlich sind.

Modellanbieter {: #model-provider}̦

Unter Modellanbieter sind die unterstützten Anbieter für das Modell-Hosting aufgeführt. In der folgenden Tabelle sehen Sie den Wert für den Modellanbieter, den Sie basierend auf dem von Ihnen verwendeten Modellanbieter festlegen müssen:

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

Der Standardanbieter für Modelle ist custom.

Die unterstützte Authentifizierungsmethode hängt vom Anbietertyp ab. Die Vertex AI-Modelle verwenden das AlloyDB-Dienstkonto zur Authentifizierung, während andere Anbieter Secret Manager zur Authentifizierung verwenden können.

Modelltyp

Modelltyp gibt den Typ des KI-Modells an. Die Erweiterung unterstützt Texteinbettung sowie alle generischen 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 generische 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 für Texteinbettungen 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 Modellendpunktverwaltung unterstützt auch die Registrierung aller anderen Modelltypen außer Modelle für Texteinbettungen. Verwenden Sie die Funktion google_ml.predict_row(), um Vorhersagen für generische 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 generischen 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 zu erhalten.
Der Modelltyp für diese Modelle ist generic.

Authentifizierung

Auth types (Authentifizierungstypen) gibt den Authentifizierungstyp an, den Sie verwenden können, um mit der google_ml_integration-Erweiterung eine Verbindung zur Modellendpunktverwaltung herzustellen. Die Authentifizierung ist optional und nur erforderlich, wenn Sie sich authentifizieren müssen, um auf Ihr Modell zuzugreifen.

Bei Vertex AI-Modellen 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 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 Funktion festgelegt 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 google_ml_integration-Erweiterung enthält die folgenden Vorhersagefunktionen:

google_ml.embedding()
Wird verwendet, um einen registrierten Endpunkt für ein Texteinbettungsmodell aufzurufen, um Einbettungen zu generieren. Es bietet integrierte Unterstützung für das Modell textembedding-gecko von Vertex AI und das Modell text-embedding-ada-002 von OpenAI.
Bei Modelleinbettungsmodellen ohne integrierte Unterstützung sind die Ein- und Ausgabeparameter für ein Modell eindeutig und müssen für die Funktion transformiert werden, damit das Modell aufgerufen werden kann. Erstellen Sie eine Funktion zum Transformieren der Eingabe, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe zu transformieren, und eine Funktion zum Transformieren der Ausgabe, 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 zu treffen.

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 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.

Nachfolgend sehen Sie die Signaturen für die Vorhersagefunktion für Modelle für Texteinbettungen:

// 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 zur Generierung von HTTP-Headern gibt die Ausgabe in JSON-Schlüssel/Wert-Paaren aus, 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() lautet die Signatur so:

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

Weitere Informationen zum Erstellen einer Funktion zur Header-Generierung finden Sie unter Funktion zur HTTP-Header-Generierung.

Nächste Schritte