# tinker_cookbook.supervised.Config

## _class_ [**tinker_cookbook.supervised.Config**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L43)()

Configuration for supervised fine-tuning.

This `chz` dataclass holds every knob for a supervised learning run: model selection, learning-rate schedule, checkpointing cadence, evaluation, and logging.

```
from tinker_cookbook.supervised import train
config = train.Config(
    log_path="~/logs/sft-run",
    model_name="Qwen/Qwen3-8B",
    dataset_builder=my_dataset_builder,
    learning_rate=1e-4,
)
asyncio.run(train.main(config))
```

**Fields:**

- [**log_path**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L112) ( _str_)
- [**model_name**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L113) ( _str_)
- [**recipe_name**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L114) ( _str_)
- [**load_checkpoint_path**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L115) ( _str | None_, default: `None`)
- [**renderer_name**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L116) ( _str | None_, default: `None`)
- [**dataset_builder**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L117) ( _[SupervisedDatasetBuilder](https://tinker-docs.thinkingmachines.ai/cookbook/api-reference/supervised/superviseddatasetbuilder/)_)
- [**learning_rate**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L120) ( _float_, default: `0.0001`)
- [**lr_schedule**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L121) ( _LRSchedule_, default: `'linear'`)
- [**num_epochs**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L122) ( _int_, default: `1`)
- [**lora_rank**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L125) ( _int_, default: `32`)
- [**base_url**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L128) ( _str | None_, default: `None`)
- [**evaluator_builders**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L131) ( _list[EvaluatorBuilder]_, default: `[]`) – Checkpointing and evaluation (0 = disabled for *_every fields)
- [**infrequent_evaluator_builders**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L132) ( _list[EvaluatorBuilder]_, default: `[]`)
- [**save_every**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L134) ( _int_, default: `20`) – Step-based periodic checkpoint cadence
- [**save_every_tokens**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L136) ( _int_, default: `0`) – Token-based periodic checkpoint cadence
- [**save_every_seconds**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L138) ( _float_, default: `0.0`) – Wall-clock periodic checkpoint cadence in seconds
- [**eval_every**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L139) ( _int_, default: `10`)
- [**infrequent_eval_every**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L140) ( _int_, default: `100`)
- [**ttl_seconds**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L142) ( _int | None_, default: `604800`) – 7 days
- [**rolling_save_every**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L145) ( _int_, default: `0`) – but skips the sampler-weight export, making it cheaper than periodic checkpoints.
- [**rolling_ttl_seconds**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L147) ( _int_, default: `7200`) – 2 hours
- [**async_periodic_saves**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L151) ( _bool_, default: `False`) – checkpoint always blocks regardless of this setting.
- [**adam_beta1**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L154) ( _float_, default: `0.9`)
- [**adam_beta2**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L155) ( _float_, default: `0.95`)
- [**adam_eps**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L156) ( _float_, default: `1e-08`)
- [**wandb_project**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L159) ( _str | None_, default: `None`)
- [**wandb_name**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L160) ( _str | None_, default: `None`)
- [**enable_trace**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L162) ( _bool_, default: `False`)
- [**span_chart_every**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L163) ( _int_, default: `0`)
- [**max_steps**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L166) ( _int | None_, default: `None`) – Maximum number of training steps. If None, train for num_epochs * n_batches.
- [**submit_ahead**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/supervised/train.py#L171) ( _int_, default: `1`) – 0 = no pipelining, 2+ = deeper pipeline.
