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 mit AlloyDB for PostgreSQL finden Sie unter Remote-KI-Modelle in AlloyDB registrieren und aufrufen.
Übersicht
Mit der Modellendpunktverwaltung können Sie einen Modellendpunkt registrieren, Metadaten für Modellendpunkte in Ihrem Datenbankcluster verwalten und Modellendpunkte mit SQL-Abfragen aufrufen. Sie bietet die Erweiterung google_ml_integration, die Funktionen enthält, mit denen Sie die Metadaten zu KI-Modellen in AlloyDB registrieren können. Diese registrierten Metadaten werden verwendet, um Vektoreinbettungen zu generieren oder Vorhersagen aufzurufen.
Im Folgenden finden Sie 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
- Vom Kunden gehostete Modelle für Texteinbettungen, einschließlich selbst gehosteter Modelle oder Modelle, die über private Endpunkte verfügbar sind
- Allgemeine Modelle mit einer JSON-basierten API, z. B. das auf Hugging Face gehostete Modell
facebook/bart-large-mnli, das Modellgemini-proaus dem Vertex AI Model Garden oder die Modelleclaudevon Anthropic
Funktionsweise
Mit der Modellendpunktverwaltung 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 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 abzufragen, um:
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 Vektoreinbettungen speichern.Vorhersagen mit SQL aufrufen.
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 Secret Manager Google Cloudverwendet, 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 übernehmen.
- 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 basierend auf dem von Ihnen verwendeten 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 zur Installation 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 beim Registrieren allgemeiner Modellendpunkte optional, da generic der Standardmodelltyp ist.
- Vorregistrierte Vertex AI-Modelle
- Die Modellendpunktverwaltung unterstützt einige Texteinbettungs- und allgemeine Vertex AI-Modelle als vorregistrierte Modell-IDs. Je nach Modelltyp können Sie die Modell-ID direkt verwenden, um Einbettungen zu generieren oder Vorhersagen aufzurufen.
Weitere Informationen zu unterstützten vorregistrierten Modellen finden Sie unter Vorregistrierte Vertex AI-Modelle.
Wenn Sie beispielsweise das vorregistrierte Modelltextembedding-geckoaufrufen 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 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.
- 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-embeddingodergenericsein. - Andere Modelle zur Texteinbettung
- Wenn Sie einen Modellendpunkt für Texteinbettungen 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. - Allgemeine 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
Authentifizierungstypen geben 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 zur Authentifizierung verwendet. Für andere Modelle kann ein API-Schlüssel oder Inhabertoken, das als Secret in 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 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 Modellendpunkt zur Texteinbettung aufzurufen und Einbettungen zu generieren.
- Bei 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. Sie müssen eine Transformationsfunktion für die Eingabe erstellen, 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()- Wird verwendet, um einen registrierten generischen Modellendpunkt aufzurufen, sofern das Modell eine JSON-basierte API unterstützt, um Vorhersagen zu generieren.
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 Modellendpunkt text-embedding 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.
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.
Nächste Schritte
- Authentifizierung für Modellanbieter einrichten
- Modellendpunkt bei der Modellendpunktverwaltung registrieren
- Referenz zur Verwaltung von Modellendpunkten