Connect with us

LoRa, QLoRA и QA-LoRA: Эффективная Адаптивность в Больших Языковых Моделях через Факторизацию Матрицы Низкого Ранга

Искусственный интеллект

LoRa, QLoRA и QA-LoRA: Эффективная Адаптивность в Больших Языковых Моделях через Факторизацию Матрицы Низкого Ранга

mm
LoRA : Low-Rank Adaptation of Large Language Models

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

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

Параметры в LLM

https://huggingface.co/blog/hf-bitsandbytes-integration

Изображение выше представляет собой масштаб различных больших языковых моделей, отсортированных по количеству параметров. Заметно: PaLM, BLOOM и т. д.

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

Вступает Low-Rank Adaptation (LoRA), представленная компанией Microsoft в этой статье, направленная на смягчение этих проблем и сделать LLM более доступными и адаптируемыми.

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

Эволюция стратегий настройки LLM

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

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

Когда практики искали более эффективные подходы, полная тонкая настройка появилась как строгий, но перспективный метод.

Введение в LoRA

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

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

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

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

Применение LoRA к трансформерам

LoRA помогает минимизировать нагрузку на обучение в нейронных сетях, фокусируясь на конкретных матрицах весов. В архитектуре трансформера определенные матрицы весов связаны с механизмом само-внимания, а именно Wq, Wk, Wv и Wo, а также две дополнительные в модуле многослойного перцептрона (MLP).

Архитектура трансформеров

Архитектура трансформеров

 

Головки внимания трансформера

Головки внимания трансформера

Математическое объяснение LoRA

Давайте разберем математику за LoRA:

  1. Предварительно обученная матрица весов W0:
    • Она начинается с предварительно обученной матрицы весов W0 размера d×k. Это означает, что матрица имеет d строк и k столбцов.
  2. Факторизация матрицы низкого ранга:
    • Вместо прямого обновления всей матрицы W0, что может быть вычислительно дорогим, метод предлагает подход факторизации матрицы низкого ранга.
    • Обновление ΔW к W0 может быть представлено как произведение двух матриц: B и A.
      • B имеет размер d×r
      • A имеет размер r×k
    • Ключевым моментом здесь является то, что ранг r намного меньше, чем оба d и k, что позволяет получить более вычислительно эффективное представление.
  3. Обучение:
    • Во время процесса обучения W0 остается неизменным. Это называется “замораживанием” весов.
    • С другой стороны, A и B являются обучаемыми параметрами. Это означает, что во время обучения корректировки производятся в матрицах A и B, чтобы улучшить производительность модели.
  4. Умножение и сложение:
    • И W0 и обновление ΔW (которое является произведением B и A) умножаются на один и тот же вход (обозначаемый как x).
    • Результаты этих умножений затем складываются вместе.
    • Этот процесс суммируется в уравнении: h=W0x+ΔWx=W0x+BAx. Здесь h представляет собой конечный выход после применения обновлений к входу x.

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

LORA

LORA

Инициализация и масштабирование:

Когда мы тренируем модели, то, как мы инициализируем параметры, может существенно повлиять на эффективность и результативность процесса обучения. В контексте нашего обновления матрицы весов с помощью A и B:

  1. Инициализация матриц A и B:
    • Матрица A: Эта матрица инициализируется случайными гауссовыми значениями, также известными как нормальное распределение. Обоснование использования гауссовской инициализации заключается в том, чтобы разрушить симметрию: разные нейроны в одном и том же слое будут учиться разным особенностям, когда у них разные начальные веса.
    • Матрица B: Эта матрица инициализируется нулями. Сделав это, обновление ΔW=BA начинается как ноль в начале обучения. Это гарантирует, что не будет внезапного изменения в поведении модели в начале, позволяя модели постепенно адаптироваться, пока B учится соответствующие значения во время обучения.
  2. Масштабирование выхода из ΔW:
    • После вычисления обновления ΔW, его выход масштабируется коэффициентом rα где α является константой. Масштабируя, контролируется величина обновлений.
    • Масштабирование особенно важно, когда ранг r меняется. Например, если вы решите увеличить ранг для большей точности (за счет вычислений), масштабирование гарантирует, что вам не нужно корректировать многие другие гиперпараметры в процессе. Это обеспечивает определенный уровень стабильности модели.

Практическое воздействие LoRA

LoRA продемонстрировала свой потенциал для тонкой настройки LLM для конкретных художественных стилей эффективно сообществом Unite.AI. Это было особенно показано в адаптации модели для подражания художественному стилю Грега Рутковского.

Как подчеркивалось в статье с использованием GPT-3 175B в качестве примера. Имея отдельные экземпляры тонко настроенных моделей с 175B параметров каждая, довольно дорого. Но с LoRA количество обучаемых параметров уменьшается в 10 000 раз, а использование памяти GPU снижается до трети.

Влияние LoRa на тонкую настройку GPT-3

Влияние LoRa на тонкую настройку GPT-3

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

QLoRA (Квантованная)

Хотя LoRA является прорывом в снижении потребностей в хранении, она все еще требует мощного GPU для загрузки модели для обучения. Вот где вступает в действие QLoRA, или Квантованная LoRA, сочетая LoRA с квантованием для более умного подхода.

Квантование

Квантование

Обычно весовые параметры хранятся в 32-битовом формате (FP32), что означает, что каждый элемент матрицы занимает 32 бита места. Представьте, если бы мы могли сжать одну и ту же информацию всего в 8 или даже 4 бита. Это и есть основная идея за QLoRA. Квантование относится к процессу сопоставления непрерывных бесконечных значений с меньшим набором дискретных конечных значений. В контексте LLM это относится к процессу преобразования весов модели из более высоких типов данных в типы данных более низкой точности.

Квантование в LLM

Квантование в LLM

Вот более простое объяснение QLoRA:

  1. Первоначальное квантование: Сначала большая языковая модель (LLM) квантуется до 4 бит, что существенно снижает размер памяти.
  2. Обучение LoRA: Затем выполняется обучение LoRA, но в стандартной точности 32 бит (FP32).

Теперь вы можете задаться вопросом, почему возвращаться к 32 битам для обучения после сжатия до 4 бит? Ну, чтобы эффективно обучать адаптеры LoRA в FP32, веса модели также должны вернуться к FP32. Это переключение туда и обратно выполняется в умном, пошаговом порядке, чтобы не перегружать память GPU.

LoRA находит свое практическое применение в библиотеке Unite.AI Parameter Efficient Fine-Tuning (PEFT), упрощая ее использование. Для тех, кто хочет использовать QLoRA, она доступна через комбинацию библиотек bitsandbytes и PEFT. Кроме того, библиотека Unite.AI Transformer Reinforcement Learning (TRL) облегчает тонкую настройку с встроенной поддержкой LoRA. Вместе эти три библиотеки предоставляют необходимый инструментарий для тонкой настройки предварительно обученной модели, позволяя генерировать убедительные и связные описания продукта при наличии конкретных инструкций по атрибутам.

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

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

Заключение

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

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

Матрица

Матрица

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

Я провел последние пять лет, погружаясь в увлекательный мир Machine Learning и Deep Learning. Моя страсть и экспертиза привели меня к участию в более чем 50 различных проектах по разработке программного обеспечения, с особым акцентом на AI/ML. Мое непрекращающееся любопытство также привело меня к Natural Language Processing, области, которую я с нетерпением жду возможности изучить более подробно.