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, Metadaten für Modellendpunkte in Ihrer Cloud SQL-Instanz verwalten und dann mit SQL-Abfragen mit den Modellen interagieren.
Cloud SQL bietet die google_ml_integration Erweiterung, die
Funktionen zum Hinzufügen und Registrieren der Metadaten für Modellendpunkte enthält, die sich auf die Modelle beziehen.
Mit diesen Modellen können Sie Vektoreinbettungen generieren oder Vorhersagen aufrufen.
Sie können die folgenden Modelltypen mit der Modellendpunktverwaltung registrieren:
- Vertex AI-Modelle für Texteinbettungen.
- Benutzerdefinierte Modelle für Texteinbettungen, die in Netzwerken in gehostet werden Google Cloud.
Allgemeine Modelle mit einer JSON-basierten API. Beispiele für diese Modelle sind:
- Das Modell
gemini-proaus dem Vertex AI Model Garden - Das Modell
open_aifür OpenAI-Modelle - Modelle, die in Netzwerken in gehostet werden Google Cloud
- Das Modell
Funktionsweise
Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, der die folgenden Anforderungen erfüllt:
- Die Modell-Ein- und -Ausgabe unterstützt das JSON-Format.
- Sie können das REST-Protokoll verwenden, um das Modell aufzurufen.
Wenn Sie einen Modellendpunkt mit der Modellendpunktverwaltung registrieren, registriert die Modellendpunktverwaltung jeden Endpunkt mit einer eindeutigen Modell-ID als Referenz auf das Modell. Sie können diese Modell-ID verwenden, um Modelle abzufragen:
Einbettungen generieren, um Text-Prompts in numerische Vektoren zu übersetzen. Sie können generierte Einbettungen als Vektordaten speichern, wenn die Erweiterung
pgvectorin 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 ihre Modellendpunkte mit der Erweiterung google_ml_integration verwalten. 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 sind.google_ml.embedding(): Generiert Texteinbettungen.google_ml.predict_row(): Generiert Vorhersagen, wenn Sie allgemeine Modelle aufrufen, die die JSON-Ein- 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 ist der unterstützte Anbieter des Modell-Hostings. In der folgenden Tabelle sehen Sie den Wert für den Modellanbieter, den Sie basierend auf dem verwendeten Modellanbieter festlegen müssen:
| Modellanbieter | In der Funktion festlegen als… |
|---|---|
| Vertex AI (einschließlich Gemini) | google |
| Anthropic | anthropic |
| Hugging Face | hugging_face |
| OpenAI | open_ai |
| Andere Modelle,die außerhalb von Vertex AI gehostet werden, Anthropic, Hugging Face und OpenAI |
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-geckoModells. Verwenden Sie die Funktiongoogle_ml.create_model(), um diese Modellendpunkte zu registrieren. Cloud SQL 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 Ein- und Ausgabeformate zu verarbeiten, die vom Modell unterstützt werden. 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 Modellendpunktverwaltung 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. Dagenericder Standardmodelltyp ist, ist das Festlegen des Modelltyps optional, wenn Sie Modellendpunkte für diesen Typ registrieren.
Authentifizierungsmethoden
Mit der Erweiterunggoogle_ml_integration können Sie verschiedene Authentifizierungsmethoden angeben, um auf Ihr Modell zuzugreifen.
Das Festlegen dieser Methoden ist optional und nur erforderlich, wenn Sie sich authentifizieren müssen, um auf Ihr Modell zuzugreifen.
Für Vertex AI-Modelle wird das Cloud SQL-Dienstkonto für die Authentifizierung verwendet. Für andere Modelle kann der
API-Schlüssel oder das Bearertoken, das als Secret in
Secret Manager gespeichert ist, mit der
google_ml.create_sm_secret()
SQL-Funktion verwendet werden.
In der folgenden Tabelle sind die Authentifizierungsmethoden aufgeführt, die Sie festlegen können:
| Authentifizierungsmethode | In der Funktion festlegen als… | Modellanbieter |
|---|---|---|
| Cloud SQL-Dienstagent | cloudsql_service_agent_iam |
Vertex AI-Anbieter |
| Secret Manager | secret_manager |
Modelle, die außerhalb von Vertex AI gehostet werden |
Vorhersagefunktionen
Die google_ml_integration Erweiterung enthält die folgenden Vorhersagefunktionen:
google_ml.embedding()- Ruft einen registrierten Modellendpunkt für Texteinbettungen auf, um
Einbettungen zu generieren. Sie bietet integrierte Unterstützung für das
textembedding-geckoModell von Vertex AI. - 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()- Ruft einen registrierten allgemeinen Modellendpunkt auf, wenn der Endpunkt JSON-basierte APIs 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 verwendet, wenn der Modellendpunkt text-embedding 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.
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.
Beschränkungen
- Wenn Sie KI-Modelle mit Ihrer Cloud SQL-Instanz verwenden möchten, muss die Wartungsversion Ihrer Instanz
R20240910.01_02oder höher sein. Informationen zum Upgrade Ihrer Instanz auf diese Version finden Sie unter Selfservice-Wartung durchführen.
Nächste Schritte
- Authentifizierung einrichten für Modellanbieter.
- Modellendpunkt mit der Modellendpunktverwaltung registrieren.
- Erfahren Sie mehr über die Referenz zur Verwaltung von Modellendpunkten.