LSTM, или сети долгосрочной краткосрочной памяти, существуют уже давно. Они применялись для решения многих задач, связанных с последовательностями, таких как генерация и перевод текста или даже создание подписей к изображениям.
Их недостатком было то, что их нельзя было распараллелить для использования мощных современных графических процессоров. Это ограничение проложило путь к появлению преобразователей, которые используют графические процессоры для массового распараллеливания обучения и вывода.
Если мы сейчас попытаемся обновить и распараллелить LSTM, смогут ли они стать инструментами для создания LLM следующего поколения?
Именно на этот вопрос отвечает статья « XLSM — Extended Long Short-term Memory Networks», что означает « расширенная » длинная кратковременная память. Они делают это, предлагая два новых блока в архитектуре, а именно sLSTM и mLSTM.
Итак, давайте углубимся в предлагаемые блоки sLSTM и mLSTM, предложенные в этой статье, и посмотрим, как мы можем объединить их вместе для разработки архитектуры XLSTM.
Если вы похожи на меня и хотите, чтобы XLSTM объяснялось визуально, посмотрите видео на YouTube в этой статье:
Одной из первых сетей, предназначенных для обработки последовательных данных, является рекуррентная нейронная сеть.
В своей архитектуре он использует рекуррентные соединения с x в качестве входных данных и o в качестве выходных данных. Если мы развернем его, мы сможем визуализировать его как последовательность операций, происходящих в отметки времени t-1, t и t+1 . Основным недостатком RNN была проблема исчезновения градиента, когда градиент достигает нуля, когда мы складываем слишком много блоков вместе.
LSTM, или сети с длинной краткосрочной памятью, были предложены для преодоления исчезающих градиентов путем введения в сеть состояний ячеек и механизмов шлюзования.
Состояния ячейки c — это долговременная память, которая сохраняется в нескольких временных метках. Скрытые состояния h — это кратковременные воспоминания, которые передаются от одного временного шага к другому. И, конечно же, у нас есть входные данные z из входной последовательности.
Трое ворот имеют S-образную функцию. Ворота забывания используют сигмовидную функцию, чтобы решить, какую информацию следует забыть в долговременной памяти. Входной вентиль также использует сигмовидную функцию для обработки входных данных и добавляет их к выходным данным вентиля забывания. В статье XLSTM и научной литературе для этой операции сложения есть причудливый термин, называемый каруселью постоянных ошибок . Эта операция сложения решает проблему исчезновения градиентов, возникающую в RNN. Выходной сигнал c_t затем обрабатывается выходным вентилем , который обычно представляет собой функцию tanh, приводящую к выходному сигналу скрытого состояния h_t, который передается на следующий шаг.
С помощью этих операций мы разобрали два основных уравнения LSTM: c_t и h_t .
Одним из основных недостатков LSTM является их неспособность пересматривать решения о хранении. Это означает, что по мере увеличения длины последовательности модель должна иметь возможность решать, сохраняет ли она прошлую информацию в памяти или нет.
Например, если мы возьмем это предложение: «Том пошел в магазин. Он купил немного напитков» и сравните это с «Том пошел в магазин, чтобы купить продукты, в том числе морковь, лук, бананы, яблоки, апельсины, кофе и хлеб. Он также купил немного напитков. Для каждого нового слова, например «бананы» или «яблоки», модели приходится постоянно пересматривать, следует ли ей хранить в памяти предыдущее слово «Том». Это серьезная проблема для LSTM, и она связана с сигмовидной функцией шлюза забывания.
Сигмовидная функция против экспоненциальной функции. Сигмовидная мышца сглаживается к концам, но экспонента только увеличивается.
Итак, если мы возьмем ворота забывания, они состоят из сигмовидной функции, которая имеет S-образную кривую, сглаживающуюся к концу. Это указывает на то, что по мере продвижения к более высоким значениям входных данных решение о том, что забыть, а что сохранить в памяти, становится весьма сложным. Но если вместо нее мы используем экспоненциальную функцию, игра меняется, и по мере того, как мы переходим к более высоким значениям входных данных, мы получаем более широкий диапазон выходных данных. Это, в свою очередь, указывает на то, что LSTM могут лучше пересматривать решения по хранению.
Итак, решение, предложенное в данной статье, — это системные блоки. Если мы вернемся к классическому уравнению LSTM, которое представляет состояние ячейки, как мы видели ранее, оно является функцией шлюза забывания и входных элементов.
Эти ворота, в свою очередь, состоят из сигмовидных функций. Итак, что, если мы заменим эти сигмовидные функции экспоненциальными функциями? Новые элементы f_t и i_t теперь стали exp(f_t) и exp(i_t), и это, по сути, основная модификация для создания блока sLSTM.
В отличие от сигмоидальной функции, которая сжимает входные данные до фиксированного диапазона, экспоненциальные функции имеют тенденцию увеличивать значение по мере увеличения входных данных, и они естественным образом не нормализуют выходные данные так, чтобы они находились, скажем, между 0 и 1, как сигмоидальная функция. функция.
Итак, нам нужно ввести новое состояние нормализатора , которое является функцией вентилей забывания и ввода. Мы можем думать об этом как о скользящем среднем значении нормализации.
Мы используем рассчитанные значения нормализации для нормализации вывода или нового скрытого состояния.
Хотя нормализация заботится о скрытых состояниях, чтобы контролировать экспоненту от взрыва входных и забывчивых вентилей, нам нужно ввести стабилизатор . Он представлен в виде функций журнала для противодействия эффекту экспоненты и обеспечения стабильности. Таким образом, состояние стабилизатора — это максимальное значение логарифма вентиля забывания и выхода входного вентиля. Мы вычитаем эти значения стабилизатора из входных данных и забываем вентили, чтобы стабилизировать их.
Второй недостаток LSTM — отсутствие распараллеливания. LSTM были разработаны для обработки последовательных данных, а это означает, что для обработки текущего ввода в последовательности необходимы выходные данные обработки предыдущего ввода в последовательности. Этот конкретный недостаток препятствует распараллеливанию и стал причиной начала эры Трансформеров.
Решение, предложенное в этой статье, — это новые блоки mLSTM. Итак, давайте посмотрим на них дальше.
Следующим строительным блоком XLSTM является блок mLSTM, где m означает память. Давайте снова вернемся к классическому уравнению LSTM и посмотрим, в чем его недостаток. Мы видим, что состояние ячейки c_t является скаляром. Это означает, что мы имеем дело только с одним числом за раз, когда у нас есть роскошь современных графических процессоров с объемом памяти не менее 12 ГБ.
Блок mLSTM вводит матрицы вместо скаляров для состояний ячейки. Возвращаясь к нашему классическому уравнению LSTM: что, если мы заменим c_t матрицей C *_t*, чтобы состояние ячейки теперь стало заглавной буквой C *_t* для обозначения матриц, и состояния ячеек можно было бы получить не только с помощью вентиля i_t , но и путем хранения пар ключ-значение, которые являются векторами. Значения которых можно получить с помощью запросов, которые являются векторами одного и того же измерения.
Чтобы терминология преобразователя звучала знакомо, они ввели здесь ключ и значение для формирования этой матрицы.
Имея эту информацию о sLSTM и mLSTM, давайте углубимся в подробную архитектуру XLSTM.
Когда дело доходит до sLSTM, мы используем прогнозы после завершения проекта. Итак, входные данные сначала проходят через причинно-следственные слои свертки с функцией активации взмаха. Выходные данные этих слоев затем подаются через блочно-диагональный линейный слой с четырьмя диагональными блоками или «головками». Выходные данные затем подаются через блок sLSTM с четырьмя головками. Наконец, выходные данные проецируются вверх с использованием стробируемого слоя MLP с активацией GeLU и проецируются вниз с использованием стробируемой функции MLP.
Переходя к деталям блока mLSTM, мы используем предварительные прогнозы. Это означает, что входной сигнал сначала проецируется вверх с коэффициентом проекции 2. Один из выходных сигналов проекции поступает в mLSTM, а другой — на выходной вентиль. Входные данные в блок mLSTM проходят через причинную свертку, а затем через матрицы диагональных проекций блока размером 4, которые выводят запрос, ключ и значение, которые легко используются блоком mLSTM.
Наконец, мы можем объединить два типа блоков, чтобы сформировать расширенную архитектуру LSTM. Таким образом, темно-серые блоки — это блоки mLSTM, а светло-серые — блоки sLSTM.
Что касается преимуществ, в документе упоминается, что сети XLSTM имеют линейную вычислительную сложность и постоянную сложность памяти в отношении длины последовательности.
Авторы обучались на наборе данных SlimPajama, чтобы сравнить его с другими методами, основанными на преобразователях, такими как LLAMA, и методами, основанными на пространстве состояний, такими как MAMBA. Они использовали обозначение xLSTM a:b, где a — количество блоков mLSTM, а b — количество блоков sLSTM в стеке.
Что касается точности, они сообщают об относительной точности путем масштабирования точности от 0 до 1, где 0 — случайное значение, а 1 — идеальное.
Оценки показывают, что XLSTM лучше справляется с такими задачами, как Parity, тогда как Llama и Mamba работают хуже.
Судя по результатам, особый интерес представляет задача четности, где преобразователи или модели в пространстве состояний имеют тенденцию бороться без смешивания памяти или отслеживания состояний. Мы видим, что в такого рода задачах xLSTM достигает точности 1, когда мы используем блоки sLSTM и mLSTM вместе.
Они также провели некоторые исследования абляции, чтобы показать надежность XLSTM. Их легко понять из бумаги. Более того, эта статья больше посвящена архитектурным новинкам XLSTM, поэтому я не буду здесь вдаваться в результаты экспериментов.
Если вам понравилась эта статья, почему бы не подписаться на меня
Также прошу подписаться на мою
Надеюсь, что эта статья упростила и облегчила понимание архитектуры XLSTM, зачем они нам нужны и как они потенциально могут обогнать трансформаторы в ближайшем будущем.
Давайте подождем и посмотрим, что у них есть в запасе. Увидимся в следующем…