Auf dieser Seite werden die wichtigsten Konzepte beschrieben, die Sie kennen sollten, bevor Sie einen Endpunkt für ein KI-Modell registrieren und Vorhersagen mit der Modellendpunktverwaltung aufrufen.
Informationen zum Registrieren von Remote-Modellendpunkten bei AlloyDB finden Sie unter Remote-KI-Modelle in AlloyDB registrieren und aufrufen.
Übersicht
Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, Modellendpunktmetadaten in Ihrem Datenbankcluster verwalten und die Remote-Modellendpunkte mithilfe von SQL-Abfragen aufrufen. Sie bietet die Erweiterung google_ml_integration
mit Funktionen, mit denen Sie die Metadaten zu KI-Modellen in AlloyDB registrieren können. Diese registrierten Metadaten werden verwendet, um Vektor-Embeddings zu generieren oder Vorhersagen aufzurufen.
Im Folgenden finden Sie einige Beispiele für Modelltypen, die Sie mithilfe der Modellendpunktverwaltung registrieren können:
- Vertex AI-Modelle für die Texteinbettung und generische Modelle
- Einbetten von Modellen von Drittanbietern wie Hugging Face oder OpenAI
- Benutzerdefinierte gehostete Modelle für Text-Embeddings, 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 oderclaude
-Modelle von Anthropic
So funktioniert es
Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, der den folgenden Anforderungen entspricht:
- Für die Modelleingabe und -ausgabe wird das JSON-Format unterstützt.
- Das Modell kann über das REST-Protokoll aufgerufen werden.
Wenn Sie einen Modellendpunkt bei 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 zu folgenden Zwecken abzufragen:
Erstellen Sie Einbettungen, um Textprompts in numerische Vektoren umzuwandeln. 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 über die google_ml_integration
-Erweiterung auf die Modellendpunktverwaltung zugreifen. Diese Erweiterung bietet folgende 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 Geheimnisse im Google CloudSecret Manager verwendet, in dem die API-Schlüssel gespeichert sind. - Die SQL-Funktion
google_ml.embedding()
ist eine Vorhersagefunktion, die Text-Embeddings 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-Eingabe- und -Ausgabeformat unterstützen. - Andere Hilfsfunktionen zum Generieren benutzerdefinierter URLs, zum Generieren von HTTP-Headern oder zum Übergeben von Transformationsfunktionen.
- Funktionen zum Verwalten der registrierten Modellendpunkte und Secrets.
Wichtige Konzepte
Bevor Sie die Modellendpunktverwaltung verwenden, sollten Sie sich mit den Konzepten vertraut machen, die für die Verbindung zu den Modellen und deren Verwendung erforderlich sind.
Modellanbieter
Unter Modellanbieter werden die unterstützten Anbieter des Modell-Hostings angegeben. Das Festlegen des Modellanbieters ist optional, hilft aber bei der Modellendpunktverwaltung, 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 als… festlegen |
---|---|
Vertex AI | google |
Hugging Face-Modelle | hugging_face |
Anthropische Modelle | anthropic |
OpenAI | open_ai |
Andere Modelle | custom |
Der Standardmodellanbieter ist custom
.
Die unterstützte Authentifizierungsmethode hängt vom Anbietertyp ab. Die Vertex AI-Modelle verwenden das Dienstkonto, mit dem AlloyDB Omni installiert wurde, um sich zu authentifizieren. Andere Anbieter können den 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 die Texteinbettung sowie jeden generischen Modelltyp. Die unterstützten Modelltypen, die Sie beim Registrieren eines Modellendpunkts festlegen können, sind text-embedding
und generic
.
Das Festlegen des Modelltyps ist beim Registrieren von Endpunkten für generische Modelle optional, da generic
der Standardmodelltyp ist.
- Vorregistrierte Vertex AI-Modelle
- Die Endpunktverwaltung für Modelle unterstützt einige Modelle zur Texteinbettung und generische Vertex AI-Modelle als vorab registrierte Modell-IDs. Sie können die Modell-ID direkt verwenden, um je nach Modelltyp Einbettungen zu generieren oder Vorhersagen aufzurufen.
Weitere Informationen zu unterstützten vorab registrierten Modellen finden Sie unter Vorab registrierte Vertex AI-Modelle.
Wenn Sie beispielsweise das vorab registriertetextembedding-gecko
-Modell aufrufen möchten, können Sie es 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 Modellendpunktverwaltung bietet integrierte Unterstützung für einige Modelle von Vertex AI, Anthropic und OpenAI. Für Texteinbettungsmodelle mit integrierter Unterstützung richtet AlloyDB automatisch Standardtransformationsfunktionen ein.
- Legen Sie den qualifizierten Namen beim Registrieren dieser Modellendpunkte 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 für die Texteinbettung
- Wenn Sie einen Endpunkt für ein Text-Embedding-Modell ohne integrierte Unterstützung registrieren möchten, empfehlen wir Ihnen, Transformationsfunktionen zum Umgang mit den vom Modell unterstützten Eingabe- und Ausgabeformaten zu erstellen. Je nach den Modellanforderungen müssen Sie möglicherweise auch eine benutzerdefinierte Headerfunktion zum Angeben des Headers erstellen.
- Der Modelltyp für diese Modelle ist
text-embedding
. - Generische Modelle
- Die Endpunktverwaltung für Modelle unterstützt auch die Registrierung aller anderen Modelltypen mit Ausnahme von Modellen für Texteinbettungen. 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
.
Authentifizierung
Authentifizierungstypen geben den Authentifizierungstyp an, mit dem Sie über die Erweiterung google_ml_integration
eine Verbindung zur Endpunktverwaltung des Modells herstellen können. Die 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 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 google_ml.create_sm_secret()
-SQL-Funktion verwendet werden. Wenn Sie die Authentifizierung über Header übergeben, können Sie die Authentifizierungsmethode überspringen.
In der folgenden Tabelle sind die Authentifizierungstypen aufgeführt, die Sie festlegen können:
Authentifizierungsmethode | In Funktion als… festlegen | 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 und Einbettungen zu generieren.
- 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. Sie müssen eine Transformierungseingabefunktion erstellen, um die Eingabe der Vorhersagefunktion in die modellspezifische Eingabe umzuwandeln, und eine Transformierungsausgabefunktion, um die modellspezifische Ausgabe in die Ausgabe der Vorhersagefunktion umzuwandeln.
google_ml.predict_row()
- Wird verwendet, um einen registrierten generischen Modellendpunkt aufzurufen, sofern das Modell eine JSON-basierte API unterstützt, um Vorhersagen aufzurufen.
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 vom Modell erwarteten Eingabe 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.
Nächste Schritte
- Richten Sie die Authentifizierung für Modellanbieter ein.
- Registrieren Sie einen Modellendpunkt bei der Modellendpunktverwaltung.
- Referenz zur Modellendpunktverwaltung