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:
- Um modelo remoto
que tem como alvo o
modelo de fundação
textembedding-gecko@001
da Vertex AI. Esse modelo trabalha com a funçãoML.GENERATE_EMBEDDING
para gerar embeddings. Um modelo remoto que tem como alvo um modelo BERT implantado como endpoint da Vertex AI. O modelo BERT é configurado conforme descrito no Grupo de modelos da Vertex AI:
- Tipo de máquina:
n1-highmem-8
- Tipo de acelerador:
NVIDIA_TESLA_T4
- Contagem de aceleradores:
1
Esse modelo trabalha com a função
ML.PREDICT
para gerar embeddings.- Tipo de máquina:
Modelos importados do TensorFlow que implementam modelos NNLM e SWIVEL. Esses modelos funcionam com a função
ML.PREDICT
para gerar embeddings.
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$ |
---|---|---|---|---|---|---|---|
Visualização em giro | 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.