Référence de configuration
Utilisez cette page comme référence unique des clés TOML utilisées par train.py et des valeurs par défaut.
Prérequis: connaître le preset de référence (configs/base/base.toml).
Valeurs canoniques utilisées dans les guides
CONFIG_EXAMPLE = configs/base/base.toml
CHECKPOINT = checkpoints/ckpt_last.pt
META_TXT = data/processed/meta.json
META_BIN = data/meta.json
Référence des sections et des clés
[general]
| Clé |
Type |
Valeur typique |
Notes |
run_name |
string |
"tiny_char_baseline" |
Label informatif du run. |
seed |
int |
1337 |
seed (graine d'initialisation) optionnelle. |
tokenizer |
string |
"char" ou "bpe" |
Valeur par défaut: "char" si omis. |
[data]
| Clé |
Type |
Valeur typique |
Notes |
dataset |
string |
"tinyshakespeare" |
Label des métadonnées. |
processed_dir |
string path |
"data/processed" |
Valeur par défaut: "data/processed" si omis. |
[model]
| Clé |
Type |
Valeur typique |
Notes |
vocab_size |
int |
65 (char) / 50257 (bpe) |
Peut être inféré via metadata/tokenizer si omis. |
block_size |
int |
512 |
Longueur de séquence. |
n_layer |
int |
6 |
Profondeur du Transformer. |
n_head |
int |
8 |
Nombre de têtes d'attention. |
n_embd |
int |
256 |
Taille des embeddings. |
dropout |
float |
0.1 |
Taux de dropout. |
bias |
bool |
true |
Active/désactive le biais linéaire. |
use_rope |
bool |
false/true |
Valeur par défaut: false. |
use_flash |
bool |
false/true |
Valeur par défaut: false. |
[optimizer]
| Clé |
Type |
Valeur typique |
Notes |
learning_rate |
float |
3e-4 |
Fallback vers [training] si absent. |
weight_decay |
float |
0.01 |
Fallback vers [training] si absent. |
beta1 |
float |
0.9 |
AdamW beta1. |
beta2 |
float |
0.95 |
AdamW beta2. |
grad_clip |
float |
1.0 |
Fallback vers [training] si absent. |
[training]
| Clé |
Type |
Valeur typique |
Notes |
batch_size |
int |
8 |
Taille de batch (micro-batch) par step. |
gradient_accumulation_steps |
int |
1 à 8 |
Accumulation de gradients pour augmenter la taille de batch effective. |
max_iters |
int |
5000 |
Valeur de référence de la documentation. |
warmup_iters |
int |
0 à 500 |
Steps de warmup du learning rate. |
lr_decay_iters |
int |
5000 |
Souvent aligné sur max_iters. |
min_lr |
float |
3e-5 |
Plancher du learning rate (cosine decay). |
eval_interval |
int |
200 |
Cadence d'évaluation/checkpoint. |
eval_iters |
int |
50 |
Nombre de batches de validation par évaluation. |
log_interval |
int |
20 |
Cadence des logs console. |
save_interval |
int |
200 ou 500 |
Cadence de sauvegarde supplémentaire. |
device |
string |
"cuda" ou "cpu" |
Surcharge possible via CLI --device. |
checkpoint_dir |
string path |
"checkpoints" |
Produit ckpt_last.pt et train_log.json. |
data_format |
string |
"txt" ou "bin" |
Valeur par défaut: "txt" si omis. |
early_stopping |
bool |
false |
Active l'arrêt anticipé sur la loss de validation. |
early_stopping_patience |
int |
5 |
Nombre d'évaluations sans amélioration avant arrêt. |
early_stopping_min_delta |
float |
0.0 |
Gain minimal de loss de validation pour compter une amélioration. |
save_best |
bool |
true |
Sauvegarde ckpt_best.pt sur nouvelle meilleure loss de validation. |
[generation]
| Clé |
Type |
Valeur typique |
Notes |
max_new_tokens |
int |
200 |
Valeur pratique pour les scripts docs. |
temperature |
float |
0.6 à 0.9 |
Contrôle de l'aléatoire du sampling. |
top_k |
int |
40 à 50 |
Troncature du sampling. |
top_p |
float |
0.9 à 1.0 |
Seuil nucleus sampling. |
repetition_penalty |
float |
1.0 à 1.2 |
Pénalité des tokens répétés. |
use_kv_cache |
bool |
true |
Active le KV-cache en inférence. |
stream |
bool |
true |
Active le streaming token-by-token en démo. |
system_prompt |
string |
"" |
Prompt système du chat minimal. |
max_history_turns |
int |
6 |
Nombre max de tours d'historique chat. |
seed |
int or null |
1337 |
seed (graine d'initialisation) pour la reproductibilité. |
deterministic |
bool |
false |
Active les algorithmes déterministes PyTorch. |
Valeurs par défaut appliquées automatiquement
load_config garantit:
general.tokenizer = "char"
data.processed_dir = "data/processed"
model.use_rope = false
model.use_flash = false
training.data_format = "txt"
training.early_stopping = false
training.early_stopping_patience = 5
training.early_stopping_min_delta = 0.0
training.save_best = true
generation.top_p = 1.0
generation.repetition_penalty = 1.0
generation.use_kv_cache = true
generation.stream = true
generation.system_prompt = ""
generation.max_history_turns = 6
generation.seed = null
generation.deterministic = false
Exemple: configuration minimale
[general]
tokenizer = "char"
[data]
dataset = "tinyshakespeare"
processed_dir = "data/processed"
[model]
block_size = 256
n_layer = 4
n_head = 4
n_embd = 192
vocab_size = 65
dropout = 0.1
bias = true
use_rope = false
use_flash = false
[training]
batch_size = 8
gradient_accumulation_steps = 1
max_iters = 2000
eval_interval = 200
eval_iters = 50
log_interval = 20
device = "cpu"
checkpoint_dir = "checkpoints"
data_format = "txt"
Exemple: point de départ RTX 4060 (8GB, à valider localement)
[general]
tokenizer = "char"
[data]
dataset = "tinyshakespeare"
processed_dir = "data/processed"
[model]
block_size = 512
n_layer = 6
n_head = 8
n_embd = 256
dropout = 0.1
bias = true
use_rope = false
use_flash = false
[optimizer]
learning_rate = 3e-4
weight_decay = 0.01
beta1 = 0.9
beta2 = 0.95
grad_clip = 1.0
[training]
batch_size = 8
gradient_accumulation_steps = 2
max_iters = 5000
warmup_iters = 200
lr_decay_iters = 5000
min_lr = 3e-5
eval_interval = 200
eval_iters = 50
log_interval = 20
save_interval = 200
device = "cuda"
checkpoint_dir = "checkpoints"
data_format = "txt"
Note
Le bloc RTX 4060 est un point de départ, pas un profil benchmark garanti. Ajustez selon votre VRAM et votre stack driver.
Liens