Рекуррентные нейронные сети (RNN), а также ее наследники такие, как LSTM и GRU, когда-то были основными инструментами для работы с последовательными данными. Однако в последние годы они были почти полностью вытеснены трансформерами (восхождение Attention is all you need), которые стали доминировать в областях от обработки естественного языка до компьютерного зрения. В статье "Were RNNs All We Needed?" коллектив авторов Лио Фэн, Фредерик Танг, Мохамед Осама Ахмед, Йошуа Бенжио и Хоссейн Хаджимирсадегх пересматривают потенциал RNN, адаптируя её под параллельные вычисления. Рассмотрим детальнее, в чем же они добились успеха.

Почему стоит цепляться за RNN?

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

Однако основным недостатком классических RNN было отсутствие возможности параллелизации обучения. Алгоритм backpropagation through time (BPTT) выполняется последовательно, что делает обучение на длинных последовательностях очень медленным. Именно это ограничение дало преимущество трансформерам, которые могут обучаться параллельно и, несмотря на более высокие требования к вычислительным ресурсам, значительно ускорили процесс обучения.

В чем состоит ключевое изменение?

В последние годы появилось несколько попыток устранить это ограничение RNN, такие как архитектуры LRU, Griffin, RWKV, Mamba и другие. Их объединяет использование алгоритма parallel prefix scan.

Устранив зависимости скрытого состояния от входных данных, забывания и обновления, мы позволяем LSTM и GRU больше не нуждаться в обучении через BPTT. Они могут эффективно обучаться с использованием вышеуказанного алгоритма. На основе этого подхода авторы упростили архитектуры LSTM и GRU, устранив ограничения на диапазон их выходных значений (например, избавившись от функции активации tanh) и обеспечив независимость выходных сигналов от времени по масштабу. Эти изменения привели к созданию "облегченных" версий (minLSTM и minGRU), которые используют значительно меньше параметров по сравнению с традиционными вариантами и могут обучаться параллельно.

Архитектуры minLSTM и minGRU

Для начала напишем оценки количества параметров в предыдущих моделях. Если d_h размер скрытого состояния, то p_{LSTM} = O(4d_h(d_x+d_h)), а p_{GRU} = O(3d_h(d_x+d_h)). Напомним, что улучшение произошло за счет того, что GRU использовало два типа ворот (gated) против трёх у LSTM, и обновляло скрытый слой напрямую, когда у LSTM было два состояние - ячейки и скрытое.

Рис. 1. Схема minGRU (стр. 4)
Рис. 1. Схема minGRU (стр. 4)

Они устранили зависимость update gate и скрытого состояния от предыдущего значения (z_t), полностью исключили reset gate и убрали нелинейную функцию активации tanh, т.к. уже избавлены от зависимости от скрытого слоя. Так они добились использования всего лишь O(2d_hd_x)параметров.

Рис. 2. Схема minLSTM (стр. 5)
Рис. 2. Схема minLSTM (стр. 5)

В случае с LSTM изменения коснулись зависимости input и forget gate от предыдущего скрытого состояния (h_{t-1}). Внизу происходит нормализация двух гейтов, и масштаб состояния ячейки LSTM становится независимым от времени. Обеспечив независимость масштаба скрытого состояния от времени, мы также исключаем output gate, который масштабирует скрытое состояние. Без output gate нормализованное скрытое состояние равно состоянию ячейки, что делает наличие как скрытого состояния, так и состояния ячейки избыточным. Таким образом, мы исключаем и состояние ячейки.

В результате "лайт" версия LSTM потребляет меньше параметров (O(3d_hd_x)) по сравнению с оригинальной архитектурой.

Кратко про сравнение с другими моделями

Минимизированные версии LSTM и GRU показывают впечатляющие результаты: на последовательности в 512 элементов они быстрее оригинальных LSTM и GRU в 235 и 175 раз соответственно. Однако стоит отметить, что такой рост скорости достигается ценой увеличения требований к памяти: minGRU требует на 88% больше памяти, чем классическая GRU (для сравнения Mamba использует на 56% больше чем GRU).

Модели minLSTM и minGRU демонстрируют конкурентоспособные результаты на нескольких задачах. Например, они справились с задачей Selective Copy (авторы взяли ее из статьи про Mamba), в то время как другие конфигурации Mamba, такие как S4 и H3, лишь частично справлялись с задачей.

Рис. 3. Результаты задачи LM (стр. 9)
Рис. 3. Результаты задачи LM (стр. 9)

При проверке на задаче языкового моделирования с использованием nanoGPT (моделирование текста на уровне символов на произведениях Шекспира) minLSTM и minGRU также продемонстрировали отличные результаты, достигая минимального значения функции потерь быстрее, чем трансформеры. MinGRU и minLSTM выходят на оптимум за 575 и 625 шагов обучения соответственно, тогда как трансформеру требуется около 2000+ шагов. Mamba работает чуть хуже, но довольно быстро обучилась - всего лишь за 400 шагов.

Благодарю за внимание. Возможно нас ожидает локальный ренессанс RNN.

Комментарии (8)


  1. nikolz
    06.10.2024 03:55
    +5

    Полагаю, что это не обзор, а перевод статьи, в которой приведено описание модификации RNN.

    -----------------------------------

    Уберите номера страниц из под рисунков.Очевидно забыли убрать из авто перевода.

    ------------------------------

    Название не соответствует содержанию статьи. Статья не про бокс и не про бои без правил. Авторы описывают свой алгоритм упрощения RNN моделей.

    Статья называется " Were RNNs All We Needed?", что в переводе

    "Были Ли RNNs Всем, Что Нам было Нужно? "

    Авторы пишут:

    В этой работе мы вновь обратились к RNN, которые были созданы более десяти лет назад: LSTM и GRU. Мы показываем, что эти модели можно обучать с помощью алгоритма параллельного сканирования, удаляя скрытые зависимости от состояния их элементов управления. Еще больше упростив эти модели, мы устранили ограничения на диапазон выходных данных и обеспечили, чтобы их масштаб не зависел от времени. В результате этих шагов были созданы их минимальные версии (minLSTM и minGRU). Эмпирически мы показали, что minLSTM и minGRU устраняют вычислительные ограничения своих традиционных аналогов и являются такими же эффективными в вычислительном отношении, как Mamba, популярная современная модель рекуррентных последовательностей, и конкурируют по производительности с новейшими моделями последовательностей. Учитывая высокую эмпирическую эффективность этих упрощенных RNN и их фундаментальное сходство со многими недавно предложенными методами рекуррентной последовательности, мы задаемся вопросом: ”Были ли RNN всем, что нам было нужно?”

    До кучи ( в статье этого нет):

    MiniLLM - это минимальная система для запуска современных LLM на графических процессорах потребительского уровня. Ее функции включают:

    • Поддержка нескольких LLM (в настоящее время LLAMA, BLOOM, OPT) с различными размерами моделей (до 170B)

    • Поддержка широкого спектра графических процессоров Nvidia потребительского уровня

    • Крошечная и простая в использовании кодовая база, в основном на Python (<500 LOC)

    В основе MiniLLM лежит алгоритм GPTQ, который обеспечивает сжатие до 3 бит и значительно сокращает использование памяти графического процессора. Дополнительную информацию о том, какие LLM поддерживаются различными графическими процессорами, можно найти в разделе «Требования к оборудованию».

    MiniLLM — это исследовательский проект Корнеллского технологического института и Корнеллского университета. Его цели:

    • Обеспечивает простую в использовании платформу для творческих экспериментов с большими языковыми моделями

    • Облегчить проведение исследований по согласованию LLM, устранению предвзятости, эффективному выводу и другим темам

    https://github.com/kuleshov/minillm


    1. rplacroix Автор
      06.10.2024 03:55
      +5

      Приветствую!
      Отвечу по пунктам.
      0. Я затрудняюсь провести грань между обзором и переводом статьи. Не скрою, что я накидал этот "обзор" за час, выделив самые важные моменты из статьи. Переводом я это тоже назвать не могу, потому что а) многое опустил и б) писал своими словами.

      1. Нет, номера рисунков пришли не из автоперевода, а добавлены мной лично для стилизации. Если вы обратитесь к оригинальной статье, то увидите, что рис. 1 и 2 вообще не подписаны в статье, а рис. 3 это figure 2. Подписи я добавил, чтобы указать страницу оригинальной статьи с этим графиком.

      2. По поводу названия статьи. "Наносит ответный удар" не ассоцируется с боксом/боями без правил с 1980 года, когда вышел одноименный фильм по Звездным Войнам. Действительно, рекуррентные нейронные сети никого не бьют и не проводят революцию в мире. Вы можете считать это название пошлым или устаревшим, но тем не менее я его выбрал для привлечения внимания, не более того.

      3. Про miniLLM вы ввели меня в замешательство. В статье действительно про нее ничего нет, но она даже никаким образом не относится к теме RNN, разве что min в названии.

      Вывод: моя статья вообще не шедевр, но Ваших претензий я не понимаю.
      Приятного дня.


      1. nikolz
        06.10.2024 03:55

        Согласен, что Вы выдернули некоторые фрагменты из статьи. Если это обзор, то скорее статьи, а не темы, которая заявлена в названии.

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

        Поясните, что Вы этим хотели сказать:

         Про miniLLM вы ввели меня в замешательство. В статье действительно про нее ничего нет, но она даже никаким образом не относится к теме RNN, разве что min в названии.

        Вы сами в своем обзоре написали:

        Эти изменения привели к созданию "облегченных" версий (minLSTM и minGRU), которые используют значительно меньше параметров по сравнению с традиционными вариантами и могут обучаться параллельно.

        В источнике сказано:

        Основываясь на этом, мы еще больше упростили LSTM и GRU, устранив их ограничения на диапазон вывода (т. Е. Использование tanh) и гарантировав, что масштаб их вывода не зависит от времени. Результатом этих шагов являются минимальные версии (minLSTMs и minGRUs), которые (1) используют значительно меньше параметров, чем их традиционные аналоги, и (2) могут обучаться параллельно (175× быстрее при длине контекста 512). 

        Таким образом, именно miniLLM  и является результатом, работы авторов статьи. Что Вы очевидно и не поняли.


        1. rplacroix Автор
          06.10.2024 03:55
          +2

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

          miniLLM и minLSTM/minGRU являются разными алгоритмами. В последних используется paralel prefix sum, у miniLLM - GPTQ. Те фрагменты, которые вы приводите, никак не подсвечивают связь между ними. miniLLM не является результатом работы авторов статьи, поскольку как вы сами заметили - ее и нет в статье.

          В дополнение отмечу, что последнее обновление miniLLM на гитхабе было год назад. Статья, о которой мы толкуем, вышла 2 октября 24 года. Как в таком случае miniLLM может быть результатом?


          1. nikolz
            06.10.2024 03:55

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

            Если я не ошибаюсь, то по Вашей ссылке видим это:

            Где здесь страницы?

            В дополнение отмечу, что последнее обновление miniLLM на гитхабе было год назад. Статья, о которой мы толкуем, вышла 2 октября 24 года. Как в таком случае miniLLM может быть результатом?

            То что miniLLM результат, написано в источнике. Я привел дословный перевод, а не пересказ своими словами и не обзор. Можете снова прочитать статью.

            ---------------

            Относительно даты . Обычно статью пишут по результатам, а не наоборот.

            ------------------

            Вообще-то, я высказал свое мнение потому, что Ваш "обзор" не содержит ничего конкретного, а является обрезками первоисточника.


            1. rplacroix Автор
              06.10.2024 03:55
              +2

              Страницы очевидно в pdf-документе, по скрину видно, что вы его открывали.

              До кучи ( в статье этого нет):

              Вы сами писали о том, что в статье этого нет.

              То что miniLLM результат, написано в источнике.

              А теперь говорите, что есть в источнике. Но ни одного упоминания miniLLM в тексте источника нет.

              Ваш "обзор" не содержит ничего конкретного, а является обрезками первоисточника.

              Тут согласен, я не добавлял никаких новых мыслей от себя или из других источников. Формально, я написал "саммари", краткое изложение.


  1. avshkol
    06.10.2024 03:55

    Из статьи не понятно, какую альтернативу механизму внимания предложили эти модифицированные рекуррентные сети?


    1. rplacroix Автор
      06.10.2024 03:55

      У RNN был недостаток по сравнению с трансформерами (механизму внимания) - их обучение невозможно было распараллелить ввиду аргумента h_t-1. Новые min архитектуры это один из способов решения данной проблемы. Как я писал в начале статьи, у RNN есть преимущества по памяти по сравнению с трансформерами, поэтому они могут заинтересовать исследователей. По сути, кардинально новой аьтернативы предложено не было.