Задача MediaPipe Text Embedder позволяет создавать числовое представление текстовых данных для отражения их семантического значения. Эта функция часто используется для сравнения семантического сходства двух фрагментов текста с использованием методов математического сравнения, таких как косинусное сходство. Эта задача работает с текстовыми данными с помощью модели машинного обучения (ML) и выводит числовое представление текстовых данных в виде списка многомерных векторов признаков, также известных как векторы внедрения, в форме с плавающей запятой или в квантовой форме.
Начать
Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи, включая рекомендуемую модель и пример кода с рекомендуемыми параметрами конфигурации:
- Android – Пример кода – Руководство
- Python — Пример кода — Руководство
- Интернет — Пример кода — Руководство
Подробности задачи
В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.
Функции
- Обработка входного текста — поддерживает токенизацию вне графа для моделей без токенизации внутри графа.
- Встраивание вычисления сходства — встроенная вспомогательная функция для вычисления косинусного сходства между двумя векторами признаков.
- Квантование — поддерживает скалярное квантование векторов признаков.
Входные данные задачи | Результаты задачи |
---|---|
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) и выводит числовое представление текстовых данных в виде списка многомерных векторов признаков, также известных как векторы внедрения, в форме с плавающей запятой или в квантовой форме.
Начать
Начните использовать эту задачу, следуя одному из этих руководств по реализации для вашей целевой платформы. Эти руководства для конкретных платформ покажут вам базовую реализацию этой задачи, включая рекомендуемую модель и пример кода с рекомендуемыми параметрами конфигурации:
- Android – Пример кода – Руководство
- Python — Пример кода — Руководство
- Интернет — Пример кода — Руководство
Подробности задачи
В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.
Функции
- Обработка входного текста — поддерживает токенизацию вне графа для моделей без токенизации внутри графа.
- Встраивание вычисления сходства — встроенная вспомогательная функция для вычисления косинусного сходства между двумя векторами признаков.
- Квантование — поддерживает скалярное квантование векторов признаков.
Входные данные задачи | Результаты задачи |
---|---|
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 мс | - |