Технологии машинного обучения давно вышли за пределы научных лабораторий и стали частью повседневности: умными домами и приложениями для создания фейков уже никого не удивишь, а беспилотные автомобили еще не мейнстрим, но их количество в мире уже измеряется сотнями тысяч. На этом «празднике кремниевой жизни» технологии обработки языка выглядят скромно. Голосовые помощники и чат-боты стали популярным каналом для поиска информации и потребления контента, однако им по-прежнему далеко до живых собеседников. Алгоритмы не улавливают контекст, ошибаются в простых для человека вопросах, не способны создать осмысленный длинный текст, а на редких языках и вовсе недоступны. Почему обработка языка оказалась более сложной задачей для машинного обучения, чем распознавание и анализ изображений? Как вычислительная эпистемология может изменить подход к обучению нейросетей и вместе с тем наше будущее?
Фото: Максим Кимерлинг, Коммерсантъ
Трансформеры меняют мир
Проблемами в области анализа языка и синтеза текстов занимается общее направление машинного обучения и математической лингвистики — обработка естественного языка (Natural Language Processing, или NLP). И здесь за последние пять лет произошло много интересного. Пожалуй, самый важный год в новейшей истории NLP — 2017-й. В статье «Attention is All You Need» авторы предложили новую архитектуру нейронной сети под названием «трансформер». Как и рекуррентные нейронные сети, трансформеры предназначены для обработки последовательных входных данных, но в основе их архитектуры лежит принцип внимания. Он позволяет определять контекст для любой позиции во входной последовательности. Представим, что нам нужно перевести на английский язык предложение «мужчина не мог перейти мост, потому что он был разрушен». Нейросеть с механизмом внимания пословно пробегает по тексту и, когда доходит до местоимения «он», пытается понять, какое слово из предложения лучше всего с ним соотносится. По контексту сеть определяет, что вряд ли разрушен был «мужчина», и переводит «он» на английский как it, а не как he. Этот механизм существенно увеличил точность обработки текста.
С появлением трансформеров началась мировая гонка вычислительных мощностей. Если нейронная сеть OpenAI, созданная летом 2018 года, училась на дата-сете из нескольких гигабайтов текстов и имела 110 млн параметров, то GPT-3, представленная в 2020 году той же командой, уже обучалась на 600 Гб и содержала 175 млрд параметров.
Следующим важным шагом в обработке естественного языка стала модель BERT, разработанная Google, — так называемая маскированная языковая модель (masked language model). В основе BERT лежит очень простая, но в то же время глубокая идея: если раньше языковые модели учили продолжать текст по его началу, то BERT учится заполнять пропуски, глядя на контекст с обеих сторон. Принцип отдаленно напоминает то, как человек изучает иностранный язык.
Создание BERT показывает, что качество работы алгоритма зависит в том числе и от того, как именно мы обучаем модель. Если вместо последовательного обучения «скармливать» сети маскированные тексты, менять порядок слов и вбрасывать зашумленные данные, результат оказывается значительно лучше, чем у всех предшествующих моделей. Понимание того, что структура обучения влияет на качество, играет важную роль в дальнейшем развитии обработки естественных языков.
Языковые модели в повседневности
Сегодня модели могут решать крайне сложные задачи, и качество результатов очень высоко. Например, модель, обученная на дата-сете медицинских данных больных депрессией, может определять диагноз по записям расшифровки диалогов с психотерапевтом и даже предсказывать депрессию по постам в соцсетях.
Использование трансформеров в поисковых системах существенно улучшает ранжирование за счет анализа контекста и результатов выдачи по аналогичным запросам. Так, в «Яндекс.Поиске» с 2020 года используется технология YATI — Yet Another Transformer with Improvements. Алгоритм работает не только с заголовками, но и анализирует содержание, выделяет наиболее значимые фрагменты, учитывает порядок слов и прошлые оценки. Дополнительно накладывается «опечаточник», который, например, понимает, что пользователь, написавший в запросе «скучать фильм», скорее всего, хочет скачать фильм.
Уже сейчас возможности языковых моделей достаточны для качественного машинного перевода и генерации коротких текстов. В случае с машинным переводом успешнее всего работают гибридные подходы, сочетающие статистические и языковые модели. Статистическая модель разделяет предложение на отдельные слова и фразы, перебирает разные варианты перевода и предлагает наиболее вероятный вариант. Это позволяет переводить редкие слова и термины с высокой точностью, опираясь на статистическую информацию. Языковая модель, в свою очередь, анализирует массив текстов и учится находить в них закономерности, работая не с отдельными словами, а с предложениями. Механизм внимания учитывает ближайший контекст, в результате чего перевод получается более связным. Такая гибридная модель лежит, например, в основе работы «Яндекс.Переводчика». Текст пользователя отправляется одновременно двум системам — статистическому переводчику и языковой модели. Для сравнения результатов используется алгоритм Яндекса, основанный на методе обучения CatBoost — он оценивает оба варианта и выбирает лучший.
Осенью 2020 года британское издание The Guardian опубликовало у себя заметку, написанную при помощи GPT-3. Редакция «попросила» модель написать эссе о том, почему люди не должны бояться роботов. Модель сгенерировала восемь вариантов эссе, из которых редакторы собрали итоговый текст. Также недавно «Яндекс» обучил свою языковую модель генерировать тексты на русском языке и продолжать фразы с учетом выбранной пользователем тональности.
На языковых моделях построена работа всех современных голосовых помощников. Им приходится решать одновременно несколько задач, связанных с обработкой естественного языка: распознавать человеческую речь и превращать ее в текст, формулировать ответ на основе доступных данных и синтезировать голос. Причем все это должно происходить мгновенно, потреблять как можно меньше ресурсов устройства, а речь должна звучать естественно.
Успешный пример соединения и оптимизации нескольких алгоритмов — голосовой помощник «Яндекса» «Алиса». Взаимодействие с пользователем начинается с распознавания речи. Голосовая активация происходит по имени «Алиса». В основе лежит достаточно простой алгоритм, распознающий определенный набор звуков без подключения к интернету. Распознавание и синтез речи построены на двух моделях — акустической и языковой. Акустическая модель умеет определять, какому звуку какая фонема соответствует (фонема — минимальная смыслоразличительная единица языка, которая служит для различения и отождествления слов. Если заменить одну фонему на другую, то получится другое слово, например «том» и «дом»). Языковая корректирует результат, опираясь на свои знания о последовательностях фонем, словах и контексте. В результате «Алиса» понимает, что пользователь говорит: «Какое лекарство от насморка выбрать?» — даже если при этом у него заложен нос и невнятная речь. Следующим шагом алгоритмы анализируют и размечают полученный из запроса пользователя текст и генерируют ответ на основе массива данных и популярных сценариев. Задача синтеза речи тоже решается в несколько этапов: текст делится на фразы, подбирается интонация и проставляются ударения. Поэтому мы слышим плавную речь, которая не режет слух.
Тем не менее не стоит ждать, что в ближайшем будущем с помощью машинного обучения можно будет написать роман или получить полноценного цифрового собеседника. Нейросети пока не могут держать контекст на больших объемах текста и не умеют использовать ранее полученные знания для решения новых задач. В исследованиях это называется композиционным обобщением (compositional generalization) и является одной из ключевых задач в проблематике понимания семантики искусственным интеллектом.
Почему машине нужно так много данных, чтобы ответить на простые вопросы?
С 2017 года все изменения и прорывы в NLP в значительной степени зависят от объема вычислительных мощностей, и почти любая новость сводится к тому, что исследователь берет более сложную модель, подает ей больше данных и в результате модель работает лучше. Это приводит нас к интересному вопросу: «А правильно ли мы решаем задачу?».
Мы все еще имеем ограниченный объем контекста, который модель может поддерживать, а результаты зависят от того, на каком дата-сете и на каких задачах она обучалась. Мы можем получить алгоритм, который будет идеально справляться с тестом SuperGLUE (эталонный тест на понимание машиной естественного языка), но стоит уменьшить дата-сет или применить его к узкоспециальным данным без предварительной разметки — и качество восприятия упадет.
Алон Талмор из Алленовского института искусственного интеллекта в Тель-Авиве и его коллеги в своем исследовании показали, что модель, обученная решать сложные задачи, ошибается в ответах на простые вопросы, если у нее недостаточно данных. Например, плохо отвечает на вопрос: «Что больше — тихоходка или вирус?». В представлении модели «и то и другое маленькое». С одной стороны, с этим сложно не согласиться, с другой — есть более вопиющие примеры того, как структура обучающей выборки влияет на итоговое качество. Модель не может ответить, кто старше — человек, родившийся в 1995 или 1987 году. Эта проблема языковых моделей связана с тем, что у них нет знания семантики, есть только статистика словоупотреблений, и, если использовать в вопросе слова, на которые у модели мало примеров, она не справляется.
В теории информации с самого начала сознательно опускалась концепция семантики. Клод Шеннон вынес за рамки смысловое содержание сообщений, указав, что «семантические аспекты связи не имеют отношения к технической стороне вопроса». Он определил наименьшую единицу как «бит», закрепив количественное понимание информации в технологиях. И сейчас, когда у нас достаточно вычислительных мощностей для обработки любого объема данных, мы видим, что надо что-то делать с семантической составляющей. Понимание семантики, распознавание разговорной речи и генерация контента — это огромный вызов. Мне кажется, что отвечать на него, просто наращивая данные и увеличивая размеры моделей,— не самая лучшая идея. Надо подходить к обучению моделей языка по-другому.
Вычислительная эпистемология и будущее
Одно из направлений в области обработки естественного языка, которое я хочу развивать,— вычислительная эпистемология. Это исследование того, как у искусственного интеллекта устроен процесс обучения. Вычислительная эпистемология ставит перед собой задачу понять, что языковая модель знает об окружающем мире, и сформулировать методы оценки этих знаний. Есть несколько групп ученых, которые работают в этом направлении в Штатах, Китае и Европе. С мая этого года вопросами машинного знания и семантики занимается Лаборатория естественного языка, открытая в Санкт-Петербурге на базе «Яндекса» и ВШЭ.
В лаборатории мы будем изучать, на какие вопросы одна и та же языковая модель отвечает качественно, а на какие нет и какие параметры модели и дата-сета влияют на «широту знаний» алгоритма. К примеру, если модель не умеет распознавать микроскопические объекты, что нужно сделать, чтобы она начала показывать качественный результат? Нужно ли добавить статьи про микробиологию к обучающей выборке и сколько? Или, может быть, нужно не увеличивать объем данных, а работать со структурой их подачи и процессом обучения?
Еще одно перспективное направление, связанное с «гонкой моделей»,— это перенос обучения (transfer learning). Модели обучаются на определенном наборе дата-сетов. Однако для их применения нужна качественная работа алгоритма не только на тестовых, но и на реальных данных. Перенос обучения позволяет адаптировать имеющиеся решения для более узких проблем, например, переобучить готовую языковую модель на перевод малоизученной литературы. Здесь одна из специфических задач, которую нужно решить,— выбор модели, которая будет работать лучше. Если в области машинного зрения наилучшей будет та, которая качественнее отработала на подходящем дата-сете, то в отношении обработки естественного языка все сложнее.
Язык динамичный и постоянно меняется. Как часто нужно обновлять модель, чтобы она всегда оставалась актуальной? Как создать модель, успешно работающую на нескольких языках? Лучше всего решать языковые задачи будет модель, которая обладает наибольшим потенциалом для генерализации. Необходимы методы оценки, которые покажут, насколько один алгоритм по сравнению с другим лучше поддерживает глобальный контекст и насколько результаты обучения можно обобщить для языка в целом. Эти задачи тоже будет исследовать лаборатория.
Амбициозная цель, к которой движутся все качественные исследования в области обработки естественных языков, и в частности вычислительная эпистемология,— научить модели понимать семантику, создать алгоритм, способный вести связный диалог и генерировать сюжет. Видится, что через понимание процесса обучения моделей и создание принципов, универсальных для разных языков, нам удастся приблизиться к этой цели.
На фоне тренда на количественные изменения, зависящие от мощности и объема данных, это направление мысли выглядит перспективным в контексте взаимодействия человека и машины. Результатом может стать появление полноценного цифрового помощника, который будет помнить наши шутки, научится давать советы, исходя из общего контекста разговора, и, возможно, даже сочинять истории. Самое главное в изучении моделей обработки естественного языка — то, что мы сможем приблизиться к пониманию того, как человеческий интеллект обрабатывает знания.