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

Selecione uma versão da documentação:

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 modelo gemini-pro do Vertex AI Model Garden ou os modelos claude 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 modelo textembedding-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 ou generic.
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?