QLoRA: Моделдерди кысуу боюнча тереңдетилген сабак

QLoRA, 4-биттик кванттоо жана BitNet сыяктуу технологиялар чоң тил моделдерин кантип жөнөкөй жабдыкта иштетүүгө мүмкүндүк берерин билип алыңыз.

1. Көйгөй: Чоң Моделдер — Чоң Чыгымдар

Llama 2 же GPT-3 сыяктуу заманбап тил моделдери миллиарддаган параметрлерден (салмактардан) турат. Ар бир параметр эс-тутумда FP16 (16-бит) форматында сакталат. 7 миллиард параметры бар модель эс-тутумдан 14 гигабайттан ашык орун ээлейт!

Мындай моделди жөн эле иштетүү үчүн же аны кошумча үйрөтүү (fine-tuning) үчүн кымбат баалуу, ондогон гигабайт VRAM эс-тутуму бар профессионалдык GPU'лар талап кылынат. Бул технологияны көпчүлүк изилдөөчүлөр жана иштеп чыгуучулар үчүн кол жеткис кылат.

2. Чечим: Кванттоо (Quantization)

Кванттоо — бул моделдин салмактарын көрсөтүү үчүн колдонулган сандардын тактыгын (precision) азайтуу процесси. Бул сүрөттөгү түстөрдүн санын азайтууга окшош: сүрөт бир аз өзгөрүшү мүмкүн, бирок негизги маңызы сакталып калат.

16-биттик салмакты 4-биттик санга айландыруу менен, биз эс-тутумга болгон талапты 4 эсеге азайтабыз:

Эс-тутумду үнөмдөө = 16-bit / 4-bit = 4x

Бул 14 ГБ ээлеген модель эми болгону 3.5 ГБ орунду ээлейт дегенди билдирет. Бирок, жөнөкөй кванттоо моделдин иштөө сапатын кескин түшүрүп жибериши мүмкүн.

3. QLoRA: Акылдуу Кванттоо жана Үйрөтүү

QLoRA (Quantized Low-Rank Adaptation) бул көйгөйдү чечүү үчүн эки күчтүү ыкманы бириктирет:

A. 4-биттик NormalFloat (NF4) Кванттоо

QLoRA сапатты азыраак жоготуу менен кванттоого мүмкүндүк берген атайын NF4 маалымат түрүн колдонот. Моделдин негизги, миллиарддаган салмактары ушул 4-биттик форматка өткөрүлүп, өзгөртүлбөс (frozen) болуп калат. Бул эс-тутумду кескин үнөмдөйт.

B. Төмөнкү рангдуу адаптерлер (LoRA)

Тоңдурулган моделди кантип үйрөтөбүз? Биз негизги салмактарга тийбейбиз. Анын ордуна, моделдин ар бир катмарына өтө кичинекей, үйрөтүлүүчү "адаптер" матрицаларын (LoRA) кошобуз. Бул адаптерлер толук 16-биттик тактыкта үйрөтүлөт, бирок алардын параметрлеринин саны негизги моделге салыштырмалуу өтө аз (жалпы параметрлердин ~0.1%).

Натыйжада, биз эс-тутумдун басымдуу бөлүгүн ээлеген 4-биттик негизги моделди жана үйрөтүү үчүн өтө аз эс-тутумду талап кылган кичинекей адаптерлерди алабыз. Бул ыкма 70 миллиард параметрлүү моделди 24 ГБ VRAM эс-тутуму бар бир оюн GPU'сунда кошумча үйрөтүүгө мүмкүндүк берет!

4. Кийинки Кадам: BitNet жана 1-биттик Моделдер

Изилдөөчүлөр мындан да ары барып, BitNet сыяктуу архитектураларды сунушташууда. Бул жерде моделдин салмактары 1-биттик болуп, болгону эки гана маанини (мисалы, -1 же 1) кабыл алат. Бул теориялык жактан эс-тутумду 16 эсеге азайтып, эсептөөлөрдү кескин ылдамдатат, анткени көбөйтүү операциялары жөнөкөй кошуу менен алмаштырылат. Бул чоң моделдерди келечекте мобилдик түзүлүштөрдө иштетүүгө жол ачышы мүмкүн.

1. Проблема: Большие Модели — Большие Затраты

Современные языковые модели, такие как Llama 2 или GPT-3, состоят из миллиардов параметров (весов). Каждый параметр хранится в памяти в формате FP16 (16-бит). Модель с 7 миллиардами параметров занимает более 14 гигабайт видеопамяти!

Для запуска или дообучения (fine-tuning) такой модели требуются дорогостоящие профессиональные GPU с десятками гигабайт VRAM. Это делает технологию недоступной для большинства исследователей и разработчиков.

2. Решение: Квантование (Quantization)

Квантование — это процесс снижения точности (precision) чисел, используемых для представления весов модели. Это похоже на уменьшение количества цветов в изображении: картинка может немного измениться, но её основная суть сохранится.

Преобразуя 16-битные веса в 4-битные числа, мы сокращаем требуемую память в 4 раза:

Экономия памяти = 16-bit / 4-bit = 4x

Это означает, что модель, занимавшая 14 ГБ, теперь будет занимать всего 3.5 ГБ. Однако простое квантование может значительно снизить производительность модели.

3. QLoRA: Умное Квантование и Обучение

QLoRA (Quantized Low-Rank Adaptation) решает эту проблему, объединяя два мощных подхода:

A. 4-битное Квантование NormalFloat (NF4)

QLoRA использует специальный тип данных NF4, который позволяет квантовать с меньшей потерей качества. Основные, миллиарды весов модели переводятся в этот 4-битный формат и становятся неизменяемыми (frozen). Это обеспечивает колоссальную экономию памяти.

B. Низкоранговые Адаптеры (LoRA)

Как дообучить замороженную модель? Мы не трогаем основные веса. Вместо этого, мы добавляем в каждый слой модели крошечные, обучаемые "адаптеры" (матрицы LoRA). Эти адаптеры обучаются с полной 16-битной точностью, но их количество параметров ничтожно мало по сравнению с основной моделью (около 0.1% от общего числа).

В результате мы получаем 4-битную базовую модель, занимающую основную часть памяти, и небольшие адаптеры, требующие очень мало памяти для обучения. Этот подход позволяет дообучать модель с 70 миллиардами параметров на одном игровом GPU с 24 ГБ VRAM!

4. Следующий Шаг: BitNet и 1-битные Модели

Исследователи идут еще дальше, предлагая архитектуры вроде BitNet. Здесь веса модели становятся 1-битными и принимают только два значения (например, -1 или 1). Теоретически это сокращает память в 16 раз и кардинально ускоряет вычисления, заменяя умножение простым сложением. Это может открыть путь к запуску больших моделей на мобильных устройствах в будущем.

1. The Problem: Large Models, Large Costs

Modern language models like Llama 2 or GPT-3 consist of billions of parameters (weights). Each parameter is typically stored in memory using FP16 (16-bit floating point) precision. A 7-billion parameter model requires over 14 gigabytes of memory just to be loaded!

To run, and especially to fine-tune, such a model, you need expensive, professional-grade GPUs with tens of gigabytes of VRAM. This makes the technology inaccessible to most researchers and developers.

2. The Solution: Quantization

Quantization is the process of reducing the numerical precision of a model's weights. It's analogous to reducing the color palette of an image: the image might change slightly, but its essential content remains recognizable.

By converting 16-bit weights to 4-bit numbers, we can reduce the memory requirement by a factor of four:

Memory Savings = 16-bit / 4-bit = 4x

This means our 14 GB model would now only take up 3.5 GB. However, naive quantization can severely degrade the model's performance.

3. QLoRA: Smart Quantization and Training

QLoRA (Quantized Low-Rank Adaptation) elegantly solves this by combining two powerful techniques:

A. 4-bit NormalFloat (NF4) Quantization

QLoRA uses a special data type called NF4, which is information-theoretically optimal for normally distributed weights, allowing for high-fidelity quantization. The base model's billions of weights are converted to this 4-bit format and then frozen (made non-trainable). This provides a massive reduction in memory.

B. Low-Rank Adapters (LoRA)

How do you fine-tune a frozen model? You don't touch the base weights. Instead, you inject tiny, trainable "adapter" matrices (LoRA) into each layer of the model. These adapters are trained in full 16-bit precision, but they contain a minuscule number of parameters compared to the base model (often ~0.1% of the total).

The result is that you have the memory footprint of a 4-bit base model, plus the very small memory requirement for training the adapters. This technique makes it possible to fine-tune a 70-billion parameter model on a single consumer GPU with 24 GB of VRAM!

4. What's Next: BitNet and 1-bit Models

Researchers are pushing the boundaries even further with architectures like BitNet. In this paradigm, the model weights are 1-bit, meaning they can only be -1 or 1. This could theoretically reduce memory by a factor of 16 and drastically speed up computation by replacing expensive multiplication operations with simple addition. This may pave the way for running large models on mobile devices in the future.

Библиография

  • Dettmers, T., Pagnoni, A., Holtzman, A., & Zettlemoyer, L. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Wang, S., et al. (2024). The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits. arXiv:2402.17764 (BitNet).