ファインチューニング
事前学習済みモデルを特定のタスクやドメインに適応させる追加学習
ファインチューニングとは
ファインチューニング (Fine-tuning) は、大量のデータで事前学習 (Pre-training) された基盤モデルに対して、特定のタスクやドメインのデータで追加学習を行い、モデルの振る舞いを調整する手法である。
モデルの重みそのものを更新するため、プロンプトエンジニアリングや RAG では対応しきれない、文体の統一、専門用語の正確な使用、特定フォーマットの出力に効果がある。
RAG vs ファインチューニング vs プロンプトエンジニアリング
プロンプトエンジニアリング、RAG、ファインチューニングの 3 つは代替関係ではなく、解こうとしている問題が違う。違いを以下にまとめる。
| 観点 | プロンプトエンジニアリング | RAG | ファインチューニング |
|---|---|---|---|
| モデルの変更 | なし | なし | 重みを更新 |
| 知識の追加 | プロンプト内のみ | 外部 DB から検索 | 学習データに組み込み |
| コスト | 低い | 中 (検索インフラ) | 高い (GPU 学習) |
| 更新の容易さ | 即時 | ドキュメント追加で即時 | 再学習が必要 |
| 得意なこと | 出力形式の指定 | 最新情報の参照 | 文体・トーンの統一 |
実務では、プロンプトエンジニアリング → RAG → ファインチューニングの順に試し、必要な精度が得られた段階で止めるのが効率的。
ファインチューニングの手法
ファインチューニングの手法を以下にまとめる。
| 手法 | 説明 | コスト |
|---|---|---|
| Full Fine-tuning | 全パラメータを更新 | 非常に高い |
| LoRA (Low-Rank Adaptation) | 低ランク行列で差分だけ学習 | 低い |
| QLoRA | 量子化 + LoRA | さらに低い |
| Instruction Tuning | 指示-応答ペアで学習 | 中程度 |
LoRA は元のモデルの重みを凍結し、小さなアダプター層だけを学習するため、GPU メモリと学習時間を大幅に削減できる。
AWS での実装
AWS での実装を以下にまとめる。
| サービス | 用途 |
|---|---|
| Bedrock Custom Model | Bedrock 上のモデルをファインチューニング |
| SageMaker Training | カスタムの学習ジョブを実行 |
| SageMaker JumpStart | 事前学習済みモデルをワンクリックでファインチューニング |
Bedrock のカスタムモデルは、S3 に学習データ (JSONL 形式) を置けばファインチューニングを開始できる。
見落としやすいのは推論側である。作成したカスタムモデルは、ベースモデルと同じようにモデル ID を指定して呼び出すことはできない。Provisioned Throughput を購入して専用の処理能力を確保するか、カスタムモデルのデプロイを作ってオンデマンド推論を有効にし、返ってきた ARN を指定して呼ぶ。前者は定常的に高負荷なワークロード向けで、確保している間ずっと課金される。後者は処理したトークン量に応じた課金で、負荷が読めない用途に向く。学習ジョブの費用だけ見積もって推論側の費用構造を忘れると、検証が終わった後で計画が崩れる。
2026 年 8 月時点の公式ドキュメントでは、機械学習向けのサービス名は Amazon SageMaker AI と表記される。Amazon SageMaker はデータ分析まで含む上位のブランド名になっているため、古い名前で検索すると目的の項目にたどり着けないことがある。
学習データの準備
ファインチューニングの成否は学習データの品質に大きく依存する。
- 量: 多ければ良いわけではない。OpenAI のガイドは最小 10 件、まずは 50 件のよく作られた例から始めることを推奨しており、50〜100 件で改善が見え始める例を挙げている。数千件を集める前に小さく試し、効果の伸びが止まる地点を探す
- 品質: ノイズや矛盾のないデータ。人手でキュレーションする
- 形式: 指示 (instruction) と応答 (response) のペア
- 多様性: 偏ったデータで学習すると、特定パターンに過学習する
注意点
- 過学習: 学習データに過度に適合し、汎用性が失われる。検証データで精度を監視する
- 壊滅的忘却: ファインチューニングで元の能力が劣化する。LoRA で影響を最小化する
- コスト: GPU インスタンスの時間課金。SageMaker AI のマネージドスポット学習はオンデマンド比で最大 90% の削減が公表されている。ただしスポットは中断される前提の仕組みで、チェックポイントを設定しておかないと中断のたびに学習をやり直すことになる。実際の削減率は固定値ではなく、課金された時間と学習にかかった時間の比から算出する
関連書籍も参考になる。
この記事は役に立ちましたか?