LoRa, QLoRA и QA-LoRA эффективная адаптируемость в больших языковых моделях через факторизацию матрицы низкого ранга

LoRa, QLoRA и QA-LoRA эффективная адаптируемость в больших языковых моделях через факторизацию матрицы низкого ранга

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

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

Параметры в LLM

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

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

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

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

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

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

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

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

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

Введение в LoRA

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

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

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

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

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

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

Архитектура Transformers

Архитектура Transformers

 

Внимательность Transformer

Внимательность Transformer

Математическое объяснение за 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=W0​x+ΔWx=W0​x+BAx. Здесь h представляет собой окончательный вывод после применения обновлений к входу x.

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

Анимация LORA

LORA

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

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

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

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

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

Как отмечено в статье с примером 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. Начальное квантование: Сначала Large Language Model (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 заключается в возможности изменения предварительно обученных моделей без их полной повторной обучения, что позволяет снизить количество обучаемых параметров и сделать процесс адаптации более экономически эффективным.

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

Matrix

Matrix

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