Когда еще один плодотворный год подходит к концу, хочется оглянуться назад, подвести итоги и показать, что мы смогли сделать за это время. Библиотеке #DeepPavlov, на минуточку, уже два года, и мы рады, что наше сообщество с каждым днем растет.
За год работы над библиотекой мы достигли:
- Скачивания библиотеки возросли на треть по сравнению с прошлым годом. Сейчас у DeepPavlov более 100 тысяч установок и более 10 тысяч установок контейнеров.
- Увеличилось количество коммерческих решений за счет state-of-art технологий, реализованных в DeepPavlov, в разных отраслях от ритейла до промышленности.
- Вышел первый релиз DeepPavlov Agent.
- Количество активных участников сообщества возросло в 5 раз.
- Наша команда студентов и аспирантов была отобрана для участия в Alexa Prize Socialbot Grand Challenge 3.
- Библиотека стала призером конкурса от компании Google «Powered by TensorFlow Challenge».
Что же помогло достичь таких результатов и почему DeepPavlov — это лучший открытый источник для построения разговорного AI? Расскажем в нашей статье.
#DeepPavlov нацелен на результат
В последнее время диалоговые системы стали стандартом взаимодействия человека с машиной. Чат-боты нашли применение практически во всех отраслях, упрощая взаимодействие между людьми и компьютерами. Они легко интегрируются в веб-сайты, платформы обмена сообщениями и устройства. Многие компании на сегодняшний день предпочитают делегировать рутинные задачи диалоговым системам, способным обрабатывать несколько пользовательских запросов одновременно, экономя затраты на рабочую силу.
Однако зачастую компании не знают, с чего начать при разработке бота для удовлетворения потребностей своего бизнеса. Исторически же чат-боты можно разделить на две большие группы: на основе правил и на основе данных. Первый тип опирается на предопределенные команды и шаблоны. Каждая из этих команд должна быть написана разработчиком чат-бота с использованием регулярных выражений и анализа текстовых данных. Напротив, управляемые данными чат-боты полагаются на модели машинного обучения, предварительно обученные на данных диалога.
Библиотека с открытым исходным кодом — DeepPavlov предлагает бесплатное и простое в использовании решение для построения диалоговых систем. DeepPavlov поставляется с несколькими предобученными компонентами для решения проблем, связанных с обработкой естественного языка (NLP). DeepPavlov решает проблемы такие как: классификация текста, исправление опечаток, распознавание именованных сущностей, ответы на вопросы по базе знаний и многие другие. А установить DeepPavlov вы можете в одну строку, запустив:
pip install -q deeppavlov
*Фреймворк позволяет обучать и тестировать модели, а также настраивать их гиперпараметры. Библиотека поддерживает платформы Linux и Windows. Попробовать эту и другие модели можно в демо версии библиотеки .
В настоящее время современные результаты во многих задачах были достигнуты благодаря применению моделей на основе BERT. Команда DeepPavlov интегрировала BERT в три последующие задачи: классификация текста, распознавание именованных сущностей и ответы на вопросы. В результате мы добились существенных улучшений во всех этих задачах.
1. Модели BERT DeepPavlov
BERT для классификации текста
Модель классификации текста на основе BERT DeepPavlov служит, например, для решения проблемы обнаружения оскорблений. Модель включает в себя прогнозирование того, считается ли комментарий, опубликованный в ходе публичного обсуждения, оскорбительным для одного из участников. Для этого случая классификация осуществляется только по двум классам: оскорбление и не оскорбление.
Любая предварительно обученная модель может быть использована для вывода как через интерфейс командной строки (CLI), так и через Python. Перед использованием модели убедитесь, что все необходимые пакеты установлены с помощью команды:
python -m deeppavlov install insults_kaggle_bert
python -m deeppavlov interact insults_kaggle_bert -d
BERT для распознавания именованных сущностей
В дополнение к моделям классификации текста DeepPavlov содержит модель на основе BERT для распознавания именованных сущностей (NER). Это одна из наиболее распространенных задач в NLP и наиболее используемая модель нашей библиотеки. При этом NER имеет множество бизнес-приложений. Например, модель может извлечь важную информацию из резюме, чтобы облегчить работу специалистов по кадрам. Кроме того, NER может использоваться для идентификации соответствующих объектов в запросах клиентов, таких как спецификации продуктов, названия компаний или данные о филиалах компании.
Команда DeepPavlov обучила модель NER на англоязычном корпусе OntoNotes, который имеет 19 типов разметки, включая PER (человек), LOC (местоположение), ORG (организация) и многие другие. Чтобы взаимодействовать с необходимо установить ее командой:
python -m deeppavlov install ner_ontonotes_bert_mult
python -m deeppavlov interact ner_ontonotes_bert_mult [-d]
BERT для ответов на вопросы
Контекстный ответ на вопрос — это задача поиска ответа на вопрос по заданному контексту (например, параграф из Википедии), где ответ на каждый вопрос является сегментом контекста. Например, тройка контекста, вопроса и ответа ниже образует правильный триплет для задачи ответа на вопрос.
Презентация работы вопросно-ответной системы в демо.
Система ответов на вопросы может автоматизировать множество процессов в бизнесе. Например, это может помочь работодателям получить ответы на основе внутренней документации компании. Кроме того, модель поможет проверить способность учащихся понимать текст в процессе обучения. Однако, в последнее время задача ответа на вопросы, основанная на контексте, привлекла большое внимание ученых. Одним из основных переломных моментов в этой области стал выпуск Стэнфордского набора данных для ответов на вопросы (SQuAD). Набор данных SQuAD привел к появлению бесчисленных подходов к решению задачи вопросно-ответных систем. Одной из наиболее успешных является модель DeepPavlov BERT. Она превосходит все остальные и в настоящее время дает результаты, граничащие с человеческими характеристиками.
Чтобы использовать модель QA на основе BERT с DeepPavlov, необходимо:
python -m deeppavlov install squad_bert
python -m deeppavlov interact squad_bert -d
Больше моделей можно найти в документации. А если вам необходимы туториалы, по использованию компонент библиотеки, то ищите их в нашем официальном блоге.
2. DeepPavlov Agent — платформа для создания многозадачных чат-ботов
Сегодня существует несколько подходов к разработке диалоговых агентов. При разработке разговорных агентов в основном применяется модульная архитектура для целенаправленного диалога, при котором разворачивается сценарий. Однако, зачастую пользователю необходимо сочетать целенаправленный диалог, например, с другой функциональностью — ответами на вопросы или поиском информации, а также поддержанием беседы. Таким образом идеальный диалоговый агент — это персональный помощник, который объединяет в себе разные типы агентов, переключается между своими функциональностями и характерами, в зависимости от того, в какой задаче используется. При этом, агент должен накапливать информацию о своей сущности, подстраивать свои алгоритмы под конкретного пользователя. С другой стороны, он должен иметь возможность интегрироваться с внешними сервисами. Например, делать запросы во внешние базы данных, получать оттуда информацию, обрабатывать ее, выделять важное и передавать пользователю. Для решения этой задачи в октябре 2019 года вышел первый релиз DeepPavlov Agent 1.0 — платформы для создания многозадачных чат-ботов. Агент помогает разработчикам производственных чатботов организовать несколько NLP моделей в одном конвейере.
Подробнее о платформе и возможностях можно прочитать в документации.
3. Реализация DeepPavlov NLP SaaS
Чтобы упростить работу с предобученными NLP моделями из DeepPavlov, в сентябрь 2019 года был запущен SaaS сервис. DeepPavlov Cloud позволяет анализировать текст, а также хранить документы в облачном хранилище. Для использования моделей необходимо зарегистрироваться в нашем сервисе и получить токен в разделе Tokens личного кабинета. На данный момент сервис поддерживает несколько предобученных NLP моделей на русском языке и находится в стадии тестирования системы.
4. Участие в DSCT8 или система целенаправленного ведения диалога
Использование таких виртуальных помощников, как Amazon Alexa и Google Assistant, открыло возможности для разработки приложений, которые позволяют нам упростить выполнение многих повседневных задач, таких как заказ такси, бронирование столика в ресторане и многих других Для решения подобных задач используются целенаправленные диалоговые системы.
Оценка состояния диалога (DST — Dialogue State Traking) является основным компонентом в таких диалоговых системах. DST отвечает за перевод высказываний на человеческом языке в семантическое представление языка, в частности, за извлечение намерений (intets) и пар слот-значение (slot, value), соответствующих цели пользователя.
В ходе участия команды в DSTC8 была разработана модель GOLOMB (GOaL-Oriented Multi-task BERT-based dialogue state tracker) — целеориентированная мультизадачная модель на базе BERT для отслеживания состояния диалога. Для предсказания состояния диалога модель решает несколько классификационных задач и задачу поиска подстроки. В скором времени данная модель появится библиотеке DeepPavlov. А пока можно ознакомиться с полной статьей по ссылке.
Презентация постера на конференции AAAI-20 в Нью-Йорке (США).
5. Участие в Alexa Prize Socialbot Grand Challenge
Команда DeepPavlov, состоящая из студентов и аспирантов МФТИ, прошла отбор на участие в конкурсе Alexa Prize Socialbot Grand Challenge 3 – международный конкурс, посвященный развитию технологий разговорного ИИ. Целью конкурса является создание бота, который сможет свободно общаться с людьми на актуальные темы. Из 375 заявок комитет Alexa Prize отобрал 10 финалистов, в том числе нашу команду — DREAM. На данный момент команда перешла четвертьфинал конкурса и борется за выход в полуфинал. Следить за новостями и болеть за наших можно на официальной странице, и не забывайте подписываться на твиттер.
Состав команды Dream Team.
6. Участие в Powered by TF Challenge
Как было сказано ранее, DeepPavlov поставляется с несколькими предобученными компонентами, работающими на TensorFlow и Keras. И в этом году команда DeepPavlov стала призером конкурса от компании Google «Powered by TF Challenge» на лучший проект в области машинного обучения, который использует библиотеку TensorFlow. Из более 600 участников конкурса Google выбрал пять лучших проектов, одним из них стала библиотека DeepPavlov. Проект был представлен в официальном блоге TensorFlow. Стоит отметить, что гибкость TensorFlow позволяет нам создавать любую архитектуру нейронной сети, о которой мы только можем подумать. И, в частности, мы используем TensorFlow для бесшовной интеграции с моделями на основе BERT.
7. Развитие сообщества
Глобальная цель нашего проекта — дать возможность разработчикам и исследователям в области разговорного искусственного интеллекта использовать самые современные инструменты для создания диалоговых систем нового поколения, а также стать значимой на международном уровне площадкой в сфере AI для обмена опытом и обучению state-of-art технологиям.
Для достижения этой цели сотрудники DeepPavlov проводят бесплатные семестровые обучающие курсы для студентов и сотрудников, занимающихся Computer Science. Один из них – курс: «Глубокое обучение в обработке естественного языка»», включающий в себя семинары и воркшопы. Занятия включают такие темы как: построение диалоговых систем, способы оценки диалоговой системы с возможностью генерации ответа, различные фреймворки диалоговых систем, способы оценки величины вознаграждения за счет оптимизации диалоговой политики, типы запросов пользователей, рассмотрение возможности моделирования вызовов call-центра. В 2020 году мы запустили новый набор и уже 900 студентов и сотрудников проходят обучения на бесплатной основе. Следить за новостями и набором на этот и другие курсы можно на нашем сайте. А если вы пропустили курсы, но хотите научится большему — то на нашем youtube канале вы всегда можно найти их в записи.
Сегодня в библиотеке DeepPavlov предоставлены готовые для внедрения AI компоненты для работы с текстом, которые используются в 92х странах мира. По состоянию на февраль 2020 года количество скачиваний библиотеки достигло 100 000 тысяч, и динамика установок набирает обороты. Также, более 30 компаний в России уже внедрили и успешно используют решения на основе DeepPavlov. Это показывает, что подобного рода решения очень востребованы во всем мире.
Что дальше?
Мы рады разделить с вами наши успехи, поэтому подготовили мероприятие для нашего сообщества. Мы хотим поделиться опытом и знаниями из реальных производственных проектов о том, как создавать лучших помощников ИИ. Присоединяйтесь к встрече пользователей и разработчиков открытой библиотеки DeepPavlov, которая состоится 28 феврлая, чтобы поговорить об искусственном интеллекте и его применении, а также встретиться с другими членами сообщества. Мероприятие пройдет в рамках недели ИИ с 25 по 28 февраля. Ждем всех, кто использует DeepPavlov или хочет познакомиться поближе с нашей технологией.
Всю информацию по спикерам и программе можно найти на сайте, для посещения мероприятия обязательна регистрация.
Присоединяйтесь: DeepPavlov 2 года
Индустрия ИИ будет продолжать развиваться, и мы верим, что DeepPavlov станет передовой технологией, которую каждый разработчик будет использовать для понимания естественного языка. В следующем году мы будем работать над тем, чтобы удвоить наше сообщество, увеличить инструменты с открытым исходным кодом и улучшить исследования в области машинного обучения. И не забывайте, что у DeepPavlov есть форум – задавайте свои вопросы относительно библиотеки и моделей. Спасибо за внимание!
Автор: Moryshka