# nodus.integrations.transformers

> `NodusCallback` for the Hugging Face `Trainer` and every TRL trainer built on it (ADR-103).

Source: https://nodus-platform-site.pages.dev/docs/reference/python/nodus-integrations-transformers/
Build revision: 211ad9f836655b1c3a2668c4693e442471f28614

<!-- Generated by scripts/gen-reference.mjs from the SDK docstrings (griffe). Do not edit: run make gen. -->

`NodusCallback` for the Hugging Face `Trainer` and every TRL trainer built on it (ADR-103).

```python
from nodus.integrations.transformers import NodusCallback

trainer = SFTTrainer(..., callbacks=[NodusCallback()])
trainer.train(resume_from_checkpoint=nodus.integrations.transformers.last_checkpoint())
```

Point `output_dir` at `nodus.state_dir()` so the Trainer’s `checkpoint-<step>` folders are the recovery state.

## `NodusCallback`

```python
class NodusCallback(phase: str = 'Training') -> None
```

Metrics, progress, phases and the checkpoint handshake for a `transformers.Trainer`.

### `NodusCallback.on_log`

```python
on_log(args: Any, state: Any, control: Any, logs: dict[str, Any] | None = None, **kwargs: Any) -> None
```

### `NodusCallback.on_save`

```python
on_save(args: Any, state: Any, control: Any, **kwargs: Any) -> None
```

### `NodusCallback.on_step_end`

```python
on_step_end(args: Any, state: Any, control: Any, **kwargs: Any) -> Any
```

### `NodusCallback.on_train_begin`

```python
on_train_begin(args: Any, state: Any, control: Any, **kwargs: Any) -> None
```

## `last_checkpoint`

```python
last_checkpoint(directory: str | os.PathLike[str] | None = None) -> str | None
```

The newest complete `checkpoint-<step>` under `directory` (default the state dir), for `resume_from_checkpoint`.

A folder counts only when the Trainer finished writing it (`trainer_state.json` is present), so an attempt stopped mid-save resumes from the checkpoint before it.
