テキスト エンベディング モデルを選択する
このドキュメントでは、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
関数を使用してエンベディングを生成します。- マシンタイプ:
NNLM モデルと SWIVEL モデルを実装するインポート済みの TensorFlow モデル。これらのモデルは、
ML.PREDICT
関数を使用してエンベディングを生成します。
ベンチマークでは、ML.GENERATE_EMBEDDING
クエリを処理するために、ML.GENERATE_EMBEDDING
関数を使用してテキストを埋め込むで説明されている構文を使用します。
ベンチマークでは、ML.PREDICT
クエリを処理するために、テキスト エンベディングの生成で説明されている構文を使用します。
コスト計算
ベンチマークでは、BigQuery オンデマンド コンピューティング料金(TiB あたり 6.25 USD)に基づいて BigQuery の費用が計算されます。この計算では、1 か月あたり最初の 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 行
ベンチマーク
次の表にベンチマーク データを示します。
モデル | エンベディング ディメンション | 行数 | 実行日時 | 合計スロット(ミリ秒) | 処理されたバイト数 | 使用されたサービス | 料金(USD) |
---|---|---|---|---|---|---|---|
SWIVEL | 20 | 100,000 | 5 秒 | 6,128 | 37 MB | BigQuery | 0.00022 |
100 万 | 1 分 1 秒 | 97,210 | 341 MB | 0.00203 | |||
1,000 万 | 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 | |||
1,000 万 | 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 万行のベンチマークのみを対象としています。6 時間の制限内でジョブがより多くの行を処理できるように、Vertex AI Model Garden からより多くの計算リソースを使用できます。たとえば、アクセラレータの数を増やすことができます。
2 BigQuery クエリジョブは 6 時間に制限されているため、このモデルは最大 100 万行のベンチマークのみを対象としています。6 時間の制限内でジョブが処理する行数を増やすには、割り当ての増加をリクエストしてください。この SQL スクリプトまたは Dataform パッケージを使用して、6 時間の制限を超えて推論呼び出しを反復することもできます。