Введение в диалоговую систему и инженерную практику OPPO Xiaobu Assistant

искусственный интеллект
Введение в диалоговую систему и инженерную практику OPPO Xiaobu Assistant

Не так давно количество ежемесячных активных пользователей помощника искусственного интеллекта OPPO «Xiaobu Assistant» превысило 100 миллионов, став первым голосовым помощником мобильного телефона с более чем 100 миллионами активных пользователей в месяц в Китае.

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

1. Значение отрасли

1.1 Предисловие

Диалоговые системы — это технология с почти 30-летней историей исследований, представляющая будущее взаимодействия человека с компьютером. За последние десять лет, благодаря поэтапным прорывам в области голосовой связи и NLP, а также зрелости промышленных приложений, ценность для пользователя и масштабы отрасли быстро выросли.

С точки зрения сцены систему диалогов можно условно разделить на три категории.

  • Тип задачи: ответ точный, поле ограничено, цель — удовлетворить пользователя простейшим взаимодействием, например установкой будильника.

图片1.png

  • Тип вопроса и ответа: ответ широкий, область ограничена, и цель состоит в том, чтобы удовлетворить пользователя простейшим взаимодействием, таким как энциклопедия.

图片2.png

  • Маленький болтун: ответы широкие, открытые и нацелены на ход разговора.

图片3.png

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

1.2 Умный помощник

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

Британская исследовательская компания Juniper Research прогнозирует, что к 2023 году количество устройств, оснащенных умными помощниками, увеличится с 2,5 миллиардов в конце 2018 года до 8 миллиардов.

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

Интеллектуальные помощники создают три уровня ценности для пользователя.

  1. эффективный

  2. личность

  3. эмоция

图片4.png

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

Xiaobu Assistant — это интеллектуальный помощник OPPO, охватывающий все виды терминальных устройств компании и постоянно добавляющий новые входы, охватывающий множество вертикальных доменов, основанных на задачах, вопросах и ответах и ​​чатах.

图片5.png

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

2. Структура отрасли

2.1 Обзор

Во-первых, представлена ​​типовая архитектура диалоговой системы. В академических кругах существует два основных типа диалоговых систем: Pipeline и E2E. Pipeline широко используется в промышленности, а E2E все еще находится на стадии исследования.

Модульная архитектура конвейера

图片6.png

ASR (автоматическое распознавание речи)

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

NLU (понимание естественного языка)

Отвечает за представление естественного языка в структурированные данные, которые могут обрабатывать компьютеры. Принимать текстовый ввод и выводить структурированную тройку Domain (поле) + Intent (намерение) + Slot (слот). Семантический анализ в основном выполняется посредством сегментации слов, маркировки частей речи, распознавания именованных сущностей, синтаксического анализа и разрешения ссылок.

DM (Диалоговое управление)

Отвечает за контроль всего процесса диалога. Получите выходные данные NLU, сохраните некоторое состояние контекста и стратегию диалога и выведите, какие действия следует выполнить, например, запросить у пользователя дополнительную информацию для получения необходимой информации. DM является основной частью диалоговой системы и имеет следующие два важных модуля: отслеживание состояния диалога (далее именуемое DST) и политика диалога (далее именуемое DP). DST записывает состояние T-1 или даже T-N и состояние текущего времени T и определяет текущее состояние сеанса в сочетании с контекстом; DP решает, какое действие выполнить в соответствии с состоянием сеанса и конкретными задачами.

ASR и NLU определяют нижний предел голосового взаимодействия, а DM определяет верхний предел голосового взаимодействия.

NLG (генерация естественного языка)

Содержимое ответа генерируется на основе действий системы, выводимых DM. Как правило, существуют методы, основанные на шаблонах правил, и методы, основанные на глубоком обучении.

TTS (преобразование текста в речь)

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

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

Сквозная архитектура E2E

В последние годы, с развитием сквозных нейронных генеративных моделей, для диалоговых систем были созданы сквозные обучаемые фреймворки. Этот тип архитектуры надеется обучить общее отношение отображения от ввода естественного языка на стороне пользователя к выводу на естественном языке на стороне машины (то есть слияние NLU, DM и NLG в виде модуля), который имеет характеристики сильного обобщения и миграции. возможности, нарушая традиционную конвейерную архитектуру, изоляцию между модулями. Однако у сквозной модели высокие требования к количеству и качеству данных, эффект неуправляемый, недостаточно четкое моделирование таких процессов, как заполнение слотов и вызовы API. все еще исследуется.

Далее представлены типовые отраслевые реализации различных типов диалоговых систем.

2.2 Microsoft XiaoIce: диалоговая система чата

Microsoft XiaoIce — это социальный чат-бот для открытого чата с функцией «EQ». Эффект от чат-ботов обычно оценивается по показателю CPS (раундов диалога за сессию): чем больше CPS, тем лучше способность чат-бота участвовать в разговорах. Средний CPS XiaoIce насчитывает 23 раунда (данные на апрель 2017 года).

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

图片7.png

уровень взаимодействия с пользователем

Этот уровень соединяет XiaoIce с популярными чат-платформами (такими как WeChat, QQ) и общается с пользователями в двух режимах: полнодуплексном режиме и режиме пошагового разговора. Этот уровень также включает в себя набор компонентов для обработки пользовательского ввода и ответов XiaoIce, таких как распознавание и синтез речи, понимание изображений и нормализация текста.

Уровень механизма диалога

Состоит из менеджера разговоров, модуля расчета эмпатии, основного чата и навыков общения. Диалоговый менеджер состоит из DST и DP. Расчет эмпатии использует ввод данных, таких как пользовательские данные и дизайн персонажа XiaoIce, и вычисляет функции как ввод DM и навыков. Светская беседа и навыки объединяют две разные схемы, генеративную и извлекающую.

слой данных

Хранит собранные разговорные данные (текстовые пары или пары текст-изображение), неразговорные данные и графики знаний для основных разговоров и навыков, а также портреты XiaoIce и всех зарегистрированных пользователей.

Для получения соответствующей информации см.:АР Вест V.org/PDF/1812.08…

2.3 Робот Xiaomi: диалоговая система вопросов и ответов

Xiaomi Robot представляет собой классическую конвейерную архитектуру.Поскольку сценарии применения роботов обслуживания клиентов представляют собой все текстовые взаимодействия на веб-страницах, модули ASR и TTS не задействованы.

Он добился доменизации и платформизации и поддерживает вывод PaaS и SaaS для экосистемы Ali, торговой экосистемы и корпоративной экосистемы. Модульность всего управления диалогами и модуляризация процессов, а также создание системы с параллельной архитектурой с подключаемыми алгоритмами и бизнес-модулями.

图片8.png

Для получения соответствующей информации см.:zhuanlan.zhihu.com/p/33596423

2.4 Умные помощники, такие как Dumi, Xiaoai и Alexa

Они в основном основаны на задачах, а также включают чат и вопросы и ответы.Dumi и Xiaoai основаны на классической структуре конвейера.Ниже приводится краткое введение в Xiaoai в качестве примера.

Немного любви

1. Многоканальный отзыв управления диалогами, каждый вертикальный домен имеет полный NLU и действие

2. Полное вертикальное распределение трафика, сокращение трафика с помощью модели прогнозирования намерений

3. Политика центрального управляющего модуля DM используется для выбора намерения вернуть результат.

图片9.png

2.5 Решение с открытым исходным кодом: rasa

rasa основан на конвейерной архитектуре

1. Интерпретатор берет на себя ответственность NLU, Tracker+Policy+Action берет на себя ответственность DM

2. Модульная конструкция, особенно процесс интерпретатора можно настроить

3. Максимально измененная изоляция действий, которую можно внедрить во внешние серверы

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

5. Rasax предоставляет решения для разработки, основанные на диалогах, платформы для оценки, аннотирования и тестирования.

图片10.png

3. Сяобу ассистент инженерной практики

3.1 Дизайн и эволюция архитектуры диалоговой системы

Общий уровень системы OPPO Xiaobu Assistant выглядит следующим образом:

图片11.png

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

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

1. Улучшить охват навыками и распознавание намерений по навыкам

2. Майнинг для повышения удовлетворенности навыками, выдвижения на первый план развития навыков

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

Этап 1: Быстрая вертикальная итерация

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

图片12.png

Принципы дизайна таковы:

1. Закон Конвея: [Вертикальный домен (алгоритм + инжиниринг)], бизнес делится в соответствии с функциональной командой, каждый сервер вертикального домена делится на алгоритмы и проекты, и на основе этого делятся сервисы, отвечающие за полное управление диалогом и семантическое понимание.

2. Низкая связанность: проектирование между вертикальными доменами не связано.В дополнение к решению глобальной сортировки также не связано NLU каждого вертикального домена.

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

Фаза 2: Наращивание общественного потенциала и вертикальная оптимизация

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

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

Текущий компонент управления диалогами постепенно отделяет конструкцию.

图片13.png

Принципы дизайна таковы:

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

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

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

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

图片14.png

图片15.png

3.2 Диалоговое окно

В прежних диалоговых системах наиболее часто итерируемыми бизнес-сервисами были DM и NLU, которые реализовывали логику диалога и семантическое понимание соответственно.

Чтобы решить общие проблемы исследований и разработок бизнес-услуг DM и исследований и разработок услуг NLU, абстрагируются два набора фреймворков: DM-фреймворк и DAG-фреймворк.

Кадр ДМ

Услуги DM Введите домен, намерение, слот и состояние диалога, выходные навыки, действие и новое состояние диалога.

Служба DM Xiaobu Assistant состоит из двух этапов:

1. На этапе управления многоканальным диалогом служба DM отвечает за полные возможности управления диалогом.

2. На этапе центрального управления диалогом за вывод действий отвечает служба DM, а управление диалогом возлагается на службу центрального управления верхнего уровня.

Чтобы решить общие проблемы двух этапов обслуживания бизнес-DM, анализ выглядит следующим образом:

1. Сходство бизнес-процессов относительно велико, и есть основа для унифицированных бизнес-процессов.

2. Повторное построение возможностей управления диалогом

3. Структура кода сильно отличается, что не способствует чтению новичками.

4. Каждая служба dm предоставляет sdk для вызова верхнего уровня, а интерфейс и протокол не могут управляться унифицированным и централизованным образом.

Среда разработки сервисов DM решает вышеуказанные проблемы, а принципы проектирования заключаются в следующем:

图片16.png

1. Примите идею многоуровневого дизайна, разделите бизнес-логику, уменьшите бизнес-связь и взаимное влияние

2. Используйте форму выражения Spring El + аннотацию для стандартизации стиля и удобочитаемости кода.

3. Инверсия зависимостей + принцип подстановки Лисков + интерфейсно-ориентированное программирование для решения реализации дифференцированной бизнес-логики на верхнем уровне каждого бизнеса.

图片16-1.png

структура группы обеспечения доступности баз данных

Построение NLU разбито на вертикальные домены, на начальном этапе для сборки прототипа использовался python, а сервис был реализован в виде java side car proxy.

Постепенно выявляются некоторые инженерные проблемы:

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

2. Команда гибкой итерации использует Python для реализации соответствующих возможностей, и есть определенные проблемы в производительности сервиса.

Чтобы реализовать повторное использование возможностей в области навыков nlu, улучшить мониторинг, повысить эффективность работы и поддержать быстрый запуск области навыков nlu, операторы многоуровневых осадков объединены в структуру DAG.

Структура иерархии операторов

图片17.png

Базовый уровень библиотеки классов отвечает за наращивание емкости нижнего уровня. Операторы верхнего уровня полагаются на нижележащий базовый уровень библиотеки классов для реализации. Бизнес-уровень использует структуру DAG для объединения операторов для построения топологии процесса, необходимой для быть выполнен (как показано на рисунке ниже) и быстро построить домен nlu.

图片18.png

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

1. Плоский звук снижен на 71,8%

2. Параллелизм с одним экземпляром увеличен в 50 раз.

3. Коэффициент повторного использования кода оператора с одним навыком 95,7%.

3.3 Практика оптимизации производительности

Xiaobu Assistant стремится к максимальному удобству работы с пользователем, и беглость является одним из наиболее важных аспектов.

Мы снимаем через высокоскоростные камеры, Xiaobu Assistant одновременно инициирует взаимодействие с аналогичными продуктами и, наконец, возвращает сравнение времени отображения результатов навыков, рассчитывает коэффициент выигрыша в соответствии с фактической долей онлайн-запросов, как основной показатель беглости.

Далее будет в основном описана инженерная практика оптимизации беглости.

анализ проблемы

1. Время выполнения сторонних ресурсов на сервере составляет наибольшую долю. Среди затрат времени на стороне сервера наибольшая доля приходится на время выполнения сторонних ресурсов, 80%+.

2. Распознавание речи на стороне сервера занимает второе место

3. Взаимодействия рендеринга на стороне клиента могут быть более краткими. Взаимодействие с клиентом по некоторым вертикальным навыкам может быть более кратким, а выполнение может быть более быстрым.

图片19.png

полное решение

1. Параллельно: предсказание, последовательное изменение и параллельное

2. Обрезка: быстрое и медленное наслоение, многоуровневое кэширование

3. Ускорение: самостоятельная сборка тремя сторонами, облачный VAD, упрощение взаимодействия, оптимизация исполнения

图片20.png

общее представление о прогнозе

Прогнозирование — это функция с высокой архитектурной сложностью, и объясняется практика Xiaobu Assistant.

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

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

图片21.png

Есть 2 стратегии

1. Стадия VAD выполняется параллельно с высокой точностью и низким выходом.

2. Стадия распознавания выполняется параллельно, с низкой точностью и высокой производительностью.

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

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

Есть 3 пути решения проблемы:

1. Статус восстановления каждого запроса прогноза

2. Отправить статус после завершения формального запроса

3. Преобразование в апатридов

Сценарий прогнозирования — статус отката для каждого запроса прогноза

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

1. Откат состояния диалога отменить

2. Диалоговое окно бизнес-логики

3. Состояние диалога запись запись

图片22.png

Сценарий прогнозирования — отправка статуса после завершения формального запроса

Трудности реализации:

1. Бизнес-логика навязчива, а содержание каждого дизайнерского бизнеса необходимо преобразовать для внедрения попытки, подтверждать и отменить

2. Запрос увеличивается, а внутренний запрос на запись увеличивается на 1/N. Обычно прогнозируемый запрос N относительно мал.

图片23.png

Прогнозный сценарий — модернизация до безгражданства

1. Сохранение состояния записи унифицировано в восходящем потоке, а чтение и запись состояния передаются через протокол запроса. Размер состояния диалога менее 1 КБ

2. Некоторые сервисы, которые не могут быть преобразованы в сервисы без сохранения состояния, будут доступны с помощью предсказания и суждения и вернут отказ.

图片24.png

Это решение в целом подходит для объема данных Xiaobu Assistant, архитектура проще и элегантнее, а производительность и удобство использования более дружественны.

прогнозируемая доходность

Некоторые навыки с более высокой вероятностью попадания достигают 70+%, а затраты времени снижаются на 60+%

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

4. Проблемы и перспективы

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

  • Алгоритмическое решение: оптимизация NLU от одного раунда до нескольких раундов, правила принятия решений диалога к моделям, стандартизация к персонализации

  • Сценарий продукта: несколько устройств, несколько входов, мультимодальность

В дальнейшем Xiaobu рассмотрит следующие направления:

  • Компоненты диалоговой системы химически разложены: масштабируемость на стороне облака, микросреда централизованного управления, изменения продукта алгоритма отклика компонента, доступность производительности управления публичной библиотекой компонента

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

  • Открытый протокол и SDK: предоставление точек расширения бизнеса внутри компании, концентрация усилий компании на создании технологического бренда Xiaobu Assistant; внешнее объединение платформ навыков для расширения экологии навыков