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 :

Schéma illustrant les workflows courants pour les modèles distants qui utilisent des modèles Vertex AI ou des services Cloud AI.

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 :

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.

Tarification

Les tarifs sont les suivants :

Réglage supervisé

La compatibilité du réglage supervisé est la suivante:

  • ML.GENERATE_TEXT : le réglage supervisé est compatible avec certains modèles.
  • ML.TRANSLATE: le réglage supervisé n'est pas compatible.
  • ML.UNDERSTAND_TEXT: le réglage supervisé 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 :

Limite de jetons

Les limites de jetons sont les suivantes :

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égionaux EU et US.
  • ML.UNDERSTAND_TEXT : disponible dans les emplacements multirégionaux EU et US.