Адаптация низкого ранга

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM DeepSeek-V3 и проверена участником М. Мишин 17:37, 18 июня 2026 (MSD)

Промпт приводится полностью в Обсуждение:Дистилляция моделей


Содержание


Определение и основная идея

Low‑Rank Adaptation (LoRA) — метод эффективного по числу обучаемых параметров (parameter‑efficient fine‑tuning, PEFT) тонкой настройки предобученных нейронных сетей.[1] В основе метода лежит гипотеза о том, что изменения весовых матриц при адаптации большой модели к конкретной задаче обладают низким рангом. Вместо прямого обновления полной матрицы весов W \in \mathbb{R}^{d \times k} в LoRA обучается её аддитивная низкоранговая добавка \Delta W = BA, где B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times k}, а ранг r \ll \min(d,k). Исходные веса W при этом «замораживаются». Такой подход позволяет сократить количество обучаемых параметров в сотни и тысячи раз, сохраняя или почти не ухудшая качество по сравнению с полной тонкой настройкой.

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

Мотивация

Современные предобученные модели, особенно в области обработки естественного языка и компьютерного зрения, содержат от сотен миллионов до триллионов параметров. Полная тонкая настройка (full fine‑tuning) требует хранения и обновления всех параметров для каждой конкретной задачи, что ведёт к колоссальным затратам памяти, вычислительных ресурсов и дисковой ёмкости при развёртывании множества специализированных версий модели. Parameter‑efficient fine‑tuning (PEFT) решает эту проблему, модифицируя лишь малую долю параметров, тогда как основная масса весов остаётся неизменной и разделяется между задачами.

Историческая справка

Теоретическим фундаментом LoRA послужило исследование Армена Агаджаняна и соавторов[1], показавшее, что тонкая настройка языковых моделей может быть выполнена в подпространстве малой размерности («внутренняя размерность» задачи). Параллельно развивались практические методы PEFT: вставка компактных адаптерных модулей[1], префиксная настройка[1] и промпт-настройка[1]. Метод LoRA был предложен в 2021 году Эдвардом Ху и его коллегами из Microsoft[1] и сразу привлёк внимание сообщества благодаря элегантности математической формулировки, отсутствию дополнительных задержек на этапе вывода и совместимости с другими PEFT‑методами.

Описание метода

Математическая формулировка

Рассмотрим полносвязный слой с матрицей весов W \in \mathbb{R}^{d \times k}. Выход слоя на входном векторе x в процессе тонкой настройки вычисляется как

h = Wx + \Delta W x = Wx + BAx,

где W заморожена, а матрицы B \in \mathbb{R}^{d \times r} и A \in \mathbb{R}^{r \times k} содержат обучаемые параметры. Ранг r выбирается значительно меньшим, чем размеры исходной матрицы. После завершения обучения явное произведение BA можно прибавить к W, получив W' = W + BA; таким образом, на этапе вывода не возникает дополнительных вычислительных затрат по сравнению с исходной моделью.

Гипотеза низкого ранга обновлений подтверждается эмпирически: анализ сингулярных чисел матрицы \Delta W в ряде задач демонстрирует быстрое убывание спектра, причём основная информация концентрируется в нескольких ведущих компонентах[1].

Применение к механизму внимания

В архитектуре трансформера[1] наибольший объём параметров приходится на матрицы запросов, ключей, значений и выходную матрицу многоголового внимания (W_q, W_k, W_v, W_o). Оригинальная работа[1] фокусируется на адаптации W_q и W_v; последующие исследования распространили LoRA на все четыре матрицы или только на W_q и W_o, в зависимости от баланса между качеством и числом параметров.

Выбор ранга и инициализация

Инициализация матриц

Ключевое требование к инициализации — чтобы в начале обучения \Delta W = 0, и модель вела себя в точности как предобученная. Для этого матрица A инициализируется случайным образом (например, из нормального распределения с малой дисперсией), а матрица B — нулями. Благодаря этому градиенты на старте затрагивают только A, а обновление весов начинается плавно.

Развитием этого подхода стала инициализация на основе сингулярного разложения исходной матрицы W (метод PiSSA[1]), где A и B инициализируются главными сингулярными векторами и значениями W, а остаток от разложения замораживается. Это позволяет ускорить сходимость в задачах, где желательно не «портить» сильно предобученное представление.

Влияние ранга

Эксперименты Ху и соавторов[1] на моделях GPT‑2 и GPT‑3 показали, что даже экстремально низкие ранги (r = 1, 2, 4) зачастую обеспечивают качество, сравнимое с полной тонкой настройкой, при этом прирост при дальнейшем увеличении r быстро насыщается. На практике для языковых задач популярны значения r \in \{8, 16, 32\}. Выбор конкретного ранга диктуется компромиссом между допустимым числом обучаемых параметров и требуемой точностью адаптации. Систематические исследования показывают, что эффективность низкого ранга коррелирует с «внутренней размерностью» задачи[1].

Динамический и адаптивный ранг

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

  • DyLoRA[1] — обучает матрицы A и B сразу для нескольких рангов, случайным образом выбирая эффективный ранг на каждом шаге оптимизации. Это позволяет после обучения гибко усекать ранг без потери точности.
  • AdaLoRA (Zhang et al., ICLR 2023) — формулирует задачу как оптимизацию с бюджетом параметров и использует важность сингулярных значений для автоматического назначения неравномерных рангов разным весовым матрицам в ходе обучения.

Применения за пределами трансформерных архитектур

Хотя LoRA родилась в контексте языковых трансформеров, её базовая идея не зависит от конкретной архитектуры. Общий принцип — факторизация обновления весового тензора в виде низкорангового произведения — легко переносится на другие слои и модальности. Так, LoRA успешно адаптирована для:

  • Компьютерное зрение: Vision Transformer (ViT), свёрточные нейронные сети (CNN). В CNN весовой тензор ядра размером k \times k \times C_{in} \times C_{out} преобразуется в двумерную матрицу и раскладывается на произведение двух низкоранговых матриц, что открывает возможность эффективной настройки популярных «зрительных» энкодеров (ResNet, ConvNeXt) с числом обучаемых параметров, составляющим менее 1 % исходных.
  • Диффузионные модели: генеративные модели, такие как Stable Diffusion, тонко настраиваются с помощью LoRA для переноса стиля или запоминания конкретных объектов (DreamBooth[1]). Здесь LoRA накладывается преимущественно на слои кросс‑внимания, что доказало свою эффективность и породило обширную экосистему облегчённых адаптеров.
  • Графовые нейронные сети (GNN): применение LoRA к слоям графовых трансформеров и классических GNN позволяет адаптировать крупные модели к новым типам графов с минимальной дополнительной памятью.
  • Федеративное обучение: метод FedLoRA использует низкоранговые адаптеры для персонализации глобальной модели под локальные данные клиентов, обеспечивая коммуникационную эффективность и совместимость моделей разной архитектуры.
  • Обработка аудио и речи: LoRA применяется для быстрой адаптации больших моделей автоматического распознавания речи (Whisper, Wav2Vec 2.0) и синтеза речи, особенно в условиях ограниченного объёма целевых данных.

Преимущества и ограничения

Преимущества:

  • Резкое сокращение числа обучаемых параметров (часто в 100–1000 раз) и, как следствие, требований к памяти и дисковой ёмкости.
  • Отсутствие задержек на инференсе благодаря возможности слияния обученных матриц с исходными весами.
  • Простота реализации и совместимость с другими PEFT‑методами (например, с префиксной настройкой или квантизацией, как в QLoRA[1]).
  • Допускает независимое обучение и композицию нескольких адаптеров для разных задач.

Ограничения:

  • Качество может уступать полной тонкой настройке в задачах, требующих значительного изменения распределения признаков (при очень большом доменном сдвиге).
  • Оптимальный ранг и выбор матриц, к которым применяется LoRA, до сих пор определяются эмпирически или с помощью эвристик, хотя и автоматизируются современными расширениями.
  • Применение к операциям, отличным от линейных (например, нормализациям или функциям активации), напрямую невозможно; для них приходится использовать иные методы вставки адаптеров.

См. также

Примечания

Литература