LoRAハイパーパラメータチューニング:体系的なFine-Tuning実験の分析
- 実験追跡
- Fine-Tuning結果
- ハイパーパラメータチューニング
- 学習率
- LoRAランク
- モデル最適化
- パフォーマンス分析
- ターゲットモジュール
- トレーニング設定
- Weights & Biases
- Ready Tensor
- Mohamed Abdelhamid
- Wasif Mehmood
🏠
Home – All Lessons
⬅️
Previous – Weights & Biases Tutorial
➡️
Next – Week 4 Overview
次の課題は、どのハイパーパラメータが実際に最も効果的かを見つけることです。
このレッスンでは、構造化されたFine-Tuning実験のセットから得られた結果を見ていきます。RunPodで実行され、Weights & Biasesで追跡され、複数の構成で分析されたものです。LoRAランク、学習率、ターゲットモジュールがモデルパフォーマンスにどのように影響するか、そして何を変更する「価値」があるかについて考える方法を学びます。
これはランダムな試行でも網羅的なグリッドサーチでもありません。LoRA Fine-Tuningにとって本当に重要なことを的を絞って探索したものです。最後には、どのパラメータが効果を発揮するのか、そして自分のプロジェクトに適した設定をどう決定するかがわかります。
それでは結果を見ていきましょう。
実施した実験
Week 3を通じて、Fine-Tuningワークフローのすべての要素を構築してきました:データセット準備、QLoRAセットアップ、クラウドスケーリング、実験追跡です。
今、これらすべてを組み合わせて、ハイパーパラメータの選択に対してモデルが実際にどれほど敏感かをテストします。
3つの中核的な質問に焦点を当てました。これらはほぼ常にFine-Tuningパフォーマンスを左右するものです:
- アダプターにはどれだけの容量が必要か?
LoRAランクは、各アダプターが学習できるパラメータ数を制御します。r = 4, 8, 16, 32をテストしました。
r = 4, 8, 16, 32
- モデルはどれくらい速く学習すべきか?
学習率は各更新ステップの大きさを決定します。2e-5と2e-4を比較しました。
2e-5
2e-4
- モデルのどの部分をFine-Tuningすべきか?
3つの構成を試しました:
- query + value projections (ベースライン)
- 4つすべてのattention projections (q, k, v, o)
- attention + MLP layers
すべての実行で同じセットアップを使用しました。完全なSAMSumデータセット(約14Kサンプル)、4-bit量子化を使用したQLoRA、そして共有の200サンプル検証分割での評価です。
つまり、パフォーマンスの違いは純粋にハイパーパラメータから来ており、ランダムな変動からではありません。
すべての実験はWeights & Biasesで追跡され、トレーニング曲線、損失軌跡、最終検証メトリクスの明確なビューが得られました。
🎥 LoRA Fine-Tuning実験とWeights & Biases追跡
このビデオでは、異なるLoRA構成で複数のFine-Tuning実験を実行し、Weights & Biasesを使用して追跡し、どのハイパーパラメータが最良の結果をもたらすかを分析する方法を学びます。
ベースラインパフォーマンス:開始地点
Lesson 4で使用した構成から始めましょう。最初の成功したFine-Tuneを得た構成です。
構成:
- LoRAランク: r = 8
r = 8 - LoRA alpha: 16
16 - 学習率: 2e-4
- ターゲットモジュール: q_proj, v_proj
q_proj, v_proj - トレーニングステップ: 300 (~1エポック)
- バッチサイズ: 4 (gradient accumulation = 4)
結果:
これが参照点です。モデルは明らかにベースバージョンよりも要約が上手になりましたが、この構成がなぜ機能するのか、または別の構成がより良く機能するかどうかはまだ検証していません。
本番MLプロジェクトでは、通常、異なる検証フォールド(k=3またはk=5)で複数の実験を実行し、結果を平均化することでこれに対処します。これにより、見られる差が非決定論的操作からのノイズではなく本物であることに自信が持てます。
ここでは、計算コストを管理可能に保つためにそれを行っていませんが、予算が許す実際のプロジェクトでは知っておくと良い実践です。
実験1:アダプターにはどれだけの容量が必要か?
LoRAランク(r)は、アダプターの表現力を決定します。モデルの「学習帯域幅」と考えることができます。
r
低すぎると、教えていることを表現できません。高すぎると、ノイズを記憶し始めるか、単に容量を無駄にします。
4つのランクをテストしました:r = 4, 8, 16, 32。
下のチャートで結果を確認してください。このレッスンのすべてのチャートで、ベースラインシナリオを緑色で示しています。
パフォーマンスはr = 16まで上昇し、その後横ばいになります。r = 8からr = 16への飛躍は、ROUGE-Lで測定可能だが控えめな向上をもたらします。それ以上では、利点が薄れます。
推奨:パフォーマンスと効率の最良のバランスにはr = 16を使用してください。
より速い反復が必要な場合、r = 8は依然として強力なデフォルトです。ROUGE-Lで0.5%ポイント未満の損失で済みます。
実験2:モデルはどれくらい速く学習すべきか?
学習率は、チューニングする最も敏感なハイパーパラメータです。各学習ステップの大きさを決定します。
2e-5と2e-4を比較しました。
違いは顕著です。
2e-5では、モデルはほとんど動きません。学習率が非常に保守的なため、300ステップでは不十分です。
トレーニング損失はほぼ平坦なままで、モデルは初期重みを超えて汎化できません。
2e-4では、収束はスムーズで効果的です。モデルは不安定性なしに速く学習します。
推奨:単一エポックのLoRA実行には2e-4を使用してください。
実験3:どのモデルコンポーネントをトレーニングすべきか?
LoRAアダプターをすべての場所に配置する必要はありません。効率性と影響のバランスを取るために、transformerの特定の部分をターゲットにできます。
3つのセットアップをテストしました:
- Query + Value (ベースライン) – qとvプロジェクションのみにアダプター
- Full Attention – q, k, v, oプロジェクションにアダプター
- Attention + MLP – すべてのattentionとMLP layersにアダプター
注目すべき点:
kとoプロジェクションを追加すること(full attention)が最大の利得をもたらします。特にROUGE-Lで、これは単語の重複ではなく要約構造を捉えます。
MLP layersを追加すると、ROUGE-1でわずかな向上がありますが、全体的な品質には役立たず、トレーニングオーバーヘッドが増加します。
推奨:最良のトレードオフには、full attention (q, k, v, o)を使用してください。依然として効率的で、要約の一貫性を一貫して向上させます。
勝利の構成
すべてをまとめると、SAMSumでのLlama 3.2 1Bの最良のセットアップは:
ハイパーパラメータ:
- LoRAランク: 16
- LoRA alpha: 32
32 - ターゲットモジュール: q, k, v, o
q, k, v, o - バッチサイズ: 4 (grad accumulation = 4)
これはベースラインよりも+0.67% ROUGE-Lの向上です。紙の上では小さいですが、モデルの動作では重要です。要約はより簡潔で一貫性があり、構造化されています。
全体像
Week 3で歩んだ完全な旅を振り返りましょう。
この週を始めたとき、対話をほとんど要約できないベースのLlama 3.2 1Bモデルがありました。とりとめなく話したり、要点を完全に見逃したりしました。最終的には次のようになりました:
最適化された1Bモデルは、おそらく10〜20倍大きいフロンティアモデルであるベースのGPT-4o-miniを上回るパフォーマンスを発揮します。
開始ベースラインから+12.3 ROUGE-Lポイント改善しました(27.24 → 39.55)。
これは漸進的な進歩ではなく、能力の飛躍です。
Fine-TuningされたGPT-4o-miniにはまだ及びませんが、そのモデルの規模とトレーニングセットアップは完全に異なるクラスのものであり、サードパーティプロバイダーにデータを送信する必要もあります。
対照的に、あなたのFine-Tuneは完全にオープンで、プライベートで、再現可能です。
最終的に、これはトレードオフに帰着します:モデルサイズ、コスト、レイテンシ、データプライバシー。
完全に制御できる小さなモデルが正しい選択である場合もあれば、マネージドフロンティアモデルの追加パフォーマンスがコストを正当化する場合もあります。
違いは、推測ではなく証拠に基づいてその決定を下せるようになったことです。
次に探索できること
表面をかすめただけです。同じプロセスでテストできます:
- トレーニングダイナミクス:より多くのエポック、ウォームアップスケジュール、または異なるバッチサイズ
- LoRA構成:他のalphaレシオ、ドロップアウト設定、またはレイヤーごとの混合ランク
- データバリエーション:より大きいまたはドメイン固有のデータセット、またはこのセットアップを他の要約タスクに転送
再現可能なパイプライン、クラウドGPUアクセス、実験追跡、明確なベースラインなど、必要なものはすべて揃っています。
ここから実行する新しいテストはすべて、推測ではなく証拠に基づいて構築されます。
今週構築したもの
少し振り返りましょう。
今週は、単にFine-Tuningしただけでなく、再現可能な本番グレードのシステムを構築しました。
データの準備、クラウドGPUのセットアップ、実験のログ記録、体系的な最適化の方法を学びました。
直感から証拠へ、「もしも?」から「これが機能する」へと移行しました。
これが応用LLMエンジニアリングの本質です。
信頼でき、再利用でき、拡張できるものを構築しました。どのモデル、どのデータセット、どのタスクでも。
次のステップ:Week 4とその先
Week 4はさらに先へ進みます。
ROUGEのような単語重複メトリクスを超えて、高度な評価戦略を探索します。事実の正確性、一貫性、指示への従順さを評価する方法です。
また、Fine-Tuningされたモデルをデプロイメントのために準備する方法も学びます:量子化、推論最適化、実世界での使用のためのパッケージング。
次に、Axolotlによる再現可能でスケーラブルなトレーニング、マルチGPUセットアップ、モデルマージングに飛び込みます。これらは、環境全体で効率的にFine-Tuningし、再トレーニングなしでモデルをブレンドできるツールです。
Fine-Tuningする方法を学びました。
次は、評価、スケール、出荷する方法を学びます。
Week 4でお会いしましょう。
- From One Model to Systematic Optimization

コメント