言語AIガイド
QLoRA と 4 ビット微調整
QLoRA は、フリーズしたモデルを重みあたりわずか 4 ビットで保存することで、単一のコンシューマー GPU 上で大規模な言語モデルを微調整できる技術です。
このガイドを聴くAIによるナレーション · ~2 min
概要
It made customizing 65B-parameter models possible on hardware that previously could only handle models a fraction of that size.
ディープダイブ
通常、大規模なモデルを微調整するには、すべての重みを 16 ビット精度でロードし、すべてを更新する必要があるため、膨大なメモリが必要になります。 QLoRA は 2 つのアイデアを組み合わせています。まず、事前トレーニングされたモデルをフリーズして 4 ビットに量子化し、メモリを約 4 倍に削減します。第 2 に、LoRA を使用します。巨大な重み行列を更新する代わりに、小さなトレーニング可能な低ランクのアダプター行列を並行して挿入するため、数百万のパラメーターのみが更新されます。 4 ビットのベースは固定されたままですが、グラデーションは小さなアダプターのみを通過します。 Dettmers 氏らによって 2023 年に導入された QLoRA は、1 つの 48GB GPU で 65B モデルを微調整すると、完全な 16 ビット微調整の品質に匹敵する可能性があることを示しました。
現実世界の実装
あるスタートアップは、サーバー クラスターをレンタルせずに、単一の 48 GB GPU で 70B Llama モデルを微調整し、独自のブランド ボイスでカスタマー サポート アシスタントを構築しました。
コンシューマー向け RTX 4090 を 1 台使用している研究者は、一晩でオープン モデルをニッチな医療質問応答データセットに適応させます。
開発者は、さまざまなタスク用に数十の小型の交換可能な LoRA アダプターを作成し、すべてがメモリーにロードされた 1 つの 4 ビット基本モデルを共有します。
愛好家は、無料の Colab グレードのハードウェアを使用して、個人のチャット ログにあるモデルを微調整して、特定の書き方を模倣します。
QLoRA と 4 ビット微調整の将来
4 ビットの微調整は標準的な手法となっており、現在では 2 ビットおよび 1 ビット (3 値) 表現を含む、さらに低い精度に向けた研究が進められています。 AWQ、GPTQ、HQQ などの新しい量子化スキームは精度をさらに向上させますが、QA-LoRA などの技術はアダプターをマージした後でもモデルの量子化を維持することを目的としています。オープンウェイト モデルが成長するにつれ、愛好家が単一のゲーム GPU で 70B 以上のモデルを微調整できるツールが日常化し、カスタマイズが民主化されることが期待されます。
実践する
なぜそれが重要なのか
- 速度とスケール. 言語ワークフローは、一貫性を犠牲にすることなく、より高速に移行できます。
- アクセスと到達範囲. 言語やコミュニケーション スタイルを超えてアクセスが拡張されます。
- より明確な判決. 自動化が繰り返しを処理する間、チームは判断により多くの時間を費やすことができます。
気をつけてください
- 幻覚のような事実が、レポート、サポート フロー、または研究結果に静かに組み込まれる可能性があります。
- 迅速な対応により、同様のリクエスト間で一貫性のない結果が生じる可能性があります。
- アクセス制御が弱いと、機密テキスト データが漏洩する可能性があります。
次のステップ
- 展開する前に、出力形式、トーン、品質基準を定義します。
- 正確さが重要な場合は常に、信頼できる情報源を使って地上対応を行ってください。
- 一か八かの成果物については人間によるレビュー チェックポイントを維持します。
- 失敗パターンを追跡し、プロンプトやワークフローを定期的に再トレーニングします。
探検を続けましょう
よくある質問
What is QLoRA and 4-Bit Fine-Tuning?
QLoRA は、フリーズしたモデルを重みあたりわずか 4 ビットで保存することで、単一のコンシューマー GPU 上で大規模な言語モデルを微調整できる技術です。これにより、以前はそのサイズのほんの一部のモデルしか処理できなかったハードウェア上で 65B パラメータ モデルのカスタマイズが可能になりました。
QLoRA の「4 ビット」部分の背後にある中心となるメモリ節約のアイデアは何ですか?
QLoRA は、凍結された事前トレーニングされた重みを値ごとに 4 ビットで保存し、16 ビットと比較してメモリを約 4 倍削減します。
QLoRA の微調整中に、実際に勾配降下法によってどのパラメータが更新されますか?
基本モデルはフリーズされています。注入された低ランクのアダプター行列のみが勾配更新を受け取りますが、これはパラメーターのほんの一部にすぎません。
QLoRA の文脈における NF4 とは何ですか?
NF4 (NormalFloat 4 ビット) は、プレーンな int4 よりも高い精度を実現するために、ニューラル ネットワークの重みのベルカーブ分布に基づいて設計されたデータ型です。
QLoRA の「ページングオプティマイザー」はどのような問題に対処しますか?
Paged optimizers use NVIDIA unified memory to page optimizer states between GPU and CPU memory as needed; the QLoRA paper says this helps manage memory spikes and reduce out-of-memory risk during long-sequence fine-tuning.
トレーニング中に 4 ビットの重みがより高い精度に戻されるのはいつですか?
During a matrix multiplication, quantized weights are dequantized on the fly to a higher-precision compute dtype (for example, BF16 or FP16 in QLoRA configurations); the temporary higher-precision values are not stored as a full base-model copy.