Nesta página, descrevemos um pré-lançamento que permite testar o registro de um endpoint de modelo de IA e invocar previsões com o gerenciamento de endpoints de modelo no AlloyDB Omni. Para usar modelos de IA em ambientes de produção, consulte Criar aplicativos de IA generativa usando a IA do AlloyDB e Trabalhar com embeddings de vetores.
Para registrar endpoints de modelos remotos com o AlloyDB, consulte Registrar e chamar modelos de IA remotos no AlloyDB.
Visão geral
Com o pré-lançamento do gerenciamento de endpoints de modelo, é possível registrar um endpoint de modelo, gerenciar metadados de endpoints de modelo no
cluster de banco de dados e interagir com os modelos usando consultas SQL. Ele fornece a extensão google_ml_integration
, que
inclui funções para adicionar e registrar os metadados do endpoint de modelo relacionados aos modelos e, em seguida, usar os
modelos para gerar embeddings de vetores ou invocar previsões.
Confira alguns exemplos de tipos de modelos que podem ser registrados usando o gerenciamento de endpoints de modelo:
- Modelos de embedding de texto da Vertex AI
- Modelos de embedding fornecidos por terceiros, como Anthropic, Hugging Face ou OpenAI.
- Modelos de embedding de texto hospedados de maneira personalizada
- Modelos genéricos com uma API baseada em JSON, por exemplo, o modelo
facebook/bart-large-mnli
hospedado no Hugging Face ou o modelogemini-pro
do Model Garden da Vertex AI
Como funciona
É possível usar o gerenciamento de endpoints de modelo para registrar um endpoint que esteja em conformidade com o seguinte:
- A entrada e a saída do modelo são compatíveis com o formato JSON.
- O modelo pode ser chamado usando o protocolo REST.
Ao registrar um endpoint de modelo com o gerenciamento de endpoints de modelo, cada endpoint é registrado com um ID de modelo exclusivo que você forneceu como referência ao modelo. Use esse ID para consultar modelos:
Gere embeddings para traduzir comandos de texto em vetores numéricos. É possível armazenar embeddings gerados como dados vetoriais quando a extensão
pgvector
está ativada no banco de dados.Invoque previsões para chamar um modelo usando SQL em uma transação.
Seus aplicativos podem acessar o gerenciamento de endpoints de modelo usando a extensão
google_ml_integration
. Essa extensão oferece as seguintes funções:
- A função SQL
google_ml.create_model()
, usada para registrar o endpoint do modelo usado na função de previsão ou embedding. - A função SQL
google_ml.create_sm_secret()
, que usa secrets no Google Cloud Secret Manager, no qual as chaves de API são armazenadas. - A função SQL
google_ml.embedding()
, que é uma função de previsão que gera embeddings de texto. - A função SQL
google_ml.predict_row()
que gera previsões quando você chama modelos genéricos que são compatíveis com o formato de entrada e saída JSON. - Outras funções auxiliares que processam a geração de URLs personalizados, cabeçalhos HTTP ou a transmissão de funções de transformação para seus modelos genéricos.
- Funções para gerenciar os endpoints e segredos do modelo registrado.
Principais conceitos
Antes de começar a usar o gerenciamento de endpoints de modelo, entenda os conceitos necessários para se conectar e usar os modelos.
Provedor de modelos {: #model-provider}̦
O provedor de modelos indica os provedores de hospedagem de modelo compatíveis. A tabela a seguir mostra o valor do provedor de modelo que você precisa definir com base no provedor usado:
Provedor de modelos | Definido na função como… |
---|---|
Vertex AI | google |
Modelos do Hugging Face | custom |
Modelos da Anthropic | custom |
Outros modelos | custom |
OpenAI | open_ai |
O provedor de modelo padrão é custom
.
O método de autenticação compatível varia de acordo com o tipo de provedor. Os modelos da Vertex AI usam a conta de serviço do AlloyDB para autenticação, enquanto outros provedores podem usar o Secret Manager para autenticar.
Tipo de modelo
O tipo de modelo indica o tipo de modelo de IA. A extensão é compatível com embeddings de texto e
qualquer tipo de modelo genérico. Os tipos de modelo compatíveis que podem ser definidos ao
registrar um endpoint de modelo são text-embedding
e generic
. Definir o tipo de modelo é
opcional ao registrar endpoints de modelo genéricos, já que generic
é o tipo de modelo padrão.
- Modelos de embedding de texto com suporte integrado
- O
gerenciamento de endpoints de modelo oferece suporte integrado a todas as versões do modelo
textembedding-gecko
da Vertex AI e do modelotext-embedding-ada-002
da OpenAI. Para registrar esses endpoints de modelo, use a funçãogoogle_ml.create_model()
. O AlloyDB configura automaticamente funções de transformação padrão para esses modelos. - O tipo de modelo para esses modelos é
text-embedding
. - Outros modelos de embedding de texto
- Para outros modelos de embedding de texto, você precisa criar funções de transformação para processar os formatos de entrada e saída compatíveis com o modelo. Se quiser, use a função de geração de cabeçalho HTTP que cria cabeçalhos personalizados exigidos pelo seu modelo.
- O tipo de modelo para esses modelos é
text-embedding
. - Modelos genéricos
- O gerenciamento de endpoints de modelo também permite
registrar todos os outros tipos de modelo, exceto os de embeddings de texto. Para
invocar previsões para modelos genéricos, use a
função
google_ml.predict_row()
. É possível definir metadados do endpoint de modelo, como um endpoint de solicitação e cabeçalhos HTTP específicos do seu modelo. - Não é possível transmitir funções de transformação ao registrar um endpoint de modelo genérico. Verifique se, ao invocar previsões, a entrada da função está no formato JSON e analise a saída JSON para derivar a saída final.
- O tipo de modelo para esses modelos é
generic
.
Autenticação
Os tipos de autenticação indicam o tipo de autenticação que você pode usar para se conectar ao
gerenciamento de endpoints de modelo usando a extensão google_ml_integration
. A configuração
da autenticação é opcional e só é necessária se você precisar se autenticar para acessar o modelo.
Para modelos da Vertex AI, a conta de serviço do AlloyDB é usada para autenticação. Para outros modelos, a
chave de API ou o token do portador armazenado como um secret no
Secret Manager pode ser usado com a função
SQL google_ml.create_sm_secret()
.
A seguinte tabela mostra os tipos de autenticação que podem ser definidos:
Método de autenticação | Definido na função como… | Provedor de modelos |
---|---|---|
Agente de serviço do AlloyDB | alloydb_service_agent_iam |
Provedor da Vertex AI |
Secret Manager | secret_manager |
provedores terceirizados, como Anthropic, Hugging Face ou OpenAI |
Funções de previsão
A extensão google_ml_integration
inclui as seguintes funções de previsão:
google_ml.embedding()
- Usado para chamar um endpoint de modelo de embedding de texto registrado e
gerar embeddings. Ele inclui suporte integrado para o modelo
textembedding-gecko
da Vertex AI e o modelotext-embedding-ada-002
da OpenAI. - Para modelos de embedding de texto sem suporte integrado, os parâmetros de entrada e saída são exclusivos de um modelo e precisam 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()
- Usado para chamar um endpoint de modelo genérico registrado, desde que ele seja compatível com a API baseada 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 entende e
convertem a resposta do modelo para o formato esperado pela função de previsão. As
funções de transformação são usadas ao registrar o endpoint de modelo text-embedding
sem suporte
integrado. A assinatura das funções de transformação depende da
função de previsão para o tipo de modelo.
Não é possível usar funções de transformação ao registrar um endpoint de modelo generic
.
Confira as assinaturas da função de previsão para modelos de embedding 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 Exemplo de funções de transformação.
Função de geração de cabeçalho HTTP
A função de geração de cabeçalho HTTP gera a saída em pares de chave-valor JSON usados como cabeçalhos HTTP. A assinatura da função de previsão define as assinaturas da função de geração de cabeçalho.
O exemplo a seguir 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çalho, consulte Função de geração de cabeçalho HTTP.
A seguir
- Registrar um endpoint de modelo com o gerenciamento de endpoints de modelo.
- Aprenda mais sobre a referência de gerenciamento de endpoints de modelo.