学習率とは
各学習ステップでは、それぞれの重みについて、どの方向に進めば損失が下がるかを計算します。学習率は、その方向にどれだけ進むかを決定します。これは単一の数値であり、通常は科学的記数法で記述されます(例:1e-5は0.00001を意味します)。モデルには数十億の重みがあり、各ステップでそれらすべてを同時に動かすため、この数値は非常に小さく見えます。しかし、個々の小さな変化が積み重なることで、動作に大きな変化をもたらします。
new weight = old weight − learning rate × (gradient, as scaled by the optimizer)
1e-4 = 0.0001 2e-5 = 0.00002 1e-5 = 0.00001AdamやAdamWでは、勾配が最初に重みごとに正規化されるため、勾配の元の大きさに関係なく、学習率は各ステップにおける各重みの実際の変化量に近くなります。そのため、同程度のサイズのモデル間では一般的な学習率が妥当に適用でき、学習率が10倍高すぎることが些細な問題ではなく深刻な問題となるのです。
低すぎる、適切、高すぎる
| 現象 | 考えられる原因 | 対策 |
|---|---|---|
| 損失の低下が非常に遅い。回答がベースモデルとほとんど変わらない | 低すぎる | 上げる(例:1.5〜2倍の乗数) |
| 急速に低下した後、検証損失がそれに追随して滑らかに平坦化する | ほぼ適切 | そのまま維持する |
| 損失がギザギザになる、スパイクする、または再び上昇する。回答が反復的または不自然になる | 高すぎる | 半分にする。ウォームアップを追加または延長する |
| 学習損失は急速に低下するが、検証損失が早期に上昇する | このデータサイズに対して高すぎる、またはエポック数が多すぎる | 学習率またはエポック数を下げる |
| 損失がNaN(非数)になる | 極端に高すぎる、または数値的な問題 | 大幅に下げる |
学習率が高すぎると、忘却も悪化します。データに対する損失が良好に見える場合でも、大規模な更新によってベースモデルが持っていた一般的なスキルが上書きされてしまいます。
スケジュール:ウォームアップと減衰
- ウォームアップ。 最初の数パーセントのステップでは、学習率はゼロに近い値からピークまで線形に上昇します。開始時点では、Adamの移動平均はごくわずかな勾配に基づいているため、フルサイズのステップでは最初の一手が悪手となるリスクがあります。段階的なウォームアップは大規模バッチ学習で普及し、現在では標準的な手法となっています。
- 減衰。 ピーク後、学習率はゼロに向かって低下するため、終盤の更新では優れた解の周辺を飛び回るのではなく、微調整を行うようになります。線形減衰は直線的に学習率を下げ、Hugging FaceのTrainerのデフォルトとなっています。コサイン減衰はコサイン波の半分に従い、高い状態を長く維持した後、緩やかに低下します。
- 定数。 短時間の実行の中には、ウォームアップ後に学習率を一定に保つものもあります。これはシンプルであり、ステップ数が少ない場合には問題ありません。
warm-up (step < W): lr = peak × step / W
linear decay: lr = peak × (T − step) / (T − W)
cosine decay: lr = peak × ½ × (1 + cos(π × (step − W) / (T − W)))
W = warm-up steps, T = total steps代表的な値
| 学習の種類 | 一般的な学習率 |
|---|---|
| 言語モデルのフルファインチューニング (AdamW) | 1e-5前後 |
| LoRAアダプター | 1e-4から2e-4前後、フルファインチューニングの約10倍 |
| 選好チューニング (DPO) | 対応する教師あり学習よりも低い値 |
| 強化学習によるファインチューニング | より小さなステップ、LoRAで約1e-5 |
| 乗数を使用するホスト型モデル | プロバイダーのデフォルト値 × 0.5〜2 |
これらは出発点であり、絶対的なルールではありません。最適な学習率はモデル、データ、バッチサイズによって異なり、それを見つける唯一の確実な方法は、数回の実行結果を検証損失と評価で比較することです。
選好および強化学習(RL)手法がより小さなステップを使用する理由
教師あり学習は、固定された正解の応答から学習します。選好チューニングや強化学習は、モデル自身の出力の比較やスコアという、よりノイズの多いシグナルから学習し、その目的は通常、すでに機能しているモデルを洗練させることです。大きなステップはモデルをその出発点から遠ざけてしまい、回答が逸脱したり、長くなったり、シグナルが報酬を与えるものをゲーム化し始めたりする可能性があります。学習率を低くすることで、各更新を控えめに保つことができます。
- このモデルとデータセットに対するプロバイダーのデフォルトの学習率が2e-5であると仮定します。ホスト型プロバイダーは通常、これを表示しません。
- 乗数 1: 実行には2e-5が使用されます。
- 乗数 2: 4e-5。フル実行でモデルがほとんど変化しなかった場合に試す価値があります。
- 乗数 0.5: 1e-5。検証損失が早期に上昇した場合、または一般的な質問に対する回答がベースモデルよりも悪化した場合に試す価値があります。
- 約2倍の単位で調整します。これより小さな調整は、通常、実行ごとのノイズに埋もれてしまいます。
よくある間違い
- 小規模なデータセットからより多くを学習させるために学習率を上げること。これは主に不安定さを増すだけであり、より多くの、あるいはより質の高いデータを用意する方が効果的です。
- LoRAにフルファインチューニングの学習率を使用したり、フルファインチューニングにLoRAの学習率を使用したりすること。前者はほとんど学習せず、後者はモデルを破損する可能性があります。
- 高い学習率でウォームアップを省略すること。これにより、最初の更新が最大かつ最も情報に基づかないものになります。
- 学習損失のみで学習率を判断すること。学習率が高すぎる場合でも、検証損失や回答の質が悪化しているにもかかわらず、学習損失が低下しているように見えることがあります。
参考文献および関連資料
外部ソースは新しいタブで開きます。
- 01OptimizationHugging Face Transformers docs · huggingface.co実装されているAdamWおよび標準的なスケジュール(線形、コサイン、ウォームアップ付き定数)。
- 02SGDR: Stochastic Gradient Descent with Warm RestartsLoshchilov & Hutter, 2016 · arXiv · arxiv.org現在、言語モデルの学習全般で使用されているコサイン学習率スケジュールを導入しました。
- 03Accurate, Large Minibatch SGD: Training ImageNet in 1 HourGoyal et al., 2017 · arXiv · arxiv.org段階的なウォームアップが学習の開始を安定させる理由。
- 04LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.ai最適なLoRAの学習率を、フルファインチューニングの学習率の約10倍と測定しています。
- 05Learning rateWikipedia · en.wikipedia.org