Guia de incorporação de texto

Duas frases de exemplo que mostram as embeddings correspondentes para cada
palavra nas frases como uma matriz.

A tarefa MediaPipe Text Embedder permite criar uma representação numérica de dados de texto para capturar o significado semântico deles. Essa funcionalidade é usada com frequência para comparar a similaridade semântica de dois textos usando técnicas de comparação matemática, como a similaridade de cosseno. Essa tarefa opera em dados de texto com um modelo de aprendizado de máquina (ML) e gera uma representação numérica dos dados de texto como uma lista de vetores de características de alta dimensão, também conhecidos como vetores de embeddings, em formato de ponto flutuante ou quantizado.

Teste!

Começar

Para começar a usar essa tarefa, siga um destes guias de implementação para sua plataforma de destino. Estes guias específicos para plataformas orientam você em uma implementação básica desta tarefa, incluindo um modelo recomendado e um exemplo de código com opções de configuração recomendadas:

Detalhes da tarefa

Esta seção descreve os recursos, entradas, saídas e opções de configuração desta tarefa.

Recursos

  • Processamento de texto de entrada: oferece suporte à tokenização fora do gráfico para modelos sem tokenização no gráfico.
  • Cálculo de similaridade de embedding: função utilitária integrada para calcular a semelhança de cosseno entre dois vetores de recursos.
  • Quantização: oferece suporte à quantização escalar para os vetores de atributos.
Entradas da tarefa Saídas de tarefas
O invólucro de texto aceita o seguinte tipo de dados de entrada:
  • String
O Text Embedder gera uma lista de embeddings que consistem em:
  • Embedding: o próprio vetor de características, seja na forma de ponto flutuante ou quantizado por escalar.
  • Índice da cabeça: o índice da cabeça que produziu esse embedding.
  • Nome da cabeça (opcional): o nome da cabeça que produziu a incorporação.

Opções de configuração

Esta tarefa tem as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
l2_normalize Se o vetor de recursos retornado vai ser normalizado com a norma L2. Use essa opção somente se o modelo ainda não tiver uma operação TFLite L2_NORMALIZATION nativa. Na maioria dos casos, isso já acontece e a normalização L2 é alcançada pela inferência do TFLite sem a necessidade dessa opção. Boolean False
quantize Indica se o embedding retornado precisa ser quantizado em bytes por meio de quantização escalar. As inclusões são implicitamente consideradas como unidade-norm e, portanto, qualquer dimensão tem garantia de ter um valor em [-1,0, 1,0]. Use a opção l2_normalize se não for esse o caso. Boolean False

Modelos

Oferecemos um modelo padrão recomendado quando você começa a desenvolver com essa tarefa.

Esse modelo usa uma arquitetura de codificador duplo e foi treinado em vários conjuntos de dados de perguntas e respostas.

Considere os seguintes pares de frases:

  • ("É uma viagem encantadora e muitas vezes comovente", "Que viagem incrível!")
  • ("I like my phone", "I hate my phone")
  • ("Este restaurante tem um grande truque", "Precisamos verificar os detalhes do nosso plano")

Os embeddings de texto nos dois primeiros pares têm uma similaridade de cosseno maior do que os embeddings no terceiro par porque os dois primeiros pares de frases têm um tema comum de "sentimento de viagem" e "opinião de telefone", respectivamente, enquanto o terceiro par de frases não tem um tema comum.

Embora as duas frases do segundo par tenham sentimentos opostos, elas têm uma alta pontuação de similaridade porque compartilham um tema comum.

Nome do modelo Forma de entrada Tipo de quantização Versões
Codificador de frases universal string, string, string Nenhum (float32) Mais recente

Comparações de mercado de tarefas

Confira os comparativos de mercado da tarefa para todo o pipeline com base nos modelos pré-treinados acima. O resultado da latência é a latência média no Pixel 6 usando CPU / GPU.

Nome do modelo Latência da CPU Latência da GPU
Codificador de frases universal 18,21 ms -