Views
No views yet
| Stage | Curriculum Phase | 4K Context | 28K Context | Optimizer | Inference Arch | LAMBADA Acc | GSM8K Acc | HumanEval pass@1 |
|---|---|---|---|---|---|---|---|---|
| Stable | 5 | YuLan-Mini-Phase5 | yulanmini | 53.85 | 3.41 | 12.26 | ||
| Stable | 10 | YuLan-Mini-Phase10 | yulanmini | 55.00 | 9.57 | 15.95 | ||
| Stable | 15 | YuLan-Mini-Phase15 | ✅ | yulanmini | 55.81 | 13.81 | 16.99 | |
| Stable | 20 | YuLan-Mini-Phase20 | ✅ | yulanmini | 55.81 | 21.39 | 20.79 | |
| Stable | 25 (1T tokens) | YuLan-Mini-Before-Annealing | ✅ | yulanmini | 55.67 | 29.94 | 34.06 | |
| Annealing | 26 | YuLan-Mini-4K | llama* | 64.72 | 66.65 | 61.60 | ||
| Annealing | 27 | YuLan-Mini | llama* | 65.67 | 68.46 | 64.00 |
config.jsonconfig.json file and cannot be modified through the Trainer's command-line arguments. Therefore, you need to update these parameters in the config.json file first, particularly:save_steps: The frequency of saving intermediate checkpoints.train_batch_size: The batch size per GPU (equivalent to per_device_train_batch_size in the Trainer). We used a batch size of 1008 (approximately 4M tokens) during the stable training stage. Maintaining this same batch size is equally important for training effectiveness.config.json file:1{
2 "best_metric": null,
3 "best_model_checkpoint": null,
4 "epoch": 0.0,
5 "eval_steps": 500,
6 "global_step": 0,
7 "is_hyper_param_search": false,
8 "is_local_process_zero": true,
9 "is_world_process_zero": true,
10 "log_history": [],
11 "logging_steps": 3,
12 "max_steps": 0,
13 "num_input_tokens_seen": 0,
14 "num_train_epochs": 0,
15 "save_steps": 250,
16 "stateful_callbacks": {
17 "TrainerControl": {
18 "args": {
19 "should_epoch_stop": false,
20 "should_evaluate": false,
21 "should_log": false,
22 "should_save": true,
23 "should_training_stop": true
24 },
25 "attributes": {}
26 }
27 },
28 "total_flos": 0,
29 "train_batch_size": 3,
30 "trial_name": null,
31 "trial_params": null
32}1{
2 "bf16": {
3 "enabled": "auto"
4 },
5 "zero_optimization": {
6 "stage": 2,
7 "allgather_partitions": true,
8 "allgather_bucket_size": 8e8,
9 "overlap_comm": true,
10 "reduce_scatter": true,
11 "reduce_bucket_size": 8e8,
12 "contiguous_gradients": true
13 },
14 "gradient_accumulation_steps": "auto",
15 "gradient_clipping": "auto",
16 "steps_per_print": 16,
17 "train_batch_size": "auto",
18 "train_micro_batch_size_per_gpu": "auto",
19 "wall_clock_breakdown": false,
20 "dump_state": true,
21 "optimizer": {
22 "type": "AdamW",
23 "params": {
24 "lr": "auto",
25 "betas": "auto",
26 "eps": "auto",
27 "weight_decay": "auto"
28 }
29 },
30 "checkpoint": {
31 "load_universal": true
32 }
33}trainer.train, include the resume_from_checkpoint argument to load the distributed optimizer state from the Universal Checkpoint and resume training.trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)@misc{hu2024yulanmini,
title={YuLan-Mini: An Open Data-efficient Language Model},
author={Yiwen Hu and Huatong Song and Jia Deng and Jiapeng Wang and Jie Chen and Kun Zhou and Yutao Zhu and Jinhao Jiang and Zican Dong and Wayne Xin Zhao and Ji-Rong Wen},
year={2024},
eprint={2412.17743},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2412.17743},
}