11. Механизмы внимания и трансформеры

Ранние годы бума глубокого обучения были обусловлены преимущественно результатами, полученными с использованием архитектур многослойного перцептрона, свёрточной сети и рекуррентной сети. Примечательно, что архитектуры моделей, обеспечившие многие прорывы в глубоком обучении в 2010-х годах, изменились относительно своих предшественников весьма незначительно, несмотря на прошедшие почти 30 лет. Хотя в арсенал большинства практиков вошло множество новых методических инноваций — таких как функции активации ReLU, остаточные слои, батч-нормализация, дропаут и адаптивные графики скорости обучения, — основные лежащие в основе архитектуры оставались чётко узнаваемыми как масштабированные реализации классических идей. Несмотря на тысячи статей, предлагающих альтернативные идеи, модели, напоминающие классические свёрточные нейронные сети (Section 7), сохраняли статус state-of-the-art в компьютерном зрении, а модели, напоминающие оригинальный дизайн рекуррентной нейронной сети LSTM, предложенный Зепом Хохрайтером (Section 10.1), доминировали в большинстве приложений обработки естественного языка. Можно сказать, что вплоть до этого момента стремительное развитие глубокого обучения объяснялось в первую очередь изменениями в доступных вычислительных ресурсах (благодаря инновациям в области параллельных вычислений с использованием графических процессоров) и появлением огромных массивов данных (благодаря дешевому хранению данных и интернет-сервисам). Хотя эти факторы, возможно, и остаются главными движущими силами роста мощности этой технологии, мы также наблюдаем, наконец, коренные изменения в ландшафте доминирующих архитектур.

В настоящее время доминирующими моделями для большинства задач обработки естественного языка являются архитектуры на базе трансформеров. При решении любой новой задачи обработки естественного языка стандартным подходом первого выбора является использование крупной предварительно обученной модели на базе трансформера (например, BERT (Devlin et al., 2018), ELECTRA (Clark et al., 2020), RoBERTa (Liu et al., 2019) или Longformer (Beltagy et al., 2020)), адаптация выходных слоёв по мере необходимости и дообучение модели на доступных данных для целевой задачи. Если вы следили за последними несколькими годами шумихи в СМИ вокруг больших языковых моделей OpenAI, то вы были в курсе дискуссий, сосредоточенных вокруг моделей на базе трансформеров GPT-2 и GPT-3 (Brown et al., 2020, Radford et al., 2019). Тем временем Vision Transformer стал моделью по умолчанию для разнообразных задач компьютерного зрения, включая распознавание изображений, обнаружение объектов, семантическую сегментацию и суперразрешение (Dosovitskiy et al., 2021, Liu et al., 2021). Трансформеры также показали себя как конкурентоспособные методы в задачах распознавания речи (Gulati et al., 2020), обучения с подкреплением (Chen et al., 2021) и графовых нейронных сетей (Dwivedi and Bresson, 2020).

Основная идея модели трансформер заключается в механизме внимания — инновации, изначально задуманной как улучшение для кодировщиков и декодировщиков на основе рекуррентных нейронных сетей (RNN), применяемых в задачах преобразования последовательностей в последовательности, таких как машинный перевод (Bahdanau et al., 2014). Вы можете вспомнить, что в первых моделях машинного перевода, основанных на подходе «последовательность-в-последовательность» (Sutskever et al., 2014), весь вход сжимался кодировщиком в один фиксированный по длине вектор, который затем подавался на вход декодировщику. Интуиция, лежащая в основе механизма внимания, заключается в том, что вместо сжатия входных данных декодировщику может быть выгоднее на каждом шаге обращаться к исходной последовательности заново. Более того, вместо того чтобы всегда оперировать одним и тем же представлением входа, можно предположить, что декодировщик должен избирательно фокусироваться на определённых частях входной последовательности на конкретных шагах декодирования. Механизм внимания Бахданау предложил простой способ, позволяющий декодировщику динамически обращать внимание на различные части входа на каждом шаге декодирования. Общая идея состоит в том, что кодировщик может генерировать представление, длина которого равна длине исходной входной последовательности. Затем, во время декодирования, декодировщик может (с помощью некоторого механизма управления) получать в качестве входных данных контекстный вектор, представляющий собой взвешенную сумму представлений входа на каждом временном шаге. Интуитивно понятно, что веса определяют степень, в которой контекст каждого шага «фокусируется» на каждом входном токене, а ключевой момент заключается в том, чтобы сделать процесс присвоения этих весов дифференцируемым, чтобы его можно было обучать вместе со всеми остальными параметрами нейронной сети.

Изначально эта идея стала весьма успешным улучшением рекуррентных нейронных сетей, которые уже доминировали в приложениях машинного перевода. Эти модели работали лучше, чем исходные архитектуры последовательностей «кодировщик–декодировщик». Кроме того, исследователи заметили, что при анализе паттернов весов внимания иногда возникают интересные качественные выводы. В задачах перевода модели внимания часто присваивали высокие веса внимания кросс-лингвистическим синонимам при генерации соответствующих слов на целевой переменной. Например, при переводе предложения «my feet hurt» на «j’ai mal au pieds» нейронная сеть может присваивать высокие веса внимания представлению слова «feet» при генерации соответствующего французского слова «pieds». Эти наблюдения породили утверждения о том, что модели внимания обеспечивают «интерпретируемость», хотя то, что именно означают веса внимания, то есть как, если вообще, их следует интерпретировать, остается неясной темой для исследований.

Однако механизмы внимания вскоре стали играть гораздо более важную роль, чем просто улучшение для рекуррентных нейронных сетей в архитектуре «кодировщик–декодировщик» или их предполагаемая способность выделять наиболее значимые входные данные. Vaswani et al. (2017) предложили архитектуру трансформер для машинного перевода, полностью отказавшись от рекуррентных связей и вместо этого полагаясь на тщательно организованные механизмы внимания для захвата всех взаимосвязей между входными и выходными токенами. Эта архитектура продемонстрировала выдающиеся результаты, и к 2018 году трансформеры начали доминировать в большинстве современных систем обработки естественного языка. Более того, в тот же период доминирующей практикой в обработке естественного языка стало предобучение крупномасштабных моделей на огромных общих корпусах для оптимизации некоторой задачи самообучения, а затем дообучение этих моделей с использованием доступных данных для конкретных задач. Разрыв между трансформерами и традиционными архитектурами стал особенно заметен при использовании в этой парадигме предобучения, поэтому возвышение трансформеров совпало с распространением таких крупномасштабных предобученных моделей, которые теперь иногда называют фундаментальными моделями (Bommasani et al., 2021).

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