Choisir une fonction de traitement du langage naturel
Ce document compare les fonctions de traitement du langage naturel disponibles dans BigQuery ML, à savoir ML.GENERATE_TEXT
, ML.TRANSLATE
et ML.UNDERSTAND_TEXT
.
ML.GENERATE_TEXT
peut également effectuer des tâches que les deux autres fonctions peuvent réaliser, comme illustré dans l'image suivante :
Vous pouvez utiliser les informations de ce document pour vous aider à choisir la fonction à utiliser lorsque les fonctions se chevauchent.
De manière générale, la différence entre ces fonctions est la suivante :
ML.GENERATE_TEXT
est un bon choix pour effectuer des tâches de traitement du langage naturel (TLN) personnalisées à moindre coût. Cette fonction offre une plus grande compatibilité avec les langages, un débit plus rapide et une fonctionnalité de réglage de modèles. Elle fonctionne également avec les modèles multimodaux.ML.TRANSLATE
est un bon choix pour effectuer des tâches de TLN spécifiques à la traduction lorsque vous devez gérer un taux élevé de requêtes par minute.ML.UNDERSTAND_TEXT
est un bon choix pour effectuer des tâches TLN compatibles avec l'API Cloud Natural Language.
Modèles compatibles
Les modèles compatibles sont les suivants :
ML.GENERATE_TEXT
: vous pouvez utiliser un sous-ensemble du modèle Vertex AI Gemini ou PaLM pour générer du texte. Pour en savoir plus sur les modèles compatibles, consultez la page SyntaxeML.GENERATE_TEXT
.ML.TRANSLATE
: vous utilisez le modèle par défaut de l'API Cloud Translation.ML.UNDERSTAND_TEXT
: vous utilisez le modèle par défaut de l'API Cloud Natural Language.
Tâches disponibles
Les tâches suivantes sont acceptées :
ML.GENERATE_TEXT
: vous pouvez effectuer n'importe quelle tâche TLN. La tâche effectuée par le modèle dépend de l'invite que vous spécifiez. Par exemple, pour effectuer une tâche de système de questions-réponses, vous pouvez fournir une requête semblable à celle-ci :CONCAT("What are the key concepts in the following article?: ", article_text)
. Vous pouvez également fournir du contexte dans le cadre de la requête. Exemple :CONCAT("context: Only output 'yes' or 'no' to the following question: ", question)
.ML.TRANSLATE
: vous pouvez effectuer les tâches suivantes :ML.UNDERSTAND_TEXT
: vous pouvez effectuer les tâches suivantes :
Contexte des données
Lorsque vous choisissez la fonction à utiliser, déterminez si vos données peuvent être analysées de manière isolée ou si elles nécessitent davantage de contexte pour appuyer l'analyse.
Si vos données nécessitent davantage de contexte, il est préférable d'utiliser ML.GENERATE_TEXT
avec un modèle Vertex AI, car ces modèles vous permettent de fournir du contexte dans le cadre de la requête que vous envoyez. N'oubliez pas que le contexte supplémentaire lors de l'entrée augmente le nombre de jetons et le coût.
Si vos données peuvent être analysées sans qu'aucun autre contexte ne soit pris en compte par le modèle (par exemple, traduire une chaîne de texte sans savoir pourquoi elle a été écrite), l'utilisation de ML.TRANSLATE
ou ML.UNDERSTAND_TEXT
peut s'avérer être un meilleur choix, à condition que la tâche que vous souhaitez effectuer soit compatible.
Structure de sortie
ML.GENERATE_TEXT
renvoie systématiquement les résultats dans la colonne de sortie ml_generate_text_llm_result
. Vous pouvez également utiliser votre requête pour définir votre structure de sortie. Par exemple, vous pouvez demander au modèle de renvoyer votre résultat au format JSON avec des champs parents et enfants personnalisés, et fournir un exemple de production de ce résultat.
ML.TRANSLATE
et ML.UNDERSTAND_TEXT
produisent le même résultat pour un type de tâche donné et pour chaque appel réussi à l'API. De plus, le résultat de ces fonctions inclut des métadonnées supplémentaires sur leurs résultats. Par exemple, la sortie ML.TRANSLATE
inclut des informations sur la langue d'entrée, et la sortie ML.UNDERSTAND_TEXT
inclut des informations sur l'ampleur du sentiment pour les tâches d'analyse des sentiments. La génération de ces métadonnées est possible avec les modèles Vertex AI, mais cela nécessite un prompt engineering important et n'est pas susceptible de fournir la même précision.
Tarifs
Les tarifs sont les suivants :
ML.GENERATE_TEXT
: 0,00025 $ par tranche de 1 000 caractères pour les modèles Palm2 et 0,000375 $ par tranche de 1 000 caractères pour les modèles Gemini 1.0 Le réglage supervisé des modèles compatibles est facturé en dollars par heure-nœud, selon les tarifs de l'entraînement personnalisé Vertex AI. Pour en savoir plus, consultez les tarifs de Vertex AI.ML.TRANSLATE
: 0,02 $ pour 1 000 caractères. Pour plus d'informations, consultez la section Tarifs de l'API Cloud Translation.ML.UNDERSTAND_TEXT
: à partir de 0,001 $ pour 1 000 caractères, en fonction du type de tâche et de votre utilisation. Pour plus d'informations, consultez les tarifs de l'API Cloud Natural Language.
Entraînement du modèle
Les fonctionnalités d'entraînement personnalisé sont les suivantes :
ML.GENERATE_TEXT
: le réglage supervisé est compatible avec certains modèles.ML.TRANSLATE
: l'entraînement personnalisé n'est pas compatible.ML.UNDERSTAND_TEXT
: l'entraînement personnalisé n'est pas compatible.
La multimodalité
La compatibilité de la multimodalité est la suivante :
ML.GENERATE_TEXT
: accepte la saisie de texte et de texte et d'images.ML.TRANSLATE
: accepte la saisie de texte.ML.UNDERSTAND_TEXT
: accepte la saisie de texte.
Limite de requêtes par minute (RPM)
Les limites de RPM sont les suivantes :
ML.GENERATE_TEXT
: valeur comprise entre 100 et 1 600 RPM dans la région par défautus-central1
, selon le modèle utilisé.ML.TRANSLATE
: limite de 6 000 RPM pour la version v3.ML.UNDERSTAND_TEXT
: limite de 600 RPM
Limite de jetons
Les limites de jetons sont les suivantes :
ML.GENERATE_TEXT
: valeur comprise entre 8 192 et 24 576, suivant le modèle utilisé.ML.TRANSLATE
: aucune limite de jetons. Cependant, cette fonction a une limite de 30 000 octets.ML.UNDERSTAND_TEXT
: limite de 100 000 jetons.
Langues disponibles
Les langues compatibles sont les suivantes :
ML.GENERATE_TEXT
: compatible avec les mêmes langues que Gemini ou Embeddings, en fonction du modèle Vertex AI que vous choisissez pour le point de terminaison du modèle BigQuery ML distant. Les modèles de texte PaLM sont compatibles avec les mêmes langues que les modèles d'embeddings.ML.TRANSLATE
: accepte les langues de l'API Cloud Translation.ML.UNDERSTAND_TEXT
: accepte les langues de l'API Cloud Natural Language.
Régions concernées
La disponibilité des régions est la suivante :
ML.GENERATE_TEXT
: disponible dans toutes les régions Generative AI pour Vertex AI.ML.TRANSLATE
: disponible dans les emplacements multirégionauxEU
etUS
.ML.UNDERSTAND_TEXT
: disponible dans les emplacements multirégionauxEU
etUS
.