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.
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:
- Android – Exemple de code – Guide
- Python – Exemple de code – Guide
- Web – Exemple de code – Guide
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:
|
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:
|
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.
Modèle Universal Sentence Encoder (recommandé)
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 | - |