nemo_rl.algorithms.sft_v2#
Single-controller SFT with one colocated Energon loader per DP replica.
Module Contents#
Classes#
Standalone SFTv2 configuration. |
|
Controller state committed at an optimizer-step boundary. |
|
Driver-built objects used by the SFTv2 controller actor. |
|
Drive colocated loaders and the existing TQPolicy from one actor. |
Functions#
Build the V2 cluster, TQPolicy, placement, and resume state. |
Data#
API#
- class nemo_rl.algorithms.sft_v2.MasterConfig#
Bases:
pydantic.BaseModelStandalone SFTv2 configuration.
- policy: nemo_rl.models.policy.PolicyConfig#
None
- data: nemo_rl.data.DataConfig#
None
- sft: nemo_rl.algorithms.sft.SFTConfig#
None
- data_plane: nemo_rl.data_plane.interfaces.LocalDataPlaneConfig#
None
- logger: nemo_rl.utils.logger.LoggerConfig#
None
- cluster: nemo_rl.distributed.virtual_cluster.ClusterConfig#
None
- checkpointing: nemo_rl.utils.checkpoint.CheckpointingConfig#
None
- telemetry: Optional[nemo_rl.telemetry.config.TelemetryConfig]#
None
- class nemo_rl.algorithms.sft_v2.SFTV2SaveState#
Controller state committed at an optimizer-step boundary.
- total_steps: int#
None
- consumed_samples: int#
None
- total_valid_tokens: int#
None
- placement_hash: str#
None
- class nemo_rl.algorithms.sft_v2.SFTV2ActorArgs#
Driver-built objects used by the SFTv2 controller actor.
- trainer: nemo_rl.models.policy.tq_policy.TQPolicy#
None
- loss_fn: nemo_rl.algorithms.loss.loss_functions.NLLLossFn#
None
- train_cluster: nemo_rl.distributed.virtual_cluster.RayVirtualCluster#
None
- placement_plan: nemo_rl.data.energon.topology.DataLoaderPlacementPlan#
None
- save_state: nemo_rl.algorithms.sft_v2.SFTV2SaveState#
None
- loader_states: list[dict[str, Any]] | None#
None
- nemo_rl.algorithms.sft_v2._initial_save_state(
- placement_hash: str,
- nemo_rl.algorithms.sft_v2._restore_save_state(
- loaded: Optional[dict[str, Any]],
- *,
- placement_hash: str,
- nemo_rl.algorithms.sft_v2._max_train_steps(
- master_config: nemo_rl.algorithms.sft_v2.MasterConfig,
- class nemo_rl.algorithms.sft_v2.SFTSingleControllerActor(
- master_config: nemo_rl.algorithms.sft_v2.MasterConfig,
- actor_args: nemo_rl.algorithms.sft_v2.SFTV2ActorArgs,
Drive colocated loaders and the existing TQPolicy from one actor.
Initialization
- run() dict[str, Any]#
Run SFT training.
- _setup_loaders() None#
- _load_envelopes() list[nemo_rl.data.energon.sft_types.StepEnvelope]#
- _run_train_step() dict[str, Any]#
- static _policy_metrics(
- train_results: dict[str, Any],
Convert policy output into flat scalar logger metrics.
- _owner_call(method_name: str) list[Any]#
- _loader_state_dicts() list[dict[str, Any]]#
- _should_save(*, save_by_timeout: bool) bool#
- _checkpoint_metric(metrics: dict[str, Any]) dict[str, float]#
Read checkpointing.metric_name out of one step’s training metrics.
Called every step rather than only on a save so a name that no step produces fails on step 1 instead of at the first checkpoint.
- _save_checkpoint(metric: dict[str, float]) None#
- _close_loaders() None#
- nemo_rl.algorithms.sft_v2.setup_sft_v2(
- master_config: nemo_rl.algorithms.sft_v2.MasterConfig,
- tokenizer_or_processor: Any,
Build the V2 cluster, TQPolicy, placement, and resume state.
- nemo_rl.algorithms.sft_v2.__all__#
[‘MasterConfig’, ‘SFTSingleControllerActor’, ‘SFTV2ActorArgs’, ‘SFTV2SaveState’, ‘setup_sft_v2’]