Config - Tinker Documentation
tinker_cookbook.supervised.Config
class tinker_cookbook.supervised.Config()
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 ( str)
- model_name ( str)
- recipe_name ( str)
- load_checkpoint_path ( str | None, default:
None) - renderer_name ( str | None, default:
None) - dataset_builder ( SupervisedDatasetBuilder)
- learning_rate ( float, default:
0.0001) - lr_schedule ( LRSchedule, default:
'linear') - num_epochs ( int, default:
1) - lora_rank ( int, default:
32) - base_url ( str | None, default:
None) - evaluator_builders ( list[EvaluatorBuilder], default:
[]) – Checkpointing and evaluation (0 = disabled for *_every fields) - infrequent_evaluator_builders ( list[EvaluatorBuilder], default:
[]) - save_every ( int, default:
20) – Step-based periodic checkpoint cadence - save_every_tokens ( int, default:
0) – Token-based periodic checkpoint cadence - save_every_seconds ( float, default:
0.0) – Wall-clock periodic checkpoint cadence in seconds - eval_every ( int, default:
10) - infrequent_eval_every ( int, default:
100) - ttl_seconds ( int | None, default:
604800) – 7 days - rolling_save_every ( int, default:
0) – but skips the sampler-weight export, making it cheaper than periodic checkpoints. - rolling_ttl_seconds ( int, default:
7200) – 2 hours - async_periodic_saves ( bool, default:
False) – checkpoint always blocks regardless of this setting. - adam_beta1 ( float, default:
0.9) - adam_beta2 ( float, default:
0.95) - adam_eps ( float, default:
1e-08) - wandb_project ( str | None, default:
None) - wandb_name ( str | None, default:
None) - enable_trace ( bool, default:
False) - span_chart_every ( int, default:
0) - max_steps ( int | None, default:
None) – Maximum number of training steps. If None, train for num_epochs * n_batches. - submit_ahead ( int, default:
1) – 0 = no pipelining, 2+ = deeper pipeline.