ファインチューニング
ファインチューニングとは
ファインチューニングは、学習済みのモデルに追加のデータで学習をさせ、特定の用途に適応させる手法です。[[生成AI・LLM]] のような大規模モデルをゼロから作るには莫大なデータと計算資源が必要ですが、既存モデルを「微調整」するだけなら、はるかに少ないコストで済みます。
例えるなら、幅広い教養を持つ新入社員(学習済みモデル)に、自社の業務マニュアルで研修(追加学習)をして、自社専用の戦力に育てるイメージです。
RAG・プロンプトエンジニアリングとの使い分け
LLM を自分の用途に合わせる方法は3つあり、手軽な順に試すのが定石です。
| 手法 | やること | 向いている場面 |
|---|---|---|
| [[プロンプトエンジニアリング]] | 指示文を工夫する | まず最初に試す。口調や出力形式の調整 |
| [[RAG(検索拡張生成)]] | 外部知識を検索して渡す | 最新情報や社内文書を答えさせたい |
| ファインチューニング | モデル自体を追加学習 | 専門的な文体・形式・振る舞いを深く覚えさせたい |
よくある誤解が「社内知識を覚えさせたいからファインチューニング」というものです。知識の追加は RAG の方が得意で、ファインチューニングは振る舞いのカスタマイズに向いています。
注意点とリスク
- データの品質がすべて — 質の低いデータで学習すると、むしろ性能が下がります
- 過学習 — 追加データに合わせすぎて汎用能力が落ちることがあります([[過学習と汎化]])
- 破滅的忘却 — 追加学習によって、元々できていたことを忘れてしまう現象があります
- コストと再学習 — データ準備・学習・評価に手間がかかり、モデルを更新するたびにやり直しが必要です
初学者向けポイント
- 全パラメータを更新せず一部だけ効率的に学習する LoRA などの軽量な手法が広く使われています
- 効果の確認には評価が不可欠です。[[モデル評価と指標]] とセットで学びましょう
- 実務ではまずプロンプトと RAG で試し、それでも足りないときにファインチューニングを検討する流れが一般的です
関連技術とのつながり
- [[生成AI・LLM]] — ファインチューニングの対象となる学習済みモデル
- [[機械学習の基礎]] — 追加学習も機械学習の一形態
- [[RAG(検索拡張生成)]] — 知識を足したい場合の代替手段
- [[プロンプトエンジニアリング]] — まず最初に試すべき軽量な手段
- [[過学習と汎化]] — ファインチューニングで注意すべき現象
Q: ファインチューニングの説明として正しいものはどれ?
- [x] 学習済みモデルに追加データで学習させて特定用途に適応させる
- [ ] モデルをゼロから学習し直す
- [ ] プロンプトの指示文を工夫する
解説: 既存の学習済みモデルへの「追加学習」がファインチューニングです。ゼロからの学習より大幅に低コストで済みます。
Q: 最新の社内文書の内容を答えさせたい場合、まず検討すべき手法はどれ?
- [ ] ファインチューニング
- [x] RAG(検索拡張生成)
- [ ] モデルのパラメータ数を増やす
解説: 知識の追加は RAG が得意です。ファインチューニングは文体や振る舞いのカスタマイズに向いています。
Q: 追加学習によって元々できていたことを忘れてしまう現象は何と呼ばれる?
- [ ] ハルシネーション
- [ ] スケーリング
- [x] 破滅的忘却
解説: ファインチューニングのリスクの1つで、追加学習が既存の能力を上書きしてしまう現象です。