Руководство по встраиванию текста,Руководство по встраиванию текста

Задача MediaPipe Text Embedder позволяет создавать числовое представление текстовых данных для отражения их семантического значения. Эта функция часто используется для сравнения семантического сходства двух фрагментов текста с использованием методов математического сравнения, таких как косинусное сходство. Эта задача работает с текстовыми данными с помощью модели машинного обучения (ML) и выводит числовое представление текстовых данных в виде списка многомерных векторов признаков, также известных как векторы внедрения, в форме с плавающей запятой или в квантовой форме.

Попробуй это!

Начать

Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи, включая рекомендуемую модель и пример кода с рекомендуемыми параметрами конфигурации:

Подробности задачи

В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.

Функции

  • Обработка входного текста — поддерживает токенизацию вне графа для моделей без токенизации внутри графа.
  • Встраивание вычисления сходства — встроенная вспомогательная функция для вычисления косинусного сходства между двумя векторами признаков.
  • Квантование — поддерживает скалярное квантование векторов признаков.
Входные данные задачи Результаты задачи
Text Embedder принимает следующий тип входных данных:
  • Нить
Text Embedder выводит список вложений, состоящий из:
  • Встраивание: сам вектор признаков, либо в форме с плавающей запятой, либо в форме скалярного квантования.
  • Индекс головы: индекс головы, создавшей это встраивание.
  • Имя головы (необязательно): имя головы, создавшей это внедрение.

Варианты конфигурации

Эта задача имеет следующие параметры конфигурации:

Название опции Описание Диапазон значений Значение по умолчанию
l2_normalize Нормализовать ли возвращенный вектор признаков по норме L2. Используйте эту опцию, только если модель еще не содержит встроенный L2_NORMALIZATION TFLite Op. В большинстве случаев это уже так, и нормализация L2, таким образом, достигается посредством вывода TFLite без необходимости использования этой опции. Boolean False
quantize Следует ли квантовать возвращенное внедрение в байты посредством скалярного квантования. Неявно предполагается, что вложения имеют единичную норму, и поэтому любое измерение гарантированно имеет значение в [-1.0, 1.0]. Если это не так, используйте опцию l2_normalize. Boolean False

Модели

Мы предлагаем рекомендуемую модель по умолчанию, когда вы начинаете разработку с этой задачей.

Эта модель использует архитектуру двойного кодировщика и была обучена на различных наборах данных вопросов и ответов.

Рассмотрим следующие пары предложений:

  • («это очаровательное и зачастую трогательное путешествие», «какое замечательное и фантастическое путешествие»)
  • («Мне нравится мой телефон», «Я ненавижу свой телефон»)
  • («У этого ресторана отличный трюк», «Нам нужно перепроверить детали нашего плана»)

Текстовые вложения в первых двух парах будут иметь большее косинусное сходство, чем вложения в третьей паре, поскольку первые две пары предложений имеют общую тему «настроение поездки» и «мнения по телефону» соответственно, тогда как третья пара предложений имеет общую тему. не разделять общую тему.

Обратите внимание: хотя два предложения во второй паре имеют противоположные настроения, они имеют высокий показатель сходства, поскольку имеют общую тему.

Название модели Введите форму Тип квантования Версии
Универсальный кодировщик предложений строка, строка, строка Нет (с плавающей запятой32) Последний

Тесты задач

Вот тесты задач для всего конвейера, основанные на предварительно обученных моделях. Результатом задержки является средняя задержка на Pixel 6 с использованием ЦП/ГП.

Название модели Задержка процессора Задержка графического процессора
Универсальный кодировщик предложений 18,21 мс -
,

Задача MediaPipe Text Embedder позволяет создавать числовое представление текстовых данных для отражения их семантического значения. Эта функция часто используется для сравнения семантического сходства двух фрагментов текста с использованием методов математического сравнения, таких как косинусное сходство. Эта задача работает с текстовыми данными с помощью модели машинного обучения (ML) и выводит числовое представление текстовых данных в виде списка многомерных векторов признаков, также известных как векторы внедрения, в форме с плавающей запятой или в квантовой форме.

Попробуй это!

Начать

Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи, включая рекомендуемую модель и пример кода с рекомендуемыми параметрами конфигурации:

Подробности задачи

В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.

Функции

  • Обработка входного текста — поддерживает токенизацию вне графа для моделей без токенизации внутри графа.
  • Встраивание вычисления сходства — встроенная вспомогательная функция для вычисления косинусного сходства между двумя векторами признаков.
  • Квантование — поддерживает скалярное квантование векторов признаков.
Входные данные задачи Результаты задачи
Text Embedder принимает следующий тип входных данных:
  • Нить
Text Embedder выводит список вложений, состоящий из:
  • Встраивание: сам вектор признаков, либо в форме с плавающей запятой, либо в форме скалярного квантования.
  • Индекс головы: индекс головы, создавшей это встраивание.
  • Имя головы (необязательно): имя головы, создавшей это внедрение.

Варианты конфигурации

Эта задача имеет следующие параметры конфигурации:

Название опции Описание Диапазон значений Значение по умолчанию
l2_normalize Нормализовать ли возвращенный вектор признаков по норме L2. Используйте эту опцию, только если модель еще не содержит встроенный L2_NORMALIZATION TFLite Op. В большинстве случаев это уже так, и нормализация L2, таким образом, достигается посредством вывода TFLite без необходимости использования этой опции. Boolean False
quantize Следует ли квантовать возвращенное внедрение в байты посредством скалярного квантования. Неявно предполагается, что вложения имеют единичную норму, и поэтому любое измерение гарантированно имеет значение в [-1.0, 1.0]. Если это не так, используйте опцию l2_normalize. Boolean False

Модели

Мы предлагаем рекомендуемую модель по умолчанию, когда вы начинаете разработку с этой задачей.

Эта модель использует архитектуру двойного кодировщика и была обучена на различных наборах данных вопросов и ответов.

Рассмотрим следующие пары предложений:

  • («это очаровательное и зачастую трогательное путешествие», «какое замечательное и фантастическое путешествие»)
  • («Мне нравится мой телефон», «Я ненавижу свой телефон»)
  • («У этого ресторана отличный трюк», «Нам нужно перепроверить детали нашего плана»)

Текстовые вложения в первых двух парах будут иметь большее косинусное сходство, чем вложения в третьей паре, поскольку первые две пары предложений имеют общую тему «настроение поездки» и «мнения по телефону» соответственно, тогда как третья пара предложений имеет общую тему. не разделять общую тему.

Обратите внимание: хотя два предложения во второй паре имеют противоположные настроения, они имеют высокий показатель сходства, поскольку имеют общую тему.

Название модели Введите форму Тип квантования Версии
Универсальный кодировщик предложений строка, строка, строка Нет (с плавающей запятой32) Последний

Тесты задач

Вот тесты задач для всего конвейера, основанные на предварительно обученных моделях. Результатом задержки является средняя задержка на Pixel 6 с использованием ЦП/ГП.

Название модели Задержка процессора Задержка графического процессора
Универсальный кодировщик предложений 18,21 мс -