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é.
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:
- 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 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:
|
L'outil d'embedding de texte génère une liste d'embeddings composée des éléments suivants:
|
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.
Modèle Universal Sentence Encoder (recommandé)
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 | - |