LoRA

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

(Различия между версиями)
Перейти к: навигация, поиск
(Содержимое страницы заменено на «<!-- Публикуется под заголовком: LoRA Это страница-перенаправление на осн...»)
 
Строка 1: Строка 1:
-
{{well|Статья написана с использованием LLM '''Claude Opus 4.8''' и проверена участником [[Участник:Iaroslav Lyakhov|Iaroslav Lyakhov]] 20:37, 5 июля 2026 (MSD)}}
+
<!-- Публикуется под заголовком: LoRA
-
{{TOCright}}
+
Это страница-перенаправление на основную статью «Адаптация низкого ранга».
-
 
+
Весь текст страницы - одна строка ниже. -->
-
'''LoRA''' (англ. ''Low-Rank Adaptation'', низкоранговая адаптация) - метод экономного [[Дообучение|дообучения]] больших [[Нейронная сеть|нейросетевых]] моделей. При обучении веса исходной модели замораживаются, а настраивается лишь небольшое число дополнительных параметров, представленных произведением двух узких матриц низкого ранга. LoRA относится к семейству методов '''PEFT''' (parameter-efficient fine-tuning, параметрически-эффективное дообучение) и стала стандартным способом адаптации [[Большая языковая модель|больших языковых моделей]] под конкретные задачи при ограниченных ресурсах. Предложена исследователями Microsoft (Hu et al., 2021).
+
#REDIRECT [[Адаптация низкого ранга]]
-
 
+
-
== Проблема ==
+
-
У современной LLM миллиарды весов. Полное дообучение означает, что для каждого веса нужно хранить сам вес, его градиент и состояния оптимизатора (например, у Adam - два дополнительных числа на параметр). В сумме это десятки и сотни гигабайт памяти видеокарты. Хуже того, под каждую новую задачу приходится хранить отдельную полную копию модели. Для большинства команд это слишком дорого и неудобно.
+
-
 
+
-
== Идея ==
+
-
LoRA опирается на наблюдение: при дообучении веса меняются «неглубоко», и '''матрица изменений имеет низкий ранг'''. Поэтому вместо того чтобы менять матрицу весов <tex>W_0 \in \mathbb{R}^{d\times k}</tex> напрямую, её приращение раскладывают в произведение двух узких матриц:
+
-
 
+
-
::<tex>W = W_0 + \Delta W = W_0 + B A, \qquad A \in \mathbb{R}^{r\times k},\; B \in \mathbb{R}^{d\times r}</tex>
+
-
 
+
-
где ранг <tex>r \ll \min(d,k)</tex> (на практике обычно от 4 до 64). Исходная матрица <tex>W_0</tex> заморожена; обучаются только <tex>A</tex> и <tex>B</tex>, а их всего <tex>r(d+k)</tex> чисел вместо <tex>dk</tex> - в тысячи раз меньше. При применении поправка масштабируется коэффициентом <tex>\alpha/r</tex>, где <tex>\alpha</tex> задаёт «силу» адаптации.
+
-
 
+
-
Важная деталь инициализации: матрица <tex>B</tex> изначально нулевая, поэтому в самом начале обучения <tex>\Delta W = 0</tex> и модель ведёт себя ровно как исходная. Обучение стартует «без вреда» и лишь постепенно отклоняет поведение в нужную сторону.
+
-
 
+
-
== Как это применяют ==
+
-
Обычно LoRA-поправки добавляют к матрицам проекций внутри [[Механизм внимания|механизма внимания]] (чаще всего к проекциям запросов и значений), а иногда и к полносвязным слоям. Настройка сводится к выбору ранга <tex>r</tex>, коэффициента <tex>\alpha</tex> и набора слоёв, к которым применяется адаптация.
+
-
 
+
-
== Преимущества ==
+
-
* '''Экономия памяти.''' Обучаемых параметров на порядки меньше (нередко менее 1 % от общего числа), и для замороженных весов не нужно хранить состояния оптимизатора.
+
-
* '''Маленький артефакт.''' Обученный адаптер занимает мегабайты. Для десятков разных задач хранят одну большую базовую модель и набор маленьких адаптеров к ней.
+
-
* '''Нет задержки на инференсе.''' Поправку <tex>BA</tex> можно один раз сложить с <tex>W_0</tex> (операция merge) и получить обычную матрицу - тогда никаких дополнительных вычислений при работе модели не возникает.
+
-
* '''Горячая замена.''' Адаптеры под разные задачи подключаются и отключаются «на лету», поверх общей модели.
+
-
 
+
-
== QLoRA и развитие ==
+
-
'''QLoRA''' (2023) объединяет LoRA с 4-битным [[Квантование нейронных сетей|квантованием]] базовой модели: тяжёлые замороженные веса хранятся в сжатом виде, а обучаются только LoRA-адаптеры. Это позволяет дообучать модели с десятками миллиардов параметров на одной потребительской видеокарте. Другие развития - AdaLoRA (адаптивно распределяет ранг между слоями по их важности) и DoRA (разделяет обновление на «величину» и «направление»).
+
-
 
+
-
== Место среди методов PEFT ==
+
-
LoRA - один из представителей PEFT наряду с адаптерами (небольшие вставные слои, adapter tuning), prefix-tuning и prompt-tuning (обучаемые «псевдотокены» на входе). В отличие от [[Дистилляция моделей|дистилляции]], которая создаёт отдельную сжатую модель, LoRA ничего не сжимает, а дёшево специализирует уже имеющуюся.
+
-
 
+
-
== Связь с переносом обучения ==
+
-
По сути LoRA - удобный инструмент [[Перенос обучения|переноса обучения]]: базовые представления, полученные [[Самостоятельное обучение|самостоятельным обучением]] на огромных данных ([[Фундаментальная модель|фундаментальная модель]]), остаются нетронутыми, а под конкретную задачу [[Метод стохастического градиента|градиентным спуском]] настраивается лишь тонкая низкоранговая надстройка.
+
-
 
+
-
== Ограничения ==
+
-
* На задачах, сильно отличающихся от предобучения, качество может уступать полному дообучению.
+
-
* Результат чувствителен к выбору ранга, коэффициента <tex>\alpha</tex> и набора адаптируемых слоёв.
+
-
 
+
-
== См. также ==
+
-
* [[Большая языковая модель]]
+
-
* [[Дообучение]]
+
-
* [[Квантование нейронных сетей]]
+
-
* [[Дистилляция моделей]]
+
-
* [[Трансформер]]
+
-
* [[Фундаментальная модель]]
+
-
 
+
-
== Литература ==
+
-
* {{статья |автор=Hu E. и др. |заглавие=LoRA: Low-Rank Adaptation of Large Language Models |издание=Proc. of ICLR |год=2022 |ссылка=https://arxiv.org/abs/2106.09685}}
+
-
* {{статья |автор=Dettmers T. и др. |заглавие=QLoRA: Efficient Finetuning of Quantized LLMs |издание=Advances in Neural Information Processing Systems (NeurIPS) |год=2023 |ссылка=https://arxiv.org/abs/2305.14314}}
+
-
* {{статья |автор=Houlsby N. и др. |заглавие=Parameter-Efficient Transfer Learning for NLP |издание=Proc. of ICML |год=2019 |ссылка=https://arxiv.org/abs/1902.00751}}
+
-
 
+
-
[[Категория:Машинное обучение]]
+
-
[[Категория:Нейронные сети]]
+

Текущая версия

  1. REDIRECT Адаптация низкого ранга
Личные инструменты