> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/automodel/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/automodel/_mcp/server.

# nemo_automodel.components.training.rng

## Module Contents

### Classes

| Name                                                                 | Description                                                                    |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [`RNGState`](#nemo_automodel-components-training-rng-RNGState)       | Snapshot of Python, NumPy, Torch, and CUDA RNG states.                         |
| [`ScopedRNG`](#nemo_automodel-components-training-rng-ScopedRNG)     | Context manager for reproducible RNG states across random, NumPy, and PyTorch. |
| [`StatefulRNG`](#nemo_automodel-components-training-rng-StatefulRNG) | RNG manager for reproducible RNG states across random, NumPy, and PyTorch.     |

### Functions

| Name                                                                               | Description                                                              |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [`_get_rng_state`](#nemo_automodel-components-training-rng-_get_rng_state)         | Get current RNG states.                                                  |
| [`_restore_rng_state`](#nemo_automodel-components-training-rng-_restore_rng_state) | Restore RNG states from a saved state.                                   |
| [`init_all_rng`](#nemo_automodel-components-training-rng-init_all_rng)             | Initialize RNGs for Python, NumPy, and PyTorch (incl. CUDA) with a seed. |

### API

```python
class nemo_automodel.components.training.rng.RNGState(
    random_rng_state: tuple,
    np_rng_state: tuple,
    torch_rng_state: torch.Tensor,
    cuda_rng_state: torch.Tensor
)
```

Dataclass

Snapshot of Python, NumPy, Torch, and CUDA RNG states.

```python
class nemo_automodel.components.training.rng.ScopedRNG(
    seed: int = 95050,
    ranked: bool = False
)
```

Context manager for reproducible RNG states across random, NumPy, and PyTorch.

```python
nemo_automodel.components.training.rng.ScopedRNG.__enter__()
```

Save current RNG states.

```python
nemo_automodel.components.training.rng.ScopedRNG.__exit__(
    exc_type,
    exc_value,
    traceback
)
```

Restore RNG states on context exit.

```python
class nemo_automodel.components.training.rng.StatefulRNG(
    seed: int,
    ranked: bool = False
)
```

RNG manager for reproducible RNG states across random, NumPy, and PyTorch.

```python
nemo_automodel.components.training.rng.StatefulRNG.load_state_dict(
    state
)
```

Restore RNG states from a saved state.

**Parameters:**

RNG states as returned by state\_dict().

```python
nemo_automodel.components.training.rng.StatefulRNG.state_dict()
```

Get current RNG states.

**Returns:**

RNG states for random, NumPy, and PyTorch.

```python
nemo_automodel.components.training.rng._get_rng_state()
```

Get current RNG states.

**Returns:**

RNG states for random, NumPy, and PyTorch.

```python
nemo_automodel.components.training.rng._restore_rng_state(
    state
)
```

Restore RNG states from a saved state.

**Parameters:**

RNG states as returned by state\_dict().

```python
nemo_automodel.components.training.rng.init_all_rng(
    seed: int,
    ranked: bool = False
)
```

Initialize RNGs for Python, NumPy, and PyTorch (incl. CUDA) with a seed.

**Parameters:**

Base seed value.

Adjust seed by process rank if True.