Возможности распознавания намерений и извлечения сущностей для рабочих нагрузок интеллектуальных приложений
Распознавание намерений и извлечение сущностей являются ключевыми компонентами понимание естественного языка.
Распознавание намерений подразумевает определение цели или задачи пользователя, стоящих за его вводом. Например, если пользователь говорит: «Я хочу забронировать рейс», его намерением является бронирование рейса. Распознавание намерений помогает второму пилоту понять, какие действия необходимо предпринять в ответ на запрос пользователя.
Извлечение сущностей включает в себя идентификацию и извлечение определенных фрагментов информации из введенных пользователем данных. Сущностями могут быть такие вещи, как даты, имена, местоположения или любые другие соответствующие данные. Например, в предложении «Забронировать рейс в Нью-Йорк на 15 сентября» «Нью-Йорк» и «15 сентября» являются сущностями.
Второй пилот использует намерение для понимания цели пользователя, а сущности — для определения конкретных деталей, необходимых для выполнения задачи. Таким образом, распознавание намерений и извлечение сущностей позволяют второму пилоту предоставлять точные и эффективные ответы на запросы пользователей.
При проектировании рабочей нагрузки интеллектуального приложения вам необходимо выбрать наилучший вариант распознавания намерений и извлечения сущностей, чтобы гарантировать, что рабочая нагрузка интеллектуального приложения обеспечит положительный пользовательский опыт.
Определения
Термин | Определение |
---|---|
NLU | понимание естественного языка — это подмножество обработки естественного языка в ИИ, ориентированное на машинное понимание прочитанного. |
КЛУ | Понимание разговорного языка — это функция Azure AI, которая позволяет создавать пользовательские модели NLU. |
Магистр права | Большой языковая модель — это тип модели ИИ, предназначенный для понимания и генерации человеческого языка. |
GPT | Генеративный предобученный трансформатор относится к семейству больших языковых моделей, которые используют архитектуру трансформатора для понимания и генерации текста, похожего на человеческий. |
Динамическое построение цепочки | динамическое построение цепочки — это метод автоматизации триггеров для генеративных действий. Вместо ручного определения всех возможных тема или фраза-триггер, динамическое построение цепочки позволяет ИИ определять, какие темы или действия плагина необходимо вызвать, на основе контекста разговора. |
Выбор правильного варианта распознавания намерений и извлечения сущностей в рабочей нагрузке вашего интеллектуального приложения включает несколько ключевых соображений:
Предварительно созданные и пользовательские сущности: оцените, соответствуют ли предварительно созданные сущности, предоставляемые Copilot Studio вашим потребностям. Готовые сущности охватывают общие типы информации, такие как даты, числа и имена. Если ваше приложение требует знаний, специфичных для предметной области, вам может потребоваться создать пользовательские сущности.
Сложность пользовательского ввода: учитывайте сложность и изменчивость пользовательского ввода. Для простых сценариев может быть достаточно готовых сущностей. Для более сложных взаимодействий могут потребоваться пользовательские сущности и расширенные конфигурации, такие как регулярные выражения (regex).
Заполнение слотов: определите, требуется ли вашему приложению упреждающее заполнение слотов, при котором второй пилот активно ищет и заполняет недостающую информацию из вводимых пользователем данных. Заполнение слотов может улучшить пользовательский опыт, уменьшив необходимость в дополнительных вопросах.
Производительность и масштабируемость: Оцените производительность и масштабируемость выбранного вами метода. Пользовательские сущности и сложные конфигурации часто требуют большей вычислительной мощности и могут повлиять на время выполнения ответ.
Простота обслуживание: подумайте о простоте обслуживания и обновления ваших сущностей. Предварительно созданные сущности проще в управлении, в то время как пользовательские сущности требуют постоянной корректировки по мере развития вашего приложения.
Выбирайте между стандартным NLU, Azure CLU или динамическое построение цепочки
В Copilot Studio тема или запуск действия можно осуществить, используя стандартную модель NLU, объединив или переопределив ее с помощью пользовательской модели Azure CLU или полностью заменив модель NLU на динамическое построение цепочки, модель на основе большой языковой модели GPT.
Стандартная модель NLU | Пользовательская модель Azure CLU | Динамическое построение цепочки | |
---|---|---|---|
Профи | Стандартная, готовая модель, которая поставляется предварительно обученной и содержит множество предопределенных типов сущностей. Настройка выполняется путем добавления триггерных фраз и пользовательских сущностей (закрытых списков со значениями и синонимами или регулярных выражений). |
Поддерживает больше языков с собственными моделями. Поддерживает настройку модели запуска намерений для лучшего распознавания намерений или для удовлетворения конкретных отраслевых требований. Позволяет извлекать сложные сущности (например, одного типа). Извлечение сущностей также может использовать Copilot Studio стандартный NLU. |
Использует большой GPT языковая модель и предварительно обучен на более широком спектре данных. Может обрабатывать несколько намерений и объединять темы и/или плагины в цепочку. Автоматически генерирует вопросы для отсутствующих входных данных и отвечает на сложные сущности и вопросы из контекста разговора. Конфигурация выполняется путем описания тем, действий плагина, входов и выходов. |
Кон | Распознавание одного намерения на запрос. Продлевать нельзя. Вы не можете изменить поведение модели или настроить ее более точно. Предоставляется как есть. Заполнение слотов несколькими сущностями одного типа в одном запросе требует устранения неоднозначности для каждой (например, из городов и в города). |
Распознавание одного намерения на запрос. Настройка выполняется в Azure за дополнительную плату. Имеет свои собственные ограничения по обслуживанию, которые необходимо оценить. Намерения Azure CLU и Copilot Studio Темы должны быть тщательно синхронизированы. |
Поскольку это генеративная функция ИИ, скорость сжигания лицензий на сообщения выше, чем при обычном срабатывании тема. |
Триггерные фразы и заполнение слотов
При разработке интеллектуальных рабочих нагрузок приложений используйте собственные возможности для улучшения распознавания намерений и оптимизации общения. Начните с определения фраз-триггеров тема из существующих баз данных часто задаваемых вопросов и стенограмм чатов, чтобы убедиться, что ожидаемые фразы являются релевантными и точными. Подумайте, как вы будете использовать сущности; например, будете ли вы использовать регулярные выражения для поиска идентификаторов заказов, готовые сущности для электронных писем или закрытые списки для типов операций с синонимами. Также спланируйте, как вы будете тестировать триггеры тема с помощью образцов фраз, чтобы проверить и улучшить точность ваших процессов распознавания намерений и извлечения сущностей. Узнайте больше в Вопросы развертывания и тестирования.
Фразы-триггеры
Триггерные фразы тренируют модель NLU вашего второго пилота. Они помогают второму пилоту распознавать и точно реагировать на высказывания пользователя, определяя конкретные фразы, которые запускают определенные темы. Правильная настройка этих триггерных фраз гарантирует, что второй пилот сможет правильно определить намерения пользователя и отреагировать соответствующим образом. Если второй пилот не уверен, какой тема следует запустить, он может предложить до трех потенциальных кандидатов тема (совпадение нескольких тем системная тема) или вернуться к ответ по умолчанию, если тема не определен. Этот механизм помогает поддерживать ход разговора и гарантирует, что второй пилот сможет эффективно обрабатывать широкий спектр пользовательских данных.
Извлечение сущностей и заполнение слотов
Извлечение сущностей и заполнение слотов являются важными компонентами в формировании эффективных вторых пилотов. Эти процессы позволяют второму пилоту эффективно получать и использовать информацию, выявляя и извлекая соответствующие сведения из запросов пользователей.
Извлечение сущности включает в себя анализ введенных пользователем данных для определения конкретных фрагментов информации. Например, в запросе «Я хотел бы заказать три большие синие футболки» модель NLU второго пилота должна извлечь следующие сущности:
- Количество: 3
- Цвет: Синий
- Размер: Большой
- Тип товара: Футболка
Заполнение слотов — это процесс использования этих извлеченных сущностей для заполнения необходимой информации для данной задачи. В этом примере второй пилот распознает тема как приказ и заполняет требуемые слоты извлеченными сущностями. Второй пилот может понять запрос пользователя, не задавая дополнительных вопросов, что оптимизирует взаимодействие.
Извлечение сущностей и заполнение слотов позволяют вторым пилотам эффективнее обрабатывать сложные запросы, предоставляя точные и контекстно-релевантные ответы и улучшая взаимодействие с пользователем.
Подробнее:
Интеграция Microsoft Copilot Studio с Azure CLU
Интеграция модели CLU со вторым пилотом может значительно расширить его возможности. Copilot Studio Эта интеграция включает в себя намерения сопоставление Azure CLU по темам Copilot Studio , что позволяет второму пилоту более точно понимать и реагировать на намерения пользователя. Кроме того, Copilot Studio предварительно созданные сущности можно использовать вместе с сущностями Azure CLU, обеспечивая надежную структуру для извлечения сущностей.
При рассмотрении этой интеграции важно оценить, требуется ли Azure CLU для рабочей нагрузки вашего интеллектуального приложения. Например, Azure CLU поддерживает больше языков, отраслевые словари и сложное извлечение сущностей, что может быть важно для вашего приложения. Извлечение пользовательских сущностей с помощью Azure CLU также может включать тихое или «удачное» заполнение слотов, что позволяет второму пилоту обрабатывать такие сценарии, как идентификация городов отправления и назначения в одной фразе, не задавая дополнительных вопросов.
Другим важным аспектом является обеспечение соответствия квот и ограничений службы Azure CLU потребностям вашего второго пилота. Например, если вы ожидаете менее 1000 вызовов, требующих распознавания намерений, в минуту, вы можете настроить Azure CLU с использованием уровня S. Такая конфигурация гарантирует, что ваш второй пилот сможет справиться с ожидаемой рабочей нагрузкой, не превышая лимиты обслуживания и не неся непредвиденных расходов.
Подробнее:
Соображения относительно структур тема
Эффективное структурирование тем важно для создания естественных и плавных бесед. Темы — это отдельные пути разговора, которые при объединении позволяют пользователям беспрепятственно взаимодействовать со вторым пилотом. Вот некоторые ключевые соображения по проектированию структур тема:
Темы, основанные на триггерах: эти темы активируются на основе высказываний пользователя и служат точками входа. Определите четкие фразы-триггеры для этих тем. Если триггерные фразы пересекаются в нескольких темах, рассмотрите возможность внедрения универсального тема, который может перенаправлять на соответствующий тема после уточняющих вопросов. При извлечении сущностей и заполнении слотов эти уточняющие вопросы можно пропустить, если необходимая информация уже предоставлена.
Темы, основанные на перенаправлении: эти темы запускаются действиями, действиями или событиями перенаправления и могут вызываться несколькими другими темами. Они должны быть спроектированы так, чтобы быть многоразовыми и модульными, с входными и выходными переменными для облегчения бесшовной интеграции в различные пути общения.
Темы с двойным запуском: некоторые темы могут быть запущены либо посредством распознавания намерений, либо посредством явного перенаправления. Такая гибкость позволяет вести более динамичное и продуктивное общение.
Повышение интерактивности и откат: создавайте резервные темы для ситуаций, когда запрос пользователя не вызывает совпадений тема. Эти темы могут содержать общие ответы или предлагать соответствующие темы для поддержания разговора.
Подход к проектированию:
Пользовательские темы для ключевых сценариев: Разработайте несколько пользовательских тем для ключевых сценариев с соответствующими триггерными фразами и перенаправлениями. Используйте родительско-дочернюю структуру тема для управления сложными взаимодействиями. Для нераспознанных намерений используйте генеративные ответы и резервные механизмы.
Темы для устранения неоднозначности: Планируйте использовать темы для устранения неоднозначности для операций, требующих уточняющих вопросов. Например, для операций с учетными записями пользователей может потребоваться разъяснение типа операции (например, создание, разблокировка, приостановка) и задействованной системы (например, SAP, ServiceNow, Microsoft).
Избегание дублирования: чтобы избежать дублирования контента, создавайте повторно используемые темы для диалоговых путей, которые необходимо повторить. Эти повторно используемые темы можно вызывать с помощью родительский элемент тема, и после завершения беседа может возобновиться по логике родительский элемент тема's.
Подробнее:
Обработка нераспознанных намерений
Эффективное управление нераспознанными намерениями обеспечивает бесперебойную работу пользователя. Нераспознанные намерения возникают, когда второй пилот не понимает высказывание пользователя и не имеет достаточной уверенности, чтобы активировать существующее тема. Вот несколько советов по решению подобных ситуаций:
Управление нераспознанными намерениями: Сначала направьте нераспознанные намерения в Conversational boosting системная тема, который ищет ответы на общедоступных веб-сайтах и корпоративных ресурсах, таких как SharePoint сайты. Если не найдено никакой соответствующей информации, система может вернуться к интерфейсу, подобному ChatGPT, используя пользовательскую системную подсказку с моделью Azure OpenAI GPT-4. Такой подход гарантирует, что пользователи получат полезные ответы даже в случае незапланированных запросов.
Интеграция с внешними системами: подумайте, не используете ли вы интеграцию с внешними системами в качестве части своей резервной стратегии. Например, интеграция с моделью Azure OpenAI GPT-4 с использованием HTTP-запросов для обеспечения соответствующего интерфейса, похожего на ChatGPT.
Мониторинг использования резервного варианта: регулярно проверяйте процент разговоров, в которых используется резервный вариант. Используйте эти идеи для обогащения существующих тем или создания новых, гарантируя, что второй пилот постоянно улучшает свое понимание и возможности ответ.
резервная тема и генеративные ответы: Запасной вариант системная тема срабатывает, когда не найдено ни одного соответствующего тема. Если включены Генеративные ответы , то сначала срабатывает усиление разговора тема при неизвестных событиях намерения, а затем резервная тема по мере необходимости. Такой многоуровневый подход помогает эффективно управлять нераспознанными намерениями.
Используйте усиление разговорной речи и откат: используйте Генеративные ответы для поиска в различных источниках данных или интеграции с другими системами, такими как Azure Cognitive Service for Language. Этот сервис может обрабатывать большие объемы пар «вопрос-ответ» и включает модель чата для случайных вопросов.
Основные сценарии и пользовательские темы: убедитесь, что основные сценарии и темы четко определены и рассматриваются с помощью пользовательских тем. Четко определите результаты обсуждения этих тем, чтобы поддерживать структурированный и эффективный ход беседы.
Локализация и языки
При создании второго пилота учитывайте языки и рынки, которые должна поддерживать рабочая нагрузка вашего интеллектуального приложения. Локализация и языковая поддержка являются важнейшими факторами, гарантирующими, что рабочая нагрузка вашего интеллектуального приложения будет соответствовать потребностям различных пользователей. Вот несколько предлагаемых подходов:
Один второй пилот на каждый язык: этот подход подразумевает создание отдельного второго пилота для каждого языка. Он гарантирует, что каждый второй пилот полностью оптимизирован для своего конкретного языка; однако поддержка нескольких вторых пилотов может потребовать больших ресурсов.
Один второй пилот для нескольких языков (настроенные переводы): при таком подходе один второй пилот поддерживает несколько языков, а переводы предоставляются как часть конфигурации второго пилота. Такой подход требует обновления переводов каждый раз при обновлении второго пилота или добавлении нового контента. Он обеспечивает баланс между эффективностью использования ресурсов и языковой поддержкой, но требует тщательного управления обновлениями переводов.
Один второй пилот для нескольких языков (переводы в реальном времени): этот метод использует релейного второго пилота для обеспечения переводов в реальном времени во время выполнения. Это позволяет быстро внедрять больше языков и снижает необходимость в частом обновлении переводов. Однако он вводит зависимость от Relay Copilot и перевода в реальном времени слой, например Azure Service Copilot и Azure Cognitive Services Translator.
Основные соображения:
Языки и рынки: Языки и рынки, которые должен поддерживать ваш второй пилот, влияют на вашу стратегию локализации.
Одно- или многоязычный второй пилот: Решите, следует ли разрабатывать одного второго пилота, поддерживающего несколько языков, или отдельных вторых пилотов для каждого языка. Это решение зависит от таких факторов, как доступность ресурсов, возможности обслуживание и сложность используемых языков.
Время перевода: подумайте, следует ли задавать переводы на этапе конфигурации или предоставлять их в режиме реального времени во время выполнения. Настроенные переводы обеспечивают стабильность и контроль, а переводы в реальном времени — гибкость и быстрое развертывание.
Подробнее: