选择文本嵌入模型
本文档为 BigQuery ML 中提供的文本嵌入模型的性能和费用提供了一个基准。您可以使用此信息来帮助确定哪种模型最适合您的应用场景。
模型
此基准涵盖以下类型的模型:
- 针对 Vertex AI
textembedding-gecko@001
基础模型的远程模型。此模型与ML.GENERATE_EMBEDDING
函数搭配使用来生成嵌入。 针对部署为 Vertex AI 端点的 BERT 模型的远程模型。BERT 模型的配置如 Vertex AI Model Garden 中所述:
- 机器类型:
n1-highmem-8
- 加速器类型:
NVIDIA_TESLA_T4
- 加速器数量:
1
此模型与
ML.PREDICT
函数搭配使用来生成嵌入。- 机器类型:
导入的 TensorFlow 模型,用于实现 NNLM 和 SWIVEL 模型。这些模型与
ML.PREDICT
函数搭配使用来生成嵌入。
该基准利用使用 ML.GENERATE_EMBEDDING
函数嵌入文本中所述的语法来处理 ML.GENERATE_EMBEDDING
查询。
该基准使用生成文本嵌入中描述的语法来处理 ML.PREDICT
查询。
费用计算
该基准根据 BigQuery 按需计算价格(每 TiB $6.25)计算 BigQuery 费用。计算过程中不考虑每月前 1 TiB 的免费计算处理。
与调用 BERT 模型相关的 Vertex AI 费用使用 n1-highmem-8
预测费率计算得出。
与调用 textembedding-gecko
模型相关的 Vertex AI 费用使用 Embeddings for Text
预测费率计算得出。
如需了解 BigQuery ML 价格,请参阅 BigQuery ML 价格。
基准数据
该基准使用 bigquery-public-data.hacker_news.full
公共数据集,如下所示:
将数据复制到测试表中,将每行复制 100 次:
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;
根据
hacker_news.large
表创建要在基准中使用的不同大小的其他测试表。使用了以下大小的测试表:- 100,000 行
- 1,000,000 行
- 10,000,000 行
- 100,000,000 行
- 1,000,000,000 行
- 10,000,000,000 行
基准
下表包含基准数据:
模型 | 嵌入维度 | 行数 | 运行时间 | 槽的总毫秒数 | 处理的字节数 | 使用的服务 | 费用(美元) |
---|---|---|---|---|---|---|---|
SWIVEL | 20 | 100,000 | 5 秒 | 6,128 | 37 MB | BigQuery | 0.00022 |
100 万 | 1 分 1 秒 | 97,210 | 341 MB | 0.00203 | |||
1000 万 | 28 秒 | 1,203,838 | 3.21 GB | 0.01959 | |||
1 亿 | 32 秒 | 11,755,909 | 31.9 GB | 0.19470 | |||
10 亿 | 2 分 3 秒 | 135,754,696 | 312.35 GB | 1.90643 | |||
100 亿 | 19 分 55 秒 | 1,257,462,851 | 3.12 TB | 19.5 | |||
NNLM | 50 | 100,000 | 18 秒 | 66,112 | 227 MB | BigQuery | 0.00135 |
100 万 | 1 分 1 秒 | 666,875 | 531 MB | 0.00316 | |||
1000 万 | 19 秒 | 4,140,396 | 3.39 GB | 0.02069 | |||
1 亿 | 27 秒 | 14,971,248 | 32.08 GB | 0.19580 | |||
10 亿 | 8 分 16 秒 | 288,221,149 | 312.54 GB | 1.90759 | |||
100 亿 | 19 分 28 秒 | 1,655,252,687 | 3.12 TB | 19.5 | |||
BERT1 | 768 | 100,000 | 29 分 37 秒 | 2,731,868 | 38 MB | BigQuery | 0.00022 |
Vertex AI | 8.11 | ||||||
100 万 | 5 小时 10 秒 | 28,905,706 | 339 MB | BigQuery | 0.00196 | ||
Vertex AI | 9.98 | ||||||
Vertex AI textembedding-gecko@001 LLM2 |
768 | 100,000 | 14 分 14 秒 | 1,495,297 | 38 MB | BigQuery | 0.00022 |
Vertex AI | 0.73 | ||||||
100 万 | 2 小时 24 分钟 | 17,342,114 | 339 MB | BigQuery | 0.00196 | ||
Vertex AI | 2.97 |
1 BigQuery 查询作业具有 6 小时的限制,因此该模型最多只会针对 100 万行进行基准化分析。您可以使用 Vertex AI Model Garden 中的更多计算资源,让作业在 6 小时的限制内处理更多行。例如,您可以增加加速器的数量。
2 BigQuery 查询作业具有 6 小时的限制,因此该模型最多只会针对 100 万行进行基准化分析。您可以申请增加配额,以便作业在 6 小时的限制内处理更多行。您还可以使用这组 SQL 脚本或此 Dataform 软件包遍历超出 6 小时限制的推理调用。