Как работает LoRA и зачем нужны low-rank adapters
Объясни технически, что делает LoRA при дообучении большой модели и почему это экономит память.
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
LoRA замораживает исходные веса и добавляет к выбранным матрицам обучаемое low-rank обновление. Вместо полной матрицы обучаются две маленькие матрицы, поэтому параметров и optimizer state сильно меньше.
Полный разбор
В обычном fine-tuning обновляются большие weight matrices модели. LoRA предполагает, что нужное изменение весов можно приблизить матрицей низкого ранга: вместо обучения полного delta W обучаются две меньшие матрицы A и B, произведение которых добавляется к исходной проекции.
Базовые веса остаются замороженными, поэтому меньше обучаемых параметров, меньше gradient/optimizer memory и проще хранить несколько доменных адаптеров. На inference adapter можно подключать отдельно или иногда слить с базовыми весами.
Ограничение: LoRA не магия. Качество зависит от данных, выбранных слоев/проекций, ранга, регуляризации и eval. Низкий ранг может не хватить для сложной адаптации, а плохие данные ухудшат модель так же, как при обычном fine-tuning.
Теория
LoRA относится к parameter-efficient fine-tuning. Она полезна, когда базовая модель уже достаточно близка, а нужно адаптировать поведение без полного обучения всех весов.
Типичные ошибки
- Говорить, что LoRA обучает всю модель быстрее.
- Не объяснить low-rank decomposition.
- Забыть, что базовые веса обычно заморожены.
Как отвечать на собеседовании
- Объясни через delta W = B A или две маленькие матрицы вместо одной большой.
- Назови практические плюсы: меньше память, дешевле training, несколько adapters.