AI・機械学習
上級

Full Fine-tuning(フルファインチューニング)

事前学習済みLLMの全パラメータを対象データセットで再学習する手法。最も高い精度を達成できるが、モデル全体のパラメータ(数十億〜数千億個)を更新するため、大量のGPU VRAMと計算時間を要する。LoRAやQLoRAなどPEFT手法の対極に位置する。

0 回閲覧
0 いいね

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.5B15億12GBRTX 4090 ×12-4時間$5-10
7B80億60GBA100 80GB ×14-8時間$15-30
13B130億120GBA100 80GB ×28-16時間$60-120
33B330億280GBA100 80GB ×424-48時間$300-600
70B700億560GBA100 80GB ×848-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年もエンタープライズ向け最高精度モデル構築では現役の手法