Переход с Распознавание речи (LUIS) на распознавание бесед (CLU)

Распознавание речи (CLU) — это облачное предложение искусственного интеллекта на языке ИИ Azure. Это новейшее поколение Распознавание речи (LUIS) и обеспечивает обратную совместимость с ранее созданными приложениями LUIS. В CLU используется анализ машинного обучения, позволяющий пользователям создавать пользовательскую модель распознавания естественного языка для прогнозирования намерений и сущностей в речевых речевых фрагментах.

CLU предлагает следующие преимущества по сравнению с LUIS:

  • Улучшена точность с использованием моделей машинного обучения с отслеживанием состояния для лучшей классификации намерений и извлечения сущностей. LUIS требует больше примеров для обобщения определенных понятий в намерениях и сущностях, в то время как более расширенное машинное обучение CLU снижает нагрузку на клиентов, требуя значительно меньше данных.
  • Многоязычная поддержка обучения и обучения модели. Обучение проектов на одном языке и немедленное прогнозирование намерений и сущностей на 96 языках.
  • Простота интеграции с различными CLU и пользовательскими проектами ответа на вопросы с помощью рабочего процесса оркестрации.
  • Возможность добавлять данные тестирования в интерфейс с помощью Language Studio и API для оценки производительности модели до развертывания.

Чтобы приступить к работе, можно создать проект или перенести приложение LUIS.

Сравнение LUIS и CLU

В следующей таблице представлено параллельное сравнение функций LUIS и CLU. Он также выделяет изменения в приложении LUIS после миграции в CLU. Выберите связанную концепцию, чтобы узнать больше об изменениях.

Функции LUIS Функции CLU После миграции
Сущности машинного обучения и структурированного машинного обучения Компоненты обученных сущностей Сущности, научиемые машинным обучением без подстановок, будут переданы как сущности CLU. Структурированные сущности машинного обучения будут передавать только конечные узлы (поденты низкого уровня, которые не имеют собственных подтенентов) в качестве сущностей в CLU. Имя сущности в CLU будет именем подсети, сцепленной с родительским элементом. Например, Order.Size
Перечисление, регрессия и предварительно созданные сущности Перечисление, regex и предварительно созданных компонентов сущностей Список, regex и предварительно созданные сущности будут переданы как сущности в CLU с заполненным компонентом сущности на основе типа сущности.
Pattern.Any Объекты В настоящее время недоступно Pattern.Any сущности будут удалены.
Единый язык и региональные параметры для каждого приложения Многоязычные модели позволяют использовать несколько языков для каждого проекта. Основной язык проекта будет задан в качестве языка и региональных параметров приложения LUIS. Проект можно обучить для расширения на разных языках.
Роли сущности Роли больше не нужны. Роли сущностей будут передаваться как сущности.
Параметры для: нормализация препинания, нормализация диакритических, нормализация формы слова, использование всех обучающих данных Параметры больше не нужны. Параметры не будет передаваться.
Шаблоны и функции списка фраз Функции шаблонов и списков фраз больше не требуются. Шаблоны и функции списка фраз не будут переданы.
Функции сущности Компоненты сущности Список или предварительно созданные сущности, добавленные в качестве компонентов для сущности, будут переданы в качестве добавленных компонентов этой сущности. Функции сущности не будут передаваться для намерений.
Намерения и речевые фрагменты Намерения и речевые фрагменты Будут переданы все намерения и речевые фрагменты. Речевые фрагменты будут помечены их передаваемыми сущностями.
Идентификаторы GUID приложений Имена проектов Проект будет создан для каждого перенесенного приложения с именем приложения. Все специальные символы в именах приложений будут удалены в CLU.
Управление версиями Каждый раз при обучении модель создается и выступает в качестве версии проекта. Проект будет создан для выбранной версии приложения.
Оценка с помощью пакетного тестирования Оценка с помощью наборов тестирования Требуется добавление тестового набора данных.
Контроль доступа на основе ролей (RBAC) для ресурсов LUIS Контроль доступа на основе ролей (RBAC) доступны для языковых ресурсов RBAC языкового ресурса необходимо добавить вручную после миграции.
Единый режим обучения Стандартные и расширенные режимы обучения Обучение потребуется после миграции приложений.
Два слота публикации и публикация версий Десять слотов развертывания с пользовательским именованием Развертывание потребуется после миграции и обучения приложения.
Поддержка API разработки и пакета SDK LUIS в .NET, Python, Java и Node.js CLU, создающий REST API. Дополнительные сведения см. в статье краткого руководства по API разработки CLU. Для использования API разработки CLU потребуется рефакторинг .
Поддержка API среды выполнения LUIS и пакетов SDK в .NET, Python, Java и Node.js API среды выполнения CLU. Поддержка пакета SDK среды выполнения CLU для .NET и Python. Дополнительные сведения см. в разделе Способ вызова API. Для использования ответа API среды выполнения CLU потребуется рефакторинг .

Перенос приложений LUIS

Выполните следующие действия, чтобы перенести приложение LUIS с помощью портала LUIS или REST API.

Перенос приложений LUIS с помощью портала LUIS

Выполните следующие действия, чтобы начать миграцию с помощью портала LUIS:

  1. После входа на портал LUIS нажмите кнопку на баннере в верхней части экрана, чтобы запустить мастер миграции. Миграция будет копировать только выбранные приложения LUIS в CLU.

    A screenshot showing the migration banner in the LUIS portal.

    На вкладке "Обзор миграции" представлено краткое описание понимания общения и его преимуществ. Нажмите кнопку "Далее", чтобы продолжить.

    A screenshot showing the migration overview window.

  2. Определите ресурс языка, в который вы хотите перенести приложение LUIS. Если вы уже создали ресурс языка, выберите подписку Azure, за которой следует ресурс языка, а затем нажмите кнопку "Далее". Если у вас нет ресурса языка, щелкните ссылку, чтобы создать новый ресурс языка. Затем выберите ресурс и нажмите кнопку "Далее".

    A screenshot showing the resource selection window.

  3. Выберите все приложения LUIS, которые требуется перенести, и укажите каждую из их версий. Выберите Далее. После выбора приложения и версии вам будет предложено сообщить вам о любых функциях, которые не будут перенесены из приложения LUIS.

    Примечание.

    Специальные символы не поддерживаются пониманием общения. Все специальные символы в выбранных именах приложений LUIS будут удалены в новых перенесенных приложениях. A screenshot showing the application selection window.

  4. Просмотрите выбранные ресурсы языка и приложения LUIS. Нажмите кнопку "Готово ", чтобы перенести приложения.

  5. Всплывающее окно позволит отслеживать состояние миграции приложений. Приложения, которые не начали переносить, будут иметь состояние "Не запущено". Приложения, которые начали миграцию, будут иметь состояние "Выполняется", и после завершения миграции их состояния будет выполнено успешно. Неудачное приложение означает, что необходимо повторить процесс миграции. После завершения миграции для всех приложений нажмите кнопку "Готово".

    A screenshot showing the application migration progress window.

  6. После переноса приложений можно выполнить следующие действия.

Часто задаваемые вопросы

Какая версия JSON LUIS поддерживается CLU?

CLU поддерживает модель JSON версии 7.0.0. Если формат JSON более старый, сначала его необходимо импортировать в LUIS, а затем экспортировать из LUIS с последней версией.

Как сущности отличаются в CLU?

В CLU одна сущность может иметь несколько компонентов сущностей, которые являются различными методами извлечения. Затем эти компоненты объединяются вместе с помощью правил, которые можно определить. Доступные компоненты:

  • Научились: эквивалентно сущностям машинного обучения в LUIS, метки используются для обучения модели машинного обучения для прогнозирования сущности на основе содержимого и контекста предоставленных меток.
  • Список: как и сущности списка в LUIS, компоненты списка точно соответствуют набору синонимов и сопоставляют их с нормализованным значением, называемым ключом списка.
  • Предварительно созданные компоненты: предварительно созданные компоненты позволяют определить сущность с предварительно созданными средствами извлечения для распространенных типов, доступных как в LUIS, так и в CLU.
  • Regex: компоненты Regex используют регулярные выражения для записи пользовательских определенных шаблонов, точно таких как сущности regex в LUIS.

Сущности в LUIS будут переданы как сущности того же имени в CLU с эквивалентными компонентами, передаваемыми.

После миграции структурированные конечные узлы машинного обучения и поденты нижнего уровня будут переданы в новую модель CLU, а все родительские сущности и сущности более высокого уровня будут игнорироваться. Имя сущности будет именем сущности нижнего уровня, объединенным с родительской сущностью.

Пример:

Сущность LUIS:

  • Заказ пиццы
    • Долива
    • Размер

Перенесенная сущность LUIS в CLU:

  • Пицца Order.Topping
  • Pizza Order.Size

Вы также не можете пометить 2 разных сущностей в CLU для одного диапазона символов. Компоненты, полученные в CLU, являются взаимоисключающими и не предоставляют перекрывающиеся прогнозы только для изученных компонентов. При переносе приложения LUIS метки сущностей, которые перекрывались, сохранили самую длинную метку и проигнорировали все остальные.

Дополнительные сведения о компонентах сущностей см. в разделе "Компоненты сущности".

Как роли сущностей передаются в CLU?

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

Как функции сущности передаются в CLU?

Сущности, используемые в качестве функций для намерений, не будут переданы. Сущности, используемые в качестве функций для других сущностей, заполняют соответствующий компонент сущности. Например, если сущность списка с именем SizeList была использована в качестве функции для сущности с именем Size, то сущность Size будет передана в CLU со значениями списка из SizeList, добавленными в его компонент списка. То же самое применяется для предварительно созданных и регулярных сущностей.

Как оценки достоверности сущностей отличаются в CLU?

Любая извлеченная сущность имеет оценку достоверности на 100 %, поэтому оценки достоверности сущностей не должны использоваться для принятия решений между сущностями.

Каким образом обеспечивается многоязычность Распознавания речи в беседах?

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

Пример:

Обучающее высказывание (английский): Как вы?

Помеченное намерение: Приветствие

Высказывание среды выполнения (французский): Комментарий ça va?

Прогнозируемое намерение: приветствие

Как точность CLU лучше, чем LUIS?

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

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

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

Что делать, если функции, которые я использую в LUIS, больше не присутствуют?

В LUIS есть несколько функций, которые больше не будут доступны в CLU. Сюда входит возможность выполнять проектирование функций, наличие шаблонов и шаблонов.any сущностей и структурированных сущностей. Если у вас были зависимости от этих функций в LUIS, используйте следующее руководство.

  • Шаблоны: Шаблоны были добавлены в LUIS, чтобы помочь классификации намерений путем определения речевых фрагментов шаблона регулярного выражения. Это включало возможность определять только намерения шаблонов (без примеров речевых фрагментов). CLU может обобщать, используя современные модели. Вы можете указать несколько речевых фрагментов, которые соответствуют определенному шаблону намерения в CLU, и, скорее всего, классифицируют различные шаблоны в качестве верхнего намерения без необходимости высказываний шаблона шаблона. Это упрощает требование сформулировать эти шаблоны, которые были ограничены в LUIS, и обеспечивают более эффективную классификацию намерений.

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

  • Структурированные сущности: возможность определения структурированных сущностей была в основном для включения многоуровневого анализа речевых фрагментов. При использовании различных возможностей вложенных сущностей LUIS требует, чтобы все различные сочетания сущностей были определены и представлены модели в качестве примеров. В CLU эти структурированные сущности больше не поддерживаются, так как перекрывающиеся компоненты обучения не поддерживаются. Существует несколько возможных подходов к обработке этих структурированных извлечений:

    • Неоднозначные извлечения: в большинстве случаев обнаружение конечных сущностей достаточно, чтобы понять необходимые элементы в полном диапазоне. Например, структурированная сущность, например Trip , которая полностью охватывает источник и место назначения (Лондон в Нью-йорк или Дом для работы) можно определить с отдельными диапазонами, прогнозируемыми для источника и назначения. Их присутствие в качестве отдельных прогнозов сообщит вам о сущности Trip .
    • Неоднозначные извлечения: когда границы разных дочерних сущностей не очень ясны. Чтобы проиллюстрировать, рассмотрим пример "Я хочу заказать пиццу пепперони и дополнительный сыр вегетарианской пиццы". В то время как различные типы пиццы, а также дополнения можно извлечь, имея их извлеченные без контекста, будет иметь степень неоднозначности того, где добавляется дополнительный сыр. В этом случае степень диапазона основана на контексте и требуется машинное обучение для определения этого. Для неоднозначных извлечений можно использовать один из следующих подходов:
  1. Объединение вложенных сущностей в разные компоненты сущностей в одной сущности.

Пример:

Реализация LUIS:

  • Порядок пиццы (сущность)
    • Размер (подтенциальность)
    • Количество (подтенциальность)

Реализация CLU:

  • Порядок пиццы (сущность)
    • Размер (компонент сущности списка: малый, средний, большой)
    • Количество (предварительно созданный компонент сущности: число)

В CLU вы заметите весь диапазон для заказа пиццы включительно от размера и количества, который возвращает заказ пиццы с ключом списка для размера и числом для количества в одном объекте сущности.

  1. Для более сложных проблем, в которых сущности содержат несколько уровней глубины, можно создать проект для каждого уровня глубины в структуре сущностей. Это дает возможность:
  • Передайте высказывание в каждый проект.
  • Объедините анализ каждого проекта на этапе процесса CLU.

Подробный пример этой концепции проверка из примеров проектов пиццы, доступных на сайте GitHub.

Разделы справки управлять версиями в CLU?

CLU сохраняет ресурсы данных, используемые для обучения модели. Вы можете экспортировать ресурсы модели или загрузить их обратно в проект в любой момент. Поэтому модели действуют в качестве разных версий проекта.

Вы можете экспортировать проекты CLU с помощью Language Studio или программно и хранить различные версии ресурсов локально.

Почему классификация CLU отличается от LUIS? Как работает классификация None?

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

Требуется ли больше данных для моделей CLU, чем LUIS?

Новые модели CLU имеют лучшее семантическое представление о языке, чем в LUIS, и, в свою очередь, помогают сделать модели обобщенными с существенным сокращением данных. Хотя вы не должны стремиться уменьшить объем данных, которые у вас есть, следует ожидать более высокую производительность и устойчивость к вариациям и синонимам в CLU по сравнению с LUIS.

Если я не переносю мои приложения LUIS, они будут удалены?

Существующие приложения LUIS будут доступны до 1 октября 2025 г. После этого вы больше не сможете использовать эти приложения, конечные точки службы больше не будут работать, и приложения будут окончательно удалены.

Есть. LU-файлы, поддерживаемые в CLU?

Только формат JSON поддерживается CLU. Вы можете импортировать свой. LU-файлы в LUIS и экспортируют их в формате JSON или выполните описанные выше действия по миграции для приложения.

Каковы ограничения службы CLU?

Подробнее см. в сведениях об ограничениях службы.

Необходимо ли рефакторинг кода при переносе приложений из LUIS в CLU?

Объекты API приложений CLU отличаются от LUIS, поэтому рефакторинг кода потребуется.

Если вы используете программные и среды выполнения API LUIS, их можно заменить эквивалентными API.

API разработки CLU. Вместо api CRUD luIS для отдельных действий, таких как добавление речевых фрагментов, удаление сущности и переименование намерения, CLU предлагает API импорта, который заменяет полное содержимое проекта с использованием того же имени. Если служба использовала программные API LUIS для предоставления платформы для других клиентов, необходимо рассмотреть эту новую парадигму проектирования. Доступны все остальные API, такие как перечисление проектов, обучение, развертывание и удаление . API для таких действий, как импорт и развертывание , являются асинхронными операциями, а не синхронными, как и в LUIS.

API среды выполнения CLU: новый запрос и ответ API включает в себя множество таких параметров, как запрос, прогнозирование, первое намерение, намерения, сущности и их значения. Объект ответа CLU предлагает более простой подход. Прогнозы сущностей предоставляются так же, как они находятся в тексте речевых фрагментов, и все дополнительные сведения, такие как разрешение или ключи списка, предоставляются в дополнительных параметрах, называемых extraInformation и resolution.

Пакет SDK среды выполнения .NET или Python CLU можно использовать для замены пакета SDK среды выполнения LUIS. В настоящее время для CLU нет пакета SDK для разработки.

Как время обучения отличается в CLU? Как обучение отличается от профессионального обучения?

CLU предлагает стандартную подготовку, которая обучает и учится на английском языке и сравнима с учебным временем LUIS. Он также предлагает расширенное обучение, которое занимает значительно больше времени, так как оно расширяет обучение на всех других поддерживаемых языках. API обучения будет по-прежнему асинхронным процессом, и вам потребуется оценить изменения в процессе DevOps, который вы используете для решения.

Как интерфейс изменился в CLU по сравнению с LUIS? Как отличается жизненный цикл разработки?

В LUIS будет выполняться сборка-train-test-Publish, в то время как в CLU выполняется сборка-train-Evaluate-Deploy-Test.

  1. Сборка. В CLU можно определить намерения, сущности и речевые фрагменты перед обучением. CLU также предоставляет возможность указывать тестовые данные при создании приложения для оценки моделей. Оценка оценивает, насколько хорошо ваша модель выполняется на тестовых данных и обеспечивает точность, отзыв и метрики F1.
  2. Обучение. Вы создаете модель с именем при каждом обучении. Вы можете перезаписать уже обученную модель. Вы можете указать стандартный или расширенный учебный курс и определить, хотите ли вы использовать тестовые данные для оценки, или процент данных обучения, которые будут удалены из обучения и использоваться в качестве тестовых данных. После завершения обучения вы можете оценить, насколько хорошо модель выполняется на внешней стороне.
  3. Развертывание: после завершения обучения и у вас есть модель с именем, она может быть развернута для прогнозирования. Развертывание также называется и имеет назначенную модель. Для одной модели может быть несколько развертываний. Развертывание можно перезаписать с другой моделью или заменить модели другими развертываниями в проекте.
  4. Тест. После завершения развертывания его можно использовать для прогнозирования через конечную точку развертывания. Вы также можете протестировать его в студии на странице развертывания test.

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

Это будет влиять на используемые процессы DevOps.

Поддерживает ли CLU контейнер?

Нет, вы не можете экспортировать CLU в контейнеры.

Как будут называться приложения LUIS в CLU после миграции?

Все специальные символы в имени приложения LUIS будут удалены. Если длина снятого имени превышает 50 символов, будут удалены дополнительные символы. Если имя после удаления специальных символов пусто (например, если имя приложения LUIS было @@), новое имя будет не указано. Если уже существует проект распознавания речи с тем же именем, перенесенное приложение LUIS будет добавлено _1 для первого дубликата и увеличить на 1 для каждого дополнительного дубликата. Если длина нового имени составляет 50 символов и ее необходимо переименовать, то последние 1 или 2 символа будут удалены, чтобы иметь возможность сцепить число и по-прежнему находиться в пределах ограничения на 50 символов.

Миграция с LUIS Q&A

Если у вас есть какие-либо вопросы, которые не были отвечены в этой статье, попробуйте оставить свои вопросы на нашем потоке Microsoft Q&A.

Следующие шаги