Remote-KI-Modelle in der Cloud SQL-Übersicht registrieren und aufrufen

Auf dieser Seite wird beschrieben, wie Sie einen Endpunkt für ein KI-Modell registrieren und Vorhersagen mit der Modellendpunktverwaltung in Cloud SQL aufrufen. Informationen zur Verwendung von KI-Modellen in Produktionsumgebungen finden Sie unter Generative KI-Anwendungen mit Cloud SQL erstellen und Mit Vektoreinbettungen arbeiten.

Übersicht

Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, die Metadaten des Modellendpunkts in Ihrer Cloud SQL-Instanz verwalten und dann mithilfe von SQL-Abfragen mit den Modellen interagieren. Cloud SQL bietet die Erweiterung google_ml_integration mit Funktionen zum Hinzufügen und Registrieren der Metadaten zu Modellendpunkten, die sich auf die Modelle beziehen. Sie können diese Modelle verwenden, um Vektoreinbettungen zu generieren oder Vorhersagen aufzurufen.

Mit der Modellendpunktverwaltung können Sie die folgenden Modelltypen registrieren:

  • Vertex AI-Modelle für die Texteinbettung
  • Benutzerdefinierte gehostete Modelle für Text-Embeddings, die in Netzwerken in Google Cloud gehostet werden.
  • Generische Modelle mit einer JSON-basierten API. Beispiele für diese Modelle:
    • Das gemini-pro-Modell aus dem Vertex AI Model Garden
    • Das open_ai-Modell für OpenAI-Modelle
    • In Google Cloud-Netzwerken gehostete Modelle

Funktionsweise

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

  • Die Modell-Eingabe und -Ausgabe unterstützen das JSON-Format.
  • Sie können das REST-Protokoll verwenden, um das Modell aufzurufen.

Wenn Sie einen Modellendpunkt bei der Modellendpunktverwaltung registrieren, wird jedem Endpunkt eine eindeutige Modell-ID als Referenz zum Modell zugewiesen. Sie können diese Modell-ID verwenden, um Modelle abzufragen:

  • 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 mithilfe von SQL innerhalb einer Transaktion aufzurufen.

Die Modellendpunkte Ihrer Anwendungen können über die google_ml_integration-Erweiterung verwaltet werden. Diese Erweiterung bietet die folgenden SQL-Funktionen:

  • google_ml.create_model(): Registriert den Modellendpunkt, der in der Vorhersage- oder Einbettungsfunktion verwendet wird.
  • google_ml.create_sm_secret(): verwendet Secrets in Google Cloud Secret Manager, wo die API-Schlüssel gespeichert werden
  • google_ml.embedding(): generiert Texteinbettungen
  • google_ml.predict_row(): Er generiert Vorhersagen, wenn Sie generische Modelle aufrufen, die die JSON-Eingabe- und ‑Ausgabeformate unterstützen.

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 sind die unterstützten Anbieter des Modell-Hostings. 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 (einschließlich Gemini) google
OpenAI open_ai
Andere Modelle, die außerhalb von Vertex AI gehostet werden custom

Der Standardmodellanbieter ist custom.

Modelltypen

Modelltypen sind die Typen des KI-Modells. Wenn Sie einen Modellendpunkt registrieren, können Sie die Modelltypen text-embedding oder generic für den Endpunkt festlegen.

Texteinbettungsmodelle mit integrierter Unterstützung
Die Modellendpunktverwaltung bietet integrierte Unterstützung für alle Versionen des textembedding-gecko-Modells. Verwenden Sie die Funktion google_ml.create_model(), um diese Modellendpunkte zu registrieren. Cloud SQL richtet für diese Modelle automatisch Standardtransformationsfunktionen ein.
Der Modelltyp für diese Modelle ist text-embedding.
Andere Modelle für die Texteinbettung
Für andere Modelle zur Text-Embedding 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 mit Ausnahme von Modellen für die Texteinbettung. 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. Da generic der Standardmodelltyp ist, ist die Einstellung des Modelltyps optional, wenn Sie Modellendpunkte für diesen Typ registrieren.

Authentifizierungsmethoden

Mit der Erweiterung google_ml_integration können Sie verschiedene Authentifizierungsmethoden für den Zugriff auf Ihr Modell angeben. Die Einrichtung dieser Methoden ist optional und nur erforderlich, wenn Sie sich für den Zugriff auf Ihr Modell authentifizieren müssen.

Für Vertex AI-Modelle wird das Cloud SQL-Dienstkonto für die Authentifizierung verwendet. Bei anderen Modellen kann der API-Schlüssel oder das Bearer-Token, das als Geheimnis im Secret Manager gespeichert ist, mit der SQL-Funktion google_ml.create_sm_secret() verwendet werden.

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

Authentifizierungsmethode In Funktion als… festlegen Modellanbieter
Cloud SQL-Dienst-Agent cloudsql_service_agent_iam Vertex AI-Anbieter
Secret Manager secret_manager Außerhalb von Vertex AI gehostete Modelle

Vorhersagefunktionen

Die google_ml_integration-Erweiterung enthält die folgenden Vorhersagefunktionen:

google_ml.embedding()
Ruft einen registrierten Endpunkt für ein Texteinbettungsmodell auf, um Einbettungen zu generieren. Es bietet integrierte Unterstützung für das textembedding-gecko-Modell von Vertex AI.
Bei Modellen für Text-Embeddings 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 Transformierungseingabefunktion, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe zu transformieren, und eine Transformierungsausgabefunktion, um die modellspezifische Ausgabe in die Ausgabe der Vorhersagefunktion zu transformieren.
google_ml.predict_row()
Ruft einen registrierten generischen Modellendpunkt auf, wenn der Endpunkt JSON-basierte APIs zum Aufrufen von Vorhersagen unterstützt.

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.

Beschränkungen

  • Wenn Sie KI-Modelle mit Ihrer Cloud SQL-Instanz verwenden möchten, muss die Wartungsversion Ihrer Instanz R20240910.01_02 oder höher sein. Informationen zum Upgrade Ihrer Instanz auf diese Version finden Sie unter Selfservice-Wartung.

Nächste Schritte