Registra e chiama i modelli di IA remoti nella panoramica di AlloyDB Omni

Seleziona una versione della documentazione:

Questa pagina descrive un'anteprima che ti consente di sperimentare la registrazione di un endpoint del modello di AI e l'invocazione di previsioni con la gestione degli endpoint del modello in AlloyDB Omni. Per utilizzare i modelli di AI negli ambienti di produzione, consulta Crea applicazioni di AI generativa utilizzando AlloyDB AI e Utilizzare i vector embedding.

Per registrare gli endpoint dei modelli remoti con AlloyDB, consulta Registrare e chiamare modelli di AI remoti in AlloyDB.

Panoramica

L'anteprima della gestione degli endpoint del modello ti consente di registrare un endpoint del modello, gestire i metadati dell'endpoint del modello nel tuo cluster di database e quindi interagire con i modelli utilizzando query SQL. Fornisce l'estensione google_ml_integration che include funzioni per aggiungere e registrare i metadati dell'endpoint del modello correlati ai modelli e poi utilizzare i modelli per generare vector embedding o richiamare le previsioni.

Di seguito sono riportati alcuni tipi di modelli di esempio che puoi registrare utilizzando la gestione degli endpoint dei modelli:

  • Modelli di text embedding Vertex AI
  • Modelli di incorporamento forniti da provider di terze parti, come Anthropic, Hugging Face o OpenAI.
  • Modelli di text embedding ospitati personalizzati
  • Modelli generici con un'API basata su JSON, ad esempio il modello facebook/bart-large-mnli ospitato su Hugging Face o il modello gemini-pro di Vertex AI Model Garden

Come funziona

Puoi utilizzare la gestione degli endpoint del modello 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 modello con la gestione degli endpoint modello, ogni endpoint viene registrato 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 incorporamenti generati come dati vettoriali quando l'estensione pgvector è abilitata nel database. Per maggiori informazioni, consulta Query e indici di 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'estensione google_ml_integration. 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 incorporamento.
  • La funzione SQL google_ml.create_sm_secret(), che utilizza i secret in Secret Manager, dove sono archiviate le chiavi API. Google Cloud
  • La funzione SQL google_ml.embedding(), che è una funzione di previsione che genera incorporamenti 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 assistenza che gestiscono la generazione di URL personalizzati, la generazione di intestazioni HTTP o il passaggio di funzioni di trasformazione per i tuoi modelli generici.
  • Funzioni per gestire gli endpoint e i secret del modello registrato.

Concetti fondamentali

Prima di iniziare a utilizzare la gestione degli endpoint del modello, comprendi i concetti necessari per connetterti ai modelli e utilizzarli.

Fornitore del modello

Fornitore del modello indica i provider di hosting dei modelli supportati. La tabella seguente mostra il valore del fornitore del modello che devi impostare in base al fornitore del modello che utilizzi:

Fornitore del modello Imposta in 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 provider, il metodo di autenticazione supportato varia. I modelli Vertex AI utilizzano il account di servizio AlloyDB per l'autenticazione, mentre altri provider possono utilizzare Secret Manager per l'autenticazione. Per ulteriori informazioni, vedi Configurare l'autenticazione.

Tipo di modello

Model type indica il tipo di modello di AI. L'estensione supporta l'incorporamento di testo e qualsiasi tipo di modello generico. I tipi di modello supportati che puoi impostare durante la registrazione di 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 text embedding con supporto integrato
La gestione degli endpoint dei modelli fornisce supporto integrato per tutte le versioni del modello textembedding-gecko di Vertex AI e del modello text-embedding-ada-002 di OpenAI. Per registrare questi endpoint del modello, utilizza la funzione google_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 text embedding
Per altri modelli di incorporamento 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 le intestazioni personalizzate richieste dal modello.
Il tipo di modello per questi modelli è text-embedding.
Modelli generici
La gestione degli endpoint del modello supporta anche la registrazione di tutti gli altri tipi di modelli, ad eccezione dei modelli di incorporamento di testo. Per richiamare le previsioni per i modelli generici, utilizza la funzione google_ml.predict_row(). Puoi impostare i metadati dell'endpoint del modello, come un endpoint di richiesta e intestazioni HTTP specifiche per il tuo modello.
Non puoi passare le 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 di analizzare l'output JSON per derivare 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 è necessaria 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, è possibile utilizzare la chiave API o il token bearer archiviato come secret in Secret Manager con la funzione SQL google_ml.create_sm_secret().

La tabella seguente mostra i tipi di autenticazione che puoi impostare:

Metodo di autenticazione Imposta in funzione come… Fornitore del modello
Agente di servizio AlloyDB alloydb_service_agent_iam Fornitore di 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 incorporamenti. Include il supporto integrato per il modello textembedding-gecko di Vertex AI e il modello text-embedding-ada-002 di OpenAI.
Per i modelli di incorporamento di testo senza supporto integrato, i parametri di input e output sono univoci per un modello e devono essere trasformati affinché la funzione chiami il modello. Crea una funzione di input di trasformazione per trasformare l'input della funzione di previsione nell'input specifico del modello e una funzione di output di trasformazione 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 comprensibile per il modello e convertono la risposta del modello nel formato previsto dalla funzione di previsione. Le funzioni di trasformazione vengono utilizzate durante la registrazione dell'endpoint del modello text-embedding senza 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 incorporamento di 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 saperne di più su come creare funzioni di trasformazione, consulta Esempio di funzioni di trasformazione.

Funzione di generazione dell'intestazione HTTP

La funzione di generazione delle intestazioni 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.

Il seguente esempio 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 maggiori informazioni su come creare una funzione di generazione dell'intestazione, consulta Esempio di funzione di generazione dell'intestazione.

Passaggi successivi