Visão geral da IA generativa

Neste documento, descrevemos as funções de inteligência artificial (IA) generativa compatíveis com o BigQuery. Essas funções aceitam entradas de linguagem natural e usam modelos da Vertex AI e modelos integrados do BigQuery pré-treinados.

Visão geral

O BigQuery oferece várias funções de IA para ajudar em tarefas como:

  • Gerar conteúdo criativo.
  • Analisar, detectar sentimentos e responder a perguntas sobre texto ou dados não estruturados, como imagens.
  • Resuma as principais ideias ou impressões transmitidas pelo conteúdo.
  • Extrair dados estruturados de texto.
  • Classificar texto ou dados não estruturados em categorias definidas pelo usuário.
  • Gere embeddings para pesquisar textos, imagens e vídeos semelhantes.
  • Classifique as entradas para classificá-las por qualidade, semelhança ou outros critérios.

As seguintes categorias de funções de IA para ajudar você a realizar essas tarefas:

  • Funções de IA de uso geral:essas funções oferecem controle total e transparência na escolha do modelo, do comando e dos parâmetros a serem usados.

    • Realizar inferência de LLM, como responder a perguntas sobre seus dados

      • AI.GENERATE é a função de inferência mais flexível, que permite analisar qualquer dado não estruturado.
      • AI.GENERATE_TEXT é uma versão com valor de tabela de AI.GENERATE que também oferece suporte a modelos de parceiros e de código aberto.
    • Gerar saída estruturada, como extrair nomes, endereços ou descrições de objetos de texto, documentos ou imagens.

      • AI.GENERATE, quando você especifica um esquema de saída.
      • AI.GENERATE_TABLE é uma versão com valor de tabela de AI.GENERATE que chama um modelo remoto e permite especificar um esquema de saída personalizado.
      • Se o esquema de saída tiver um único campo, use uma das funções especializadas: AI.GENERATE_BOOL, AI.GENERATE_DOUBLE ou AI.GENERATE_INT.
    • Gerar embeddings para pesquisa semântica e agrupamento

      • AI.EMBED: cria um embedding com base em dados de texto ou imagem.
      • AI.GENERATE_EMBEDDING: uma função com valor de tabela que adiciona uma coluna de texto, imagem, áudio, vídeo ou dados de documento incorporados à sua tabela.
  • Funções de IA gerenciadas:essas funções têm uma sintaxe simplificada e são otimizadas para custo e qualidade. O BigQuery escolhe um modelo para você.

    • Filtrar dados com condições de linguagem natural

      • AI.IF
    • Avaliar a entrada, como por qualidade ou sentimento

      • AI.SCORE
    • Classificar entradas em categorias definidas pelo usuário

      • AI.CLASSIFY
  • Funções específicas para tarefas:essas funções usam APIs de IA do Cloud para ajudar você a realizar tarefas como processamento de linguagem natural, tradução automática, processamento de documentos, transcrição de áudio e visão computacional.

Funções de IA de uso geral

As funções de IA de uso geral oferecem controle total e transparência na escolha do modelo, do comando e dos parâmetros a serem usados. A saída inclui informações detalhadas sobre a chamada ao modelo, incluindo o status e a resposta completa do modelo, que pode incluir informações sobre a classificação de segurança ou citações.

Fazer inferência de LLM

A função AI.GENERATE é uma função de inferência flexível que funciona enviando solicitações a um modelo Gemini da Vertex AI e retornando a resposta desse modelo. Você pode usar essa função para analisar dados de texto, imagem, áudio, vídeo ou PDF. Por exemplo, você pode analisar imagens de móveis para gerar texto para uma coluna design_type, de modo que o SKU dos móveis tenha uma descrição associada, como mid-century modern ou farmhouse.

É possível realizar tarefas de IA generativa usando modelos remotos no BigQuery ML para referenciar modelos implantados ou hospedados na Vertex AI com a função AI.GENERATE_TEXT com valor de tabela. É possível usar os seguintes tipos de modelos remotos:

Use os tópicos a seguir para testar a geração de texto no BigQuery ML:

Em alguns modelos, é possível configurar o ajuste supervisionado, que permite treinar o modelo com seus próprios dados para que ele se adapte melhor ao seu caso de uso. Toda inferência ocorre na Vertex AI. Os resultados são armazenados no BigQuery.

Gerar dados estruturados

A geração de dados estruturados é muito semelhante à geração de texto, exceto que você pode formatar a resposta do modelo especificando um esquema SQL. Por exemplo, é possível gerar uma tabela que contenha o nome, o número de telefone, o endereço, o pedido e a cotação de preços de um cliente com base na transcrição de uma ligação.

É possível gerar dados estruturados das seguintes maneiras:

Gerar embeddings

Um embedding é um vetor numérico de alta dimensão que representa uma determinada entidade, como um texto ou um arquivo de áudio. A geração de embeddings permite capturar a semântica dos seus dados de uma forma que facilita o raciocínio e a comparação.

Confira alguns casos de uso comuns para a geração de embeddings:

  • Usar a geração aumentada de recuperação (RAG) para aumentar as respostas do modelo às consultas do usuário referenciando dados adicionais de uma fonte confiável. A RAG oferece melhor acurácia factual e consistência de resposta, além de acesso a dados mais recentes que os dados de treinamento do modelo.
  • Realizando a pesquisa multimodal. Por exemplo, usar a entrada de texto para pesquisar imagens.
  • Realizar pesquisa semântica para encontrar itens semelhantes para recomendações, substituição e remoção de registros duplicados.
  • Como criar embeddings para usar com um modelo k-means para clustering.

Para mais informações sobre como gerar embeddings e usá-los para realizar essas tarefas, consulte a Introdução a embeddings e pesquisa vetorial.

Funções de IA gerenciadas

As funções de IA gerenciadas são criadas para automatizar tarefas rotineiras, como classificação, ordenação ou filtragem. Essas funções usam o Gemini e não exigem personalização. O BigQuery usa a engenharia de comando e seleciona o modelo e os parâmetros adequados para a tarefa específica, otimizando a qualidade e a consistência dos resultados. Cada função retorna um valor escalar, como BOOL, FLOAT64 ou STRING, e não inclui informações de status adicionais do modelo. As seguintes funções gerenciadas de IA estão disponíveis:

  • AI.IF: filtra texto ou dados multimodais, como em uma cláusula WHERE ou JOIN, com base em um comando. Por exemplo, você pode filtrar as descrições de produtos por aquelas que descrevem um item que seria um bom presente.
  • AI.SCORE: Avalie as entradas com base em um comando para classificar as linhas por qualidade, similaridade ou outros critérios. É possível usar essa função em uma cláusula ORDER BY para extrair os K itens principais de acordo com a pontuação. Por exemplo, você pode encontrar as 10 avaliações de usuários mais positivas ou negativas de um produto.
  • AI.CLASSIFY: classifica o texto em categorias definidas pelo usuário. É possível usar essa função em uma cláusula GROUP BY para agrupar entradas de acordo com as categorias definidas. Por exemplo, você pode classificar os tíquetes de suporte de acordo com o assunto: faturamento, frete, qualidade do produto ou outro.

Para um tutorial com exemplos de como usar essas funções, consulte Realizar análise semântica com funções gerenciadas de IA.

Para um tutorial em notebook que mostra como usar funções de IA gerenciadas e de uso geral, consulte Análise semântica com funções de IA.

Funções específicas para tarefas

Além das funções mais gerais descritas nas seções anteriores, é possível desenvolver soluções específicas para tarefas no BigQuery ML usando APIs do Cloud AI. Veja a seguir algumas das tarefas disponíveis:

Para mais informações, consulte Visão geral das soluções específicas para tarefas.

Locais

Os locais aceitos para modelos de geração e embedding de texto variam de acordo com o tipo e a versão do modelo que você usa. Para mais informações, consulte Locais.

Preços

Você recebe cobranças pelos recursos de computação usados para executar consultas em modelos. Os modelos remotos fazem chamadas para modelos da Vertex AI. Portanto, as consultas feitas a eles também geram cobranças da Vertex AI.

Para mais informações, consulte os preços do BigQuery ML.

Monitorar custos

As funções de IA generativa no BigQuery enviam solicitações para a Vertex AI, o que pode gerar custos. Para acompanhar os custos da Vertex AI gerados por um job executado no BigQuery, siga estas etapas:

  1. Acesse seus relatórios de faturamento no Cloud Billing.
  2. Use filtros para refinar os resultados.

    Em "Serviços", selecione Vertex AI.

  3. Para conferir as cobranças de um job específico, filtre por rótulo.

    Defina a chave como bigquery_job_id_prefix e o valor como o ID do job. Se o ID do job tiver mais de 63 caracteres, use apenas os primeiros 63. Se o ID do seu job tiver caracteres maiúsculos, mude para minúsculos. Outra opção é associar trabalhos a um rótulo personalizado para facilitar a pesquisa depois.

Pode levar até 24 horas para que algumas cobranças apareçam no Cloud Billing.

Monitoramento

Para entender melhor o comportamento das funções de IA que você chama no BigQuery, ative o registro de solicitações e respostas. Para registrar toda a solicitação e resposta enviadas e recebidas da Vertex AI, siga estas etapas:

  1. Ative os registros de solicitação/resposta na Vertex AI. Os registros são armazenados no BigQuery. É necessário ativar a geração de registros separadamente para cada modelo de base e região. Para registrar consultas executadas na região us, especifique a região us-central1 na sua solicitação. Para registrar consultas executadas na região eu, especifique a região europe-west4 na sua solicitação.

  2. Execute uma consulta usando uma função de IA que faz uma chamada para a Vertex AI usando o modelo para o qual você ativou o registro em etapa anterior.

  3. Para conferir a solicitação e a resposta completas da Vertex AI, consulte sua tabela de registros em busca de linhas em que o campo labels.bigquery_job_id_prefix da coluna full_request corresponda aos primeiros 63 caracteres do seu ID do job. Se quiser, use um rótulo de consulta personalizado para ajudar a pesquisar a consulta nos registros.

    Por exemplo, você pode usar uma consulta semelhante a esta:

    SELECT *
    FROM `my_project.my_dataset.request_response_logging`
    WHERE JSON_VALUE(full_request, '$.labels.bigquery_job_id_prefix') = 'bquxjob_123456...';
    

A seguir