Texteinbettungsmodell auswählen

In diesem Dokument erhalten Sie einen Benchmark für die Leistung und Kosten der in BigQuery ML verfügbaren Texteinbettungsmodelle. Anhand dieser Informationen können Sie um Ihnen bei der Entscheidung zu helfen, welches Modell für Ihren Anwendungsfall am besten geeignet ist.

Modelle

Folgende Modelltypen werden in dieser Benchmark berücksichtigt:

Die Benchmark verwendet die unter Text mit der Funktion ML.GENERATE_EMBEDDING einbetten beschriebene Syntax zur Verarbeitung der ML.GENERATE_EMBEDDING-Abfrage.

Für die Benchmark wird die Syntax verwendet, die unter Texteinbettungen generieren zum Verarbeiten von ML.PREDICT-Abfragen beschrieben wird.

Berechnung der Kosten

In der Benchmark werden die BigQuery-Kosten basierend auf den Preisen für On-Demand-Computing von BigQuery (6,25 $ pro TiB) berechnet. Bei der Berechnung wird nicht berücksichtigt, dass das erste TiB an Rechenverarbeitungsleistung pro Monat kostenlos ist.

Die mit dem Aufruf des BERT-Modells verbundenen Vertex AI-Kosten werden mit der Vorhersageraten1-highmem-8 berechnet.

Die Vertex AI-Kosten für den Aufruf des textembedding-gecko-Modells werden anhand der VorhersagerateEmbeddings for Text berechnet.

Weitere Informationen zu den Preisen für BigQuery ML finden Sie unter BigQuery ML-Preise.

Benchmarkdaten

Für die Benchmark wird das öffentliche Dataset bigquery-public-data.hacker_news.full verwendet, das so vorbereitet wird:

  • Die Daten wurden in eine Testtabelle kopiert und jede Zeile wurde 100-mal dupliziert:

    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;
    
  • Basierend auf der Tabelle hacker_news.large wurden zusätzliche Testtabellen unterschiedlicher Größen für die Benchmark erstellt. Es wurden Tabellen mit den folgenden Größen verwendet:

    • 100.000 Zeilen
    • 1.000.000 Zeilen
    • 10.000.000 Zeilen
    • 100.000.000 Zeilen
    • 1.000.000.000 Zeilen
    • 10.000.000.000 Zeilen

Benchmark

Die folgende Tabelle enthält die Benchmarkdaten:

Modell Einbettungsdimensionen Zeilenanzahl Ausführungszeit Slot-Millisekunden insgesamt Verarbeitete Byte Verwendeter Dienst Kosten (in $)
SWIVEL 20 100.000 5 Sekunden 6.128 37 MB BigQuery 0,00022
1 Million 1 Minute, 1 Sekunde 97.210 341 MB 0,00203
10 Millionen 28 Sekunden 1.203.838 3,21 GB 0,01959
100 Millionen 32 Sekunden 11.755.909 31,9 GB 0,19470
1 Milliarde 2 Minuten und 3 Sekunden 135.754.696 312,35 GB 1,90643
10 Milliarden 19 Minuten und 55 Sekunden 1.257.462.851 3,12 TB 19,5
NNLM 50 100.000 18 Sekunden 66.112 227 MB BigQuery 0,00135
1 Million 1 Minute, 1 Sekunde 666.875 531 MB 0,00316
10 Millionen 19 Sekunden 4.140.396 3,39 GB 0,02069
100 Millionen 27 Sekunden 14.971.248 32,08 GB 0,19580
1 Milliarde 8 Minuten und 16 Sekunden 288.221.149 312,54 GB 1,90759
10 Milliarden 19 Minuten und 28 Sekunden 1.655.252.687 3,12 TB 19,5
BERT1 768 100.000 29 Minuten und 37 Sekunden 2.731.868 38 MB BigQuery 0,00022
Vertex AI 8,11
1 Million 5 Stunden, 10 Sekunden 28.905.706 339 MB BigQuery 0,00196
Vertex AI 9,98
Vertex AI textembedding-gecko@001 LLM2 768 100.000 14 Minuten und 14 Sekunden 1.495.297 38 MB BigQuery 0,00022
Vertex AI 0,73
1 Million 2 Stunden, 24 Minuten 17.342.114 339 MB BigQuery 0,00196
Vertex AI 2,97

1 BigQuery-Abfragejobs sind auf sechs Stunden begrenzt. Daher wird dieses Modell nur für bis zu einer Million Zeilen verglichen. Sie können mehr Rechenressourcen aus Vertex AI Model Garden verwenden, damit der Job innerhalb des Limits von sechs Stunden mehr Zeilen verarbeiten kann. Sie können beispielsweise die Anzahl der Beschleuniger erhöhen.

2 BigQuery-Abfragejobs sind auf sechs Stunden begrenzt. Daher wird dieses Modell nur für bis zu einer Million Zeilen verglichen. Sie können ein höheres Kontingent anfordern, damit der Job innerhalb von sechs Stunden mehr Zeilen verarbeiten kann. Sie können auch diese SQL-Skripts oder dieses Dataform-Paket verwenden, um Inferenzaufrufe über das Limit von sechs Stunden hinaus zu iterieren.