Panoramica della registrazione e dell'uso di modelli di AI remoti in Cloud SQL

Questa pagina descrive come registrare un endpoint del modello di AI e richiamare le previsioni con la gestione degli endpoint del modello in Cloud SQL. Per utilizzare i modelli di AI negli ambienti di produzione, consulta Creare applicazioni di AI generativa utilizzando Cloud SQL e Lavorare con gli embedding vettoriali.

Panoramica

La gestione degli endpoint dei modelli ti consente di registrare un endpoint del modello, gestire i metadati dell'endpoint del modello nell'istanza Cloud SQL e interagire con i modelli utilizzando query SQL. Cloud SQL fornisce l'estensione google_ml_integration che include funzioni per aggiungere e registrare i metadati degli endpoint dei modelli relativi ai modelli. Puoi utilizzare questi modelli per generare embedding di vettori o invocare previsioni.

Puoi registrare i seguenti tipi di modelli utilizzando la gestione degli endpoint dei modelli:

  • Modelli di embedding di testo Vertex AI.
  • Modelli di embedding di testo ospitati in rete in Google Cloud.
  • Modelli generici con un'API basata su JSON. Ecco alcuni esempi di questi modelli:
    • Il modello gemini-pro di Model Garden di Vertex AI
    • Il modello open_ai per i modelli OpenAI
    • Modelli ospitati in reti all'interno di Google Cloud

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.
  • Puoi utilizzare il protocollo REST per chiamare il modello.

Quando registri un endpoint del modello con la gestione degli endpoint del modello, questa registra ogni endpoint con un ID modello univoco come riferimento al modello. Puoi utilizzare questo ID modello per eseguire query sui modelli, come segue:

  • 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 gestire i propri endpoint del modello utilizzando l'google_ml_integration estensione. Questa estensione fornisce le seguenti funzioni SQL:

  • google_ml.create_model(): registra l'endpoint del modello utilizzato nella funzione di previsione o di embedding
  • google_ml.create_sm_secret(): utilizza i secret in Secret Manager di Google Cloud, dove sono archiviate le chiavi API
  • google_ml.embedding(): genera incorporamenti di testo
  • google_ml.predict_row(): genera previsioni quando chiami modelli generici che supportano i formati di input e output JSON

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

Provider del modello 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 (include Gemini) google
OpenAI open_ai
Altri modelli ospitati al di fuori di Vertex AI custom

Il fornitore di modelli predefinito è custom.

Tipi di modello

I tipi di modelli sono i tipi di modelli di AI. Quando registri un endpoint del modello, puoi impostare i tipi di modello text-embedding o generic per l'endpoint.

Modelli di embedding di testo con supporto integrato
La gestione degli endpoint dei modelli fornisce il supporto integrato per tutte le versioni del textembedding-geckomodello. Per registrare questi endpoint del modello, utilizza la funzione google_ml.create_model(). Cloud SQL 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 intestazioni HTTP specifiche per il 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. Poiché generic è il tipo di modello predefinito, se registri endpoint del modello per questo tipo, l'impostazione del tipo di modello è facoltativa.

Metodi di autenticazione

Puoi utilizzare l'estensione google_ml_integration per specificare diversi metodi di autenticazione per accedere al tuo modello. L'impostazione di questi metodi è facoltativa ed è obbligatoria solo se devi autenticarti per accedere al modello.

Per i modelli Vertex AI, l'account di servizio Cloud SQL viene utilizzato per l'autenticazione. Per altri modelli, la chiave API o il token bearer archiviati come secret in Secret Manager possono essere utilizzati con la funzione SQL google_ml.create_sm_secret().

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

Metodo di autenticazione Imposta nella funzione come… Fornitore del modello
Agente di servizio Cloud SQL cloudsql_service_agent_iam Fornitore Vertex AI
Secret Manager secret_manager Modelli ospitati al di fuori di Vertex AI

Funzioni di previsione

L'estensione google_ml_integration include le seguenti funzioni di previsione:

google_ml.embedding()
Chiama un endpoint del modello di incorporamento di testo registrato per generare gli incorporamenti. Include il supporto integrato per il textembedding-gecko modello di Vertex AI.
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()
Chiama un endpoint del modello generico registrato, se l'endpoint supporta le API basate 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 quando si registra 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.

Limitazioni

  • Per utilizzare i modelli di AI con l'istanza Cloud SQL, la versione di manutenzione dell'istanza deve essere R20240910.01_02 o successiva. Per eseguire l'upgrade dell'istanza a questa versione, consulta Manutenzione self-service.

Passaggi successivi