Questa pagina descrive un'anteprima che ti consente di fare esperimenti sulla registrazione di un endpoint del modello di AI e sull'invocazione delle previsioni con la gestione degli endpoint del modello in AlloyDB Omni. Per utilizzare i modelli di IA negli ambienti di produzione, consulta Creare applicazioni di IA generativa utilizzando AlloyDB AI e Lavorare con gli embedding vettoriali.
Per registrare gli endpoint dei modelli remoti in AlloyDB, consulta Registrare e chiamare modelli di AI remoti in AlloyDB.
Panoramica
L'anteprima della Gestione degli endpoint dei modelli ti consente di registrare un endpoint del modello, gestire i metadati dell'endpoint del modello nel tuo cluster di database e interagire con i modelli utilizzando query SQL. Fornisce l'estensione google_ml_integration
che include funzioni per aggiungere e registrare i metadati degli endpoint dei modelli relativi ai modelli, per poi utilizzare i modelli per generare embedding di vettori o richiamare le previsioni.
Ecco alcuni tipi di modelli di esempio che puoi registrare utilizzando la gestione degli endpoint dei modelli:
- Modelli di embedding di testo Vertex AI
- Modelli di embedding forniti da fornitori di terze parti, come Anthropic, Hugging Face o OpenAI.
- Modelli di embedding di testo ospitati in modo personalizzato
- Modelli generici con un'API basata su JSON, ad esempio il modello
facebook/bart-large-mnli
ospitato su Hugging Face o il modellogemini-pro
di Model Garden di Vertex AI
Come funziona
Puoi utilizzare la gestione degli endpoint dei modelli per registrare un endpoint del modello conforme a quanto segue:
- L'input e l'output del modello supportano il formato JSON.
- Il modello può essere chiamato utilizzando il protocollo REST.
Quando registri un endpoint del modello con la gestione degli endpoint del modello, viene registrato ogni endpoint con un ID modello univoco che hai fornito come riferimento al modello. Puoi utilizzare questo ID modello per eseguire query sui modelli:
Genera incorporamenti per tradurre i prompt di testo in vettori numerici. Puoi memorizzare gli embedding generati come dati vettoriali quando l'estensione
pgvector
è attivata nel database. Per maggiori informazioni, consulta Eseguire query e indicizzare gli embedding con pgvector.Richiama le previsioni per chiamare un modello utilizzando SQL all'interno di una transazione.
Le tue applicazioni possono accedere alla gestione degli endpoint del modello utilizzando l'google_ml_integration
estensione. Questa estensione fornisce le seguenti funzioni:
- La funzione SQL
google_ml.create_model()
, utilizzata per registrare l'endpoint del modello utilizzato nella funzione di previsione o di incorporamento. - La funzione SQL
google_ml.create_sm_secret()
, che utilizza i secret in Secret Manager di Google Cloud, dove sono archiviate le chiavi API. - La funzione SQL
google_ml.embedding()
, che è una funzione di previsione che genera embedding di testo. - La funzione SQL
google_ml.predict_row()
che genera previsioni quando chiami modelli generici che supportano il formato di input e output JSON. - Altre funzioni di supporto che gestiscono la generazione di URL personalizzati, la generazione di intestazioni HTTP o il passaggio di funzioni di trasformazione per i modelli generici.
- Funzioni per gestire gli endpoint e i secret del modello registrati.
Concetti fondamentali
Prima di iniziare a utilizzare la gestione degli endpoint dei modelli, comprendi i concetti necessari per connetterti ai modelli e utilizzarli.
Fornitore del modello {: #model-provider}̦
Provider di modelli indica i provider di hosting dei modelli supportati. La tabella seguente mostra il valore del provider del modello da impostare in base al provider del modello utilizzato:
Fornitore del modello | Imposta nella funzione come… |
---|---|
Vertex AI | google |
Modelli Hugging Face | custom |
Modelli Anthropic | custom |
Altri modelli | custom |
OpenAI | open_ai |
Il fornitore di modelli predefinito è custom
.
A seconda del tipo di fornitore, il metodo di autenticazione supportato è diverso. I modelli Vertex AI utilizzano l'account di servizio AlloyDB per l'autenticazione, mentre altri provider possono utilizzare Secret Manager. Per ulteriori informazioni, vedi Configurare l'autenticazione.
Tipo di modello
Tipo di modello indica il tipo di modello di AI. L'estensione supporta l'embedding del testo nonché qualsiasi tipo di modello generico. I tipi di modelli supportati che puoi impostare quando registri un endpoint del modello sono text-embedding
e generic
. L'impostazione del tipo di modello è facoltativa quando registri endpoint di modelli generici, poiché generic
è il tipo di modello predefinito.
- Modelli di embedding di testo con supporto integrato
- La gestione degli endpoint dei modelli fornisce il supporto integrato per tutte le versioni del modello
textembedding-gecko
di Vertex AI e del modellotext-embedding-ada-002
di OpenAI. Per registrare questi endpoint del modello, utilizza la funzionegoogle_ml.create_model()
. AlloyDB configura automaticamente le funzioni di trasformazione predefinite per questi modelli. - Il tipo di modello per questi modelli è
text-embedding
. - Altri modelli di incorporamento del testo
- Per altri modelli di embedding di testo, devi creare funzioni di trasformazione per gestire i formati di input e output supportati dal modello. Facoltativamente, puoi utilizzare la funzione di generazione di intestazioni HTTP che genera intestazioni personalizzate richieste dal modello.
- Il tipo di modello per questi modelli è
text-embedding
. - Modelli generici
- La gestione degli endpoint dei modelli supporta anche la registrazione di tutti gli altri tipi di modelli, ad eccezione dei modelli di embedding di testo. Per invocare le previsioni per i modelli generici, utilizza la funzione
google_ml.predict_row()
. Puoi impostare i metadati dell'endpoint del modello, come un endpoint della richiesta e le intestazioni HTTP specifiche per il tuo modello. - Non puoi trasmettere funzioni di trasformazione quando registri un endpoint del modello generico. Assicurati che, quando richiami le previsioni, l'input della funzione sia in formato JSON e analizza l'output JSON per dedurre l'output finale.
- Il tipo di modello per questi modelli è
generic
.
Autenticazione
I tipi di autenticazione indicano il tipo di autenticazione che puoi utilizzare per connetterti alla gestione degli endpoint del modello utilizzando l'estensione google_ml_integration
. L'impostazione dell'autenticazione è facoltativa ed è obbligatoria solo se devi autenticarti per accedere al modello.
Per i modelli Vertex AI, l'account di servizio AlloyDB viene utilizzato per l'autenticazione. Per altri modelli, la chiave API o il token bearer archiviato come segreto in Secret Manager può essere utilizzato con la funzione SQL google_ml.create_sm_secret()
.
La seguente tabella mostra i tipi di autenticazione che puoi impostare:
Metodo di autenticazione | Imposta nella funzione come… | Fornitore del modello |
---|---|---|
Agente di servizio AlloyDB | alloydb_service_agent_iam |
Fornitore Vertex AI |
Secret Manager | secret_manager |
fornitori di terze parti, come Anthropic, Hugging Face o OpenAI |
Funzioni di previsione
L'estensione google_ml_integration
include le seguenti funzioni di previsione:
google_ml.embedding()
- Utilizzato per chiamare un endpoint del modello di incorporamento di testo registrato per generare gli incorporamenti. Include il supporto integrato per il
modello
textembedding-gecko
di Vertex AI e il modellotext-embedding-ada-002
di OpenAI. - Per i modelli di embedding di testo senza supporto integrato, i parametri di input e output sono specifici di un modello e devono essere trasformati affinché la funzione possa chiamare il modello. Crea una funzione di trasformazione dell'input per trasformare l'input della funzione di previsione nell'input specifico del modello e una funzione di trasformazione dell'output per trasformare l'output specifico del modello nell'output della funzione di previsione.
google_ml.predict_row()
- Utilizzato per chiamare un endpoint del modello generico registrato, a condizione che supporti l'API basata su JSON, per richiamare le previsioni.
Funzioni di trasformazione
Le funzioni di trasformazione modificano l'input in un formato compreso dal modello e convertono la risposta del modello nel formato previsto dalla funzione di previsione. Le funzioni di trasformazione vengono utilizzate per registrare l'endpoint del modello text-embedding
senza il supporto integrato. La firma delle funzioni di trasformazione dipende dalla funzione di previsione per il tipo di modello.
Non puoi utilizzare le funzioni di trasformazione quando registri un endpoint del modello generic
.
Di seguito sono riportate le firme per la funzione di previsione per i modelli di embedding del testo:
// 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[];
Per ulteriori informazioni su come creare funzioni di trasformazione, consulta l'esempio di funzioni di trasformazione.
Funzione di generazione dell'intestazione HTTP
La funzione di generazione dell'intestazione HTTP genera l'output in coppie chiave-valore JSON che vengono utilizzate come intestazioni HTTP. La firma della funzione di previsione definisce le firme della funzione di generazione dell'intestazione.
L'esempio seguente mostra la firma della funzione di previsione google_ml.embedding()
.
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
Per la funzione di previsione google_ml.predict_row()
, la firma è la seguente:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
Per ulteriori informazioni su come creare una funzione di generazione dell'intestazione, consulta Esempio di funzione di generazione dell'intestazione.
Passaggi successivi
- Configura l'autenticazione per i provider di modelli.
- Registra un endpoint del modello con la gestione degli endpoint del modello.
- Consulta la documentazione di riferimento per la gestione degli endpoint dei modelli.