Guía para la incorporación de texto

Dos oraciones de ejemplo que muestran las incorporaciones correspondientes para cada palabra de las oraciones como un array.

La tarea de incorporación de texto de MediaPipe te permite crear una representación numérica de los datos de texto para capturar su significado semántico. Esta funcionalidad se usa con frecuencia para comparar la similitud semántica de dos textos con técnicas de comparación matemática, como la similitud coseno. Esta tarea opera en datos de texto con un modelo de aprendizaje automático (AA) y genera una representación numérica de los datos de texto como una lista de vectores de características de alta dimensión, también conocidos como vectores de incorporación, en formato de punto flotante o cuantificado.

Pruébala.

Comenzar

Para comenzar a usar esta tarea, sigue una de estas guías de implementación para tu plataforma de destino. En estas guías específicas de la plataforma, se explica una implementación básica de esta tarea, incluido un modelo recomendado y un ejemplo de código con las opciones de configuración recomendadas:

Detalles de la tarea

En esta sección, se describen las capacidades, las entradas, las salidas y las opciones de configuración de esta tarea.

Funciones

  • Procesamiento de texto de entrada: Admite la tokenización fuera del grafo para modelos sin tokenización dentro del grafo.
  • Cálculo de similitud de incorporación: Es una función de utilidad integrada para calcular la similitud de coseno entre dos vectores de características.
  • Cuantización: Admite la cuantificación escalar para los vectores de características.
Entradas de tareas Resultados de las tareas
El incorporador de texto acepta el siguiente tipo de datos de entrada:
  • String
Text Embedder genera una lista de incorporaciones que consta de lo siguiente:
  • Incorporación: el vector de características en sí, ya sea en formato de punto flotante o cuantificado por escalar.
  • Índice de encabezado: Es el índice del encabezado que produjo esta incorporación.
  • Nombre de la cabeza (opcional): Es el nombre de la cabeza que produjo esta incorporación.

Opciones de configuración

Esta tarea tiene las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
l2_normalize Indica si se debe normalizar el vector de características que se muestra con la norma L2. Usa esta opción solo si el modelo aún no contiene una operación nativa de TFLite L2_NORMALIZATION. En la mayoría de los casos, ya es así, y la normalización de L2 se logra a través de la inferencia de TFLite sin necesidad de esta opción. Boolean False
quantize Indica si la incorporación que se muestra debe cuantificarse en bytes a través de la cuantificación escalar. Se supone implícitamente que las incorporaciones tienen una norma de unidad y, por lo tanto, se garantiza que cualquier dimensión tenga un valor en [-1.0, 1.0]. Usa la opción l2_normalize si no es así. Boolean False

Modelos

Ofrecemos un modelo predeterminado y recomendado cuando comienzas a desarrollar con esta tarea.

Este modelo usa una arquitectura de codificador dual y se entrenó en varios conjuntos de datos de preguntas y respuestas.

Considera los siguientes pares de oraciones:

  • ("es un viaje encantador y, a menudo, conmovedor", "qué viaje tan fantástico y genial")
  • ("I like my phone", "I hate my phone")
  • ("Este restaurante tiene un gran truco", "Necesitamos volver a revisar los detalles de nuestro plan")

Las incorporaciones de texto en los primeros dos pares tendrán una similitud de coseno más alta que las incorporaciones en el tercer par porque los primeros dos pares de oraciones comparten un tema común de “sentimiento de viaje” y “opinión sobre teléfonos”, respectivamente, mientras que el tercer par de oraciones no comparte un tema común.

Ten en cuenta que, aunque las dos oraciones del segundo par tienen sentimientos opuestos, tienen una puntuación de similitud alta porque comparten un tema en común.

Nombre del modelo Forma de entrada Tipo de cuantización Versiones
Codificador de oraciones universal cadena, cadena, cadena Ninguno (float32) Más reciente

Comparativas de tareas

Estas son las comparativas de tareas de toda la canalización según los modelos previamente entrenados anteriores. El resultado de la latencia es la latencia promedio en el Pixel 6 con CPU o GPU.

Nombre del modelo Latencia de la CPU Latencia de la GPU
Codificador universal de oraciones 18.21 ms -