paint-brush
Алгоритм трансформатора с минимально возможной оптимальной временной сложностьюк@thomascherickal
1,104 чтения
1,104 чтения

Алгоритм трансформатора с минимально возможной оптимальной временной сложностью

к Thomas Cherickal17m2024/05/26
Read on Terminal Reader

Слишком долго; Читать

Были достигнуты невероятные успехи в таких преобразователях, как DPO, LoRa и т. д. Но базовый алгоритм преобразователя также был улучшен! Мы увидим, как трансформеры работают на совершенно новом уровне. Величину этих открытий невозможно переоценить! Это революционно.
featured image - Алгоритм трансформатора с минимально возможной оптимальной временной сложностью
Thomas Cherickal HackerNoon profile picture
0-item
1-item


Сравнение внимания, мамбы, Джамбы и xLSTM

Пролог

В этой статье мы намеренно говорим только о временной сложности.


Чтобы узнать о пространственной сложности, обратитесь к моей статье об 1-битных преобразователях, доступной здесь:

Введение

Мы мчимся вперед в будущее в том, что касается технологии генеративного искусственного интеллекта, и алгоритмы, лежащие в основе больших языковых моделей, не являются исключением. В этой статье мы собираемся рассказать о трех наиболее интересных разработках в области генеративного искусственного интеллекта за последнее время и подробно рассказать о них. Один из них также достиг оптимальной временной сложности для запуска алгоритма большой языковой модели. Другими словами, недавняя разработка стала наиболее оптимально быстрым из возможных алгоритмов преобразования LLM - согласно нашим текущим моделям невозможно работать быстрее, чем это, с точки зрения асимптотической временной сложности, за исключением оптимизации постоянного времени. Поскольку мы имеем дело с сотнями миллиардов параметров, ускорение констант может быть весьма большим! Надеюсь, вы взволнованы так же, как и я, потому что это будет захватывающая поездка!


Действующий алгоритм — преобразователь, основанный на внимании

Все знакомы с плодотворным 2017 годом. Внимание — это все, что вам нужно, но я все равно подведу итог, чтобы новички имели более четкое представление о том, о чем мы говорим.


Это ссылка на исследовательскую работу:

Внимание — это все, что вам нужно

Из введения к статье:

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


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


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


Приравнивая позиции к шагам во времени вычисления, они генерируют последовательность скрытых состояний ℎ𝑡 в зависимости от предыдущего скрытого состояния ℎ𝑡−1 и входных данных для позиции 𝑡.


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


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


Однако фундаментальное ограничение последовательных вычислений остается.


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


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


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


Transformer обеспечивает значительно большую степень распараллеливания и может достичь нового уровня качества перевода после всего лишь двенадцатичасового обучения на восьми графических процессорах P100.


И, как мы знаем, трансформаторы GPT-1, GPT-2, GPT-3 и GPT 3.5 вскоре навсегда произвели революцию в генеративном искусственном интеллекте.


Внезапно машины смогли говорить по-человечески по-английски.


Это была классическая диаграмма, которая доминировала в статьях и бюллетенях исследовательских новостей в течение следующих двух лет:

Оригинальная архитектура-трансформер.


Потом вышел GPT-4 — и жизнь уже никогда не будет прежней.


Мы пересекли переломный момент.


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


Временная сложность алгоритма Трансформатора была квадратичной или O(n*n), где n — количество входных параметров .


Для стандартной модели трансформатора с 𝐿 слоями временная сложность алгоритма вывода равна 𝑂( L*n*n*d ) , где L — количество слоев, n — количество входных токенов, а d — глубина преобразователя .


На какое-то время это казалось последним достижением.


Квантование было представлено в другой статье еще в 2021 году, и это, казалось, был следующий современный механизм (см. раздел «Прелюдия» ).


Но вскоре у нас появился еще один претендент.


Добро пожаловать в алгоритм Мамбы

Это была соответствующая исследовательская работа:



Мамба: моделирование последовательностей линейного времени с выборочными пространствами состояний


Из аннотации к научной статье:


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


Многие архитектуры субквадратичного времени, такие как линейное внимание, вентилируемая свертка и рекуррентные модели, а также модели структурированного пространства состояний (SSM), были разработаны для решения проблемы вычислительной неэффективности Трансформаторов при обработке длинных последовательностей, но они не проявили должного внимания к таким важным модальностям, как как язык.


Мы определяем, что ключевым недостатком таких моделей является их неспособность выполнять рассуждения на основе содержания, и вносим несколько улучшений.


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


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


Мы интегрируем эти выборочные SSM в упрощенную сквозную архитектуру нейронной сети без внимания и даже блоков MLP (Mamba).


Mamba обладает быстрым выводом (пропускная способность в 5 раз выше, чем у Transformers) и линейным масштабированием длины последовательности, а ее производительность улучшается на реальных данных с последовательностями длиной до миллиона.


Являясь основой модели общей последовательности, Mamba обеспечивает современную производительность в нескольких аспектах, таких как язык, аудио и геномика.


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

ВсВнезапно



Внезапно у нас в городе появился новый конкурент!


Основными преимуществами алгоритма Мамба-трансформера были:



  1. Гибридная архитектура :

    Mamba объединила уровни Transformer и Mamba, что позволило повысить производительность и пропускную способность при сохранении управляемого объема памяти.


  2. Решаемые проблемы :

    • Эффективность памяти и вычислений : Mamba учитывает высокие требования к памяти и вычислениям Трансформеров, особенно для длинных контекстов.

    • Итоговое состояние : в отличие от Transformers, Mamba предоставляет единое итоговое состояние, что позволяет быстрее делать выводы.


  3. Детали архитектуры :

    • Слои-трансформеры : Mamba включила слои-трансформеры.
    • Слои Mamba : Mamba представляет уровни моделирования в пространстве состояний (SSM), которые эффективно обрабатывают длинные контексты.
    • Смешанные эксперты (MoE) : Mamba использует уровни MoE для увеличения емкости модели без значительного увеличения требований к вычислительным ресурсам.


  4. Производительность :

    Производительность Mamba сопоставима с существующими моделями, такими как Mixtral-8x7B и Llama-2 70B, при этом поддерживая длину контекста до 256 000 токенов.


  5. Эффективность : пропускная способность Mamba была в 3 раза выше, чем у Mixtral-8x7B для длинных контекстов, и она помещалась в один графический процессор даже с большими контекстами.


Архитектура Mamba представляет собой значительный шаг вперед в области больших языковых моделей, сочетая в себе сильные стороны подходов Transformer и SSM.


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


В частности, алгоритм Мамбы с треском провалился при представлении набора данных IMDB.


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


Вы можете увидеть реализацию на Python здесь:


И это отличное объяснение алгоритма Мамбы с приложенной теорией.

А вот стандартная реализация Mamba в PyPI:


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


Перейдем к следующему претенденту — алгоритму xLSTM.


Алгоритм xLSTM

С исследовательской работой можно ознакомиться здесь:

xLSTM: расширенная долговременная краткосрочная память — arXiv .


Из аннотации к научной статье:

В 1990-х годах карусель постоянных ошибок и стробирование были представлены в качестве центральных идей долгосрочной краткосрочной памяти (LSTM).


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


Однако появление технологии Transformer с распараллеливаемым самообслуживанием в своей основе ознаменовало начало новой эры, опередив LSTM по своим масштабам.


Теперь мы поднимаем простой вопрос: как далеко мы продвинемся в языковом моделировании при масштабировании LSTM до миллиардов параметров, используя новейшие методы современных LLM, но смягчая известные ограничения LSTM?


Во-первых, мы вводим экспоненциальное стробирование с соответствующими методами нормализации и стабилизации.


Во-вторых, модифицируем структуру памяти LSTM, получив:


(i) sLSTM со скалярной памятью, скалярным обновлением и новым смешиванием памяти,


(ii) mLSTM, который полностью распараллеливается с матричной памятью и правилом обновления ковариации.


Интеграция этих расширений LSTM в магистрали остаточных блоков дает блоки xLSTM, которые затем по остаточному принципу укладываются в архитектуры xLSTM.


Экспоненциальное вентилирование и модифицированные структуры памяти повышают эффективность xLSTM по сравнению с современными трансформаторами и моделями пространства состояний как по производительности, так и по масштабируемости.


xLSTM стал новым рассветом модели LSTM.


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


В xLSTM использовалась та же модель, но в совершенно другой архитектуре.


Это было главное нововведение, отраженное на диаграмме в исследовательской работе:


Основными преимуществами xLSTM были:


Преимущества xLSTM по сравнению с алгоритмом Transformer:

  1. Обработка длинных последовательностей :

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




  2. Вычислительная эффективность :

    • xLSTM может быть более эффективным в вычислительном отношении для определенных задач, особенно при работе с меньшими наборами данных или когда длина последовательности не слишком велика.

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




  3. Использование памяти :

    • xLSTM обычно требовал меньше памяти, чем Transformers.

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


  4. Стабильность тренировок :

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

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


  5. Простота и интерпретируемость :

    • Модели xLSTM могут быть проще для понимания и интерпретации по сравнению с Transformers.

    • Рекуррентный характер LSTM облегчил отслеживание потока информации через сеть, тогда как механизмы внимания в Transformers могли быть более абстрактными и трудными для интерпретации.


  6. Производительность на небольших наборах данных :

    • xLSTM может работать лучше на небольших наборах данных или когда помеченные данные ограничены.

    • Трансформаторам обычно требуются большие объемы данных для полной реализации своего потенциала, что делает xLSTM лучшим выбором в сценариях с ограниченной доступностью данных.

      .

  7. Последовательные данные :

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


Однако важно отметить, что у Transformers есть свои преимущества, такие как лучшие возможности распараллеливания, превосходная производительность при работе с большими наборами данных и самые современные результаты во многих задачах НЛП.


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


Вы можете увидеть реализацию xLSTM в PyTorch здесь:


Подробное объяснение xLSTM можно увидеть здесь:

Это хорошее резюме его текущего состояния:





Но был преемник Мамбы, который попал в Святой Грааль — оптимальную временную сложность для алгоритма LLM.


Джамба — преемник Мамбы, который с легкостью превзошел ее!


Исследовательскую работу можно найти здесь:

Джамба: гибридная языковая модель трансформера-мамбы


Из аннотации исследовательской работы:


Мы представляем Jamba, новую базовую модель большого языка, основанную на новой гибридной архитектуре смешанных экспертов (MoE) Transformer-Mamba.


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


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


Эта гибкая архитектура позволяет настраивать конфигурации в зависимости от ресурсов и целей.


В конкретной конфигурации, которую мы реализовали, мы получили мощную модель, вмещающую один графический процессор емкостью 80 ГБ.


Созданный в больших масштабах, Jamba обеспечивает высокую пропускную способность и небольшой объем памяти по сравнению с ванильными Transformers, и в то же время современную производительность в тестах стандартной языковой модели и долгоконтекстных оценках.


Примечательно, что модель показывает хорошие результаты для длины контекста до 256 тыс. токенов.


Мы изучаем различные архитектурные решения, например, как объединить слои Transformer и Mamba, а также как смешивать экспертов, и показываем, что некоторые из них имеют решающее значение в крупномасштабном моделировании.


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


Мы делаем результаты нашей реализации Jamba общедоступными по разрешительной лицензии.



Реализация доступна в репозитории HuggingFace здесь:


Модель: https://huggingface.co/ai21labs/Jamba-v0.1



  1. Сравнение с другими моделями :


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


Ключевая диаграмма, которую следует запомнить, представлена в исследовательской работе выше:



Чередование моделей Mamba и Transformer приводит к невероятному увеличению временной сложности, что прекрасно резюмировано в статье ниже:


Мамба и Джамба — просто объяснено

  • Автор : Нимрита Коул

  • Дата : 1 апреля 2024 г.


  • Краткое содержание :

    • Jamba — это первая модель большого языка на основе Mamba промышленного уровня, представленная AI21.


    • Он сочетает в себе сильные стороны архитектур Transformer и Mamba.


      • Модели на основе трансформаторов плохо справляются с длинными последовательностями из-за сложности времени обучения O(n²) .


      • Архитектура Mamba предлагает линейную сложность времени обучения ( O(n) ) и постоянное время вывода ( O(1) ).


      • Мамба основана на архитектуре State Space Model (SSM).


      • SSM используют переменные состояния для описания системы с помощью дифференциальных или разностных уравнений.


      • Гибридный подход Мамбы направлен на устранение ограничений существующих моделей.



Полную статью вы можете прочитать здесь:

Мамба и Джамба — просто объяснено , Нимрита Коул, на Medium.com.


Оптимальная граница достигнута!

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


Кроме того, максимально возможная скорость вывода для любой модели LLM равна O(1) — постоянное время, независимое от длины токенов (невероятное достижение)!


Оба этих предела были достигнуты в случае алгоритма Джамбы!


Следовательно, при постоянных улучшениях, которые все еще могут быть очень высокими (эти цифры исчисляются сотнями миллиардов):


Джамба достиг оптимальной границы временной сложности для алгоритма преобразователя!


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


Это очень значимый результат!


Jamba — самый многообещающий алгоритм-трансформер на сегодняшний день!


Официальное заявление лаборатории A121:

Еще одна хорошая статья на Medium о Jamba:

Одна из лучших реализаций Jamba, доступных на данный момент:


И снова модель Jamba HuggingFace Hub:

Заключение

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

На данный момент ограничений буквально нет!


Эпилог:


В этом есть одна сторона, над которой, похоже, никто не работает открыто.


Могут ли модели Mamba, xLSTM и Jamba быть квантованы с точностью до 1 бита?


Конечно!


Мне не терпится увидеть улучшение производительности Mamba и Jamba, когда оно будет квантовано до одного бита! Или 1,58 бит {-1, 0, 1 }.


Еще раз, более подробную информацию смотрите в этой статье:


https://hackernoon.com/why-1-bit-transformers-will-change-the-world


Будущее этой технологии будет невероятно захватывающим!


Пусть радость и азарт от работы в этой сфере всегда останутся с вами!


Ваше здоровье!


Впереди захватывающие времена!


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

Кроме тех, которые явно упомянуты в статье выше:

  1. Transformer-XL: модели внимательного языка за пределами контекста фиксированной длины
  2. Longformer: Трансформатор длинных документов
  3. Реформатор: эффективный преобразователь
  4. Линформер: внимание к себе с линейной сложностью
  5. Модели пространства состояний: общая основа моделирования данных временных рядов
  6. S4: Моделирование последовательностей с помощью структурированных пространств состояний
  7. О вычислительной эффективности больших языковых моделей
    • Анонимные авторы. (Год не указан). [О вычислительной эффективности больших языковых моделей] (URL-адрес не указан).
  8. Эффективные трансформаторы: обзор
  9. Квантование и обучение нейронных сетей для эффективного целочисленного арифметического вывода
  10. Q-BERT: квантование BERT со сверхнизкой точностью на основе гессиана
  11. BERT: предварительная подготовка глубоких двунаправленных преобразователей для понимания языка
  12. GPT-3: Языковые модели изучаются немногими
  13. RoBERTa: надежно оптимизированный подход к предварительному обучению BERT
  14. АЛЬБЕРТ: Lite BERT для самостоятельного изучения языковых представлений
  15. T5: Исследование ограничений трансферного обучения с помощью унифицированного преобразователя текста в текст
  16. DistilBERT, усовершенствованная версия BERT: меньше, быстрее, дешевле и легче.




И не забывайте о космической сложности! Почти одинаково важно!


Для пролога и эпилога

Что касается квантования, эту статью определенно стоит прочитать:

  1. Исследовательская работа - BitNet: Масштабирование 1-битных преобразователей для больших языковых моделей :

    • Аннотация : Увеличение размера больших языковых моделей создало проблемы при развертывании и вызвало обеспокоенность по поводу воздействия на окружающую среду из-за высокого энергопотребления. В этой работе мы представляем BitNet — масштабируемую и стабильную 1-битную архитектуру Transformer, предназначенную для больших языковых моделей. В частности, мы представляем BitLinear в качестве замены слоя nn.Linear для обучения 1-битных весов с нуля. Экспериментальные результаты языкового моделирования показывают, что BitNet достигает конкурентоспособной производительности , существенно сокращая объем памяти и энергопотребление по сравнению с современными 8-битными методами квантования и базовыми моделями FP16 Transformer. Более того, BitNet демонстрирует закон масштабирования, аналогичный трансформерам полной точности , что предполагает его потенциал для эффективного масштабирования до еще более крупных языковых моделей при сохранении преимуществ эффективности и производительности.

      Прочитать полный текст исследования


      https://arxiv.org/abs/2310.11453



И модель на HuggingFace:

  1. Репозиторий Hugging Face — BitNet b1.58-3B Quantized :
    • Этот репозиторий содержит квантованную версию модели BitNet b1.58-3B .

      Хотя исходный репозиторий демонстрирует впечатляющие результаты проверки, он имитирует линейные уровни BitNet, в результате чего использование памяти аналогично моделям FP16.


      Изучите модель Hugging Face


      https://huggingface.co/kousw/bitnet_b1_58-3B_quantized


О будущем скажу одно: оно будет захватывающим!