QLoRA

Quantized Low-Rank Adaptation

QLoRAとは

QLoRA(Quantized Low-Rank Adaptation)とは、LoRAの手法に量子化(Quantization)を組み合わせることで、さらにメモリ効率を高めたファインチューニング手法です。2023年にワシントン大学の研究者によって発表され、一般的な消費者向けGPU(48GB VRAM)でも65Bパラメータのモデルをファインチューニングできることを示しました。

表:QLoRAの要点まとめ
ひとことで言うとモデルを4ビットに圧縮してからLoRA調整する、さらに省メモリな手法。
どこで使う個人のGPU1枚で、大規模モデルを追加学習したいとき。
注意点量子化による精度低下が出る場合がある。推論速度が必ず上がるわけではない。

QLoRAの技術的特徴

QLoRAは3つの技術革新により高いメモリ効率を実現しています。第一に、4ビットNormalFloat(NF4)量子化により、モデルの重みを4ビットに圧縮して保持します。第二に、二重量子化(Double Quantization)により量子化パラメータ自体もさらに量子化します。第三に、ページドオプティマイザにより、メモリ不足時にGPUメモリからCPUメモリへの自動転送を行います。

図:QLoRAがメモリを節約するしくみ
14ビットに量子化重みを圧縮して軽くする
▶
2重みを凍結圧縮したまま固定
▶
3LoRA層を学習小さな追加部分だけ
▶
4メモリが激減数十GB→十数GBに
▶
5差分を保存軽いファイルで運用

QLoRAの実用的意義

QLoRAの最大の貢献は、大規模モデルのファインチューニングを民主化したことです。従来は数百GBのGPUメモリを持つ高価なハードウェアが必要でしたが、QLoRAにより比較的手頃なGPUでも大規模モデルのカスタマイズが可能になりました。Guanaco等の高性能モデルがQLoRAで学習されており、フルファインチューニングに匹敵する性能を達成しています。bitsandbytesライブラリとHugging Face Transformersの統合により、実装も容易です。