Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
e432c14
initial
Koratahiu Jan 18, 2026
b359a15
dev1
Koratahiu Jan 18, 2026
972ee77
dev2
Koratahiu Jan 19, 2026
1d49175
dev3
Koratahiu Jan 20, 2026
6ca6f52
dev4
Koratahiu Jan 20, 2026
e40579a
add Chroma residual filter
Koratahiu Jan 26, 2026
2bc6ae1
stable 2.2 and edit rms tooltip
Koratahiu Jan 31, 2026
31287b2
remove the print
Koratahiu Jan 31, 2026
44cca26
use .values()
Koratahiu Jan 31, 2026
14814d7
Merge branch 'master' of https://github.com/Nerogar/OneTrainer into S…
Koratahiu Feb 22, 2026
bee4b86
initial
Koratahiu Feb 22, 2026
1ebe54d
initial cwd, signed
Koratahiu Feb 25, 2026
30f7b28
dev1
Koratahiu Feb 25, 2026
d72c03d
add factored_2nd
Koratahiu Feb 25, 2026
69f2417
pre-commit
Koratahiu Feb 25, 2026
06c9e6e
fix CenteredWDMode
Koratahiu Feb 25, 2026
6d62373
maybe fix
Koratahiu Feb 26, 2026
32ef49a
dev2
Koratahiu Feb 26, 2026
852f389
pre-commit
Koratahiu Feb 26, 2026
add186d
fix and remove CenteredWDMode enum
Koratahiu Feb 28, 2026
8e55171
dev4
Koratahiu Mar 1, 2026
d15d915
Dev5: Add Fisher WD to Adam-variants
Koratahiu Mar 16, 2026
b9ece34
depth_calculator
Koratahiu Mar 16, 2026
89ce64f
remove calculate_muon_n_layers
Koratahiu Mar 16, 2026
fd669d3
dev6: add scaled eps
Koratahiu Mar 17, 2026
7db66b5
add StatePrecision
Koratahiu Apr 11, 2026
2499da1
add SGD_ADV, various changes
Koratahiu Apr 11, 2026
535d206
dev8
Koratahiu Apr 11, 2026
16eef8f
fix
Koratahiu Apr 11, 2026
753d265
add nesterov
Koratahiu Apr 11, 2026
4ab3d4a
dev9
Koratahiu Apr 11, 2026
49b24a8
dev10
Koratahiu Apr 11, 2026
dba147d
dev11
Koratahiu Apr 11, 2026
b092fbb
Change sgd to sinksgd and add orthogonal sinkhorn
Koratahiu Apr 28, 2026
f0ed83d
dev13: sinksgd bugfixes
Koratahiu Apr 29, 2026
f67210b
Merge branch 'master' of https://github.com/Nerogar/OneTrainer into s…
Koratahiu May 9, 2026
081e260
add stochastic_sign
Koratahiu May 9, 2026
8d2b1de
add normed_momentum (Normalization then Momentum)
Koratahiu May 9, 2026
5005b20
remove kappa_p
Koratahiu May 9, 2026
147e6b9
remove Simplified_AdEMAMix
Koratahiu May 9, 2026
bd515da
add nesterov and nesterov_coef
Koratahiu May 9, 2026
91e06da
Scale invariant eps when eps=None
Koratahiu May 9, 2026
8aa14e1
update create_adam_params_ui
Koratahiu May 9, 2026
0f8d59e
dev14
Koratahiu May 9, 2026
7889d14
dev15
Koratahiu May 10, 2026
cfa876e
Update requirements-global.txt
Koratahiu May 11, 2026
2d13b17
Update requirements-global.txt
Koratahiu May 12, 2026
46fbf73
fix SinkSGD typo
Koratahiu May 24, 2026
2256655
Merge branch 'scaled_optm' of https://github.com/Koratahiu/OneTrainer…
Koratahiu May 24, 2026
137f4cd
add geometric_wd, centered_vt
Koratahiu May 25, 2026
dcf284b
Merge branch 'master' of https://github.com/Nerogar/OneTrainer into s…
Koratahiu May 26, 2026
5f0a9e8
dev19: sinksgd bugifxes
Koratahiu May 27, 2026
59d9022
Update requirements-global.txt
Koratahiu May 27, 2026
47c2539
centered_vt -> snr_cond, add it and geometric_wd to signsgd_adv
Koratahiu May 30, 2026
1c7ee1f
remove use_AdEMAMix and its parameters
Koratahiu May 30, 2026
b4b9484
remove fp8_sr and add fp32 to StatePrecision
Koratahiu May 30, 2026
5181601
adam_ui_state
Koratahiu May 30, 2026
7b6d349
dev23
Koratahiu May 30, 2026
c145d39
Merge branch 'scaled_optm' of https://github.com/Koratahiu/OneTrainer…
Koratahiu May 30, 2026
f331379
remove depth
Koratahiu May 31, 2026
38ab7e7
tag util
Koratahiu May 31, 2026
b3876ec
remove LoRAModule tagging
Koratahiu May 31, 2026
14985e7
pre-commit
Koratahiu May 31, 2026
2f55e09
Merge branch 'master' of https://github.com/Nerogar/OneTrainer into s…
Koratahiu May 31, 2026
334881c
Change centered_wd_mode to full
Koratahiu May 31, 2026
04940ed
support for dora_multiplier
Koratahiu Jun 1, 2026
fa91c0a
change to dora_log_multiplier
Koratahiu Jun 4, 2026
091207e
remove leftover
Koratahiu Jun 5, 2026
dfd34a8
dev24: bugfixes, improved spectral scaling for OFT, fix normed moment…
Koratahiu Jun 5, 2026
a2374bf
dev25: Improved normed momentum and nesterov
Koratahiu Jun 6, 2026
0deb597
Rework orthogonal_gradient
Koratahiu Jun 6, 2026
c31ae3f
Stable and final 2.5 version
Koratahiu Jun 6, 2026
3d659c1
update tooltips
Koratahiu Jun 6, 2026
a49c333
pre-commit
Koratahiu Jun 6, 2026
0d06b4d
2.5.1: Improve iterative OrthoGrad
Koratahiu Jun 6, 2026
3a5cfaa
Merge branch 'master' of https://github.com/Nerogar/OneTrainer into s…
Koratahiu Jun 8, 2026
895e908
2.5.2: Improved Spectral scaling for OFT
Koratahiu Jun 10, 2026
4099562
pre-commit
Koratahiu Jun 10, 2026
6d4f25f
2.5.3 Improve OFT spectral scaling
Koratahiu Jun 12, 2026
db4e48e
2.5.4: Small SignSGD bugfix and improvement
Koratahiu Jun 15, 2026
984dc35
fix state_precision to auto
Koratahiu Jun 15, 2026
4af2490
Merge branch 'scaled_optm' of https://github.com/Koratahiu/OneTrainer…
Koratahiu Jun 15, 2026
4329c98
Fix invalid orthogonal_gradient and state_precision
Koratahiu Jun 15, 2026
9d7e858
2.5.5: Muon Variants Bugfixes
Koratahiu Jun 15, 2026
39f7ee2
version bump bugfixes
Koratahiu Jun 16, 2026
68410a8
version bump
Koratahiu Jun 16, 2026
266199a
Remove from_dict and add __migration_10
Koratahiu Jun 20, 2026
3e7a759
Merge branch 'scaled_optm' of https://github.com/Koratahiu/OneTrainer…
Koratahiu Jun 20, 2026
43c6560
Revert and add sub-config migration
Koratahiu Jun 20, 2026
885031c
2.5.9: Enhance compiled optimizer mode
Koratahiu Jun 20, 2026
767ec38
Update requirements-global.txt
Koratahiu Jun 26, 2026
a7c647b
initial
Koratahiu Jun 27, 2026
f86818c
dev2
Koratahiu Jun 27, 2026
81c5a89
Update requirements-global.txt
Koratahiu Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions modules/ui/MuonAdamWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,13 @@ def create_adam_params_ui(self, master):
'use_bias_correction': {'title': 'Bias Correction', 'tooltip': 'Turn on Adam\'s bias correction.', 'type': 'bool'},
'weight_decay': {'title': 'Weight Decay', 'tooltip': 'Regularization to prevent overfitting.', 'type': 'float'},
'use_orthograd': {'title': 'use_orthograd', 'tooltip': 'Use orthograd method', 'type': 'bool'},
'nnmf_factor': {'title': 'Factored Optimizer', 'tooltip': 'Enables a memory-efficient mode by applying fast low-rank factorization to the optimizers states. It combines factorization for magnitudes with 1-bit compression for signs, drastically reducing VRAM usage and allowing for larger models or batch sizes. This is an approximation which may slightly alter training dynamics.', 'type': 'bool'},
'orthogonal_gradient': {'title': 'OrthoGrad', 'tooltip': 'Reduces overfitting by removing the gradient component parallel to the weight, thus improving generalization.', 'type': 'bool'},
'orthogonal_gradient': {'title': 'OrthoGrad', 'tooltip': 'Reduces overfitting by removing the gradient component parallel to the weight, thus improving generalization. This has two modes: 1. flattened: Standard vectorized OrthoGrad. Fastest, but loses the structural properties of matrices. 2. iterative: Matrix-wise OrthoGrad, preserves structure by iteratively projecting rows and columns.', 'type': 'OrthoGrad'},
'use_atan2': {'title': 'Atan2 Scaling', 'tooltip': 'A robust replacement for eps, which also incorporates gradient clipping, bounding and stabilizing the optimizer updates.', 'type': 'bool'},
'use_AdEMAMix': {'title': 'AdEMAMix EMA', 'tooltip': 'Adds a second, slow-moving EMA, which is combined with the primary momentum to stabilize updates, and accelerate the training.', 'type': 'bool'},
'beta3_ema': {'title': 'Beta3 EMA', 'tooltip': 'Coefficient for slow-moving EMA of AdEMAMix.', 'type': 'float'},
'Simplified_AdEMAMix': {'title': 'Simplified AdEMAMix', 'tooltip': "Enables a simplified, single-EMA variant of AdEMAMix. Instead of blending two moving averages (fast and slow momentum), this version combines the raw current gradient (controlled by 'Grad α') directly with a single theory-based momentum. This makes the optimizer highly responsive to recent gradient information, which can accelerate training in all batch size scenarios when tuned correctly.", 'type': 'bool'},
'alpha_grad': {'title': 'Grad α', 'tooltip': 'Controls the mixing coefficient between raw gradients and momentum gradients in Simplified AdEMAMix. Higher values (e.g., 10-100) emphasize recent gradients, suitable for small batch sizes to reduce noise. Lower values (e.g., 0-1) emphasize historical gradients, suitable for large batch sizes for stability. Setting to 0 uses only momentum gradients without raw gradient contribution.', 'type': 'float'},
'kourkoutas_beta': {'title': 'Kourkoutas Beta', 'tooltip': 'Enables a layer-wise dynamic β₂ adaptation. This feature makes the optimizer more responsive to "spiky" gradients by lowering β₂ during periods of high variance, and more stable during calm periods by raising β₂ towards its maximum. It can significantly improve training stability and final loss.', 'type': 'bool'},
'nesterov_coef': {'title': 'Nesterov Coef', 'tooltip': 'Controls the mixing coefficient between momentum gradients and raw gradients in Nesterov momentum. For a factor of 0.8, the final update will be 80% of the momentum gradients and 20% raw gradient. Leaving it unset toggles the standard Nestrov behavior (where nesterov_coef = beta1 or momentum). Setting it to 0 cancels momentum contribution.', 'type': 'float'},
'factored_2nd': {'title': 'Factored 2nd', 'tooltip': 'Whether to keep the first moment uncompressed (dense), while only factorizing the second moment. This makes the optimizer highly robust to a wide range of LRs, mimicking high-order optimization.', 'type': 'bool'},
'fisher_wd': {'title': 'Fisher Weight Decay', 'tooltip': 'Applies adaptive, scale-invariant weight-decay regularization based on the Fisher Information Matrix (approximated by Adam\'s second moment). It reduces penalty for "important" high-curvature weights while accelerating decay for "useless" weights in flat regions. Leading to improved convergence and better final performance.', 'type': 'bool'},
'state_precision': {'title': 'state_precision', 'tooltip': """The quantization format used to store the optimizer states to save VRAM. Options include: 'auto': Stores the states in the original parameter's precision. 'factored': Enables a memory-efficient mode by applying fast low-rank factorization to the optimizers states. It combines factorization for magnitudes with 1-bit compression for signs, drastically reducing VRAM usage and allowing for larger models or batch sizes. 'fp32': Uses full FP32. 'bf16_sr': Uses BF16 with stochastic rounding for a balance of precision and memory. 'int8_sr': Uses 8-bit block-wise quantization with stochastic rounding.""", 'type': 'StatePrecision'},
}
# @formatter:on

Expand All @@ -103,5 +102,9 @@ def create_adam_params_ui(self, master):

if param_type != 'bool':
components.entry(master, row, col + 1, self.adam_ui_state, key)
elif param_type == 'StatePrecision':
components.options(master, row, col + 1, ["auto", "factored", "fp32", "bf16_sr", "int8_sr"], self.adam_ui_state, key)
elif param_type == 'OrthoGrad':
components.options(master, row, col + 1, ["disabled", "flattened", "iterative"], self.adam_ui_state, key)
else:
components.switch(master, row, col + 1, self.adam_ui_state, key)
32 changes: 25 additions & 7 deletions modules/ui/OptimizerParamsWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,14 +167,10 @@ def create_dynamic_ui(
'use_schedulefree': {'title': 'use_schedulefree', 'tooltip': 'Use Schedulefree method', 'type': 'bool'},
'use_orthograd': {'title': 'use_orthograd', 'tooltip': 'Use orthograd method', 'type': 'bool'},
'nnmf_factor': {'title': 'Factored Optimizer', 'tooltip': 'Enables a memory-efficient mode by applying fast low-rank factorization to the optimizers states. It combines factorization for magnitudes with 1-bit compression for signs, drastically reducing VRAM usage and allowing for larger models or batch sizes. This is an approximation which may slightly alter training dynamics.', 'type': 'bool'},
'orthogonal_gradient': {'title': 'OrthoGrad', 'tooltip': 'Reduces overfitting by removing the gradient component parallel to the weight, thus improving generalization.', 'type': 'bool'},
'orthogonal_gradient': {'title': 'OrthoGrad', 'tooltip': 'Reduces overfitting by removing the gradient component parallel to the weight, thus improving generalization. This has two modes: 1. flattened: Standard vectorized OrthoGrad. Fastest, but loses the structural properties of matrices. 2. iterative: Matrix-wise OrthoGrad, preserves structure by iteratively projecting rows and columns.', 'type': 'OrthoGrad'},
'use_atan2': {'title': 'Atan2 Scaling', 'tooltip': 'A robust replacement for eps, which also incorporates gradient clipping, bounding and stabilizing the optimizer updates.', 'type': 'bool'},
'use_AdEMAMix': {'title': 'AdEMAMix EMA', 'tooltip': 'Adds a second, slow-moving EMA, which is combined with the primary momentum to stabilize updates, and accelerate the training.', 'type': 'bool'},
'beta3_ema': {'title': 'Beta3 EMA', 'tooltip': 'Coefficient for slow-moving EMA of AdEMAMix.', 'type': 'float'},
'beta1_warmup': {'title': 'Beta1 Warmup Steps', 'tooltip': 'Number of warmup steps to gradually increase beta1 from Minimum Beta1 Value to its final value. During warmup, beta1 increases linearly. leave it empty to disable warmup and use constant beta1.', 'type': 'int'},
'min_beta1': {'title': 'Minimum Beta1', 'tooltip': 'Starting beta1 value for warmup scheduling. Used only when beta1 warmup is enabled. Lower values allow faster initial adaptation, while higher values provide more smoothing. The final beta1 value is specified in the beta1 parameter.', 'type': 'float'},
'Simplified_AdEMAMix': {'title': 'Simplified AdEMAMix', 'tooltip': "Enables a simplified, single-EMA variant of AdEMAMix. Instead of blending two moving averages (fast and slow momentum), this version combines the raw current gradient (controlled by 'Grad α') directly with a single theory-based momentum. This makes the optimizer highly responsive to recent gradient information, which can accelerate training in all batch size scenarios when tuned correctly.", 'type': 'bool'},
'alpha_grad': {'title': 'Grad α', 'tooltip': 'Controls the mixing coefficient between raw gradients and momentum gradients in Simplified AdEMAMix. Higher values (e.g., 10-100) emphasize recent gradients, suitable for small batch sizes to reduce noise. Lower values (e.g., 0-1) emphasize historical gradients, suitable for large batch sizes for stability. Setting to 0 uses only momentum gradients without raw gradient contribution.', 'type': 'float'},
'kourkoutas_beta': {'title': 'Kourkoutas Beta', 'tooltip': 'Enables a layer-wise dynamic β₂ adaptation. This feature makes the optimizer more responsive to "spiky" gradients by lowering β₂ during periods of high variance, and more stable during calm periods by raising β₂ towards its maximum. It can significantly improve training stability and final loss.', 'type': 'bool'},
'schedulefree_c': {'title': 'Schedule free averaging strength', 'tooltip': 'Larger values = more responsive (shorter averaging window); smaller values = smoother (longer window). Set to 0 to disable and use the original Schedule-Free rule. Short small batches (≈6-12); long/large-batch (≈50-200).', 'type': 'float'},
'ns_steps': {'title': 'Newton-Schulz Iterations', 'tooltip': 'Controls the number of iterations for update orthogonalization. Higher values improve the updates quality but make each step slower. Lower values are faster per step but may be less effective.', 'type': 'int'},
Expand All @@ -184,16 +180,29 @@ def create_dynamic_ui(
'muon_adam_lr': {'title': 'Auxiliary Adam LR', 'tooltip': 'Learning rate for the auxiliary AdamW optimizer. If empty, it will use the main learning rate.', 'type': 'float'},
'muon_te1_adam_lr': {'title': 'AuxAdam TE1 LR', 'tooltip': 'Learning rate for the auxiliary AdamW optimizer for the first text encoder. If empty, it will use the Auxiliary Adam LR.', 'type': 'float'},
'muon_te2_adam_lr': {'title': 'AuxAdam TE2 LR', 'tooltip': 'Learning rate for the auxiliary AdamW optimizer for the second text encoder. If empty, it will use the Auxiliary Adam LR.', 'type': 'float'},
'rms_rescaling': {'title': 'RMS Rescaling', 'tooltip': 'Muon already scales its updates to approximate and use the same learning rate (LR) as Adam. This option integrates a more accurate method to match the Adam LR, but it is slower.', 'type': 'bool'},
'rms_rescaling': {'title': 'RMS Rescaling', 'tooltip': 'Normalizes Muon update magnitudes to align with Adam. This allows to reuse standard "Adam-style" learning rates instead of specialized Muon scales.', 'type': 'bool'},
'normuon_variant': {'title': 'NorMuon Variant', 'tooltip': 'Enables the NorMuon optimizer variant, which combines Muon orthogonalization with per-neuron adaptive learning rates for better convergence and balanced parameter updates. Costs only one scalar state buffer per parameter group, size few KBs, maintaining high memory efficiency.', 'type': 'bool'},
'beta2_normuon': {'title': 'NorMuon Beta2', 'tooltip': 'Exponential decay rate for the neuron-wise second-moment estimator in NorMuon (analogous to Adams beta2). Controls how past squared updates influence current normalization.', 'type': 'float'},
'low_rank_ortho': {'title': 'Low-rank Orthogonalization', 'tooltip': 'Use low-rank orthogonalization to accelerate Muon by orthogonalizing only in a low-dimensional subspace, improving speed and noise robustness.', 'type': 'bool'},
'ortho_rank': {'title': 'Ortho Rank', 'tooltip': 'Target rank for low-rank orthogonalization. Controls the dimensionality of the subspace used for efficient and noise-robust orthogonalization.', 'type': 'int'},
'accelerated_ns': {'title': 'Accelerated Newton-Schulz', 'tooltip': 'Applies an enhanced Newton-Schulz variant that replaces heuristic coefficients with optimal coefficients derived at each step. This improves performance and convergence by reducing the number of required operations.', 'type': 'bool'},
'cautious_wd': {'title': 'Cautious Weight Decay', 'tooltip': 'Applies weight decay only to parameter coordinates whose signs align with the optimizer update direction. This preserves the original optimization objective while still benefiting from regularization effects, leading to improved convergence and better final performance.', 'type': 'bool'},
'approx_mars': {'title': 'Approx MARS-M', 'tooltip': 'Enables Approximated MARS-M, a variance reduction technique. It uses the previous step\'s gradient to correct the current update, leading to lower losses and improved convergence stability. This requires additional state to store the previous gradient.', 'type': 'bool'},
'auto_kappa_p': {'title': 'Auto Lion-K', 'tooltip': 'Automatically determines the optimal P-value based on layer dimensions. Uses p=2.0 (Spherical) for 4D (Conv) tensors for stability and rotational invariance, and p=1.0 (Sign) for 2D (Linear) tensors for sparsity. Overrides the manual P-value. Recommend for unet models.', 'type': 'bool'},
'compile': {'title': 'Compiled Optimizer', 'tooltip': 'Enables PyTorch compilation for the optimizer internal step logic. This is intended to improve performance by allowing PyTorch to fuse operations and optimize the computational graph.', 'type': 'bool'},
'spectral_normalization': {'title': 'Spectral Scaling', 'tooltip': 'Enables explicit Spectral Normalization to automatically rescale the update magnitude based on layer dimensions and training method. This allows hyperparameters to transfer seamlessly from small to large models without retuning, while making the optimizer highly robust to a wide range of learning rates. This ensures consistent performance across different model sizes, adapter methods, and ranks.', 'type': 'bool'},
'stochastic_sign': {'title': 'Adaptive Sign', 'tooltip': 'Applies Adaptive Sign operation, that respects the geometry and direction of the original gradient, and scales the learning rate dynamically by the L1 norm of the gradient. This makes the signed-optimizers adaptive and more robust.', 'type': 'bool'},
'centered_wd': {'title': 'Centered Weight Decay', 'tooltip': 'Centered Weight Decay coefficient. Instead of decaying weights toward zero, they are decayed toward their initial values (anchors). This can be used together with standard weight decay.', 'type': 'float'},
'centered_wd_mode': {'title': 'Centered WD Mode', 'tooltip': """The quantization format used to store the anchor weights to save VRAM. Options include: 'full': Stores anchors in the original parameter's precision. 'float8': Uses torch.float8_e4m3fn for a balance of precision and memory. 'int8': Uses 8-bit block-wise quantization. 'int4': Uses 4-bit block-wise quantization.""", 'type': 'CenteredWDMode'},
'factored_2nd': {'title': 'Factored 2nd', 'tooltip': 'Whether to keep the first moment uncompressed (dense), while only factorizing the second moment. This makes the optimizer highly robust to a wide range of LRs, mimicking high-order optimization.', 'type': 'bool'},
'fisher_wd': {'title': 'Fisher Weight Decay', 'tooltip': 'Applies adaptive, scale-invariant weight-decay regularization based on the Fisher Information Matrix (approximated by Adam\'s second moment). It reduces penalty for "important" high-curvature weights while accelerating decay for "useless" weights in flat regions. Leading to improved convergence and better final performance.', 'type': 'bool'},
'state_precision': {'title': 'state_precision', 'tooltip': """The quantization format used to store the optimizer states to save VRAM. Options include: 'auto': Stores the states in the original parameter's precision. 'factored': Enables a memory-efficient mode by applying fast low-rank factorization to the optimizers states. It combines factorization for magnitudes with 1-bit compression for signs, drastically reducing VRAM usage and allowing for larger models or batch sizes. 'fp32': Uses full FP32. 'bf16_sr': Uses BF16 with stochastic rounding for a balance of precision and memory. 'int8_sr': Uses 8-bit block-wise quantization with stochastic rounding.""", 'type': 'StatePrecision'},
'orthogonal_sinkhorn': {'title': 'Orthogonal Sinkhorn', 'tooltip': 'Applies iterative row and column orthogonal projection to make the updates orthogonal to the current weight, leading to robust regularization and better generalization.', 'type': 'bool'},
'sinkhorn_iterations': {'title': 'Sinkhorn Iterations', 'tooltip': 'Controls the number of iterations for Multi-Normed Sinkhorn. While 1 iteration is often sufficient for convergence and 3 offers a slight refinement, 5 is the default.', 'type': 'int'},
'normed_momentum': {'title': 'Normalization-then-Momentum (NtM)', 'tooltip': 'Applies the momentum after the optimizer normalization. This makes the momentum scale invariant and tracks the true variance of the normalized gradients.', 'type': 'bool'},
'nesterov_coef': {'title': 'Nesterov Coef', 'tooltip': 'Controls the mixing coefficient between momentum gradients and raw gradients in Nesterov momentum. For a factor of 0.8, the final update will be 80% of the momentum gradients and 20% raw gradient. Leaving it unset toggles the standard Nestrov behavior (where nesterov_coef = beta1 or momentum). Setting it to 0 cancels momentum contribution.', 'type': 'float'},
'snr_cond': {'title': 'SNR Preconditioning', 'tooltip': 'Applies a Signal-to-Noise Ratio (SNR) precondition to reshape the optimization curve. It prioritizes high-confidence signals and dampens noise. On-the-fly math with zero memory overhead. Requires Normalization-then-Momentum (NtM). ', 'type': 'bool'},
'geometric_wd': {'title': 'Geometric Weight Decay', 'tooltip': 'Regularizes weights based on the geometric structure of the optimizer. Compatible with cautious weight decay.', 'type': 'bool'},
'scaled_wd': {'title': 'Scaled Weight Decay', 'tooltip': 'Decoupled, dimension-scaled weight decay. Recommended wd value: 0.1 for all ranks, widths and training methods.', 'type': 'bool'},
}
# @formatter:on

Expand Down Expand Up @@ -230,6 +239,15 @@ def create_dynamic_ui(
tooltip="Configure the auxiliary AdamW_adv optimizer",
width=20, padx=5 )
self.toggle_muon_adam_button()
elif type == 'CenteredWDMode':
components.options(master, row, col + 1, ["full", "float8", "int8", "int4"], self.optimizer_ui_state, key,
command=self.update_user_pref)
elif type == 'StatePrecision':
components.options(master, row, col + 1, ["auto", "factored", "fp32", "bf16_sr", "int8_sr"], self.optimizer_ui_state, key,
command=self.update_user_pref)
elif type == 'OrthoGrad':
components.options(master, row, col + 1, ["disabled", "flattened", "iterative"], self.optimizer_ui_state, key,
command=self.update_user_pref)
elif type != 'bool':
components.entry(master, row, col + 1, self.optimizer_ui_state, key,
command=self.update_user_pref)
Expand Down
Loading