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:
2026-08-01 08:51:08 +08:00
parent 6c76c16480
commit 6db276f37a
6 changed files with 367 additions and 2 deletions
+3
View File
@@ -7,6 +7,7 @@ from astrai.optim.composite import (
composite_zero_grad,
refresh_param_groups,
)
from astrai.optim.mano_adamw import Mano, ManoAdamW
from astrai.optim.muon_adamw import MuonAdamW
from astrai.optim.nora_nadamw import (
NAdamW,
@@ -19,6 +20,8 @@ from astrai.optim.nora_nadamw import (
)
__all__ = [
"Mano",
"ManoAdamW",
"MuonAdamW",
"NAdamW",
"Nora",