結論
「事前学習済みモデルを特定タスク向けに再訓練すること」
ベースモデルの重みを更新して、特定ドメイン・タスクに特化させる。
RAGとの違い(最重要)
| 項目 | ファインチューニング | RAG |
|---|---|---|
| 手法 | モデル自体を再学習 | 検索して情報を渡す |
| コスト | 高い(GPU必要) | 低い(DBだけ) |
| 更新 | 再学習が必要 | DB更新で即反映 |
| 出典 | 表示困難 | 表示可能 |
| 向き | 文体・専門用語習得 | 最新情報・Q&A |
図解
【事前学習(Pre-training)】
大量のテキストで「言語」を学ぶ
インターネット全体 → ベースモデル(GPT等)
↓
汎用的だが特化してない
【ファインチューニング】
特定データで「タスク」を学ぶ
ベースモデル + 医療文書 → 医療特化モデル
ベースモデル + 法律文書 → 法律特化モデル
ベースモデル + 会話ログ → チャット特化モデル
主な手法
| 手法 | 説明 | コスト |
|---|---|---|
| Full Fine-tuning | 全パラメータ更新 | 高 |
| LoRA | 一部パラメータのみ更新 | 中 |
| QLoRA | 量子化+LoRA | 低 |
| Prompt Tuning | プロンプト部分だけ学習 | 低 |
| RLHF | 人間フィードバックで調整 | 高 |
いつ使う?
✓ ファインチューニング向き
・特定の文体・トーンを習得させたい
・専門用語を正しく使わせたい
・出力フォーマットを固定したい
・応答速度を上げたい(RAG不要になる)
✗ ファインチューニング不向き
・最新情報を扱う → RAG
・出典を表示したい → RAG
・データが頻繁に変わる → RAG
・GPU/コストがない → RAG or プロンプトエンジニアリング
必要なもの
・ベースモデル(Llama, GPT等)
・学習データ(数百〜数万件)
・GPU(A100, H100等)
・学習フレームワーク(Hugging Face, LLaMA-Factory等)
一言まとめ
ファインチューニング = モデルの脳を書き換える
RAG = モデルにカンペを渡す
→ 多くのユースケースでは「まずRAG」を試すのが正解
→ RAGで不十分な場合にファインチューニングを検討