Как участники интенсива по ML тренируют нейросети понимать суть текста
С 4 по 16 ноября 2019 года Яндекс и Университет «Сириус» проводят практический интенсив для студентов-разработчиков в Сочи. За две недели участники должны воспроизвести результаты последних исследований в сфере машинного обучения: например, по составлению краткого содержания длинных текстов. Академия Яндекса поговорила с командой участников и их куратором Вадимом Филипповичем о задачах, которые предстоит решить во время смены.
Расскажите о том, как собралась команда. Какой у вас был опыт до этого?
Саша Илларионов: Нам повезло, что у всей команды есть живой интерес и опыт в обработке естественного языка (Natural Language Processing, NLP). Моё путешествие в машинное обучение началось с соревнования по определению дубликатов вопросов на Kaggle. С тех пор хотелось узнавать и делать больше и больше. Мне удалось съездить на первый студенческий интенсив от Яндекса и «Сириуса» вместе с Пашей. Тогда мы занимались анализом эмоциональной окраски рецензий, и в этот раз решили не упускать возможность поработать вместе снова.
Николай Шаталов: Я студент первого курса магистратуры факультета вычислительной математики и кибернетики в МГУ. Мой научный руководитель — Константин Вячеславович Воронцов, человек-легенда в машинном обучении, благодаря которому я углубился в задачи обработки естественного языка. С тех пор стараюсь я расширять свой кругозор и держаться в курсе передовых разработок, а интенсив — благоприятная среда для того, чтобы их улучшить.
Паша Факанов: Текстами я занимаюсь со второго курса, когда пошёл в Финтех Школу Тинькофф и параллельно изучать дополнительные курсы по машинному обучению. Потом стажировался в Тинькофф Банке и вёл несколько университетских проектов, где углубился в обработку естественного языка. Этим летом я углубил свою экспертизу в NLP-отделе X5 Retail Group, где занимался диалоговыми системами и разрабатывал чат-бота.
Как вы выбирали тему? Какой результат хотите воспроизвести на смене?
Вадим Филиппович: Придумывая тему для смены я просматривал arXiv — сайт, на котором публикуются самые свежие научные статьи. Отобрал около ста новых публикаций и остановился на исследовании по Levenshtein Transformer. Его опубликовали пару месяцев назад, и потому будет интересно стать первыми в проверке его качества на русском языке.
Саша: Архитектура Levenshtein Transformer применяется во многих задачах, связанных с текстами: машинном переводе, автоматической редактуре и кратком пересказе статей. На смене мы займёмся применением модели к пониманию сути текстов, выделению ключевых моментов в них. Такая функциональность востребована в местах, где люди «не успевают» за потоком входящей информации: банках, биржах и страховых компаниях.
Особенность нейросетей-«трансформеров» в том, что они находят связи и отношения между словами в тексте, которые могут находится далеко друг от друга, и сохраняют контекст. Это позволяет им улавливать смысл слов и синтезировать их в общий класс: например, если в статье говорится о бобслее, хоккее и футболе, результатом может стать выражение «виды спорта».
В чём преимущество именно этой архитектуры перед другими?
Вадим: Она отличается от обычной Baseline Transformer более высокой скоростью работы — ввиду того, что модель сама учится выкидывать лишние и вставлять нужные слова для поиска оптимального решения. Кроме того, авторы статьи утверждают, что время работы Levenshtein Transformer ниже примерно в пять раз. Мне этот результат кажется неправдоподобным, но даже если нам удастся ускорить работу нейросети в 2–3 раза, то это будет очень весомый результат.
На каких данных вы обучаете нейросеть?
Паша: На датасете из статей и их заголовков, собранном на основе текстов «РИА Новости». Заголовки при этом используются в качестве проверки, как краткий конспект текста — объём самих новостей небольшой, и заголовки чаще всего хорошо соотносятся с их сутью. Мы не стали брать данные из Дзена или других медиа, потому что там эта параллель не так очевидна.
Какие подводные камни могут возникнуть при воспроизведении чужого исследования?
Саша: Нам может просто не хватить вычислительных мощностей — авторы статьи используют ресурсы в 8 раз больше, чем те, которые есть в «Сириусе». Но кроме них есть надежда на сервера Школы анализа данных. Ещё мы столкнулись со смысловыми пропусками в статье: зато у нас есть возможность самим её дополнить или связаться с авторами.
Как вы разделяете обязанности между собой?
Саша: Мы стараемся играть на своих сильных сторонах. Я координирую работу команды и занимаюсь превращением нашей модели в продукт: чтобы другие люди смогли применять её для своих практических задач. У Паши широкий кругозор, и поэтому он погружается в исследования и отвечает за научное обоснование наших экспериментов. А Коля внимательно подготавливает инфраструктуру для обучения, потому что ошибки в нём дорого стоят.
Чего вы хотите добиться за смену?
Вадим: Мы поставили перед собой амбициозную задачу: не только реплицировать оригинальную статью, но и внести улучшения в ее архитектуру — для использования в продакшн-системах. Планируем реализовать много экспериментов: как удачных, так и не очень!
Саша: Обойти все подводные камни и создать работающий продукт: сделать удобный интерфейс для работы с моделью и презентовать MVP. А после интенсива хотим продолжить развивать этот проект.