Files
Quintus/configs/config.yaml

78 lines
2.0 KiB
YAML
Raw Normal View History

# Quintus Distillation Pipeline
# Run profile: online full-vocabulary KD, 8B teacher -> 1.7B-Base student.
# Data: ~90K English-only samples from DistilQwen_100k.
data:
dataset_path: "<REDACTED_ON_PURPOSE>"
num_samples: 90234
max_seq_len: 4096
stream_shuffle_buffer_size: 20000
stream_shuffle_seed: 25
model:
teacher: "Qwen/Qwen3-8B"
student: "Qwen/Qwen3-1.7B-Base"
# The instruct tokenizer carries the chat template used to format the base
# student into assistant-style training examples.
tokenizer: "Qwen/Qwen3-1.7B"
teacher_revision: "main"
student_revision: "main"
tokenizer_revision: "main"
allow_remote_code: false
training:
# Schedule
num_epochs: 1
validation_ratio: 0.02
split_seed: 25
# Optimizer
learning_rate: 5.0e-6
weight_decay: 0.1
warmup_ratio: 0.05
# Loss mix used by src/losses.py:
# total = alpha * CE + (1 - alpha) * KD
alpha: 0.3
temperature: 2.0
# Online KD streams full-vocabulary teacher logits. top_k is retained for
# offline-KD compatibility/provenance checks.
top_k: 8
online_kd_token_chunk_size: 2048
# Conservative B200 profile. Effective batch = 4 * 2 = 8.
# If VRAM headroom is comfortable and Liger is installed, try 8 * 1.
micro_batch_size: 4
grad_accum_steps: 2
gradient_checkpointing: false
compile_model: false
fused_adamw: true
dataloader_workers: 8
prefetch_factor: 2
sequence_packing:
enabled: true
pack_length: 4096
mask_first_token_after_separator: true
hub:
# Prefer HF_TOKEN or huggingface-cli login for real runs.
token: null
username: "<REDACTED_ON_PURPOSE>"
repo_name: "<REDACTED_ON_PURPOSE>"
paths:
teacher_dir: "<REDACTED_ON_PURPOSE>"
student_dir: "<REDACTED_ON_PURPOSE>"
tokenizer_dir: "<REDACTED_ON_PURPOSE>"
tokenized_dir: "<REDACTED_ON_PURPOSE>"
logits_dir: "<REDACTED_ON_PURPOSE>"
distilled_dir: "<REDACTED_ON_PURPOSE>"
log_file: "<REDACTED_ON_PURPOSE>"
system_info: "<REDACTED_ON_PURPOSE>"
loss_csv: "<REDACTED_ON_PURPOSE>"