Esta página descreve como registar um ponto final do modelo de IA e invocar previsões com a gestão de pontos finais do modelo no Cloud SQL. Para usar modelos de IA em ambientes de produção, consulte os artigos Crie aplicações de IA generativa com o Cloud SQL e Trabalhe com incorporações vetoriais.
Vista geral
A gestão de pontos finais de modelos permite-lhe registar um ponto final de modelo, gerir metadados de pontos finais de modelos na sua instância do Cloud SQL e, em seguida, interagir com os modelos através de consultas SQL.
O Cloud SQL fornece a extensão google_ml_integration
que
inclui funções para adicionar e registar os metadados do ponto final do modelo relacionados com os modelos.
Pode usar estes modelos para gerar incorporações vetoriais ou invocar previsões.
Pode registar os seguintes tipos de modelos através da gestão de pontos finais de modelos:
- Modelos de incorporação de texto do Vertex AI.
- Modelos de incorporação de texto alojados de forma personalizada em redes dentro do Google Cloud.
Modelos genéricos com uma API baseada em JSON. Seguem-se alguns exemplos destes modelos:
- O modelo
gemini-pro
do Vertex AI Model Garden - O modelo
open_ai
para modelos da OpenAI - Modelos alojados em redes dentro de Google Cloud
- O modelo
Como funciona
Pode usar a gestão de pontos finais de modelos para registar um ponto final de modelo que esteja em conformidade com o seguinte:
- A entrada e a saída do modelo suportam o formato JSON.
- Pode usar o protocolo REST para chamar o modelo.
Quando regista um ponto final do modelo com a gestão de pontos finais do modelo, a gestão de pontos finais do modelo regista cada ponto final com um ID do modelo exclusivo como referência ao modelo. Pode usar este ID do modelo para consultar modelos, da seguinte forma:
Gerar incorporações para traduzir comandos de texto em vetores numéricos. Pode armazenar incorporações geradas como dados vetoriais quando a extensão
pgvector
está ativada na base de dados. Para mais informações, consulte o artigo Consultar e indexar incorporações com o pgvector.Invocar previsões para chamar um modelo através de SQL numa transação.
As suas aplicações podem gerir os respetivos pontos finais de modelos através da extensão google_ml_integration
. Esta extensão oferece as seguintes funções SQL:
google_ml.create_model()
: regista o ponto final do modelo que é usado na função de previsão ou incorporaçãogoogle_ml.create_sm_secret()
: usa segredos no Google Cloud Secret Manager, onde as chaves da API estão armazenadasgoogle_ml.embedding()
: gera incorporações de textogoogle_ml.predict_row()
: gera previsões quando chama modelos genéricos que suportam os formatos de entrada e saída JSON
Conceitos-chave
Antes de começar a usar a gestão de pontos finais de modelos, compreenda os conceitos necessários para se ligar aos modelos e usá-los.
Fornecedor do modelo
O fornecedor do modelo é o fornecedor de alojamento de modelos suportado. A tabela seguinte mostra o valor do fornecedor do modelo que tem de definir com base no fornecedor do modelo que usa:
Fornecedor do modelo | Definir na função como… |
---|---|
Vertex AI (inclui o Gemini) | google |
Anthropic | anthropic |
Hugging Face | hugging_face |
OpenAI | open_ai |
Outros modelos alojados fora do Vertex AI, Anthropic, Hugging Face e OpenAI |
custom |
O fornecedor de modelos predefinido é custom
.
Tipos de modelos
Os tipos de modelos são os tipos de modelo de IA. Quando regista um ponto final do modelo, pode definir os tipos de modelo text_embedding
ou generic
para o ponto final.
- Modelos de incorporação de texto com suporte integrado
- A gestão de pontos finais de modelos oferece suporte integrado para todas as versões do modelo
textembedding-gecko
. Para registar estes pontos finais do modelo, use a funçãogoogle_ml.create_model()
. O Cloud SQL configura automaticamente as funções de transformação predefinidas para estes modelos. - O tipo de modelo para estes modelos é
text_embedding
. - Outros modelos de incorporação de texto
- Para outros modelos de incorporação de texto, tem de criar funções de transformação para processar os formatos de entrada e saída suportados pelo modelo. Opcionalmente, pode usar a função de geração de cabeçalhos HTTP que gera cabeçalhos personalizados exigidos pelo seu modelo.
- O tipo de modelo para estes modelos é
text_embedding
. - Modelos genéricos
- A gestão de pontos finais de modelos também suporta o registo de todos os outros tipos de modelos, exceto os modelos de incorporação de texto. Para invocar previsões para modelos genéricos, use a função
google_ml.predict_row()
. Pode definir metadados do ponto final do modelo, como um ponto final de pedido e cabeçalhos HTTP específicos do seu modelo. - Não pode transmitir funções de transformação quando regista um ponto final de modelo genérico. Certifique-se de que, quando invoca as previsões, a entrada da função está no formato JSON e de que analisa a saída JSON para obter a saída final.
- O tipo de modelo para estes modelos é
generic
. Uma vez quegeneric
é o tipo de modelo predefinido, se registar pontos finais de modelos para este tipo, a definição do tipo de modelo é opcional.
Métodos de autenticação
Pode usar a extensãogoogle_ml_integration
para
especificar diferentes métodos de autenticação para aceder ao seu modelo.
A definição destes métodos é opcional e só é necessária se precisar de autenticar para aceder ao seu modelo.
Para os modelos do Vertex AI, a conta de serviço do Cloud SQL é usada para autenticação. Para outros modelos, a chave da API ou o token de autorização que está armazenado como um segredo no Secret Manager pode ser usado com a função SQL google_ml.create_sm_secret()
.
A tabela seguinte mostra os métodos de autenticação que pode definir:
Método de autenticação | Definir na função como… | Fornecedor do modelo |
---|---|---|
Agente de serviço do Cloud SQL | cloudsql_service_agent_iam |
Fornecedor da Vertex AI |
Secret Manager | secret_manager |
Modelos alojados fora do Vertex AI |
Funções de previsão
A extensão google_ml_integration
inclui as seguintes funções de previsão:
google_ml.embedding()
- Chama um ponto final do modelo de incorporação de texto registado para
gerar incorporações. Inclui suporte integrado para o modelo
textembedding-gecko
do Vertex AI. - Para modelos de incorporação de texto sem suporte integrado, os parâmetros de entrada e saída são exclusivos de um modelo e têm de ser transformados para que a função chame o modelo. Crie uma função de entrada de transformação para transformar a entrada da função de previsão na entrada específica do modelo e uma função de saída de transformação para transformar a saída específica do modelo na saída da função de previsão.
google_ml.predict_row()
- Chama um ponto final de modelo genérico registado, se o ponto final suportar APIs baseadas em JSON para invocar previsões.
Funções de transformação
As funções de transformação modificam a entrada para um formato que o modelo compreende e convertem a resposta do modelo no formato que a função de previsão espera. As funções de transformação são usadas quando regista o ponto final do modelo text-embedding
sem suporte incorporado. A assinatura das funções de transformação depende da função de previsão para o tipo de modelo.
Não pode usar funções de transformação quando regista um ponto final do modelo generic
.
Seguem-se as assinaturas da função de previsão para modelos de incorporação de texto:
// 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[];
Para mais informações sobre como criar funções de transformação, consulte o exemplo de funções de transformação.
Função de geração de cabeçalho HTTP
A função de geração de cabeçalhos HTTP gera o resultado em pares de valores-chave JSON que são usados como cabeçalhos HTTP. A assinatura da função de previsão define as assinaturas da função de geração de cabeçalhos.
O exemplo seguinte mostra a assinatura da função de previsão google_ml.embedding()
:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
Para a função de previsão google_ml.predict_row()
, a assinatura é a seguinte:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
Para mais informações sobre como criar uma função de geração de cabeçalhos, consulte o exemplo de função de geração de cabeçalhos.
Limitações
- Para usar modelos de IA com a sua instância do Cloud SQL, a versão de manutenção da instância tem de ser
R20240910.01_02
ou posterior. Para atualizar a sua instância para esta versão, consulte o artigo Realize a manutenção self-service.
O que se segue?
- Configure a autenticação para fornecedores de modelos.
- Registe um ponto final do modelo com a gestão de pontos finais do modelo.
- Saiba mais acerca da referência de gestão de pontos finais de modelos.