# Янник Килхер разобрал гипотезу трансформеров как универсальных вычислителей

Источник: https://www.youtube.com/watch?v=Elxn8rS88bI
Канал: Yannic Kilcher
Опубликовано: 16.03.2021

---

В новом видеоролике на канале Machine Learning Research Paper Explained известный исследователь ИИ Янник Килхер (Yannic Kilcher) подробно разбирает революционную научную работу «Pretrained Transformers as Universal Computation Engines». Авторы исследования — Кевин Лу, Адитья Гровер, Питер Аббиль и Игорь Мордач — выдвинули и экспериментально подтвердили смелую гипотезу: трансформеры, прошедшие предобучение на задачах обработки естественного языка, способны выступать в роли универсальных вычислительных движков для абсолютно сторонних модальностей, будь то компьютерное зрение, математические вычисления или анализ белков. 

## 🧠 Универсальные вычислительные движки: суть гипотезы
[[JUMP:0:00]]

Суть рассматриваемой научной работы заключается в концепции сквозного переноса знаний (transfer learning) на совершенно новые домены, никак не связанные с лингвистикой. Авторы проверяют, насколько эффективно языковые модели могут справляться со сторонними задачами, если практически полностью заморозить их внутреннюю структуру. 

Эксперимент строится по строгому алгоритму:

1. Берется стандартная архитектура трансформера (в данном случае базой послужила модель GPT-2), предобученная на задаче языкового моделирования.
2. Полностью замораживаются (`freeze`) ключевые внутренние слои, которые составляют более 99% всех параметров нейросети. Блокировке подвергаются абсолютно все механизмы многоголового внимания (multi-head attention) и полносвязные слои (feed-forward layers).
3. Тонкой настройке (`fine-tuning`) подвергается лишь мизерная доля параметров — от 0,1% до 0,01% от общего объема модели.
4. Модифицированная таким образом сеть тестируется на специфических бенчмарках, демонстрируя результаты, сопоставимые со специализированными моделями, обученными с нуля.

По словам Янника Килхера, замороженный предобученный трансформер (Frozen Pretrained Transformer, или FPT) не просто демонстрирует конкурентоспособность, но в ряде тестов даже превосходит по точности классические рекуррентные сети (LSTM) и стандартные трансформеры, которые полностью обучались под конкретную задачу с чистого листа. 

## 🛠️ Анатомия трансформера и методология эксперимента
[[JUMP:2:10]]

Чтобы детально объяснить механику процесса, Янник Килхер описывает классическую структуру трансформера изнутри. В стандартном сценарии обработки текста на вход подаются позиционные эмбеддинги и эмбеддинги слов (векторы для каждого токена). В случае же адаптации модели под компьютерное зрение (например, в архитектурах ViT) изображение предварительно нарезается на небольшие участки — патчи. Каждый такой патч разворачивается в один длинный пиксельный вектор, формируя последовательность, с которой трансформер может работать так же, как и с текстовыми токенами.

Основной объем вычислений в модели берут на себя $L$ одинаковых блоков self-attention. Внутри каждого блока находятся:

* слой механизма внимания (attention layer);
* слой нормализации (layer norm);
* элементный полносвязный слой (feed-forward layer);
* финальный слой нормализации и остаточные связи (residual connections).

После прохождения всех блоков сигнал поступает на выходной слой (output layer), специфика которого жестко привязана к финальной задаче. В языковых моделях это классификатор по словарю (выбор следующего токена из примерно 30 000 вариантов), а в компьютерном зрении — распределение по классам датасета (например, 1000 классов в ImageNet).

В рамках исследуемого метода авторы полностью блокируют изменения в матрицах весов multi-head attention и feed-forward слоях. Параметры, которые остаются открытыми для обучения и подвергаются оптимизации градиентным спуском, включают:

* входные эмбеддинги (input embeddings);
* позиционные эмбеддинги (positional embeddings);
* параметры слоев нормализации (layer norm parameters);
* выходной слой (output layer).

## 📊 Пять нетипичных задач: от битовых операций до свертывания белков
[[JUMP:4:51]]

Для верификации своей гипотезы исследователи выбрали пять разнородных задач, которые кардинально отличаются от стандартного предсказания слов в тексте:

* **Bit Memory (Битовая память):** Модели последовательно показывают 5 битовых строк, длина каждой из которых составляет 1000 бит. Затем подается шестая строка, где половина битов случайно замаскирована (с вероятностью 0,5). Задача нейросети — определить, на какую из первых пяти строк больше всего похож образец, вычислить пересечения и безошибочно восстановить исходную строку целиком.
* **BitXOR:** Подаются две битовые строки длиной по 5 бит каждая. Модель должна поразрядно вычислить для них логическую операцию «исключающее ИЛИ» (XOR). Янник Килхер напоминает, что качественное выполнение XOR долгое время оставалось камнем преткновения для многих архитектур нейросетей.
* **List Ops:** Вычисление математических результатов по цепочке вложенных операторов в скобках (модель фактически должна сэмулировать работу калькулятора).
* **Computer Vision (MNIST и CIFAR-10):** Классическое распознавание изображений, переведенное в формат Long Range Arena (LRA), где картинка разворачивается в цепочку строго по одному пикселю, из-за чего полностью теряется базовая локализация и пространственная информация, усложняя задачу.
* **Remote Homology Detection:** Специфическая и крайне сложная задача из области биоинформатики, связанная с предсказанием пространственного свертывания белковых молекул.

Результаты тестирования оказались интригующими: в задачах на битовую память (Bit Memory) и BitXOR частично замороженный языковой трансформер достиг стопроцентной точности, сравнявшись с полностью обучаемой моделью. На бенчмарке List Ops абсолютно все типы трансформеров показали одинаково слабые результаты, однако FPT ни в чем не уступил полноценно обученной сети. В тестах на распознавание изображений (MNIST, CIFAR-10) и детекцию гомологии белков замороженный трансформер шел наравне с полноценной моделью, а в случае с белками даже немного превзошел ее по точности.

## ⚖️ Секрет успеха: скрытая сила Layer Norm и влияние претрейна
[[JUMP:9:50]]

Янник Килхер высказывает здоровый скепсис относительно утверждения авторов о том, что данное явление можно назвать чистым «zero-shot переносом на другие модальности». По мнению ведущего, называть алгоритм «нулевым переносом» некорректно, поскольку оптимизация все же затрагивает до 0,1% весов. 

Килхер выдвигает собственную гипотезу о том, почему замороженная сеть сохраняет такую пластичность. Секрет кроется в параметрах слоев нормализации (`layer norm`), которые авторы оставили доступными для обучения. В индустрии глубокого обучения давно известен паттерн так называемых «адаптерных слоев» (adapter layers): если между крупными блоками сети встроить миниатюрные обучаемые слои, сжимающие и разжимающие размерность данных, этого будет достаточно для качественного трансферного обучения.

В архитектуре трансформера слой нормализации выполняет математическую операцию над входным сигналом $x$, используя два обучаемых параметра: 

1. Коэффициент масштабирования (scaling parameter, $a$).
2. Величина сдвига (offset parameter, $b$).

Изменяя эти параметры, алгоритм обратного распространения ошибки (`backprop`) может радикально менять структуру вектора $y$, который направляется в следующий, пусть даже заблокированный для обучения, слой внимания. Поскольку из вектора $y$ формируются матрицы запросов (queries), ключей (keys) и значений (values), через тонкую подстройку коэффициентов $a$ и $b$ можно напрямую перенаправлять потоки информации внутри замороженного механизма attention. Янник Килхер подчеркивает: физически веса внимания не меняются, но характер маршрутизации данных полностью контролируется извне.

## 🔍 Модальности претрейна и две гипотезы универсальности
[[JUMP:18:03]]

Важной частью научной работы стала серия экспериментов-абляций (ablation studies). Чтобы доказать уникальность текстового предобучения, авторы сравнили четыре сценария инициализации весов перед заморозкой блоков:

* случайная инициализация параметров (random initialization);
* предобучение только на битовых строках (Bit Memory);
* предобучение на базе изображений ImageNet-21k;
* полноценное предобучение на естественном языке (текстовый претрейн).

По результатам тестов, случайная инициализация показала провальные результаты на MNIST и CIFAR-10. Предобучение на битах оказалось абсолютно неэффективным на всех остальных бенчмарках. Модель, обученная на ImageNet, хорошо справилась с визуальными тестами, но уступила текстовой модели во всех остальных сферах. Текстовый языковой претрейн показал стабильно высокие результаты везде, подтвердив звание лучшего базиса для универсального трансфера.

Янник Килхер считает, что делать однозначный вывод о «магических» свойствах именно человеческого языка пока рано. Он предлагает альтернативное объяснение: задача языкового моделирования сама по себе является экстремально сложной. Размерность словаря составляет около 30 000 классов, и сеть вынуждена делать предсказание на каждом отдельном токене последовательности. Для сравнения: в ImageNet классов меньше, а финальная классификация происходит всего один раз для всей цепочки патчей. Высокая эффективность текстового претрейна может обуславливаться не природой лингвистики, а банальной плотностью полезного сигнала на один прогон данных при обучении.

В финале обзора Янник Килхер выделяет две фундаментальные теории, объясняющие феномен универсальности трансформеров:

* **Гипотеза естественных сигналов:** Все окружающие нас природные структуры (звук, текст, изображения, ДНК) подчиняются схожим математическим законам распределения. Обучаясь на текстах, трансформер подстраивает слои внимания под общую специфику «естественного мира».
* **Гипотеза вычислительных примитивов:** В процессе сложного предобучения на огромных массивах данных внутри слоев attention формируются устойчивые базовые алгоритмические блоки («вычислительные примитивы») — например, логический XOR, операции копирования памяти или поиска соответствий. При переносе на новые задачи модель с помощью слоев нормализации просто перекомбинирует эти уже готовые встроенные микро-программы между собой.

Дополнительным аргументом в пользу заморозки параметров стал тот факт, что полная тренировка трансформера на малых объемах данных новых бенчмарков вела к катастрофическому переобучению (`overfitting`). В то же время замороженная модель (FPT), напротив, демонстрирует легкий недообув (`underfit`), что позволяет безболезненно масштабировать ее размер (от Small до Large) и стабильно повышать общую точность вычислений на выходе.