Choisir un modèle d'embedding de texte
Ce document fournit une analyse comparative des performances et des coûts des modèles d'embedding 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 :
- Un modèle distant qui cible le modèle de fondation Vertex AI
textembedding-gecko@001
. Ce modèle utilise la fonctionML.GENERATE_EMBEDDING
pour générer des embeddings. Un modèle distant qui cible un modèle BERT déployé en tant que point de terminaison Vertex AI. Le modèle BERT est configuré comme décrit dans Model Garden de Vertex AI :
- Type de machine :
n1-highmem-8
- Type d'accélérateur :
NVIDIA_TESLA_T4
- Nombre d'accélérateurs :
1
Ce modèle utilise la fonction
ML.PREDICT
pour générer des embeddings.- Type de machine :
Modèles TensorFlow importés, qui mettent en œuvre les modèles NNLM et SWIVEL. Ces modèles utilisent la fonction
ML.PREDICT
pour générer des embeddings.
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 embeddings 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 d'embedding | 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 de Model Garden de 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.