Guide sur l'intégration de texte

La tâche d'intégration de texte MediaPipe vous permet de créer une représentation numérique des données textuelles afin de capturer leur signification sémantique. Cette fonctionnalité est fréquemment utilisée pour comparer la similarité sémantique de deux éléments de texte à l'aide de techniques de comparaison mathématiques telles que la similarité cosinus. Cette tâche s'applique aux 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 de grande dimension, également appelés vecteurs de représentation vectorielle continue, sous forme quantifiée ou à virgule flottante.

Essayer

Commencer

Commencez à utiliser cette tâche en suivant l'un de ces guides d'implémentation pour votre plate-forme cible. Ces guides spécifiques à la plate-forme vous guident tout au long d'une implémentation de base de cette tâche, y compris un modèle et un exemple de code recommandés, ainsi que les options de configuration recommandées:

Détails de la tâche

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

Caractéristiques

  • Traitement du texte d'entrée : prend en charge la tokenisation hors graphique pour les modèles sans tokenisation dans le graphique.
  • Calcul de similarité de représentation vectorielle continue : fonction utilitaire intégrée permettant de calculer la similarité cosinus entre deux vecteurs de caractéristiques.
  • Quantisation : accepte la quantification scalaire pour les vecteurs de caractéristiques.
Entrées des tâches Sorties de tâches
L'outil de représentation vectorielle continue de texte accepte les types de données d'entrée suivants:
  • Chaîne
L'outil de représentation vectorielle continue de texte génère une liste de représentations vectorielles continues composées des éléments suivants:
  • Représentation vectorielle continue: le vecteur de caractéristiques lui-même, soit sous forme à virgule flottante, soit sous forme de quantification scalaire.
  • "Head Index" : index de la tête à l'origine de cette représentation vectorielle continue.
  • Head name (Nom de la tête) (facultatif): nom de la tête qui a généré cette représentation vectorielle continue.

Options de configuration

Cette tâche comporte les options de configuration suivantes:

Nom de l'option Description Plage de valeurs Valeur par défaut
l2_normalize Indique s'il faut normaliser le vecteur de caractéristiques renvoyé avec la norme L2. N'utilisez cette option que si le modèle ne contient pas encore d'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 utiliser cette option. Boolean False
quantize Indique si la représentation vectorielle continue renvoyée doit être quantifiée en octets via une quantification scalaire. Les représentations vectorielles continues sont implicitement considérées comme de norme unitaire. Par conséquent, la valeur de toute dimension est forcément comprise dans [-1.0, 1.0]. Si ce n'est pas le cas, utilisez l'option l2_normalize. Boolean False

Modèles

Nous vous 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 plusieurs ensembles de données questions-réponses.

Considérez les paires de phrases suivantes:

  • ("C'est un voyage plein de charme", "C'est un voyage fantastique et fantastique")
  • ("J'aime mon téléphone", "Je déteste mon téléphone")
  • ("Ce restaurant a un excellent truc", "Nous devons vérifier les détails de notre plan")

Les représentations vectorielles continues de texte des deux premières paires présentent une similarité cosinus plus élevée que celles de la troisième paire, car les deux premières paires de phrases ont un sujet commun : "sentiment du trajet" et "opinion du téléphone", tandis que la troisième paire de phrases n'a pas de sujet commun.

Notez que bien que les deux phrases de la deuxième paire aient des sentiments opposés, elles ont un score de similarité élevé, car elles partagent un sujet commun.

Nom du modèle Forme de saisie Type de quantification Versions
Universal Sentence Encoder chaîne, chaîne, chaîne Aucune (float32) Les plus récents

Benchmarks de tâches

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

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