Visão geral da IA generativa

Este documento descreve 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 pré-treinados da Vertex AI e modelos integrados do BigQuery.

Visão geral

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 seguintes categorias de funções de IA ajudam 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 dados de texto, imagem, áudio, vídeo ou documento incorporados à tabela.
  • Funções de IA gerenciadas: Essas funções têm uma sintaxe simplificada e são otimizadas para custo e qualidade.

    • AI.IF: filtra seus dados com condições de linguagem natural.

    • AI.SCORE: avalia a entrada, como por qualidade ou sentimento.

    • AI.CLASSIFY: classifica a entrada em categorias definidas pelo usuário.

    • AI.AGG: agrega a entrada para resumir ou analisar seus dados.

  • 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 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 que ele seja 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 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 são criadas para automatizar tarefas de rotina, como classificação, ordenação, agregação ou filtragem. 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 os 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 de 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. Para mais informações, consulte 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 seus 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 o registro na etapa anterior.

  3. Para conferir a solicitação e a resposta completas da Vertex AI, consulte a tabela de registro 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...';
    

A seguir