Время адаптивных вычислений (ACT) в нейронных сетях [3/3]

Часть 3: ACT в трансформаторах

Часть 1 находится здесь.
Часть 2 находится здесь.

Наконец, ACT пришла в трансформеры.

Универсальный трансформатор использует оригинальную идею ACT, примененную к трансформатору вместо RNN.

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

Универсальные трансформеры Мостафы Дехгани, Стефана Гауза, Ориола Виньялса, Якоба Ушкорейта, Лукаша Кайзера
Бумага: https://arxiv.org/abs/ 1807.03819
Слайды: здесь
Код: здесь
Некоторые другие реализации: https://github.com/topics/universal-transformer
Блог автора: https://mostafadehghani.com/2019/05/05/universal-transformers/ женщина
Блог Google: «https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html

№3. Универсальный трансформатор (UT)

Архитектура

В статье представлены два варианта UT: 1) UT с фиксированным числом повторений и 2) UT с динамической остановкой.

Универсальный преобразователь многократно уточняет серию векторных представлений для каждой позиции последовательности параллельно, комбинируя информацию из разных позиций, используя самовнимание и применяя функцию повторяющегося перехода для всех временных шагов. Количество временных шагов, T, произвольно, но фиксировано (здесь нет ACT).

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

Фактически, Universal Transformer - это повторяющаяся функция (не во времени, а в глубине), которая развивает скрытые состояния каждого символа параллельно, основываясь на каждом шаге в последовательности предыдущих скрытых состояний. В этом смысле UT похож на такие архитектуры, как Neural GPU и Neural Turing Machine.

При выполнении фиксированного количества шагов универсальный трансформатор эквивалентен многослойному трансформатору со связанными параметрами на всех уровнях.

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

Точнее, универсальный трансформатор с динамической остановкой добавляет механизм динамической остановки ACT к каждой позиции во входной последовательности. Как только повторяющийся блок для каждого символа останавливается (что указывает на достаточное количество ревизий для этого символа), его состояние просто копируется на следующий шаг, пока все блоки не остановятся или мы не достигнем максимального количества шагов. Окончательный результат кодировщика - это последний уровень представлений.

Поскольку функция повторяющегося перехода может применяться любое количество раз, это означает, что UT могут иметь переменную глубину (количество шагов обработки для каждого символа).

Полнота по Тьюрингу

Интересным аспектом UT является его универсальность. При определенных предположениях можно показать, что полученный Универсальный преобразователь является полным по Тьюрингу (или «универсальным в вычислительном отношении»).

Помните, что RNN считаются полными по Тьюрингу (вот доказательство Хавы Зигельманн и Эдуардо Зоннтаг). Однако есть разногласия и заявления о том, что практически это неправда.

Что касается исходного преобразователя, предполагающего конечную точность, можно показать, что преобразователь не может быть универсальным в вычислительном отношении (но есть также разногласия).

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

Интуитивно понятный пример из блога автора - функции, выполнение которых требует последовательной обработки каждого элемента ввода. В этом случае для любого заданного выбора глубины T можно построить входную последовательность длиной N ›T, которая не может быть правильно обработана преобразователем:

Автор утверждает:

«В отличие от стандартного трансформатора, который не может быть универсальным в вычислительном отношении, поскольку количество последовательных операций постоянно, мы можем выбрать количество шагов в зависимости от длины входа в универсальном трансформаторе. Это справедливо независимо от того, используется ли время адаптивных вычислений или нет, но предполагает непостоянное, даже если возможно детерминированное, количество шагов ».

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

Больше по этой теме можно найти в блоге автора.

Полученные результаты

Результаты многообещающие.

В наборе данных для ответов на вопросы bAbi, задаче согласования субъект-глагол, моделировании языка LAMBADA, алгоритмических задачах (копирование, обратное и целочисленное сложение, все для строк, состоящих из десятичных символов '0' - '9'), "обучение выполнению" задач , и результаты машинного перевода действительно хороши.

Отличие от обычного трансформатора (а иногда и LSTM) существенное.

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

Интересная модель, стоит попробовать.

# 3б. Адаптивное внимание

Еще одно интересное место для применения адаптивности в трансформаторах - это концентрация внимания.

В статье под названием «Адаптивная продолжительность внимания в трансформерах» предлагается новый механизм самовнимания, который может научиться оптимальной продолжительности внимания.

Бумага: https://arxiv.org/abs/1905.07799
Код: https://github.com/facebookresearch/adaptive-span
Сообщение: https://ai.facebook.com/blog/making-transformer-networks-simpler-and-more-efficient/

Проблема с ванильным преобразователем заключается в его фиксированном размере контекста (или объеме внимания). Кроме того, он не может быть очень большим из-за затрат на вычисление механизма внимания (для этого требуется O (n²) вычислений).

Есть несколько решений этих проблем (например, Transformer XL или Sparse Transformer, а теперь у нас есть еще и Compressive Transformer).

Вот альтернативный подход: пусть слой (или даже голова внимания) самостоятельно определяет требуемый размер контекста.

Есть два варианта: обучаемый (так называемый адаптивный объем внимания) и аналогичный ACT (называемый динамический объем внимания).

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

Динамический объем внимания динамически изменяет диапазон в зависимости от текущего ввода.

В дополнение к этим изменениям, авторы включили встраиваемые
относительные положения Shaw et al. (2018) и механизм кеширования Dai et al. (2019) , чтобы ускорить поезд и время тестирования.

Результаты классные. Модели меньше, производительность лучше.

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

И динамические диапазоны адаптируются к входной последовательности. Интервал увеличивается в начале слов и в середине составных слов, например, чтобы предсказать «l» в «пропустить».

# 3c. АЛЬБЕРТ

Как вы уже видели, UT без ACT сам по себе является очень сильной базой. Может быть, повторы сами по себе являются ключом, и адаптивность не требуется? Как в случае с Repeat-RNN?

Это тоже может быть правдой (по крайней мере, при достаточном количестве повторений).

Другое доказательство - АЛЬБЕРТ («АЛЬБЕРТ: облегченный тест на самостоятельное изучение языковых представлений»). Модифицированная модель в стиле BERT.

Бумага: https://arxiv.org/abs/1909.11942
Код: https://github.com/google-research/ALBERT
Сообщение: https://ai.googleblog.com/2019/12/albert-lite-bert-for-self-supervised.html

Как я писал ранее, ALBERT включает в себя два метода уменьшения параметров.

Первый - это факторизованная параметризация встраивания, отделяющая размер скрытых слоев от размера встраивания словаря. Это разделение упрощает увеличение скрытого размера без значительного увеличения размера параметра словарных вложений.

Второй метод (более соответствующий нашей текущей теме) - это межуровневое использование параметров. Этот метод предотвращает рост параметра с увеличением глубины сети.

Оба метода значительно сокращают количество параметров для BERT без серьезного снижения производительности, тем самым повышая эффективность параметров.

Как писали авторы:

«Мы заметили, что сеть часто училась выполнять аналогичные операции на разных уровнях, используя разные параметры сети. Эта возможная избыточность устраняется в ALBERT путем разделения параметров между уровнями, то есть один и тот же слой применяется друг к другу ».

Как видите, это похоже на то, как UT применяет одно и то же преобразование заранее определенное количество раз.

В случае UT (без ACT) вы просто используете количество повторов в качестве параметра, в то время как в случае ALBERT это делается путем создания архитектуры с заранее определенным количеством (одинаковыми) слоями. В вычислительном отношении это то же самое.

В ALBERT основной целью было уменьшить количество параметров (а затем снова масштабировать модель). Итак, авторы смотрят на стоимость такого решения (сокращение количества параметров за счет совместного использования): как это сказывается на производительности по сравнению с моделью в стиле BERT (где нет общих параметров и все уровни разные). Неудивительно, что с этой точки зрения больно (немного).

Но, глядя с другой стороны, как глубина (количество слоев) влияет на производительность ALBERT, мы видим, что производительность значительно увеличивается.

Если мы сравним трехуровневую модель ALBERT с одноуровневой моделью ALBERT, хотя они имеют одинаковое количество параметров, производительность значительно отличается. Однако при продолжении увеличения количества уровней отдача уменьшается: результаты 12-уровневой сети относительно близки к результатам 24-уровневой сети, а производительность 48-уровневой сети, по-видимому, снижается.

Было бы интересно сравнить Универсальный трансформатор с ALBERT, учитывая тот же бюджет параметров.

Результаты АЛЬБЕРТА очень впечатляют.

Выводы

Итак, эта часть завершает серию о ACT.

Как видите, идея ACT носит довольно общий характер и может применяться ко многим различным вещам (и даже больше вещей еще не затронуты ACT, поэтому относитесь к нему как к призыву к действию).

Возможный путь от простых (фиксированных) решений к более сложным (например, ACT) выглядит так:

  1. Начните с чего-нибудь фиксированного (количество слоев, объем внимания, функция активации и т. д.)
  2. Добавьте обучаемость модели (скажем, изучите объем внимания; добавьте изученный параметр к функции активации, как в PReLU; странно, что мы не видели случая выученного количества повторений в UT или где-то еще - дайте мне знать, если я это пропустил)
  3. Добавьте адаптивность к модели (чтобы модель могла динамически регулировать требуемые параметры, будь то объем внимания или количество повторений; Кстати, вы видели функцию активации с этим свойством? Может быть, Backpropamine можно рассматривать как близкую вещь).

Я ожидаю, что в будущем будет больше решений, связанных с ACT.