Choisir un modèle de représentation vectorielle continue de texte

Ce document fournit une analyse comparative des performances et des coûts des modèles de représentation vectorielle continue de texte disponibles dans BigQuery ML. Ces informations peuvent vous aider à choisir le modèle le mieux adapté à votre cas d'utilisation.

Modèles

Les types de modèles suivants sont couverts par cette analyse comparative :

L'analyse comparative utilise la syntaxe décrite dans la section Générer des représentations vectorielles continues de texte à l'aide de la fonction ML.GENERATE_EMBEDDING afin de traiter la requête ML.GENERATE_EMBEDDING.

L'analyse comparative utilise la syntaxe décrite dans la section Générer des représentations vectorielles continues de texte pour traiter les requêtes ML.PREDICT.

Calcul des coûts

L'analyse comparative calcule les coûts BigQuery en fonction des tarifs de calcul à la demande de BigQuery (6,25 $ par Tio). Le calcul ne tient pas compte du fait que le premier Tio de traitement de calcul utilisé chaque mois est gratuit.

Les coûts Vertex AI associés à l'appel du modèle BERT sont calculés à l'aide du taux de prédiction n1-highmem-8.

Les coûts Vertex AI associés à l'appel du modèle textembedding-gecko sont calculés à l'aide du taux de prédiction Embeddings for Text.

Pour en savoir plus sur la tarification de BigQuery ML, consultez la page Tarifs de BigQuery ML.

Données d'analyse comparative

L'analyse comparative utilise l'ensemble de données public bigquery-public-data.hacker_news.full, préparé comme suit :

  • Copie des données dans une table de test, en dupliquant chaque ligne 100 fois :

    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;
    
  • Création de tables de test supplémentaires de différentes tailles à utiliser dans l'analyse comparative, en se basant sur la table hacker_news.large. Des tables de test des tailles suivantes ont été utilisées :

    • 100 000 lignes
    • 1 000 000 de lignes
    • 10 000 000 de lignes
    • 100 000 000 de lignes
    • 1 000 000 000 de lignes
    • 10 000 000 000 de lignes

Analyse comparative

Le tableau suivant contient les données d'analyse comparative :

Modèle Dimensions de représentation vectorielle continue Nombre de lignes Durée d'exécution Nombre total de millisecondes d'emplacements Octets traités Service utilisé Coût en US$
SWIVEL 20 100 000 5 secondes 6 128 37 Mo BigQuery 0,00022
1 million 1 minute et 1 seconde 97 210 341 Mo 0,00203
10 millions 28 secondes 1 203 838 3,21 Go 0,01959
100 millions 32 secondes 11 755 909 31,9 Go 0,19470
1 milliard 2 minutes et 3 secondes 135 754 696 312,35 Go 1,90643
10 milliards 19 minutes et 55 secondes 1 257 462 851 3,12 To 19,5
NNLM 50 100 000 18 secondes 66 112 227 Mo BigQuery 0,00135
1 million 1 minute et 1 seconde 666 875 531 Mo 0,00316
10 millions 19 secondes 4 140 396 3,39 Go 0,02069
100 millions 27 secondes 14 971 248 32,08 Go 0,19580
1 milliard 8 minutes et 16 secondes 288 221 149 312,54 Go 1,90759
10 milliards 19 minutes et 28 secondes 1 655 252 687 3,12 To 19,5
BERT1 768 100 000 29 minutes et 37 secondes 2 731 868 38 Mo BigQuery 0,00022
Vertex AI 8,11
1 million 5 heures et 10 secondes 28 905 706 339 Mo BigQuery 0,00196
Vertex AI 9,98
LLM textembedding-gecko@001 Vertex AI2 768 100 000 14 minutes et 14 secondes 1 495 297 38 Mo BigQuery 0,00022
Vertex AI 0.73
1 million 2 heures et 24 minutes 17 342 114 339 Mo BigQuery 0,00196
Vertex AI 2,97

1 Les jobs de requête BigQuery sont limités à 6 heures. Ce modèle n'est donc analysé que pour un million de lignes. Vous pouvez utiliser davantage de ressources de calcul du jardin de modèles Vertex AI afin de permettre au job de traiter plus de lignes dans le délai de 6 heures. Par exemple, vous pouvez augmenter le nombre d'accélérateurs.

2 Les jobs de requête BigQuery sont limités à 6 heures. Ce modèle n'est donc analysé que pour un million de lignes. Vous pouvez demander un quota plus élevé afin de permettre au job de traiter plus de lignes dans le délai de 6 heures. Vous pouvez également utiliser cet ensemble de scripts SQL ou ce package Dataform pour effectuer une itération des appels d'inférence au-delà de la limite de 6 heures.