LoRA vs classic adapters
Опиши механизм LoRA. Если LoRA и classic adapters дают одинаковое качество, что выбрать для inference?
Короткий ответ
LoRA замораживает исходные веса и учит low-rank delta. Для inference часто удобнее LoRA, потому что delta можно смерджить в базовые веса и не добавлять слой в forward pass.
Полный разбор
LoRA представляет изменение матрицы весов как произведение двух низкоранговых матриц. Вместо полного обновления D x D весов обучаются A и B с rank r, где параметров порядка 2Dr. Базовая модель заморожена, поэтому optimizer state и trainable memory сильно меньше.
Classic adapters добавляют отдельные bottleneck layers в сеть. Они тоже parameter-efficient, но на inference остаются дополнительными операциями в forward pass. Если качество одинаковое и нет требований динамически переключать adapters, LoRA часто лучше: ее можно merge-нуть в исходные веса и не платить дополнительную latency.
Если нужно быстро переключать много задач или держать отдельные персонализации, adapters/несмердженные LoRA могут быть удобнее операционно.
Теория
Главная идея LoRA - оптимизировать изменение весов в низкоранговом подпространстве, а не дообучать всю модель.
Типичные ошибки
- Сказать, что LoRA уменьшает размер базовой модели на inference.
- Не объяснить low-rank decomposition.
- Не сравнить latency adapters и merged LoRA.
Как отвечать на собеседовании
- Для матрицы D x D назови порядок параметров 2Dr.
- Отдельно скажи про merge в inference.