Guide sur l'intégration de texte

Deux exemples de phrases qui montrent les représentations vectorielles continues correspondantes pour chaque mot des phrases sous forme de tableau.

La tâche MediaPipe Text Embedder vous permet de créer une représentation numérique des données textuelles pour en capturer la signification sémantique. Cette fonctionnalité est fréquemment utilisée pour comparer la similarité sémantique de deux textes à l'aide de techniques de comparaison mathématique telles que la similarité cosinus. Cette tâche fonctionne sur des données textuelles avec un modèle de machine learning (ML) et génère une représentation numérique des données textuelles sous la forme d'une liste de vecteurs de caractéristiques haute dimension, également appelés vecteurs d'encapsulation, au format à virgule flottante ou quantifié.

Essayez !

Premiers pas

Pour commencer à utiliser cette tâche, suivez l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous expliquent comment implémenter de manière basique cette tâche, y compris un modèle recommandé et un exemple de code avec les options de configuration recommandées:

Détails de la tâche

Cette section décrit les fonctionnalités, les entrées, les sorties et les options de configuration de cette tâche.

Fonctionnalités

  • Traitement du texte d'entrée : compatible avec la tokenisation hors graphique pour les modèles sans tokenisation dans le graphique.
  • Calcul de la similarité d'embedding : fonction utilitaire intégrée permettant de calculer la similarité cosinus entre deux vecteurs de caractéristiques.
  • Quantification : compatible avec la quantification scalaire des vecteurs de caractéristiques.
Entrées de tâche Sorties de tâche
L'outil d'intégration de texte accepte le type de données d'entrée suivant:
  • Chaîne
L'outil d'embedding de texte génère une liste d'embeddings composée des éléments suivants:
  • Embedding: vecteur de caractéristiques lui-même, sous forme à virgule flottante ou quantifié de manière scalaire.
  • Indice de tête: indice de la tête qui a généré cet embedding.
  • Nom de la tête (facultatif): nom de la tête qui a produit cet entraînement.

Options de configuration

Cette tâche propose les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
l2_normalize Indique si le vecteur de caractéristiques renvoyé doit être normalisé avec la norme L2. N'utilisez cette option que si le modèle ne contient pas déjà une opération TFLite L2_NORMALIZATION native. Dans la plupart des cas, c'est déjà le cas, et la normalisation L2 est donc obtenue via l'inférence TFLite sans avoir besoin de cette option. Boolean False
quantize Indique si l'embedding renvoyé doit être quantifié en octets via une quantification scalaire. Les représentations vectorielles continues sont implicitement supposées avoir une norme unitaire. Par conséquent, toute dimension a une valeur comprise dans la plage [-1,0, 1,0]. Utilisez l'option l2_normalize si ce n'est pas le cas. Boolean False

Modèles

Nous proposons un modèle par défaut recommandé lorsque vous commencez à développer avec cette tâche.

Ce modèle utilise une architecture à double encodeur et a été entraîné sur divers ensembles de données de questions/réponses.

Considérons les paires de phrases suivantes:

  • ("c'est un voyage charmant et souvent touchant", "quel voyage fantastique et génial")
  • ("I like my phone", "I hate my phone")
  • ("Ce restaurant a un bon concept", "Nous devons vérifier les détails de notre plan")

Les représentations vectorielles continues de texte des deux premières paires auront une similarité cosinus plus élevée que celles de la troisième paire, car les deux premières paires de phrases partagent un thème commun, respectivement "sentiment de voyage" et "opinion sur le téléphone", tandis que la troisième paire de phrases ne partage pas de thème commun.

Notez que même si les deux phrases de la deuxième paire ont des sentiments opposés, elles ont un score de similarité élevé, car elles partagent un thème commun.

Nom du modèle Forme d'entrée Type de quantification Versions
Universal Sentence Encoder chaîne, chaîne, chaîne Aucun (float32) Nouveautés

Benchmarks des tâches

Voici les benchmarks de tâche pour l'ensemble du pipeline basés sur les modèles pré-entraînés ci-dessus. Le résultat de la latence correspond à la latence moyenne sur le Pixel 6 à l'aide du processeur / GPU.

Nom du modèle Latence du processeur Latence du GPU
Universal Sentence Encoder 18,21 ms -