LoRA и нулевая начальная добавка
Что такое LoRA? Почему она полезна для fine-tuning больших моделей? Как обычно инициализируют low-rank матрицы, чтобы не исказить базовую модель на старте?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
LoRA замораживает базовый weight и обучает низкоранговую additive update. Чтобы начальный output совпадал с base model, одну low-rank матрицу обычно инициализируют случайно, а вторую нулями: initial delta равна нулю, но градиенты могут пойти в LoRA path.
Полный разбор
LoRA представляет обновление веса как low-rank product, часто delta W = B A со scaling factor. Большая исходная матрица остается frozen, а обучаются только маленькие matrices A и B. Это снижает память, optimizer state и GPU cost.
Инициализация важна. Если обе матрицы случайные, adapted layer уже на первой итерации меняет output базовой модели. Поэтому обычно одну матрицу инициализируют random, а другую zeros. Их произведение изначально равно нулю, так что модель стартует ровно как base model, но low-rank path остается обучаемым.
LoRA особенно полезна, когда full fine-tuning слишком дорогой или нужно хранить несколько task-specific adapters. Full SFT может быть лучше, если есть много качественных данных, compute и не нужно сохранять shared base model неизменной.
Теория
Parameter-efficient fine-tuning ограничивает update меньшим subspace, сохраняя base model стабильной и переиспользуемой.
Типичные ошибки
- Инициализировать обе LoRA matrices случайно и не обсудить initial output drift.
- Говорить, что LoRA всегда лучше full fine-tuning.
- Забывать, что base weights обычно frozen.
Как отвечать на собеседовании
- Четко скажите: initial delta is zero.
- Обсудите, когда full SFT все еще предпочтительнее.