ファインチューニング ─ モデルを追加学習してカスタマイズする
結論から言うと、ファインチューニングは「モデルのパラメータ(重み)を追加データで更新し、特定のスタイル・ドメインに特化させる」技術です。これまで学んだプロンプト設計やRAGが「情報を外から与える」のに対し、ファインチューニングはモデル自体を変えるアプローチです。
なぜファインチューニングが必要なのか?
プロンプトで毎回伝えるには限界がある場面があります。
- 社内特有の文体や専門用語を数百個、常に一貫して使わせたい
- Few-shotサンプルを毎回書かずに済ませたい
- 出力フォーマットを完全に固定したい
このような場合、ファインチューニングにより「書かなくても知っている」振る舞いを植え付けられます。Ouyanget al.(2022)の研究では、人間フィードバックを用いたファインチューニング(RLHF)により、13億パラメータのモデルが1,750億パラメータのGPT-3を指示追従性で上回ったと報告されています。
フルファインチューニングとLoRA ─ 2つの選択肢
フルファインチューニングはすべての重みを更新します。自由度は最大ですが、大規模モデルでは膨大なGPUメモリと時間が必要です。
**LoRA(Low-Rank Adaptation)**はHu et al.(2021)が提案した効率的な手法で、元の重みを凍結し、「変化分」を小さな低ランク行列で近似します。訓練パラメータを最大10,000分の1に削減しながら同等の性能を達成したとされ、コンシューマーGPUでも扱いやすい現実的な選択肢として広く使われています。
プロンプト・RAG・ファインチューニングの使い分け
| 手法 | 向いているケース |
|---|---|
| プロンプト設計 | 柔軟性優先・データが少ない |
| RAG | 最新情報・大量ドキュメントの検索 |
| ファインチューニング | 一貫したスタイル・専門知識の定着 |
一般的には「プロンプト→RAG→ファインチューニング」の順で試すのが定石とされます。ファインチューニングは効果が大きい反面、学習データの質が低いと過学習(特定のパターンしか答えられなくなる)リスクもあります。
まとめ
ファインチューニングはモデルの重みを更新してカスタマイズする技術です。RLHFは人間フィードバックでモデルを人の意図に合わせる代表的手法、LoRAはパラメータを大幅削減した効率的な変種です。コスト・データ収集・過学習のリスクを踏まえ、まずプロンプト設計とRAGの可能性を試し尽くしてから検討するのが実践的な順序です。