Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

QLoRA

QLoRAは、4ビットNF4で保存した固定のベースモデル上でLoRAアダプターを学習し、LLMをファインチューニングします。これにより、650億パラメーターのモデルを単一の48 GB GPUに収められます。

QLoRA (Quantized Low-Rank Adaptation)は、事前学習済みの大規模言語モデル (LLM)を4ビット精度で凍結し、その上で小規模なLoRAアダプターを学習するファインチューニング手法です。量子化された重みを通じて逆伝播し、アダプターを更新します。Dettmersらが2023年のQLoRA論文で発表したこの手法により、パラメーター数650億のモデルのファインチューニングに必要なGPUメモリは780 GB超から48 GB未満に減少しました。これにより、ワークステーション用GPU 1基で学習できるようになり、16ビットファインチューニングと同等のタスク性能も達成しました。この論文のGuanacoモデルはこの方法でファインチューニングされ、GPU 1基で24時間学習した後、VicunaベンチマークでChatGPTのスコアの99.3%に達しました。

QLoRAの仕組み#

QLoRAは、凍結して圧縮したベースモデルと、メモリを節約する3つの手法を組み合わせます。

  • 4ビットNormalFloat (NF4): 各重みは、正規分布の分位点に配置した16段階のいずれかを示す4ビットコードとして保存し、64個の重みごとのブロックにつき絶対最大値スケールを1つ使います。事前学習済みのモデル重みはおおむね正規分布に従うため、分位点による段階設定では、多くの重みが存在するゼロ付近の分解能が高くなります。
  • 二重量子化: ブロックごとのスケール自体を、256個単位のブロックで8ビットに量子化します。これによりオーバーヘッドをパラメーターあたり0.5ビットから約0.127ビットに削減でき、65Bモデルで約3 GBを節約できます。
  • ページドオプティマイザー: オプティマイザーの状態はNVIDIAのユニファイドメモリに保持され、勾配チェックポイントを使った長いシーケンスなどでメモリ使用量が急増すると、CPU RAMに移動します。そのため、メモリ不足によるエラーで学習がクラッシュしません。

順伝播では、各凍結レイヤーが行列乗算の直前にNF4の重みをbfloat16に逆量子化し、LoRA経路の出力を加算します。逆伝播では逆量子化した重みを通じて勾配を計算しますが、更新するのは2つの低ランクLoRA行列だけです。この論文では、フルファインチューニングに匹敵する性能を得るには、Transformerブロックのすべての線形レイヤーにアダプターを設ける必要があると示されました。

以下のコードは、bitsandbytesライブラリと同じ方法でNF4の段階を作成し、正規分布に従う重みのブロックに対して、等間隔に配置した16段階と比較します。

import torch

torch.manual_seed(0)
normal = torch.distributions.Normal(0.0, 1.0)
# NF4: 16 levels at quantiles of a normal distribution, with an exact zero (as built in bitsandbytes)
positive = normal.icdf(torch.linspace(0.9677083, 0.5, 9)[:-1])
negative = -normal.icdf(torch.linspace(0.9677083, 0.5, 8)[:-1])
nf4 = torch.cat([negative, torch.zeros(1), positive]).sort().values
nf4 = nf4 / nf4.max()
int4 = torch.linspace(-1, 1, 16)  # evenly spaced 4-bit levels for comparison

weights = torch.randn(4096, 64) * 0.02  # pretrained weights are roughly normal, in blocks of 64
absmax = weights.abs().amax(dim=1, keepdim=True)  # one scale per block
for name, levels in (("NF4", nf4), ("INT4", int4)):
    codes = ((weights / absmax)[..., None] - levels).abs().argmin(dim=-1)  # 4-bit index per weight
    restored = levels[codes] * absmax
    print(f"{name} mean squared error: {(restored - weights).pow(2).mean():.3e}")

NF4の平均二乗誤差は3.395e-06、等間隔の段階では4.053e-06と出力されます。同じ16段階と同じブロックスケールを使う場合、NF4の分位点間隔によって、正規分布に従う重みの再構成誤差が約16%減少します。実際には、Hugging Face TransformersでBitsAndBytesConfigを使い、bitsandbytes経由でモデルをNF4に読み込むと、load_in_4bit=True、bnb_4bit_quant_type="nf4"、bnb_4bit_use_double_quant=True、bnb_4bit_compute_dtype=torch.bfloat16が設定されます。PEFTライブラリはLoRAアダプターを追加します。

  • LoRA: ベースモデルを16ビット精度のまま維持し、同じ種類のアダプターを学習します。65Bモデルの16ビット重みだけで約130 GBを占めますが、NF4ではその約4分の1に収まります。
  • パラメーター効率の高いファインチューニング (PEFT): LoRA、QLoRA、アダプター、プロンプトチューニングなど、少数のパラメーターを学習する手法群です。
  • 学習後のモデル量子化: 完成したモデルを推論向けに圧縮します。QLoRAでチューニングしたモデルは、16ビット重みに統合した後、推論用に再度量子化することがよくあります。
  • 量子化対応学習 (QAT): すべての重みを学習しながら順伝播時に低精度の丸めをシミュレートし、デプロイしたモデルが低精度でも精度を維持できるようにします。Ultralytics YOLO26はquantize=8を使って学習するとINT8 QATを実行します。NVIDIA ModelOptを通じて畳み込みレイヤーと線形レイヤーに疑似量子化を挿入し、学習した重みがINT8エクスポート後も保持されるようにします。

トレードオフ#

QLoRAはメモリの代わりに速度を犠牲にします。順伝播と逆伝播のたびに凍結した重みをすべて逆量子化するため、学習ステップは16ビットLoRAより遅くなります。アダプターは小さく、保存してタスクごとに切り替えられますが、ベースモデルに統合するには、まずモデルを16ビットに逆量子化する必要があります。65Bモデルの場合、4ビットの重みと二重量子化したスケールで約34 GBを占め、48 GBのGPUにアダプター、活性化、ページドオプティマイザーの状態を格納する余裕が残ります。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る
スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを活用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、環境モニタリング、自然保護、地理空間分析に役立てましょう。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOモデルで航空モニタリングにビジョンAIを導入しましょう。コンピュータービジョンソリューションで、ドローン、航空宇宙のワークフロー、環境保全、地理空間業界を支援します。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう