17. ファインチューニングの全体像!SFTロードマップを理解しよう

スポンサーリンク

これまで、AIがどう学習するか — 次トークン予測、損失関数、マスキング — を学んできましたよね。でも、実際にファインチューニング(カスタマイズ)を始める前に、大事な質問があります。

「正確に何をファインチューニングしてるの?そして、これから学ぶトピックはどう繋がってるの?」

今回は、教師ありファインチューニング(Supervised Fine-Tuning / SFT)の全体像を見渡すロードマップのレッスンです。「トークン化」「量子化」「LoRA」とか、いろんな用語が出てきますが、それぞれがどう繋がっているのか、全体の地図を描いていきますよ!

教師ありファインチューニング(SFT)って何?

まず大きな絵から見ていきましょう。

教師ありファインチューニング(SFT)は、事前トレーニング済みのモデルに「私たちが望む動作」を教える段階です。

例えば:

  • 命令に従う
  • 質問に答える
  • 特定のスタイルで応答をフォーマットする

ベースモデル(事前トレーニングだけ済んだモデル)にこんなプロンプトを出すと:

「上司に欠席を説明するメールを書いてください…」

ランダムな続きや、的外れな回答が返ってくるかもしれません。

でもSFTを経たモデルなら、こんな風に答えます:

こんにちは[マネージャー様]、

体調が優れないため、本日の会議に出席できないことをお知らせいたします。
ご理解のほど、よろしくお願いいたします。

どうやってこんな風に学習させるかというと、構造化されたラベル付き例を何千組も見せるんです:

命令: 今日の会議に欠席することをマネージャーに説明するメールを書いてください。
応答: こんにちは[マネージャー]、体調が悪く、今日の会議に出席できないことをお知らせしたいと思います。ご理解ありがとうございます。

時間をかけて、モデルは「命令が与えられたら、構造化された適切な応答が続く」というパターンを学習します。

これが、テキスト補完機を有能なアシスタントに変える方法なんです!

SFTは事前トレーニングと何が違うの?

「でも、それって普通のトレーニングと何が違うの?」って疑問が湧きますよね。

実は、機械的には同じ学習プロセスを使います。「次トークン予測 + クロスエントロピー損失」っていう、もう馴染みのあるやつです。

でも、3つの重要な違いがあります:

1. 開始点が違う

  • 事前トレーニング:ゼロから始まる(ランダムな重みを持つモデル)
  • ファインチューニング:すでに言語を理解しているモデルから始まる

料理に例えると、事前トレーニングは「料理の基本を学ぶ」こと。ファインチューニングは「基本ができる人に特定の料理を教える」ことです。

2. データ構造とスケールが違う

  • 事前トレーニング:大規模データセット(数兆トークン)からの生の連続テキスト
  • ファインチューニング:小さく構造化されたペア(命令と応答のセット、数千〜数万例)

事前トレーニングは「図書館全体を読む」感じ。ファインチューニングは「教科書で特定のスキルを学ぶ」感じです。

3. 何でトレーニングされるかが違う

  • 事前トレーニング:すべてのトークンから学習
  • ファインチューニング:命令トークンをマスクして、アシスタントの応答だけから学習

前回のレッスンで学んだ「マスキング」が、ここで活躍するわけです!

トレーニングジャーニーの中のSFT

現代のLLMは、こんな段階を経て作られます:

ステージ1:事前トレーニング(Pre-training)
大規模データで一般的な言語パターンを学習

ステージ2:教師ありファインチューニング(SFT)← 今ここ!
命令に従う、タスクをこなす能力を学習

ステージ3:アライメント(Alignment)
DPO、PPO、GROPOなどの技術で、人間の好みに沿って洗練

このプログラムはステージ2のSFTに焦点を当てます。なぜなら:

  • 最もアクセスしやすい
  • 再現可能
  • スケーラブル

そして、SFTを習得することが、後のステップ(DPOなど)への橋渡しになるからです!

次に学ぶこと:ファインチューニングの中核概念

LoRAやQLoRAで実際にファインチューニングを始める前に、プロセスを機能させる中核概念を理解する必要があります。

次のレッスンで、こんなトピックをカバーします:

1. データセット準備

命令-応答のペアをどうフォーマットするか。「Alpaca形式」「ShareGPT形式」って何?

2. トークン化とパディング

テキストが数値(トークン)に変わる方法。なぜ「パディング」が必要なの?

3. 命令ファインチューニングとマスキング

「アシスタントのみマスキング」の詳細。どうやってモデルに「命令を予測するな、応答を予測しろ」って教えるの?

4. データ型と量子化

FP32、FP16、BF16、INT8…これらの違いは何?どうやってメモリを節約するの?

5. LoRAとQLoRA

パラメータ効率的ファインチューニング(PEFT)の王様。全部のパラメータを更新しなくても、賢くファインチューニングする方法。

これらのトピック、一つ一つは小さく見えるかもしれませんが、すべてが責任を持って効率的にファインチューニングするために不可欠なんです。

  • モデルがより速くトレーニングする
  • ハードウェアに適合する
  • より安定した結果を生成する

こういったことを保証するのが、これらの技術なんですね。

エンジニアリング規律としてのファインチューニング

これらの基盤を理解すると、ファインチューニングは「試行錯誤」から「エンジニアリング規律」に変わります。

試行錯誤モード
「なんかうまくいかない…ハイパーパラメータを適当に変えてみよう…」

エンジニアリングモード
「損失が下がらないのは、たぶん学習率が高すぎるからだな。LoRAのランクも調整して、バッチサイズを最適化しよう。」

違いがわかりますか?後者は「なぜそうなるか」を理解した上で、論理的に問題を解決しているんです。

これが、これから学ぶ基礎知識があなたにもたらすものです。

まとめ:全体の地図を手に入れよう

今回のレッスンで、ファインチューニングの全体像が見えてきたんじゃないでしょうか?

大きな流れ

  1. 事前トレーニング済みモデルを取得
  2. SFTで命令追従能力を学習
  3. 必要に応じてアライメントで洗練

これから学ぶ中核概念

  • データセット準備
  • トークン化とパディング
  • マスキング
  • 量子化
  • LoRA/QLoRA

これらは「ランダムな回り道」じゃありません。すべてが繋がった不可欠なビルディングブロックなんです。

次のレッスンでは、最初のブロック「トークン化とパディング」から始めます。テキストがどうやってテンソル(数値の配列)に変わるのか、そしてこのステップを正しく行うことで、すべてがより安定して効率的になる理由を学びますよ。

準備はいいですか?ファインチューニングの実践的な旅が、いよいよ始まります!

コメント

タイトルとURLをコピーしました