Choisir un type de tâche d'embedding

Les modèles d'embeddings Vertex AI peuvent générer des embeddings optimisés pour différents types de tâches, tels que la récupération de documents, la formulation de questions et la réponse à des questions, ainsi que la vérification des faits. Les types de tâches sont des libellés qui optimisent les embeddings générés par le modèle en fonction de votre cas d'utilisation. Ce document explique comment choisir le type de tâche optimal pour vos embeddings.

Modèles compatibles

Les types de tâches sont compatibles avec les modèles suivants :

  • textembedding-gecko@003
  • text-embedding-004
  • text-multilingual-embedding-002

Avantages des types de tâches

Les types de tâches peuvent améliorer la qualité des embeddings générés par un modèle d'embeddings.

Les questions et leurs réponses ne sont pas sémantiquement similaires
Figure 1. Les questions et leurs réponses ne sont pas sémantiquement similaires. Par conséquent, les embeddings ne montrent pas automatiquement leur relation.

Par exemple, lors de la création de systèmes de génération augmentée par récupération (RAG), il est courant d'utiliser des embeddings textuels et la recherche vectorielle pour effectuer une recherche de similarité. Dans certains cas, cela peut entraîner une dégradation de la qualité de la recherche, car les questions et leurs réponses ne sont pas sémantiquement similaires. Par exemple, une question comme "Pourquoi le ciel est-il bleu ?" et sa réponse "La diffusion de la lumière du soleil provoque la couleur bleue" ont des significations distinctes en tant qu'énoncés. Cela signifie qu'un système RAG ne reconnaîtra pas automatiquement leur relation, comme illustré dans la figure 1. Sans types de tâches, un développeur RAG doit entraîner son modèle pour apprendre la relation entre les requêtes et les réponses, ce qui nécessite des compétences et une expérience avancées en science des données, ou l'utilisation de la détection de requêtes basée sur un LLM ou HyDE, qui peut entraîner une latence et des coûts élevés.

Le type de tâche rapproche les questions et les réponses dans l'espace d'embeddings
Figure 2. Les types de tâches optimisent les embeddings pour des tâches spécifiques. Dans ce cas, les questions et les réponses sont rapprochées dans l'espace d'embeddings.

Les types de tâches vous permettent de générer des embeddings optimisés pour des tâches spécifiques, ce qui vous fait gagner du temps et évite les coûts nécessaires pour développer vos propres embeddings spécifiques à des tâches. L'embedding généré pour la requête "Pourquoi le ciel est-il bleu ?" et sa réponse "La couleur bleue est due à la diffusion de la lumière du soleil" se trouverait dans l'espace d'embedding partagé qui représente la relation entre eux, comme illustré dans la figure 2. Dans cet exemple de RAG, les embeddings optimisés permettent d'améliorer les recherches de similarité.

En plus du cas d'utilisation de la requête et de la réponse, les types de tâches fournissent également un espace d'embeddings optimisé pour des tâches telles que la classification, le clustering et la vérification des faits.

Types de tâches compatibles

Les modèles d'embeddings qui utilisent des types de tâches sont compatibles avec les types de tâches suivants :

Type de tâche Description
SEMANTIC_SIMILARITY Permet de générer des embeddings optimisés pour évaluer la similitude de texte.
CLASSIFICATION Permet de générer des embeddings optimisés pour classer des textes en fonction d'étiquettes prédéfinies.
CLUSTERING Permet de générer des embeddings optimisés pour regrouper des textes en fonction de leurs similitudes.
RETRIEVAL_DOCUMENT, RETRIEVAL_QUERY, QUESTION_ANSWERING et FACT_VERIFICATION Permet de générer des embeddings optimisés pour la recherche de documents ou la récupération d'informations.

Le type de tâche le plus adapté à votre tâche d'embedding dépend du cas d'utilisation de vos embeddings. Avant de sélectionner un type de tâche, déterminez votre cas d'utilisation des embeddings.

Déterminer votre cas d'utilisation des embeddings

Les cas d'utilisation des embeddings appartiennent généralement à l'une des quatre catégories suivantes : évaluer la similitude des textes, classer les textes, regrouper les textes ou récupérer des informations à partir de textes. Si votre cas d'utilisation ne correspond à aucune des catégories précédentes, utilisez le type de tâche RETRIEVAL_QUERY par défaut.

Évaluer la similitude du texte

Si vous souhaitez utiliser des embeddings pour évaluer la similitude de texte, utilisez le type de tâche SEMANTIC_SIMILARITY. Ce type de tâche génère des embeddings optimisés pour générer des scores de similarité.

Par exemple, supposons que vous souhaitiez générer des embeddings pour comparer la similitude des textes suivants :

  • Le chat dort
  • Le félin fait la sieste

Lorsque les embeddings sont utilisés pour créer un score de similarité, ce score est élevé, car les deux textes ont presque le même sens.

Considérez les scénarios réels suivants où il serait utile d'évaluer la similitude des entrées :

  • Pour un système de recommandation, vous devez identifier les éléments (produits, articles, films, etc.) qui sont sémantiquement similaires aux éléments préférés d'un utilisateur, en fournissant des recommandations personnalisées et en améliorant la satisfaction des utilisateurs.

Classer des textes

Si vous souhaitez utiliser des embeddings pour classer des textes en fonction de libellés prédéfinis, utilisez le type de tâche CLASSIFICATION. Ce type de tâche génère des embeddings dans un espace d'embeddings optimisé pour la classification.

Par exemple, supposons que vous souhaitiez générer des embeddings pour des posts sur les réseaux sociaux que vous pourrez ensuite utiliser pour classer leur sentiment comme positif, négatif ou neutre. Lorsque les embeddings d'un post sur les réseaux sociaux qui se lit comme suit : "Je n'aime pas voyager en avion", le sentiment est classé comme négatif.

Textes de cluster

Si vous souhaitez utiliser des embeddings pour regrouper des textes en fonction de leurs similitudes, utilisez le type de tâche CLUSTERING. Ce type de tâche génère des embeddings optimisés pour être regroupés en fonction de leurs similitudes.

Par exemple, supposons que vous souhaitiez générer des embeddings pour des articles d'actualité afin de pouvoir présenter aux utilisateurs des articles qui sont liés aux sujets qu'ils ont déjà lus. Une fois les embeddings générés et regroupés, vous pouvez suggérer d'autres articles sur le sport aux utilisateurs qui lisent beaucoup d'articles sur ce sujet.

Voici d'autres cas d'utilisation du clustering :

  • Segmentation de la clientèle : regroupez les clients dont les embeddings générés à partir de leurs profils ou de leurs activités sont similaires pour des campagnes marketing ciblées et des expériences personnalisées.
  • Segmentation des produits : le regroupement d'embeddings de produits en fonction de leur titre et de leur description, de leurs images ou des avis clients peut aider les entreprises à analyser leurs produits par segment.
  • Études de marché : le regroupement des réponses à des enquêtes auprès des consommateurs ou des données intégrées des réseaux sociaux peut révéler des tendances et des modèles cachés dans les opinions, les préférences et les comportements des consommateurs, ce qui permet d'améliorer les études de marché et d'orienter les stratégies de développement de produits.
  • Santé : le regroupement des embeddings de patients issus de données médicales peut aider à identifier des groupes présentant des conditions ou des réponses au traitement similaires, ce qui permet de proposer des plans de soins et des traitements ciblés plus personnalisés.
  • Tendances des commentaires des clients : regrouper les commentaires des clients provenant de différents canaux (enquêtes, réseaux sociaux, tickets d'assistance) peut vous aider à identifier les problèmes courants, les demandes de fonctionnalités et les domaines à améliorer.

Récupérer des informations à partir de textes

Si vous souhaitez utiliser des embeddings pour la recherche de documents ou la récupération d'informations, et pour des cas d'utilisation de questions-réponses tels que la recherche, les chatbots ou la recherche RAG, comme indiqué dans l'introduction, vous devez exécuter deux tâches d'embedding avec des types de tâches différents :

  1. Utilisez le type de tâche RETRIEVAL_DOCUMENT pour créer des embeddings optimisés pour vos documents (également appelés corpus).
  2. Utilisez l'un des types de tâches suivants pour créer des embeddings optimisés pour vos requêtes, en fonction de leur nature :
    • RETRIEVAL_QUERY : utilisez-le comme type de tâche par défaut pour les requêtes telles que "meilleurs restaurants à Vancouver", "légumes verts" ou "Quelle est la meilleure recette de cookie ?".
    • QUESTION_ANSWERING : à utiliser lorsque toutes les requêtes sont formatées en tant que questions, telles que "Pourquoi le ciel est-il bleu ?" ou "Comment nouer mes lacets ?".
    • FACT_VERIFICATION : à utiliser lorsque vous souhaitez récupérer un document de votre corpus qui confirme ou infirme une affirmation. Par exemple, la requête "les pommes poussent sous terre" peut renvoyer un article sur les pommes qui démentira finalement l'affirmation.

Prenons l'exemple suivant, dans lequel les requêtes de récupération seraient utiles :

  • Pour une plate-forme d'e-commerce, vous pouvez utiliser des embeddings pour permettre aux utilisateurs de rechercher des produits à l'aide de requêtes textuelles et d'images, ce qui offre une expérience d'achat plus intuitive et engageante.
  • Pour une plate-forme éducative, vous souhaitez créer un système de questions-réponses capable de répondre aux questions des élèves en fonction du contenu des manuels ou des ressources éducatives, en offrant des expériences d'apprentissage personnalisées et en aidant les élèves à comprendre des concepts complexes.

Étape suivante