Guía para la incorporación de texto

La tarea MediaPipe Text Embedder 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 atributos de alta dimensión, también conocidos como vectores de incorporación, en forma de punto flotante o cuantificada.

Probar

Comenzar

Comienza a utilizar esta tarea siguiendo una de estas guías de implementación para la plataforma de destino. En estas guías específicas de la plataforma, se explica la implementación básica de esta tarea, incluidos 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, entradas, salidas y opciones de configuración de esta tarea.

Funciones

  • Procesamiento de texto de entrada: Admite la asignación de token fuera del gráfico para modelos sin asignación de token en el gráfico.
  • Cálculo de similitud de incorporación: es una función de utilidad integrada para calcular la similitud coseno entre dos vectores de atributos.
  • Cuantización: Admite la cuantización escalar para los vectores de atributos.
Entradas de tareas Resultados de la tarea
Text Embedder 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 atributos en sí, ya sea en forma de punto flotante o de forma escalar cuantizada.
  • Índice de encabezado: Es el índice de la cabeza que produjo esta incorporación.
  • Nombre del encabezado (opcional): Es el nombre del encabezado que produjo esta incorporación.

Opciones de configuración

Esta tarea incluye 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 atributos mostrados con la norma L2. Usa esta opción solo si el modelo todavía no contiene una operación nativa de TFLite L2_NORMALIZATION. En la mayoría de los casos, este ya es el caso y, por lo tanto, la normalización L2 se logra a través de inferencia de TFLite sin necesidad de esta opción. Boolean False
quantize Indica si la incorporación que se muestra debe cuantizarse en bytes a través de la cuantización escalar. Se supone implícitamente que las incorporaciones son la norma unitaria y, por lo tanto, se garantiza que cualquier dimensión tenga un valor en [-1.0, 1.0]. Si este no es el caso, usa la opción l2_normalize. Boolean False

ajustables

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

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

Considera los siguientes pares de oraciones:

  • ("es un viaje encantador que, a menudo, afecta de forma negativa", "que es un viaje increíble y fantástico")
  • ("Me gusta mi teléfono", "Odio mi teléfono")
  • ("Este restaurante tiene un gran truco", "Necesitamos verificar los detalles de nuestro plan")

Las incorporaciones de texto de los dos primeros pares tendrán una similitud coseno mayor que las del tercer par, ya que los dos primeros pares de oraciones comparten un tema común, como "opinión de viaje" y "opinión telefónica", respectivamente, mientras que el tercer par de oraciones no comparten un tema en común.

Ten en cuenta que, aunque las dos oraciones del segundo par tienen opiniones opuestas, 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 universal de oraciones cadena, cadena, cadena Ninguna (float32) Más reciente

Comparativas de tareas

Estas son las comparativas de tareas para toda la canalización basadas en los modelos previamente entrenados anteriores. El resultado de latencia es la latencia promedio en el Pixel 6 usando CPU / GPU.

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