Chuyển đến nội dung chính

レッスン7:ファインチューニングとモデルカスタマイズ

事前トレーニング vs ファインチューニング vs RLHF。PEFTとLoRA。 継続的事前トレーニング。Amazon Bedrockカスタムモデル。 トレーニングデータの準備、評価、デプロイ。

モデルカスタマイズの範囲

モデルカスタマイズの範囲:プロンプトエンジニアリングからスクラッチでの事前トレーニングまで

1. モデルカスタマイズの範囲

FMの動作をカスタマイズする方法は、シンプルなものから複雑なものまで多数あります:

最小の労力                                      最大の労力
──────────────────────────────────────────────────────────
プロンプト    Few-shot      RAG      ファイン    継続的       事前
エンジニア    プロンプ              チューニ    事前         トレー
リング        ティング              ング        トレーニング  ニング
──────────────────────────────────────────────────────────
トレーニング不要              ←                 →    フルトレーニング
$ 最安                       ←                 →    $$$$ 最高額
数分                         ←                 →    数週間/数ヶ月

2. ファインチューニング

ファインチューニング = 既存のFMを特定のデータセットでさらにトレーニングし、ドメイン/タスクでのパフォーマンスを向上させること。

2.1. いつファインチューニングするか?

ファインチューニングすべき場合ファインチューニング不要な場合
特定のスタイル、トーン、フォーマットが必要事実に基づくQ&Aのみ必要(RAGを使用)
ドメイン固有の言語パターンプロンプティングでタスクがうまくいく
特定タスクの精度を向上させたいラベル付きトレーニングデータがない
プロンプトサイズを削減(指示を内在化)データが頻繁に変更される(RAGを使用)
一貫した出力フォーマットが必要予算が限られている

2.2. ファインチューニングの種類

種類内容データ形式ユースケース
指示ファインチューニングプロンプト-レスポンスペアでトレーニング{"prompt": "...", "completion": "..."}指示への追従を改善
ドメイン適応ドメインテキストでトレーニングドメインドキュメント(医療、法律)ドメイン用語の学習
タスク固有特定のタスク例でトレーニングタスクの入出力ペア分類、抽出

3. PEFTとLoRA

3.1. パラメータ効率的ファインチューニング(PEFT)

フルファインチューニングはすべてのモデルパラメータを更新します — 高コストで大量のGPUメモリが必要です。PEFT手法はパラメータの小さなサブセットのみを更新します。

フルファインチューニング:
  モデル: 70億パラメータ
  更新: 70億パラメータ (100%)
  GPUメモリ: 非常に大きい
  コスト: $$$$

PEFT (LoRA):
  モデル: 70億パラメータ
  更新: ~1000万パラメータ (0.1%)
  GPUメモリ: はるかに少ない
  コスト: $$

3.2. LoRA(Low-Rank Adaptation)

LoRAは、すべての重みを更新する代わりに、モデルレイヤーに小さな学習可能な行列を追加します:

  • 元のモデルの重みを凍結
  • 小さな「アダプター」行列(ランク分解)を追加
  • これらの小さなアダプターのみをトレーニング
  • 推論時:アダプターを元の重みとマージ

試験のポイント:「品質を維持しながらファインチューニングのコストを削減するテクニックはどれ?」→ LoRA / PEFT。重要コンセプト:全パラメータではなく、小さな割合のパラメータをトレーニングする。

4. 継続的事前トレーニング

継続的事前トレーニングは、大量のラベルなしドメインデータでFMをトレーニングし、タスク固有のデータでファインチューニングする前にモデルに新しい語彙と概念を教えます。

ワークフロー:
ベースFM → 継続的事前トレーニング → ファインチューニング → 評価
           (ドメインコーパス、          (ラベル付き      (ホールドアウト
            ラベルなし)                タスクデータ)     セットでテスト)

例:
ベースClaude → 10万件の医学論文でトレーニング → 医療Q&Aペアで
              (継続的事前トレーニング)          ファインチューニング
              学習:医学用語、                 学習:臨床的な質問に
              薬名、処置                       回答する方法

継続的事前トレーニング vs ファインチューニング:

側面継続的事前トレーニングファインチューニング
データ大量のラベルなしドメインテキスト少量のラベル付きタスクデータ
目的ドメイン知識の学習タスク固有の動作の学習
コストより高コスト(データが大きい)より低コスト
タイミングモデルがドメイン語彙を欠いている場合モデルに特定のタスクを実行させたい場合

5. RLHF(人間のフィードバックからの強化学習)

RLHFは、モデルの出力を人間の好みに整合させるために使用されます — 出力をより有用で、真実で、無害にします。

RLHFパイプライン:
1. 人間のフィードバック収集  2. 報酬モデルのトレーニング 3. RLで最適化
   「どちらの回答が              学習:人間が何を          FMが生成 →
    良い?AかB?」               好むか                   報酬モデルがスコア →
                                                         FMの重みを更新

RLHFは主にFMプロバイダー(Anthropic、Meta、Amazon)が行います — 通常エンドユーザーは実施しません。ただし、試験のために概念を理解しておく必要があります。

6. Amazon Bedrockカスタムモデル

Bedrockは2つのカスタマイズアプローチを提供します:

6.1. Bedrockでのファインチューニング

機能詳細
サポートモデルAmazon Titan、Meta Llama、Cohere
データ形式プロンプト-完了ペアのJSONL
データの場所Amazon S3
出力Bedrock内のカスタムモデルバージョン
プロビジョンドスループットファインチューニング済みモデルの使用に必要

6.2. Bedrockでの継続的事前トレーニング

機能詳細
サポートモデルAmazon Titan、Meta Llama、Cohere
データ形式プレーンテキストファイル(ラベルなし)
ユースケースファインチューニング前のドメイン適応

6.3. トレーニングデータの準備

// ファインチューニングデータ形式 (JSONL):
{"prompt": "Drug Xの推奨用量は?", "completion": "Drug Xの成人向け推奨用量は1日2回500mgです。"}
{"prompt": "Drug Xの副作用を列挙してください。", "completion": "一般的な副作用には頭痛、吐き気、めまいがあります。"}

6.4. Bedrockでのモデル評価

Amazon Bedrockモデル評価ではモデルを比較できます:

  • 自動評価:組み込み指標(精度、堅牢性、毒性)
  • 人間評価:人間のレビューアーがモデル出力を評価
  • モデル比較:異なるFMの並列比較

試験のポイント:「特定のユースケースで2つの基盤モデルの品質を比較する方法は?」→ Amazon Bedrockモデル評価。自動指標と人間評価の両方をサポート。

7. トレーニングデータのベストプラクティス

プラクティス理由
高品質データゴミを入れればゴミが出る
多様な例狭いパターンへの過学習を防止
バランスの取れたクラス多数クラスへの偏りを回避
クリーンなデータ重複、エラー、PIIを除去
十分な量ファインチューニングには通常1000+
トレーニング/検証分割未見のデータで評価
フォーマットの一貫性すべての例で同じ構造

8. まとめ:いつ何を使うか

シナリオ最適なアプローチ
シンプルなタスク、モデルがすでに得意プロンプトエンジニアリング
特定のパターンに従わせたいFew-shotプロンプティング
社内ドキュメントからの回答が必要RAG
特定のスタイル/トーン/フォーマットが必要ファインチューニング
モデルがドメイン語彙を知らない継続的事前トレーニング + ファインチューニング
人間の好みに整合RLHF(FMプロバイダーが実施)

9. 練習問題

Q1:法律事務所がAIアシスタントに事務所承認の特定の文体で法的文書を生成させたいと考えています。承認済みの文書が5,000件あります。最も適切なカスタマイズアプローチはどれですか?

  • A) ナレッジベースによるRAG
  • B) Zero-shotプロンプティング
  • C) 承認済み文書例でのファインチューニング ✓
  • D) 法律教科書での継続的事前トレーニング

解説:ファインチューニングは、ラベル付きの例でモデルに特定の文体を教えるのに理想的です。RAGは情報検索用であり、スタイルの学習ではありません。継続的事前トレーニングは法的概念を教えますが、事務所固有のスタイルは教えません。

Q2:大規模言語モデルのパラメータの小さな割合のみを更新してファインチューニングできるテクニックはどれですか?

  • A) フルファインチューニング
  • B) LoRA(Low-Rank Adaptation) ✓
  • C) 継続的事前トレーニング
  • D) RLHF

解説:LoRAはPEFT(パラメータ効率的ファインチューニング)手法で、元のモデルの重みを凍結したまま小さな学習可能なアダプター行列を追加します。通常、全パラメータの1%未満を更新します。

Q3:企業が基盤モデルをファインチューニングしましたが、トレーニングデータではうまく機能し、新しいデータでは性能が低いです。この問題は何と呼ばれますか?

  • A) 過少適合(Underfitting)
  • B) 過学習(Overfitting) ✓
  • C) 高バイアス
  • D) データドリフト

解説:過学習は、モデルが一般的なパターンを学習する代わりにトレーニングデータを暗記した場合に発生します。解決策:より多くのトレーニングデータ、正則化、低い学習率、早期停止、データ拡張。