Auf dieser Seite werden die wichtigsten Konzepte erläutert, die Sie kennen müssen, bevor Sie einen KI-Modellendpunkt registrieren und Vorhersagen mit der Modellendpunktverwaltung aufrufen.
Informationen zum Registrieren von Remote-Modellendpunkten bei AlloyDB for PostgreSQL finden Sie unter Remote-KI-Modelle in AlloyDB registrieren und aufrufen.
Übersicht
Mit der Verwaltung von Modellendpunkten können Sie einen Modellendpunkt registrieren, Metadaten von Modellendpunkten in Ihrem Datenbankcluster verwalten und mit SQL-Abfragen Aufrufe an die Remote-Modellendpunkte senden. Sie bietet die Erweiterung google_ml_integration
, die Funktionen enthält, mit denen Sie die Metadaten für KI-Modelle bei AlloyDB registrieren können. Diese registrierten Metadaten werden verwendet, 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 und generische Modelle
- Einbettungsmodelle von Drittanbietern wie Hugging Face oder OpenAI
- Benutzerdefiniert gehostete Modelle für Texteinbettungen, einschließlich selbst gehosteter Modelle oder Modelle, die über private Endpunkte verfügbar sind
- Generische Modelle mit einer JSON-basierten API, z. B. das
facebook/bart-large-mnli
-Modell, das auf Hugging Face gehostet wird, dasgemini-pro
-Modell aus dem Vertex AI Model Garden oder dieclaude
-Modelle von Anthropic
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.
Sie können die Modellendpunkt-ID verwenden, um Modelle für folgende Zwecke abzufragen:
Einbettungen generieren, um Text-Prompts in numerische Vektoren zu übersetzen. Sie können generierte Einbettungen als Vektordaten speichern, wenn die
vector
-Erweiterung in der Datenbank aktiviert ist. Weitere Informationen finden Sie unter Einbettungen mit pgvector abfragen und indexieren.Vorhersagen mit SQL aufrufen
Ihre Anwendungen können mit der 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. Der Rückgabetyp der Einbettungsfunktion istREAL[]
. - 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 verarbeiten.
- Funktionen zum Verwalten der registrierten Modellendpunkte und Secrets.
Wichtige Konzepte
Bevor Sie mit der Verwaltung von Modellendpunkten beginnen, sollten Sie sich mit den Konzepten vertraut machen, die für die Verbindung zu den Modellen und deren Verwendung erforderlich sind.
Modellanbieter
Unter Modellanbieter sind die unterstützten Anbieter für das Modell-Hosting aufgeführt. Das Festlegen des Modellanbieters ist optional, hilft aber bei der Verwaltung von Modellendpunkten, den Anbieter zu identifizieren und Header für unterstützte Modelle automatisch zu formatieren. In der folgenden Tabelle sehen Sie den Wert für den Modellanbieter, den Sie je nach verwendetem Modellanbieter festlegen können:
Modellanbieter | In Funktion festgelegt als… |
---|---|
Vertex AI | google |
Hugging Face-Modelle | hugging_face |
Anthropic-Modelle | anthropic |
OpenAI | open_ai |
Andere Modelle | custom |
Der Standardanbieter für Modelle ist custom
.
Die unterstützte Authentifizierungsmethode hängt vom Anbietertyp ab. Die Vertex AI-Modelle verwenden das Dienstkonto, das zum Installieren von AlloyDB Omni verwendet wurde, zur Authentifizierung. Andere Anbieter können Secret Manager verwenden oder Authentifizierungsdetails über Header übergeben. Weitere Informationen finden Sie unter Authentifizierung einrichten.
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.
- Vorregistrierte Vertex AI-Modelle
- Die Verwaltung von Modellendpunkten unterstützt einige Texteinbettungsmodelle und generische Vertex AI-Modelle als vorregistrierte Modell-IDs. Sie können die Modell-ID direkt verwenden, um Einbettungen zu generieren oder Vorhersagen aufzurufen, je nach Modelltyp.
Weitere Informationen zu unterstützten vorregistrierten Modellen finden Sie unter Vorregistrierte Vertex AI-Modelle.
Wenn Sie beispielsweise das vorregistrierte Modelltextembedding-gecko
aufrufen möchten, können Sie das Modell direkt mit der Einbettungsfunktion aufrufen:SELECT google_ml.embedding( model_id => 'textembedding-gecko', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
- Modelle mit integrierter Unterstützung
- Die Verwaltung von Modellendpunkten bietet integrierte Unterstützung für einige Modelle von Vertex AI, Anthropic und OpenAI. Bei Texteinbettungsmodellen mit integrierter Unterstützung richtet AlloyDB automatisch Standardtransformationsfunktionen ein.
- Wenn Sie diese Modellendpunkte registrieren, legen Sie den qualifizierten Namen explizit fest. Eine Liste der Modelle mit integrierter Unterstützung finden Sie unter Modelle mit integrierter Unterstützung.
- Der Modelltyp für diese Modelle kann
text-embedding
odergeneric
sein. - Andere Modelle zur Texteinbettung
- Wenn Sie einen Endpunkt für ein Texteinbettungsmodell ohne integrierte Unterstützung registrieren möchten, empfehlen wir, Transformationsfunktionen zu erstellen, um die vom Modell unterstützten Ein- und Ausgabeformate zu verarbeiten. Je nach den Anforderungen des Modells müssen Sie möglicherweise auch eine benutzerdefinierte Header-Funktion erstellen, um den Header anzugeben.
- 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. Wenn Sie die Authentifizierung über Header übergeben, können Sie das Festlegen der Authentifizierungsmethode überspringen.
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.
- Bei Modelle für Texteinbettungen ohne integrierte Unterstützung sind die Ein- und Ausgabeparameter für jedes Modell eindeutig und müssen transformiert werden, damit die Funktion das Modell aufrufen kann. Sie müssen eine Transform-Eingabefunktion erstellen, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe zu transformieren, und eine Transform-Ausgabefunktion, um die modellspezifische Ausgabe in die Ausgabe der Vorhersagefunktion zu transformieren.
google_ml.predict_row()
- Wird verwendet, um einen registrierten generischen Modellendpunkt aufzurufen, sofern das Modell eine JSON-basierte API unterstützt, um Vorhersagen zu treffen.
Transformationsfunktionen
Transformationsfunktionen ändern die Eingabe in ein Format, das das Modell versteht, und wandeln die Modellantwort in das Format um, 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 Eingabe ab, die vom Modell erwartet wird.
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 zum Generieren von Headern finden Sie unter Beispiel für eine Funktion zum Generieren von Headern.
Nächste Schritte
- Authentifizierung für Modellanbieter einrichten
- Modellendpunkt bei der Modellendpunktverwaltung registrieren.
- Referenz zur Verwaltung von Modellendpunkten