Full Fine-tuning(フルファインチューニング)
事前学習済みLLMの全パラメータを対象データセットで再学習する手法。最も高い精度を達成できるが、モデル全体のパラメータ(数十億〜数千億個)を更新するため、大量のGPU VRAMと計算時間を要する。LoRAやQLoRAなどPEFT手法の対極に位置する。
Full Fine-tuning(フルファインチューニング)とは、事前学習済みの大規模言語モデルにおいて、全てのモデルパラメータを凍結せずに追加データで再学習する手法である。LoRAやQLoRAなどのパラメータ効率的手法(PEFT)が台頭する以前は、ファインチューニングといえばこのFull Fine-tuningを指していた。
概要
Full Fine-tuningの最大の利点は、モデルの全パラメータを更新できるため、ドメイン適応の深さが最も大きいことである。医療、法律、金融といった専門領域の言語パターン・知識を、モデルの内部表現レベルで書き換えることができる。
一方、計算コストは極めて大きい。Llama 3.1 8B(80億パラメータ)のFull Fine-tuningには、AdamW最適化器の場合、モデルパラメータ(16GB fp16)+ 勾配(16GB)+ 最適化器状態(32GB、fp32で2倍)= 約64GB以上のVRAMが必要。70Bモデルではこれが500GB以上に膨れ上がり、A100 80GB × 8枚程度のクラスタが必要になる。
2026年現在でもFull Fine-tuningが選択されるケースは存在する:
- 最高精度が要求される商用サービス
- 大量(100K件以上)のドメインデータが利用可能な場合
- モデル全体のスタイル・知識を根本的に変更する場合
- LoRAでは達成できない性能要件がある場合
Full Fine-tuning のリソース要件
| モデルサイズ | パラメータ数 | VRAM (AdamW) | 推奨GPU構成 | 学習時間(10K件) | 推定クラウドコスト |
|---|---|---|---|---|---|
| 1.5B | 15億 | 12GB | RTX 4090 ×1 | 2-4時間 | $5-10 |
| 7B | 80億 | 60GB | A100 80GB ×1 | 4-8時間 | $15-30 |
| 13B | 130億 | 120GB | A100 80GB ×2 | 8-16時間 | $60-120 |
| 33B | 330億 | 280GB | A100 80GB ×4 | 24-48時間 | $300-600 |
| 70B | 700億 | 560GB | A100 80GB ×8 | 48-96時間 | $1,000-2,000 |
主な特徴・仕組み
- 最高精度: 全パラメータが更新対象のため、ドメイン適応の度合いが最も深い
- 計算コスト大: AdamW最適化器はパラメータの4倍のメモリを消費(モメンタム + 分散 の2状態、各fp32)
- 分散学習必須: 7B以上のモデルでは単一GPUに収まらない。DeepSpeed ZeRO Stage 3やFSDP(Fully Sharded Data Parallel)で分散化
- Catastrophic Forgetting: 過学習により元の汎用能力が失われるリスク。低学習率(1e-6〜5e-5)と少エポック(1〜3)で抑制
- チェックポイント管理: 各チェックポイントがモデル全体サイズ(7Bで約14GB fp16)。ストレージ管理が課題
- DeepSpeed ZeRO: Microsoftの分散学習フレームワーク。Stage 1(最適化器分散)、Stage 2(+勾配分散)、Stage 3(+パラメータ分散)の3段階
- FSDP: PyTorch標準の分散学習。DeepSpeed ZeROと同等の機能を提供。PyTorch 2.0以降で安定化
- 混合精度学習: BF16/FP16で学習速度2倍・VRAM半減。A100/H100はBF16をネイティブサポート
Full Fine-tuning vs LoRA/QLoRA 判断基準
| 判断基準 | Full FT推奨 | LoRA/QLoRA推奨 |
|---|---|---|
| データ量 | 10万件以上 | 500〜1万件 |
| ドメイン距離 | 遠い(医療英語→日本語法律) | 近い(一般QA→社内QA) |
| 精度要件 | 最高精度必須 | 95%以上で可 |
| GPU予算 | 月$1,000+ | 月$100以下 |
| アダプタ切替 | 不要 | 必要 |
| 開発速度 | 低(実験サイクル長い) | 高(数時間で実験可能) |
分散学習の実践的な設定
DeepSpeed ZeRO Stage 3 での典型設定:
{
"bf16": {"enabled": true},
"zero_optimization": {
"stage": 3,
"offload_param": {"device": "cpu"},
"offload_optimizer": {"device": "cpu"},
"overlap_comm": true
},
"gradient_accumulation_steps": 4,
"train_micro_batch_size_per_gpu": 2,
"wall_clock_breakdown": false
}
CPU Offloadを使うと、A100 40GB × 4枚で70Bモデルの学習が可能になるが、学習速度は30〜50%低下する。
よくある質問(FAQ)
Q1: Full Fine-tuningはまだ必要?LoRAで十分では? A: 多くのユースケースではLoRA/QLoRAで十分。ただし、モデルの根本的な知識書き換え(例: 英語モデルを日本語特化にする、医療専門モデルを作る)ではFull FTが優位。精度差は通常1〜5%だが、商用サービスでは無視できない場合がある。
Q2: Full Fine-tuningの費用はどのくらい? A: 7Bモデル×10K件のデータで、Lambda Cloud(A100 80GB $1.89/時)を使えば$15〜30程度。70Bモデルでは$1,000〜2,000。AWSのp5インスタンス(H100×8)は$98.32/時のため、大規模モデルの学習は高額になる。
Q3: Catastrophic Forgettingをどう防ぐ? A: 3つの対策が有効。(1) 低学習率(1e-6〜5e-5)で全パラメータの変化を小さく保つ、(2) 学習データに汎用データを10〜20%混合する(Data Mixing)、(3) 正則化(Weight Decay 0.01〜0.1)でパラメータの大幅な変化を抑制。
まとめ
- Full Fine-tuningは全パラメータを更新し、最も深いドメイン適応を実現
- 7Bモデルで60GB+のVRAMが必要。分散学習(DeepSpeed/FSDP)が事実上必須
- LoRA/QLoRAとの精度差は通常1〜5%。コスト対効果でPEFTが優位なケースが多い
- 大量データ(10万件+)×高精度要件×十分なGPU予算の3条件が揃う場合に選択
- 2026年もエンタープライズ向け最高精度モデル構築では現役の手法