LoRA vs QLoRA: какой метод файн-тюнинга выбрать?

Автоматический перевод

Эта статья была автоматически переведена с оригинальной английской версии.

LoRA обучает небольшие матрицы адаптеров, сохраняя предобученные веса замороженными. QLoRA применяет этот подход к базовой модели, хранящейся с 4-битной точностью. Начните с LoRA, если базовая модель помещается в память с запасом; рассмотрите QLoRA, если её замороженные веса занимают слишком много памяти для обучения.

Обоим методам по-прежнему нужна память для активаций, градиентов адаптеров и состояния оптимизатора. Большие батчи и длинные последовательности увеличивают расход памяти на активации и временные буферы. При фиксированной конфигурации адаптеров размеры градиентов и состояния оптимизатора зависят от обучаемых параметров.

Разница в базовых весах

LoRA представляет обновление весов двумя небольшими матрицами вместо обучения всей матрицы весов. Если исходный вес имеет размер d × k, адаптер ранга r обучает матрицы r × k и d × r. Ранг определяет размер адаптера; он не служит универсальной мерой сложности задачи.

МетодЗамороженная базаОбучаемая частьОсновной компромисс
LoRAОбычно BF16 или FP16Адаптеры низкого рангаБольше памяти под базовые веса
QLoRAВеса, квантизованные до 4 битАдаптеры низкого ранга с вычислениями более высокой точностиМеньше памяти под базовые веса, но нужна деквантизация

Исходная статья о LoRA описывает замороженные веса и обучаемые обновления низкого ранга. После обучения адаптер можно объединить с совместимыми базовыми весами, чтобы не выполнять отдельную операцию адаптера во время инференса. Деплой квантизованной модели и объединение требуют поддержки со стороны выбранных инструментов.

В статье о QLoRA использовали NF4 — 4-битное представление для весов с нормальным распределением, а также двойную квантизацию и оптимизаторы со страничной организацией памяти. В проверенной конфигурации авторы выполнили файн-тюнинг модели с 65B параметров на одной GPU с 48 GB памяти. Этот результат не гарантирует, что другая модель, длина последовательности или конфигурация обучения так же поместится в память.

Сравните методы в контролируемом запуске обучения

Сохраните одинаковыми базовый чекпоинт, примеры, целевые модули адаптеров, ранг, длину последовательности и набор для оценки. Запишите пиковый расход памяти, время обучения и качество на примерах задачи, отложенных для оценки. Если QLoRA экономит память, но замедляет обучение, решите, компенсирует ли использование меньшего числа GPUs эти затраты времени.

Также проверьте итоговый артефакт инференса. Качество адаптера, измеренное средствами обучения, может измениться после объединения весов или дополнительной квантизации.

Раздел о LoRA и QLoRA в руководстве по LLM-инжинирингу объясняет обновление параметров и его последствия для аппаратных требований.