Visão geral da IA generativa

Este documento descreve as funções de inteligência artificial (IA) generativa com suporte no BigQuery. Essas funções aceitam entradas de linguagem natural e usam modelos pré-treinados da Vertex AI e modelos integrados do BigQuery.

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

  • Gerar conteúdo criativo.
  • Analisar, detectar sentimentos e responder a perguntas sobre texto ou dados não estruturados, como imagens.
  • Resumir 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.
  • Gerar embeddings para pesquisar textos, imagens e vídeos semelhantes.
  • Avaliar entradas para classificá-las por qualidade, semelhança ou outros critérios.

As funções de IA são agrupadas nas seguintes categorias 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 dados estruturados ou não estruturados.
      • AI.GENERATE_TEXT é uma versão com valor de tabela de AI.GENERATE que também oferece suporte a modelos de parceiros e modelos abertos.
    • 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, você poderá usar uma das funções especializadas: AI.GENERATE_BOOL, AI.GENERATE_DOUBLE ou AI.GENERATE_INT.
    • Gerar embeddings para pesquisa semântica e clustering

      • AI.EMBED: cria um embedding de dados de texto ou imagem.
      • AI.GENERATE_EMBEDDING: uma função com valor de tabela que adiciona uma coluna de texto incorporado, imagem, áudio, vídeo ou dados de documentos à tabela.
  • Funções de IA gerenciadas: Essas funções têm uma sintaxe simplificada e são otimizadas para custo e qualidade. Com o modo otimizado (visualização), essas funções são escalonadas para milhões ou bilhões de linhas.

    • Filtrar dados com condições de linguagem natural

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

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

      • AI.CLASSIFY
  • Funções específicas para tarefas: Essas funções usam APIs da IA do Google 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 delas inclui informações detalhadas sobre a chamada para o modelo, incluindo o status e a resposta completa do modelo, que podem incluir informações sobre a classificação de segurança ou citações.

Realizar 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 do Gemini da Vertex AI e retornando a resposta desse modelo. É possível usar essa função para analisar dados de texto, imagem, áudio, vídeo ou PDF. Por exemplo, você pode analisar imagens de móveis domésticos 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 AI.GENERATE_TEXT função com valor de tabela. É possível usar os seguintes tipos de modelos remotos:

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

Para alguns modelos, é possível escolher configurar o ajuste supervisionado, que permite treinar o modelo nos seus próprios dados para torná-lo mais adequado 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 é possível 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, a solicitação e a cotação de preços de um cliente a partir de uma transcrição de uma chamada telefônica.

É 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 dados de uma maneira que facilita o raciocínio e a comparação dos dados.

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

  • Usar a geração aumentada por 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 precisão factual e consistência de resposta, além de acesso a dados mais recentes do que os dados de treinamento do modelo.
  • Realizar 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 desduplicação de registros.
  • 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 simplificam tarefas rotineiras, como filtragem, classificação ou agregação. Essas funções podem analisar dados de texto, imagem, áudio, vídeo ou PDF, exceto AI.AGG, que oferece suporte apenas a dados de texto e imagem. Essas funções usam o Gemini e não exigem personalização. O BigQuery usa a engenharia de comandos e pode selecionar o modelo e os parâmetros adequados para a tarefa específica para otimizar 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 de IA gerenciadas 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, é possível filtrar descrições de produtos por aquelas que descrevem um item que seria um bom presente.
  • AI.SCORE: avalia as entradas com base em um comando para classificar as linhas por qualidade, semelhança ou outros critérios. É possível usar essa função em uma cláusula ORDER BY para extrair os K principais itens de acordo com a pontuação. Por exemplo, é possível encontrar as 10 principais 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, é possível classificar tíquetes de suporte por se eles estão relacionados a faturamento, frete, qualidade do produto ou algo mais.
  • AI.AGG: agrega a entrada com base em instruções de linguagem natural para resumir ou analisar seus dados. Por exemplo, é possível analisar registros de sessões de aplicativos de usuários para determinar onde os clientes estão tendo dificuldades ou resumir o conteúdo de um grande conjunto de imagens.

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

Para um tutorial de notebook que mostra como usar funções de IA gerenciadas e de uso geral funções, 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 da IA do Google Cloud. 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 com suporte para modelos de geração de texto e embedding variam de acordo com o tipo e a versão do modelo usado. Veja mais informações em Locais.

Preços

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

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

Monitorar custos

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

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

    Para 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 caracteres. Se o ID do job contiver caracteres maiúsculos, mude-os para minúsculos. Como alternativa, é possível associar jobs a um rótulo personalizado para ajudar a pesquisá-los mais tarde.

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 chamadas no BigQuery, é possível ativar o registro de solicitações e respostas. Para registrar toda a solicitação e resposta enviada e recebida 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 fundação e região. Para registrar consultas executadas na região us, especifique a us-central1 região na solicitação. Para registrar consultas executadas na região eu, especifique a região europe-west4 na solicitação.

  2. Execute uma consulta usando uma função de IA que faça uma chamada para a Vertex AI usando o modelo para o qual você ativou a geração de registros na etapa anterior.

  3. Para conferir a solicitação e a resposta completas da Vertex AI, consulte a tabela de registros para linhas em que o labels.bigquery_job_id_prefix campo da full_request coluna corresponda aos primeiros 63 caracteres do ID do job. Opcionalmente, é possível usar um rótulo de consulta personalizado para ajudar a pesquisar a consulta nos registros.

    Por exemplo, é possível 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...';
    

Gerenciamento de erros

Erros no nível da linha, como RESOURCE_EXHAUSTED, podem ocorrer se uma função de IA exceder a cota ou os limites do serviço remoto. Quando ocorre um erro no nível da linha, a função retorna NULL para essa linha, o que pode resultar em resultados de consulta incompletos.

Todas as funções de IA podem encontrar esses erros. No entanto, as funções de IA gerenciadas (AI.IF, AI.CLASSIFY e AI.SCORE) oferecem suporte ao argumento max_error_ratio para ajudar você a gerenciá-las. Use esse argumento para definir um limite de falha que permita que a consulta seja bem-sucedida apesar das falhas no nível da linha.

O valor padrão de max_error_ratio é 1.0. Para diminuir a tolerância a erros, defina-o como um valor menor (por exemplo, 0.2), para que a consulta falhe em vez de ser bem-sucedida com falhas parciais. Para detalhes da sintaxe, consulte a referência documentação de AI.IF, AI.CLASSIFY, ou AI.SCORE.

Se a consulta for bem-sucedida com falhas parciais, o BigQuery retornará um aviso. Para mais informações sobre os erros de função, consulte o campo Erros de função de IA generativa na guia Informações do job dos resultados da consulta no console. Google Cloud

Se a consulta incluir uma cláusula LIMIT, o limite será aplicado depois que o modelo processar um lote de linhas. Consequentemente, a proporção de valores NULL no conjunto de resultados final pode parecer maior do que a max_error_ratio especificada.

Por exemplo, suponha que a consulta tenha uma cláusula LIMIT 10 e uma max_error_ratio de 0.2. O modelo pode processar 20 linhas antes que o limite seja aplicado. Se 3 dessas 20 linhas falharem, a taxa de erros será 0.15 (15%), que está dentro do limite de 20%. No entanto, se o subconjunto de linhas selecionado pela cláusula LIMIT incluir todas as 3 linhas com falha, a saída visível vai conter 30% de valores NULL.

A seguir