ファインチューニング
事前学習済みのLLMを、特定のタスクやドメインに合わせて再学習する技術。モデルの振る舞い(文体、出力形式、推論パターン)を調整できる。
仕組み
- ベースモデル(GPT-4、Claudeなど)を用意
- 自社データセット(入力・出力ペア)を準備
- モデルのパラメータを少し調整(追加学習)
- 特定タスクに最適化されたモデルが完成
RAGとの違い
| 手法 | 仕組み | 適したケース | 更新コスト |
|---|---|---|---|
| ファインチューニング | モデル自体を再学習 | 文体、出力形式の調整 | 高(再学習が必要) |
| RAG | 検索結果をプロンプトに追加 | 知識の追加・更新 | 低(データ追加のみ) |
重要な違い:
- ファインチューニングは振る舞いを変える
- RAGは知識を追加する
適したユースケース
ファインチューニングが有効
- 文体の調整: 「です・ます調」→「だ・である調」
- 出力形式の統一: 常にJSON形式で返す
- 推論パターンの学習: 特定の論理展開を身につける
- 専門用語の理解: 医療、法律など特化ドメイン
RAGが有効
- 最新情報の提供: ニュース、株価、天気
- 企業の内部情報: 社内文書、規定、FAQ
- 頻繁に更新される知識: 製品情報、価格、在庫
併用が最適
- カスタマーサポートボット
- ファインチューニング: 会社の口調、回答スタイル
- RAG: 最新のFAQ、製品情報
ファインチューニングの種類
1. Full Fine-tuning
- モデル全体を再学習
- 最も効果的だが、コストが高い
- 必要データ: 数千〜数万件
2. LoRA(Low-Rank Adaptation)
- モデルの一部のみを調整
- 軽量、低コスト
- 必要データ: 数百〜数千件
3. Prompt Tuning
- プロンプト部分のみを学習
- 最も軽量
- 必要データ: 数十〜数百件
コストと工数
初期構築:
- データセット作成: 1週間〜1ヶ月
- 学習実行: 数時間〜数日
- 評価・調整: 1週間〜
運用:
- データ更新時: 再学習が必要(数時間〜数日)
- コスト: モデルサイズとデータ量に依存(数万円〜数十万円/回)
限界
- 頻繁な更新に不向き: 毎日変わる情報には対応できない
- データ品質に依存: 低品質データで学習すると性能が下がる
- 過学習リスク: 特定データに偏りすぎる可能性
- 説明可能性の低下: なぜその回答をしたのか分かりにくい
ファインチューニングのベストプラクティス
- まずプロンプトエンジニアリングを試す: 再学習は最後の手段
- RAGとの組み合わせを検討: 知識はRAG、振る舞いはファインチューニング
- 評価データセットを用意: 学習データと別に、性能測定用のデータを準備
- 過学習を監視: 学習データへの過適合を防ぐ
主要プラットフォーム
- OpenAI Fine-tuning API
- Hugging Face Transformers
- Google Vertex AI
- AWS SageMaker