LoRA и QLoRA: объяснить механизм
Вопрос
Объясните, как работает LoRA, почему она экономит ресурсы и какие у неё ограничения.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Исходные веса заморожены, учится низкоранговая добавка B·A
Число обучаемых параметров r·(d + k) вместо d·k, мало памяти под градиенты и оптимизатор
B инициализируется нулями: старт с исходной модели
Адаптеры маленькие, переключаются, вливаются в веса без задержки
QLoRA: база в 4 битах, адаптеры в 16
Ограничения: ниже потолок качества на сложных задачах, выбор ранга и слоёв
Что могут спросить следом
- Как выбрать ранг?
- Можно ли обслуживать много адаптеров на одной модели?
Разбор
Образцовый ответ: «Гипотеза LoRA: изменение весов при дообучении имеет низкий ранг. Поэтому исходную матрицу W замораживаем и учим добавку B на A с маленьким рангом r. Для матрицы 4096 на 4096 при r = 8 это 65 тысяч параметров вместо почти 17 миллионов. Градиенты и состояния оптимизатора нужны только для адаптеров, поэтому память в разы меньше. B стартует с нулей, так что вначале модель совпадает с базовой. Адаптер весит мегабайты: можно держать по адаптеру на задачу и переключать их на одной базовой модели, а для одного сценария влить в веса без лишней задержки. QLoRA дополнительно хранит базу в 4 битах, что позволяет учить крупные модели на одной GPU. Ограничения: на сильных сдвигах распределения полное дообучение может быть лучше, нужно подбирать ранг и слои, обычно адаптируют все линейные слои, а не только q и v».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.