Модели и платформы ИИ

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

mm
Добавьте Unite.AI в избранные источники в Google

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

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

Параметры в LLM

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

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

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

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

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

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

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

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

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

Введение в LoRA

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

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

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

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

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

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

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

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

 

Внимание голов трансформера

Внимание голов трансформера

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

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

  1. Предварительно обученная весовая матрица :
    • Она начинается с предварительно обученной весовой матрицы размера . Это означает, что матрица имеет строк и столбцов.
  2. Низкоранговая декомпозиция:
    • Вместо прямого обновления всей матрицы , которая может быть вычислительно дорогой, метод предлагает низкоранговую декомпозицию.
    • Обновление к может быть представлено как произведение двух матриц: и .
      • имеет размер
      • имеет размер
    • Ключевым моментом здесь является то, что ранг намного меньше как , так и , что позволяет для более вычислительно эффективного представления.
  3. Обучение:
    • Во время процесса обучения остается неизменным. Это называется “замораживанием” весов.
    • С другой стороны, и являются обучаемыми параметрами. Это означает, что во время обучения корректировки делаются в матрицах и для улучшения производительности модели.
  4. Умножение и сложение:
    • И и обновление (которое является произведением и ) умножаются на один и тот же вход (обозначаемый как ).
    • Выходы этих умножений затем складываются.
    • Этот процесс суммируется в уравнении: Здесь представляет собой окончательный выход после применения обновлений к входу .

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

LoRA

LoRA

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

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

  1. Инициализация матриц и :
    • Матрица : Эта матрица инициализируется случайными гауссовыми значениями, также известными как нормальное распределение. Обоснование использования гауссовской инициализации заключается в том, чтобы разрушить симметрию: разные нейроны в одном слое будут学习 разные особенности, когда они имеют разные начальные веса.
    • Матрица : Эта матрица инициализируется нулями. Делая это, обновление начинается как ноль в начале обучения. Это обеспечивает, что не будет внезапного изменения поведения модели в начале, позволяя модели постепенно адаптироваться, пока учится подходящие значения во время обучения.
  2. Масштабирование выхода из :
    • После вычисления обновления , его выход масштабируется коэффициентом где является константой. Масштабируя, величина обновлений контролируется.
    • Масштабирование особенно важно, когда ранг меняется. Например, если вы решите увеличить ранг для большей точности (за счет вычислений), масштабирование обеспечивает, что вам не нужно корректировать многие другие гиперпараметры в процессе. Это обеспечивает уровень стабильности модели.

Практическое влияние LoRA

LoRA продемонстрировала свой потенциал для настройки LLM для конкретных художественных стилей эффективно сообществом 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 находит свое практическое применение в библиотеке Hugging Face Parameter Efficient Fine-Tuning (PEFT), упрощая ее использование. Для тех, кто хочет использовать QLoRA, она доступна через комбинацию библиотек bitsandbytes и PEFT. Кроме того, библиотека HuggingFace Transformer Reinforcement Learning (TRL) облегчает дообучение с встроенной поддержкой LoRA. Вместе эти три библиотеки предоставляют необходимый инструментарий для дообучения выбранной предварительно обученной модели, позволяя генерировать убедительные и связные описания продукта при указании конкретных инструкций по атрибутам.

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

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

Заключение

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

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

Матрица

Матрица

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

Я провел последние пять лет, погружаясь в увлекательный мир машинного обучения и глубокого обучения. Моя страсть и экспертиза привели меня к участию в более чем 50 различных проектах программной инженерии, с особым акцентом на ИИ/МО. Мое непрекращающееся любопытство также привело меня к обработке естественного языка, области, которую я с нетерпением жду возможности изучить дальше.