利益:
- 問題が情報なのか動作なのかを区別し、プロンプト、少数ショット、および RAG を使い果たした後にのみ動作上の問題の微調整を評価する能力。
- 微調整方法 (SFT、LoRA/PEFT、RLHF) と品質を決定するデータ属性 (一貫性、多様性、機密性) を理解する
- ビフォーアフター評価、過剰学習テスト、壊滅的な忘却テストによる微調整の真の価値を測定する機能
微調整 (事前トレーニングされたモデルを独自のデータでさらにトレーニングすることで動作をカスタマイズする) は、LLM を扱うエンジニアにとって強力ではありますが高価なツールです。間違った場所で使用すると、お金と時間の無駄になりますが、適切な場所で使用すると、他の方法では達成できない品質が得られます。この単元では、微調整が必要な場合、その基本的な方法とリスクについて説明します。目標は、あなたに意思決定をしてもらうことです。
まず正しい質問です。微調整は必要ですか?
初心者が犯す最も高価な間違いは、解決できる問題をすぐに微調整しようと急ぐことです。次のように順序を設定します。
- プロンプトエンジニアリング: タスクを明確に説明する適切なプロンプトがあれば、ほとんどの問題は解決されます。まずはここで消費してください。
- 少数ショット学習: プロンプトにいくつかの例を入力すると、モデルに目的の形式と動作が表示されます。
- RAG: 問題が「情報の欠如」(モデルが知らないデータの必要性) である場合、解決策は微調整ではなく RAG (ユニット 4) です。
- 微調整: 上記だけでは不十分で、問題が「動作/形式/スタイル」にある場合に機能します。
主な違い: モデルに新しい情報を教える場合、微調整は弱く、リスクが伴います。しかし、振る舞い方(特定の形式、口調、専門用語、一貫した構造)を教えることには優れています。 「私のモデルは当社の情報を知りません」→RAG。 「モデルに常に希望どおりの形式で出力を与えるようにする」 → 微調整の候補。
ヒント: 微調整を決定する前に、「これは知識の問題ですか、それとも行動の問題ですか?」と尋ねてください。情報の問題は RAG でよりよく解決でき、行動の問題は微調整でよりよく解決できます。
微調整方法
完全な微調整: モデルのすべてのパラメーターを再トレーニングします。最も強力ですが、最も高価です。大規模なハードウェア (GPU) と注意深いデータが必要です。ほとんどのチームにとっては不要です。
パラメーター効率の良い微調整 (PEFT): モデルの大部分をフリーズし、追加パラメーターの少数のセットのみをトレーニングする方法。最も一般的なのは LoRA (低ランク アダプテーション: モデルに追加されるトレーニング用の小さな「アダプター」レイヤー) です。 LoRA は、メモリとコストを大幅に削減しながら、完全な微調整に近い結果を提供します。そのため、実際にはこれが第一の選択肢となります。
教師あり微調整 (SFT): 入力と理想的な出力のペアで構成されるデータを使用して、「この入力にこのように応答する」ようにモデルを学習します。これは最も一般的なシナリオです。
人間のフィードバックからの強化学習 (RLHF): 人々の好みの反応に基づいてモデルの動作を調整します。それは複雑で高価です。ほとんどのアプリケーション チームのニーズは SFT で満たされます。 RLHF を概念として理解するだけで十分です。
データ: 微調整の核心
微調整の品質は、トレーニング データの品質に完全に依存します。数百の高品質で一貫性のあるサンプルは、何千ものずさんなサンプルよりも優れています。データを準備するとき:
- 一貫性: すべての例は、必要な形式とトーンを一貫して示しています。矛盾した例があると、モデルは混乱したままになります。
- 多様性: 例は実際に使用されている多様性をカバーしていますが、均一ではありません。
- クリーニング: 不正確なデータ、偏ったデータ、または非表示のデータを含むインスタンスは、永続的にモデルに渡されます。微調整データは、契約書と同じくらい注意深く読む必要があります。
注意: 微調整データに入力されるすべてのバイアス、エラー、および隠された情報はモデルに刻まれ、その出力に再び現れます。トレーニング データを公開しているかのように細心の注意を払って監査します。個人データを投稿しないでください。
レビュー: 微調整は機能しましたか?
微調整する前に、ホールドアウト評価セットを予約し、微調整なしのモデル (ベース モデル) のスコアを測定します。微調整後、同じバンクで再度測定します。比較しないと「良くなった」とは言えません。また、次の 2 つの罠に注意してください。
- 過剰学習: 小さなデータで過剰トレーニングを行うと、モデルはトレーニング例を記憶して一般化する能力を失います。
- 壊滅的な忘却: 狭いタスクでオーバートレーニングすると、モデルの全体的な能力が損なわれる可能性があります。新しい行動を習得しながら古いスキルが保持されているかどうかをテストします。
弱いアプローチ / 強いアプローチ
弱者: 「チャット ログが 3000 件あります。モデルが私たちと同じように話せるように、すべてを微調整してみましょう。」
Güçlü: 「最初に 100 個の実際のタスクでベース モデルを評価し、スコアを記録しました。プロンプトと数ショットでどれだけ改善したかを測定しましたが、それだけでは十分ではありませんでした。次に、3000 個のログから、高品質で一貫した形式で、隠されたデータがない 400 個のサンプルだけを選択してクリーニングしました。LoRA で微調整し、同じ 100 個のタスクで再度測定し、一般的な機能が損なわれていないことを別のテストで確認しました。」
違い: 強力なアプローチでは、最初に代替案を使い果たし、データを厳選し、前後の対策を講じ、副作用をテストします。
コストとメンテナンスの現実
微調整は 1 回限りの作業ではありません。それは注意義務です。基本モデルが更新された場合、変更が必要になった場合、またはデータが失われた場合には、再トレーニングが必要になる場合があります。さらに、微調整されたモデルをホストすると、追加のコストと運用が発生します。この総所有コストと、それによってもたらされる品質の向上を比較してください。ほとんどの場合、適切なプロンプト + RAG は、微調整よりも安価で柔軟です。
ミニケース3個
ケース 1 - 不必要な微調整。あるチームは、「私たちのモデルは私たちの製品を理解していない」という理由で、費用のかかる微調整プロジェクトに着手しました。何か月も予算も費やしましたが、結果は脆弱なものでした。製品カタログが変更されるたびに、モデルは時代遅れになってしまいました。最終的に彼らは RAG に切り替えました。ドキュメント ベースから製品データを取得し、更新は瞬時に行われ、コストが削減されました。教訓: 情報の問題は微調整では解決できません。
ケース 2 - 正しい微調整。ある保険会社は、このモデルが常に同じ厳格な構造 (条項ごと、特定の見出し付き) で保険契約の概要を生成することを望んでいました。プロンプトとの整合性が 70% で止まっています。 300 個の良好なサンプルを使用して LoRA を微調整した後、フォーマットの一貫性は 98% に向上しました。これは動作上の問題であり、微調整が適切なツールでした。
ケース 3 - プライバシーがデータに漏洩する。あるチームはチャットログをクリーンアップせずに微調整のために送信しました。ログには実際の顧客名と識別番号が含まれていました。微調整されたモデルは、無関係な質問の出力としてこれらの名前を「漏洩」し始めました。モデルは撤回され、データがマスクされて再トレーニングされました。教訓: 微調整データ内の隠された情報はモデルに永続的に転送されます。
コピー可能なテンプレート
私が抱えているこの問題に対して微調整が必要かどうかの判断を手伝ってください。問題: [説明] これは情報の問題 (モデルが何かを知らない) ですか、それとも動作の問題 (モデルが私が望むフォーマット/トーン/構造を生成しない) ですか?プロンプト、少数ショット、RAG ファーストで解決できますか?それぞれを試す理由と試さない理由は何ですか?どのような状況でのみ微調整を推奨しますか?
この微調整データセットを確認してください:1) サンプルの形式とトーンは一貫していますか?2) サンプルは実際の使用における変動をカバーしていますか?3) 機密/個人データが含まれていますか (マスクする必要があります)?4) 矛盾するサンプルはありますか?サンプルのサブセット: [サンプル] 見つかった各問題と修正をリストします。
微調整の前後で評価計画を作成します。タスク: [説明]- 保持される評価セットはどのように選択されるべきですか?- 基本モデルのスコアはどのように測定されますか?- 微調整後にどのメトリックと比較されますか?- 一般的な機能が損なわれていないこと (致命的な忘却) をテストするにはどうすればよいですか?
LoRA で微調整するための初期ハイパーパラメータを提案します。データ サイズ: [サンプル数] 目的: [フォーマット/トーン ティーチング] エポック、学習率、および過学習を避けるための早期停止を提案します。
デシジョンテーブル: どのツールをいつ使用するか
必要です
まずは試してみる
微調整?
モデルは何も情報を知りません
ラグ
いいえ
現在のデータが必要です
ラグ
いいえ
特定の固定フォーマット
数ショット
十分でない場合ははい
一貫したトーン/スタイル
プロンプト + 数ショット
十分でない場合ははい
分野の専門用語/スタイル
プロンプト
それで十分でない場合は、LoRA
単純なタスクの最適化
迅速なエンジニアリング
一般的にはありません
よくある間違い
- 情報の問題を微調整して解決しようとしています。 RAG は適切なツールです。
- プロンプト/フューショット/RAG を消費せずに微調整を実行しています。高価で不要です。
- 低品質/矛盾したデータを使用したトレーニング。少ないが明確なデータの方が良いです。
- 機密データを教育に活用します。モデルに永続的に浸透します。
- 前後の計測は行っておりません。回復を証明することはできません。
- 壊滅的な忘却をテストしていない。新しいスキルは古いスキルを混乱させる可能性があります。
要約すると
微調整は強力ですが高価なツールであり、prompt-few-shot-RAG を使用した後の動作/形式の問題に対してのみ考慮する必要があります。情報の問題は RAG に属します。 LoRA などのパラメータ効率の高い手法が実用的な第一選択です。品質は完全にデータの品質に依存します。小さいながらもクリーンで一貫性のある機密データを使用します。前後を測定し、過剰学習や能力の低下をテストします。微調整は注意の義務です。総コストとそれが提供する品質を比較検討します。
アプリケーションタスク
問題を選択し、「知識か行動か」を区別して微調整が必要かどうかを判断し、その理由を書きます。問題行動の場合は、20 ~ 30 個の一貫したサンプルを準備し、隠れたデータがないか確認し、前後の評価計画 (ホールドアウト クラスター、基本スコア、比較指標、忘却テスト) を文書化します。微調整ではなく RAG/few-shot で解決できる場合は、これもメモしておきます。
チェックリスト
- [ ] 問題が知識なのか行動なのかを判断しました。
- [ ] 私は最初に、プロンプト、少数ショット、および RAG の代替案を評価しました。
- [ ] 一貫性、多様性、機密性について微調整されたデータを監査しました。
- [ ] ホールドアウト評価クラスターを割り当て、基本スコアを測定しました。
- [ ] ビフォーアフター比較と忘却テストを計画しました。
- [ ] 総コストとそれが提供する品質を比較してみました。