Registe e chame modelos de IA remotos na vista geral do AlloyDB Omni

Selecione uma versão da documentação:

Esta página descreve uma pré-visualização que lhe permite experimentar o registo de um ponto final do modelo de IA e invocar previsões com a gestão de pontos finais do modelo no AlloyDB Omni. Para usar modelos de IA em ambientes de produção, consulte os artigos Crie aplicações de IA generativa com a IA do AlloyDB e Gere incorporações.

Para registar pontos finais de modelos remotos com o AlloyDB, consulte o artigo Registe e chame modelos de IA remotos no AlloyDB.

Vista geral

A pré-visualização da 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, em seguida, interagir com os modelos através de consultas 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 e, em seguida, usar os modelos para gerar incorporações de vetores 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:

  • Modelos de incorporação de texto da Vertex AI
  • Incorporar modelos fornecidos por fornecedores externos, como a Anthropic, a Hugging Face ou a OpenAI.
  • Modelos de incorporação de texto alojados de forma personalizada
  • Modelos genéricos com uma API baseada em JSON, por exemplo, o modelo facebook/bart-large-mnli alojado no Hugging Face ou o modelo gemini-pro do Vertex AI Model Garden

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 este ID do modelo para consultar modelos:

  • 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 Crie índices e consulte vetores.

  • Invocar previsões para chamar um modelo através de SQL numa transação.

As suas aplicações podem aceder à gestão de pontos finais do modelo 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.
  • 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 para os seus modelos genéricos.
  • 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 estabelecer ligação aos modelos e usá-los.

Fornecedor do modelo

Fornecedor do modelo indica os fornecedores de alojamento de modelos suportados. 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 google
Modelos do Hugging Face custom
Modelos da Anthropic custom
Outros modelos custom
OpenAI open_ai

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 do AlloyDB para autenticar, enquanto outros fornecedores podem usar o Secret Manager para autenticar. 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 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 da Vertex AI e do modelo text-embedding-ada-002 da OpenAI. Para registar estes pontos finais do modelo, use a função google_ml.create_model(). O AlloyDB configura automaticamente 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.

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.

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. Inclui compatibilidade integrada com o modelo textembedding-gecko da Vertex AI e o modelo text-embedding-ada-002 da OpenAI.
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()
Usado para chamar um ponto final de modelo genérico registado, desde que suporte 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 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.

O que se segue?