Escolher um modelo de embedding de texto

Este documento fornece um comparativo de mercado do desempenho e do custo dos modelos de incorporação de texto disponíveis no BigQuery ML. Use essas informações para decidir qual é o melhor modelo para seu caso de uso.

Modelos

Os seguintes tipos de modelos são abordados neste comparativo de mercado:

O comparativo usa a sintaxe descrita em Incorporar texto usando a função ML.GENERATE_EMBEDDING para processar a consulta ML.GENERATE_EMBEDDING.

O comparativo usa a sintaxe descrita em Gerar embeddings de texto para processar as consultas ML.PREDICT.

Cálculo dos custos

O comparativo de mercado calcula os custos do BigQuery com base nos preços de computação sob demanda do BigQuery (US$ 6,25 por TiB). O cálculo não considera o fato de que o primeiro 1 TiB de processamento de computação usado por mês é gratuito.

Os custos da Vertex AI associados à chamada do modelo BERT são calculados usando a taxa de previsão n1-highmem-8.

Os custos da Vertex AI associados à chamada do modelo textembedding-gecko são calculados usando a taxa de previsão Embeddings for Text.

Consulte Preços do BigQuery ML para mais informações sobre esse assunto.

Dados de comparação

O comparativo usa o conjunto de dados público bigquery-public-data.hacker_news.full, preparado da seguinte maneira:

  • Copiou os dados em uma tabela de teste, duplicando cada linha 100 vezes:

    CREATE OR REPLACE TABLE `mydataset.hacker_news.large` AS
      SELECT base.*
      FROM `bigquery-public-data.hacker_news.full` AS base,
      UNNEST(GENERATE_ARRAY(1, 100)) AS repeat_number;
  • Criou outras tabelas de teste de tamanhos diferentes para usar no comparativo de mercado, com base na tabela hacker_news.large. Foram usadas tabelas de teste dos seguintes tamanhos:

    • 100.000 linhas
    • 1.000.000 linhas
    • 10.000.000 linhas
    • 100.000.000 linhas
    • 1.000.000.000 linhas
    • 10.000.000.000 linhas

Comparativo de mercado

A tabela a seguir contém os dados do comparativo de mercado:

Modelo Dimensões de embedding Número de linhas Horário da execução Total de milissegundos de slot Bytes processados Serviço usado Custo em US$
SWIVEL 20 100.000 5 segundos 6,128 37 MB BigQuery 0.00022
1 milhão 1 minuto, 1 segundo 97,210 341 MB 0.00203
10 milhões 28 segundos 1.203.838 3,21 GB 0.01959
100 milhões 32 segundos 11.755.909 31,9 GB 0.19470
1 bilhão 2 minutos e 3 segundos 135.754.696 312,35 GB 1.90643
10 bilhões 19 minutos e 55 segundos 1,257,462,851 3,12 TB 19,5
NNLM 50 100.000 18 segundos 66,112 227 MB BigQuery 0.00135
1 milhão 1 minuto, 1 segundo 666,875 531 MB 0.00316
10 milhões 19 segundos 4,140,396 3,39 GB 0.02069
100 milhões 27 segundos 14,971,248 32,08 GB 0.19580
1 bilhão 8 minutos e 16 segundos 288,221,149 312,54 GB 1.90759
10 bilhões 19 minutos e 28 segundos 1,655,252,687 3,12 TB 19,5
BERT1 768 100.000 29 minutos e 37 segundos 2,731,868 38 MB BigQuery 0.00022
Vertex AI 8.11
1 milhão 5 horas e 10 segundos 28,905,706 339 MB BigQuery 0.00196
Vertex AI 9.98
LLM textembedding-gecko@001 da Vertex AI2 768 100.000 14 minutos e 14 segundos 1,495,297 38 MB BigQuery 0.00022
Vertex AI 0,73
1 milhão 2 horas e 24 minutos 17,342,114 11,6 MB BigQuery 0.00196
Vertex AI 2,97

1 Os jobs de consulta do BigQuery são limitados a 6 horas. Portanto, esse modelo só é comparado para até 1 milhão de linhas. É possível usar mais recursos computacionais do Grupo de modelos da Vertex AI para permitir que o job processe mais linhas no limite de seis horas. Por exemplo, você pode aumentar o número de aceleradores.

2 Os jobs de consulta do BigQuery são limitados a 6 horas. Portanto, esse modelo só é comparado para até 1 milhão de linhas. É possível solicitar uma cota maior para permitir que o job processe mais linhas dentro do limite de seis horas. Também é possível usar esse conjunto de scripts SQL ou este pacote do Dataform para iterar chamadas de inferência além do limite de seis horas.