nemo_rl.experience.rollout_reassembler_actor#

CPU Ray actors for metadata-only token-capture finalization.

Module Contents#

Classes#

ReassemblyRequest

Metadata-only input for one prompt group’s finalization.

RolloutReassemblerActorConfig

Internal constructor values shared by every finalizer actor.

RolloutReassemblerActor

Own a connect-only TQ client and lightweight finalizer in one process.

Functions#

create_rollout_reassembler_actors

Construct and validate the pool after TQ partitions are registered.

API#

class nemo_rl.experience.rollout_reassembler_actor.ReassemblyRequest#

Metadata-only input for one prompt group’s finalization.

group_id: str#

None

rollout_ids: tuple[str, ...]#

None

canonical_sample_ids: tuple[str, ...]#

None

receipts: tuple[Optional[dict[str, Any]], ...]#

None

rewards: tuple[float, ...]#

None

fallback_weight_version: int#

None

prompt_idx: int#

None

mask_sample: tuple[bool, ...]#

None

loss_multiplier: float#

1.0

logical_selections: Optional[tuple[nemo_rl.experience.rollout_reassembler.RolloutSelection, ...]]#

None

execution_row_multiple: int#

1

reward_checks: tuple[nemo_rl.experience.reward_penalties.RewardChecks | None, ...] | None#

None

reward_log_contexts: tuple[nemo_rl.experience.reward_penalties.RewardLogContext | None, ...] | None#

None

resolved_agent_name: Optional[str]#

None

attribution_key: Optional[str]#

None

property capture_receipts: tuple[Optional[dict[str, Any]], ...]#

Return cleanup receipts only after validating Forest capture ownership.

property cleanup_sample_ids: tuple[str, ...]#

Return the segment publication plan, including exact padding.

class nemo_rl.experience.rollout_reassembler_actor.RolloutReassemblerActorConfig#

Internal constructor values shared by every finalizer actor.

partition_id: str#

None

staging_partition: str#

None

pad_token_id: int#

None

router_replay_enabled: bool#

None

defer_routed_experts_to_policy: bool#

None

max_seq_len: int#

None

capture_media: bool#

None

media_columns: Optional[nemo_rl.data.captured_media.MediaColumnSpec]#

None

top_logprobs: int#

None

reward_penalty_config: nemo_rl.algorithms.grpo.RewardPenaltyConfig | None#

None

effort_config: nemo_rl.experience.rollouts.EffortLevelsConfig | None#

None

tokenizer_config: nemo_rl.models.policy.TokenizerConfig | None#

None

thinking_tags: tuple[str, ...] | None#

None

class nemo_rl.experience.rollout_reassembler_actor.RolloutReassemblerActor(
dp_config: nemo_rl.data_plane.DataPlaneConfig,
config: nemo_rl.experience.rollout_reassembler_actor.RolloutReassemblerActorConfig,
)#

Own a connect-only TQ client and lightweight finalizer in one process.

Initialization

mooncake_checkpoint(
body: dict[str, Any],
) → dict[str, Any] | None#

Run an owner-local checkpoint command; return metadata, never payloads.

get_data_plane_snapshot() → dict[str, Any] | None#
check_dependencies() → None#

Import the finalization API before the controller starts rollouts.

finalize(
request: nemo_rl.experience.rollout_reassembler_actor.ReassemblyRequest,
) → nemo_rl.experience.rollout_reassembler.FinalizedGroup#

Finalize one request without allowing tensor payloads across Ray RPC.

nemo_rl.experience.rollout_reassembler_actor.create_rollout_reassembler_actors(
dp_config: nemo_rl.data_plane.DataPlaneConfig,
config: nemo_rl.experience.rollout_reassembler_actor.RolloutReassemblerActorConfig,
*,
num_workers: int,
) → list[Any]#

Construct and validate the pool after TQ partitions are registered.