feat: add Mano manifold optimizer (mano_adamw)
- implement Mano (v2) with axis-rotating tangent projection and manifold normalization, replacing Newton-Schulz iteration - composite ManoAdamW reuses partition_optimizer_parameters and composite helpers - register mano_adamw in OptimizerFactory, export Mano and ManoAdamW - add --mano_momentum and --mano_nesterov CLI options in Optimizer group - add mano_adamw hyperparameters branch in train.py - document mano_adamw in params.md - add tests for single-step projection, axis alternation, factory registration, closure, and resume
This commit is contained in:
@@ -148,7 +148,11 @@ def test_parameter_partition_covers_all_model_structures(model_overrides):
|
||||
|
||||
|
||||
def test_factory_registers_nora_default_and_legacy_muon():
|
||||
assert OptimizerFactory.list_registered() == ["muon_adamw", "nora_nadamw"]
|
||||
assert OptimizerFactory.list_registered() == [
|
||||
"mano_adamw",
|
||||
"muon_adamw",
|
||||
"nora_nadamw",
|
||||
]
|
||||
model = AutoRegressiveLM(make_tiny_config())
|
||||
optimizer = OptimizerFactory.create("nora_nadamw", model, lr=3e-4)
|
||||
assert isinstance(optimizer, NoraNAdamW)
|
||||
|
||||
Reference in New Issue
Block a user