Одноголовое внимание RNN (Стивен Мерити имеет RNN 🤷‍♀️)

Многие исследователи и практики положили конец РНС и ее вариантам после появления Трансформеров, но не автора. Это исследование открывает глаза многим, кто считает, что вычисление - единственный способ. Результаты SoTA достигаются менее чем за 24 часа на одном графическом процессоре, «как не терпится автор».

Каким бы иррациональным это ни казалось, я не хотел где-то использовать кластер в облаке, наблюдая, как доллары уходят с моего банковского счета - Автор

Этот документ не только об архитектуре и достижении SoTA, но и о методах и направлениях сообщества, чтобы услышать это со слов автора.

Если в конце 20 века миникомпьютеры дали сбой, а мэйнфреймы победили, мы вполне могли бы говорить о неизбежном тупике, которым были малые независимые машины.

Я совершенно счастлив, если эта модель не сработает, но зачем сразу отказываться от возможности? Зачем толпиться в одном направлении прогресса, как мотыльки, роящиеся в лампочке?

Архитектура модели

Давайте начнем погружаться в Бумагу. SHA-RNN состоит из RNN, внимания, основанного на указателях, и прямой связи «Boom» с небольшой нормализацией слоев. Постоянное состояние - это скрытое состояние h RNN, а также память M, объединенная из предыдущих воспоминаний. Выпекайте при температуре 200 ° F в течение 16-20 часов в настольной духовке. Именно так автор описывает архитектуру туманно, но точно.

Архитектура в статье имеет пару неточностей по сравнению с реализацией PyTorch.

Код ужасен. Признаюсь, это кусок барахла, но это кусок мусора, на котором я умею летать - Автор

Код очень хорошо оптимизирован для повышения производительности, но его нелегко расшифровать. Спасибо Фатеме Дарбехани.

Давайте начнем с настройки эксперимента. Задача включает в себя прогнозирование (n + 1) -го токена в последовательности с учетом n предыдущих токенов.

LSTM + нейронный кэш

Использование LSTM является довольно традиционным, со слоем встраивания до LSTM, использование нейронного кеша происходит из УЛУЧШЕНИЯ НЕЙРОННЫХ ЯЗЫКОВЫХ МОДЕЛЕЙ С НЕПРЕРЫВНЫМ КЭШОМ, который представляет собой исследование по улучшению языковой модели, продолжает пары кеш-хранилищ (привет, xi +1), где hi - текущее скрытое состояние, а xi + 1 - токен, предсказанный по hi. Чтобы предсказать распределение вероятности слов с учетом скрытого состояния в момент времени t (ht), мы используем кэш скрытых векторов в качестве ключей и ht в качестве запроса, мы делаем простое скалярное произведение между ключами и запросом. окончательная вероятность слова дается линейной интерполяцией модели кэшированного языка с моделью обычного языка. Это значительно улучшает языковое моделирование по сравнению с обычными LSTM.

Отделение внимания

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

почему мы уделяем так много внимания уровню внимания? Имея единственную голову внимания, я перестал испытывать нехватку памяти. Благодаря тому, что память записывается один раз и никогда не модифицируется, как в непрерывном кэше, мы избегаем большого количества вычислений. Жизнь проще - Автор

Избыточная параметризация

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

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

После обучения мы можем удалить все эти параметры, заменив vs на статический результат приведенного выше уравнения. Таким образом, эти параметры существуют только во время обучения и не учитываются при подсчете параметров окончательной модели.

Слой штанги

Этот слой настолько же нов, насколько и интересен, он аналогичен слою с прямой связью в Transformers. Входные данные проецируются в более высокое измерение и проецируются обратно в исходное измерение, но при уменьшении вектора обратно до входного размера он разбивается на равные отрезки размера, который такой же, как входной, и они суммируются (мы берем вектор из от маленького (1024) до большого (4096) до маленького (Σ (4 * 1024)), очень новое! но работает.Также автор упоминает более быструю сходимость при таком подходе.

Атаки токенизации

Эти атаки токенизации очень распространены в задачах языкового моделирования. Как правило, производительность языковой модели оценивается с использованием потери кросс-энтропии, но токенизация играет доминирующую роль при вычислении потери кросс-энтропии, потому что можно использовать уровень слов или символов или что-то вроде токенизации частей слова, поэтому мы пытаемся преодолеть это путем нормализации кросс-энтропии по количеству токенов (кросс-энтропия на токен), но этого недостаточно, при этом предполагается равная энтропия для всех токенов, что несправедливо. Например, если мы отвечаем: «Кто был убит? Дамблдор или Гэндальф? с моделью на уровне слов у нас есть только одно предположение. Однако модель фрагментов слова имеет огромное преимущество, поскольку энтропия может загружаться в основном на первый токен (например, [D] [umble] [dore]). Эта неоднородность хорошо используется механизмом принуждения учителя и внимания, который может эффективно копировать появление ранее неизвестных последовательностей при правильном переключении контекста.

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

Итоги и заключение

Эти результаты были бы самыми современными по сравнению со многими еще развивающимися моделями Transformer, описанными в более ранних статьях. В частности, они хорошо доказывают, что конкуренция все еще должна существовать, тем более что языковое моделирование теперь составляет основу предварительного обучения, используемого во многих задачах НЛП. Для данного количества параметров RNN с односторонним вниманием (SHA-RNN) дает хорошие результаты практически без настройки гиперпараметров. Все еще есть надежда, что LSTM еще не умерли. Останется ли это правдой - вопрос как инженеров, так и исследовательских. LSTM вынуждены выражать свое скрытое состояние в первую очередь через повторение, что ограничивает их выразительность. Подход представляет собой попытку устранить ограничения RNN.

использованная литература





Https://github.com/smerity/sha-rnn