Esta página explica os conceitos-chave que tem de conhecer antes de registar um ponto final do modelo de IA e invocar previsões com a gestão de pontos finais do modelo.
Para registar pontos finais de modelos remotos com o AlloyDB para PostgreSQL, consulte o artigo Registe e chame modelos de IA remotos no AlloyDB.
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 no seu cluster de base de dados e fazer chamadas para os pontos finais de modelos remotos através de consultas SQL. Fornece a extensão google_ml_integration
que inclui funções que lhe permitem registar os metadados relacionados com modelos de IA no AlloyDB. Estes metadados registados são usados para gerar incorporações vetoriais ou invocar previsões.
Seguem-se alguns exemplos de tipos de modelos que pode registar através da gestão de pontos finais de modelos:
- Incorporação de texto e modelos genéricos da Vertex AI
- Incorporar modelos fornecidos por fornecedores externos, como a Hugging Face ou a OpenAI
- Modelos de incorporação de texto alojados de forma personalizada, incluindo modelos autoalojados ou modelos disponíveis através de pontos finais privados
- Modelos genéricos com uma API baseada em JSON, por exemplo, o modelo
facebook/bart-large-mnli
alojado no Hugging Face, o modelogemini-pro
do Vertex AI Model Garden ou os modelosclaude
da Anthropic
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.
- O modelo pode ser invocado através do protocolo REST.
Quando regista um ponto final do modelo com a gestão de pontos finais do modelo, regista cada ponto final com um ID do modelo exclusivo que forneceu como referência ao modelo.
Pode usar o ID do ponto final do modelo para consultar modelos para:
Gerar incorporações para traduzir comandos de texto em vetores numéricos. Pode armazenar incorporações geradas como dados vetoriais quando a extensão
vector
está ativada na base de dados. Para mais informações, consulte o artigo Armazene incorporações vetoriais.Invocar previsões através de SQL.
As suas aplicações podem aceder à gestão de pontos finais de modelos através da extensão google_ml_integration
. Esta extensão oferece as seguintes funções:
- A função SQL
google_ml.create_model()
, que é usada para registar o ponto final do modelo usado na função de previsão ou incorporação. - A função SQL
google_ml.create_sm_secret()
, que usa segredos no Google CloudSecret Manager, onde as chaves de API estão armazenadas. - A função SQL
google_ml.embedding()
, que é uma função de previsão que gera incorporações de texto. O tipo de retorno da função de incorporação éREAL[]
. - A função SQL
google_ml.predict_row()
que gera previsões quando chama modelos genéricos que suportam o formato de entrada e saída JSON. - Outras funções auxiliares que processam a geração de URLs personalizados, a geração de cabeçalhos HTTP ou a transmissão de funções de transformação.
- Funções para gerir os segredos e os pontos finais do modelo registado.
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
Fornecedor do modelo indica os fornecedores de alojamento de modelos suportados. A definição do fornecedor do modelo é opcional, mas ajuda a gestão de pontos finais do modelo a identificar o fornecedor e a formatar automaticamente os cabeçalhos para modelos suportados. A tabela seguinte mostra o valor do fornecedor do modelo que pode definir com base no fornecedor do modelo que usa:
Fornecedor do modelo | Definir na função como… |
---|---|
Vertex AI | google |
Modelos do Hugging Face | hugging_face |
Modelos da Anthropic | anthropic |
OpenAI | open_ai |
Outros modelos | custom |
O fornecedor de modelos predefinido é custom
.
Com base no tipo de fornecedor, o método de autenticação suportado difere. Os modelos do Vertex AI usam a conta de serviço usada para instalar o AlloyDB Omni para autenticar, enquanto outros fornecedores podem usar o Secret Manager ou transmitir detalhes de autenticação através de cabeçalhos. Para mais informações, consulte o artigo Configure a autenticação.
Tipo de modelo
O tipo de modelo indica o tipo de modelo de IA. A extensão suporta a incorporação de texto, bem como qualquer tipo de modelo genérico. Os tipos de modelos suportados que pode definir quando
registar um ponto final do modelo são text-embedding
e generic
.
A definição do tipo de modelo é opcional quando regista pontos finais de modelos genéricos, uma vez que generic
é o tipo de modelo predefinido.
- Modelos do Vertex AI pré-registados
- A gestão de pontos finais de modelos suporta alguns modelos de incorporação de texto e modelos genéricos da Vertex AI como IDs de modelos pré-registados. Pode usar diretamente o ID do modelo para gerar incorporações ou invocar previsões, com base no tipo de modelo.
Para mais informações sobre modelos pré-registados suportados, consulte o artigo Modelos do Vertex AI pré-registados.
Por exemplo, para chamar o modelotextembedding-gecko
pré-registado, pode chamar diretamente o modelo através da função de incorporação:SELECT google_ml.embedding( model_id => 'textembedding-gecko', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
- Modelos com suporte integrado
- A gestão de pontos finais de modelos oferece suporte integrado para alguns modelos da Vertex AI, da Anthropic e da OpenAI. Para modelos de incorporação de texto com suporte incorporado, o AlloyDB configura automaticamente funções de transformação predefinidas.
- Quando registar estes pontos finais de modelos, defina o nome qualificado explicitamente. Para ver uma lista de modelos com suporte integrado, consulte o artigo Modelos com suporte integrado.
- O tipo de modelo para estes modelos pode ser
text-embedding
ougeneric
. - Outros modelos de incorporação de texto
- Para registar um ponto final do modelo de incorporação de texto sem suporte integrado, recomendamos que crie funções de transformação para processar os formatos de entrada e saída que o modelo suporta. Opcionalmente, consoante os requisitos do modelo, também pode ter de criar uma função de cabeçalho personalizada para especificar o cabeçalho.
- 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 previsões, a entrada para a 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
.
Autenticação
Os tipos de autenticação indicam o tipo de autenticação que pode usar para se ligar à gestão de pontos finais de modelos através da extensão google_ml_integration
. A definição da autenticação é opcional e só é necessária se precisar de autenticação para aceder ao seu modelo.
Para os modelos da Vertex AI, a conta de serviço do AlloyDB é usada para a autenticação. Para outros modelos,
pode usar uma chave de API ou um token de portador armazenado como segredo no
Secret Manager com a função google_ml.create_sm_secret()
SQL. Se estiver a transmitir a autenticação através de cabeçalhos, pode ignorar a definição do método de autenticação.
A tabela seguinte mostra os tipos de autorização que pode definir:
Método de autenticação | Definir na função como… | Fornecedor do modelo |
---|---|---|
Agente de serviço do AlloyDB | alloydb_service_agent_iam |
Fornecedor da Vertex AI |
Secret Manager | secret_manager |
Fornecedores terceiros, como a Anthropic, a Hugging Face ou a 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 ponto final do modelo de incorporação de texto registado para gerar incorporações.
- 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. Tem de criar 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 ponto final de modelo genérico registado, desde que o modelo suporte uma 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 compreende e convertem a resposta do modelo no formato esperado pela função de previsão. 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 entrada esperada pelo 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.
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 sobre a referência de gestão de pontos finais de modelos.