1.5 KiB
1.5 KiB
Regression Checks for Recent Fixes
This file records lightweight checks for the recent high-priority fixes.
1) Syntax checks
python -m py_compile dataset/lm_dataset.py trainer/train_pretrain.py trainer/train_full_sft.py trainer/train_lora.py trainer/train_distillation.py trainer/train_dpo.py trainer/train_grpo.py trainer/train_agent.py eval_llm.py
2) Dataset label/mask boundary check (no eos after truncation)
python - <<'PY'
from dataset.lm_dataset import SFTDataset, DPODataset
s = SFTDataset.__new__(SFTDataset)
s.bos_id = [11, 12]
s.eos_id = [13]
s.max_length = 10
raw_ids = [99, 11, 12, 21, 22] # truncated without eos
labels = s.generate_labels(raw_ids)
pad_len = s.max_length - len(raw_ids)
labels = labels + ([-100] * pad_len)
print("sft_pad_labels_ok", labels[5:] == [-100] * pad_len)
d = DPODataset.__new__(DPODataset)
d.bos_id = [11, 12]
d.eos_id = [13]
d.max_length = 10
mask = d.generate_loss_mask(raw_ids)
mask = mask + ([0] * pad_len)
print("dpo_pad_mask_ok", mask[5:] == [0] * pad_len)
PY
Expected output:
sft_pad_labels_ok True
dpo_pad_mask_ok True
3) Eval backend argument check
python eval_llm.py -h
Expected: help output includes --backend {auto,torch,hf}.
4) Manual inference smoke tests
HF backend:
python eval_llm.py --backend hf --load_from ./minimind-3 --max_new_tokens 64 --temperature 0.2 --top_p 0.8
Torch backend:
python eval_llm.py --backend torch --load_from model --weight full_sft --max_new_tokens 64 --temperature 0.2 --top_p 0.8