メインコンテンツまでスキップ

ハイパーパラメータの設定

Alt text

ハイパーパラメータはトレーニングプロセス中にモデルの重みを更新する方法を制御します。設定を容易にするために、機能と関連性に基づいてハイパーパラメータを 5 つの明確なグループ に分類しています:

グループ 1 - General

トレーニングプロセスのコア設定です。

名前説明サポートされる値
Batch size重みを更新する前に 1 回の順伝播・逆伝播でモデルが処理する例の数です。バッチが大きいとトレーニングが遅くなりますが、より安定した結果が得られる場合があります。分散トレーニングの場合、これは各デバイスのバッチサイズです。Int[1, +∞)
Epochsエポックはモデルトレーニング中にトレーニングデータ全体を 1 回通過することです。モデルが反復的に重みを調整できるよう、通常は複数のエポックを実行します。Int[1, +∞)
Learning rateモデルの学習済みパラメータへの変更の大きさを調整します。Float(0, 1)
Max sequence length最大入力長で、これより長いシーケンスはこの値で切り捨てられます。Int[1, +∞)
Distributed backend分散トレーニングに使用するバックエンドです。Enum[string]DDP, DeepSpeed
ZeRO stageDeepSpeed ZeRO アルゴリズムを適用するステージです。Distributed backend = DeepSpeed の場合のみ適用されます。Enum[int]1, 2, 3
Training type使用するパラメータモードです。Enum[string]Full, LoRA
Resume from checkpointトレーニングエンジンが再開するチェックポイントの相対パスです。Union[bool, string]No, Last checkpoint, Path/to/checkpoint

グループ 2 - Training runtime

トレーニングの効率とパフォーマンスを最適化します。

名前説明サポートされる値
Gradient accumulation steps逆伝播/更新パスを実行する前にグラデーションを累積する更新ステップ数です。Int[1, +∞)
Mixed precision使用する混合精度の種類です。Enum[string]Bf16, Fp16, None
Quantization bitオンザフライ量子化を使用してモデルを量子化するビット数です。現在は Training type = LoRA の場合のみ適用されます。Enum[string]None
Optimizerトレーニングに使用するオプティマイザーです。Enum[string]Adamw, Sgd
Weight decayオプティマイザーに適用する重み減衰です。Float[0, +∞)
Max gradient norm勾配クリッピングの最大ノルムです。Float[0, +∞)
Disable gradient checkpointing勾配チェックポイントを無効にするかどうかです。BoolTrue, False
Flash attention v2Flash Attention バージョン 2 を使用するかどうかです。現在は false のみサポートしています。BoolFalse
LR warmup steps0 から Learning rate まで線形ウォームアップに使用するステップ数です。Int[0, +∞)
LR warmup ratio線形ウォームアップに使用するトレーニング総ステップ数の比率です。Float[0, 1)
LR scheduler使用する学習率スケジューラーです。Enum[string]Linear, Cosine, Constant
Full determinism分散トレーニングで再現可能な結果を確保します。重要: これはパフォーマンスに悪影響を与えるため、デバッグ時のみ使用してください。True の場合、Seed の設定は無効になります。BoolTrue, False
Seed再現性のためのランダムシードです。Int[0, +∞)

グループ 3 - DPO

trainer = DPO を使用する場合にこのグループを有効にします。

名前説明サポートされる値
DPO label smoothingDPO のロバスト DPO ラベルスムージングパラメータで、0 から 0.5 の間である必要があります。Float[0, 0.5]
Preference beta優先損失のベータパラメータです。Float[0, 1]
Preference fine-tuning mixDPO トレーニングにおける SFT 損失係数です。Float[0, 10]
Preference loss使用する DPO 損失の種類です。Enum[string]Sigmoid, Hinge, Ipo, Kto pair, Orpo, Simpo
SimPO gammaSimPO 損失のターゲット報酬マージンです。該当する場合のみ使用されます。Float(0, +∞)

グループ 4 - LoRA

Training type = LoRA を使用する場合にこのグループを有効にします。

名前説明サポートされる値
Merge adapterLoRA アダプターをベースモデルにマージして最終モデルを提供するかどうかです。マージしない場合、トレーニング完了後に LoRA アダプターのみが保存されます。BoolTrue, False
LoRA alphaLoRA のアルファパラメータです。Int[1, +∞)
LoRA dropoutLoRA のドロップアウト率です。Float[0, 1]
LoRA rankLoRA 行列のランクです。Int[1, +∞)
Target modules量子化またはファインチューニングのターゲットモジュールです。StringAll linear

グループ 5 - Others

ファインチューニングの進捗を追跡・保存する方法を制御します。

名前説明サポートされる値
Checkpoint strategyトレーニング中に採用するチェックポイント保存戦略です。「best」は Evaluation strategy が「no」でない場合のみ適用されます。Enum[string]No, Epoch, Steps
Checkpoint stepsCheckpoint strategy = step の場合、2 回のチェックポイント保存間のトレーニングステップ数です。Int[1, +∞)
Evaluation strategyトレーニング中に採用する評価戦略です。Enum[string]No, Epoch, Steps
Evaluation stepsEvaluation strategy = steps の場合、2 回の評価間の更新ステップ数です。設定されていない場合、Logging steps と同じ値がデフォルトになります。Int[1, +∞)
No. of checkpoints値が渡された場合、チェックポイントの総数を制限します。Int[1, +∞)
Save best checkpoint最良のチェックポイントを追跡・保持するかどうかです。現在は False のみサポートしています。BoolFalse
Logging stepsstdout ログと MLflow データポイントを含むログイベント間のステップ数です。Logging steps = -1 は毎ステップにログを記録することを意味します。Int[0, +∞)
または toggle JSON に切り替えることでハイパーパラメータを素早く設定できます:

Alt text