これまで、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のランクも調整して、バッチサイズを最適化しよう。」
違いがわかりますか?後者は「なぜそうなるか」を理解した上で、論理的に問題を解決しているんです。
これが、これから学ぶ基礎知識があなたにもたらすものです。
まとめ:全体の地図を手に入れよう
今回のレッスンで、ファインチューニングの全体像が見えてきたんじゃないでしょうか?
大きな流れ:
- 事前トレーニング済みモデルを取得
- SFTで命令追従能力を学習
- 必要に応じてアライメントで洗練
これから学ぶ中核概念:
- データセット準備
- トークン化とパディング
- マスキング
- 量子化
- LoRA/QLoRA
これらは「ランダムな回り道」じゃありません。すべてが繋がった不可欠なビルディングブロックなんです。
次のレッスンでは、最初のブロック「トークン化とパディング」から始めます。テキストがどうやってテンソル(数値の配列)に変わるのか、そしてこのステップを正しく行うことで、すべてがより安定して効率的になる理由を学びますよ。
準備はいいですか?ファインチューニングの実践的な旅が、いよいよ始まります!

コメント