リソース/モデルのトレーニング/トレーニング中のプロセス

設定

学習率

学習率は、各更新で重みがどれだけ移動するかを設定します。これは最も敏感な学習設定であり、高すぎるとオーバーシュートしてスキルを消去する可能性があり、低すぎるとモデルがほとんど変化しません。通常、スケジュールではウォームアップを行い、その後、実行全体にわたって減衰させます。

第6章読了時間 2分参考文献 5件

学習率とは

各学習ステップでは、それぞれの重みについて、どの方向に進めば損失が下がるかを計算します。学習率は、その方向にどれだけ進むかを決定します。これは単一の数値であり、通常は科学的記数法で記述されます(例: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.00001

AdamやAdamWでは、勾配が最初に重みごとに正規化されるため、勾配の元の大きさに関係なく、学習率は各ステップにおける各重みの実際の変化量に近くなります。そのため、同程度のサイズのモデル間では一般的な学習率が妥当に適用でき、学習率が10倍高すぎることが些細な問題ではなく深刻な問題となるのです。

低すぎる、適切、高すぎる

学習損失学習ステップ →低すぎる適切高すぎる高低
同じデータを3つの学習率でトレーニングした場合。低すぎる場合:損失は徐々に下がり、モデルが十分に学習する前に実行が終了します。適切な場合:急速に低下した後、安定して平坦になります。高すぎる場合:開始は早いものの、更新が行き過ぎて再び上昇するギザギザの曲線になります。
現象考えられる原因対策
損失の低下が非常に遅い。回答がベースモデルとほとんど変わらない低すぎる上げる(例:1.5〜2倍の乗数)
急速に低下した後、検証損失がそれに追随して滑らかに平坦化するほぼ適切そのまま維持する
損失がギザギザになる、スパイクする、または再び上昇する。回答が反復的または不自然になる高すぎる半分にする。ウォームアップを追加または延長する
学習損失は急速に低下するが、検証損失が早期に上昇するこのデータサイズに対して高すぎる、またはエポック数が多すぎる学習率またはエポック数を下げる
損失がNaN(非数)になる極端に高すぎる、または数値的な問題大幅に下げる

学習率が高すぎると、忘却も悪化します。データに対する損失が良好に見える場合でも、大規模な更新によってベースモデルが持っていた一般的なスキルが上書きされてしまいます。

スケジュール:ウォームアップと減衰

  • ウォームアップ。 最初の数パーセントのステップでは、学習率はゼロに近い値からピークまで線形に上昇します。開始時点では、Adamの移動平均はごくわずかな勾配に基づいているため、フルサイズのステップでは最初の一手が悪手となるリスクがあります。段階的なウォームアップは大規模バッチ学習で普及し、現在では標準的な手法となっています。
  • 減衰。 ピーク後、学習率はゼロに向かって低下するため、終盤の更新では優れた解の周辺を飛び回るのではなく、微調整を行うようになります。線形減衰は直線的に学習率を下げ、Hugging FaceのTrainerのデフォルトとなっています。コサイン減衰はコサイン波の半分に従い、高い状態を長く維持した後、緩やかに低下します。
  • 定数。 短時間の実行の中には、ウォームアップ後に学習率を一定に保つものもあります。これはシンプルであり、ステップ数が少ない場合には問題ありません。
ウォームアップピーク学習率コサイン減衰線形減衰学習率学習ステップ →010%100%
典型的な学習率のスケジュール。ウォームアップでは、最初の数パーセントのステップで学習率をほぼゼロからピークまで引き上げるため、ノイズの多い初期の更新は小さく抑えられます。その後、学習率はコサイン曲線または直線に沿ってゼロに向かって減衰するため、終盤の更新では大きなジャンプではなく微調整が行われます。
ウォームアップ後、線形またはコサイン減衰
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)手法がより小さなステップを使用する理由

教師あり学習は、固定された正解の応答から学習します。選好チューニングや強化学習は、モデル自身の出力の比較やスコアという、よりノイズの多いシグナルから学習し、その目的は通常、すでに機能しているモデルを洗練させることです。大きなステップはモデルをその出発点から遠ざけてしまい、回答が逸脱したり、長くなったり、シグナルが報酬を与えるものをゲーム化し始めたりする可能性があります。学習率を低くすることで、各更新を控えめに保つことができます。

乗数の実際的な意味
  1. このモデルとデータセットに対するプロバイダーのデフォルトの学習率が2e-5であると仮定します。ホスト型プロバイダーは通常、これを表示しません。
  2. 乗数 1: 実行には2e-5が使用されます。
  3. 乗数 2: 4e-5。フル実行でモデルがほとんど変化しなかった場合に試す価値があります。
  4. 乗数 0.5: 1e-5。検証損失が早期に上昇した場合、または一般的な質問に対する回答がベースモデルよりも悪化した場合に試す価値があります。
  5. 約2倍の単位で調整します。これより小さな調整は、通常、実行ごとのノイズに埋もれてしまいます。

よくある間違い

  • 小規模なデータセットからより多くを学習させるために学習率を上げること。これは主に不安定さを増すだけであり、より多くの、あるいはより質の高いデータを用意する方が効果的です。
  • LoRAにフルファインチューニングの学習率を使用したり、フルファインチューニングにLoRAの学習率を使用したりすること。前者はほとんど学習せず、後者はモデルを破損する可能性があります。
  • 高い学習率でウォームアップを省略すること。これにより、最初の更新が最大かつ最も情報に基づかないものになります。
  • 学習損失のみで学習率を判断すること。学習率が高すぎる場合でも、検証損失や回答の質が悪化しているにもかかわらず、学習損失が低下しているように見えることがあります。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01OptimizationHugging Face Transformers docs · huggingface.co実装されているAdamWおよび標準的なスケジュール(線形、コサイン、ウォームアップ付き定数)。
  2. 02SGDR: Stochastic Gradient Descent with Warm RestartsLoshchilov & Hutter, 2016 · arXiv · arxiv.org現在、言語モデルの学習全般で使用されているコサイン学習率スケジュールを導入しました。
  3. 03Accurate, Large Minibatch SGD: Training ImageNet in 1 HourGoyal et al., 2017 · arXiv · arxiv.org段階的なウォームアップが学習の開始を安定させる理由。
  4. 04LoRA Without RegretThinking Machines Lab, 2025 · thinkingmachines.ai最適なLoRAの学習率を、フルファインチューニングの学習率の約10倍と測定しています。
  5. 05Learning rateWikipedia · en.wikipedia.org

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ