Назад к подготовке

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 все еще предпочтительнее.