| |
| |
|
|
| from __future__ import annotations |
|
|
| import kfac_jax |
|
|
| from .production import ( |
| KFACBundle, |
| apply_finetune_kfac_step, |
| apply_router_kfac_step, |
| init_finetune_kfac_state, |
| init_router_kfac_state, |
| ) |
| from .targets import process_finetune_targets, process_route_targets |
|
|
|
|
| def learning_rate(config, step: int) -> float: |
| return float(config.learning_rate_numerator) / ( |
| float(config.learning_rate_offset) |
| + float(step) / float(config.learning_rate_decay_steps) |
| ) |
|
|
|
|
| def register_scale_and_shift(y, x, scale, tag_id: str): |
| from hamiltonzero.model.tree import _kfac_name_kw |
|
|
| return kfac_jax.register_scale_and_shift( |
| y, |
| x, |
| scale=scale, |
| shift=None, |
| **_kfac_name_kw(tag_id), |
| ) |
|
|
|
|
| __all__ = [ |
| "KFACBundle", |
| "apply_finetune_kfac_step", |
| "apply_router_kfac_step", |
| "init_finetune_kfac_state", |
| "init_router_kfac_state", |
| "learning_rate", |
| "process_finetune_targets", |
| "process_route_targets", |
| "register_scale_and_shift", |
| ] |
|
|