manojpreveen commited on
Commit
4f907f4
1 Parent(s): f796066

Create mpt-30b_v4.yaml

Browse files
Files changed (1) hide show
  1. mpt-30b_v4.yaml +113 -0
mpt-30b_v4.yaml ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ max_seq_len: 8192
2
+ global_seed: 17
3
+
4
+ # Run Name
5
+ run_name: mpt-30b-orca-4ep_flan3m # If left blank, will be read from env var $RUN_NAME
6
+
7
+ model:
8
+ name: hf_causal_lm
9
+ pretrained: true
10
+ pretrained_model_name_or_path: mosaicml/mpt-30b
11
+ init_device: mixed
12
+ config_overrides:
13
+ max_seq_len: ${max_seq_len}
14
+ attn_config:
15
+ attn_impl: triton
16
+ # Set this to `true` if using `train_loader.dataset.packing_ratio` below
17
+ attn_uses_sequence_id: false
18
+
19
+ # Tokenizer
20
+ tokenizer:
21
+ name: mosaicml/mpt-30b
22
+ kwargs:
23
+ model_max_length: ${max_seq_len}
24
+
25
+
26
+ # Dataloaders
27
+ train_loader:
28
+ name: finetuning
29
+ dataset:
30
+ hf_name: csv
31
+ hf_kwargs:
32
+ data_dir: ~/mpt/llm-foundry/data/orca_3m_gpt3.5
33
+ preprocessing_fn:
34
+ split: train
35
+ max_seq_len: ${max_seq_len}
36
+ allow_pad_trimming: false
37
+ decoder_only_format: true
38
+ # # Use `python llmfoundry/data/packing.py --yaml-path /path/to/this/yaml/ ...`
39
+ # # to profile this run's optimal packing_ratio as it depends on GPU count,
40
+ # # batch size, sequence length
41
+ packing_ratio: 19.0
42
+ shuffle: true
43
+ drop_last: true
44
+ num_workers: 8
45
+ pin_memory: false
46
+ prefetch_factor: 2
47
+ persistent_workers: true
48
+ timeout: 0
49
+
50
+ # Optimization
51
+ scheduler:
52
+ name: linear_decay_with_warmup # linear no warmup is HF default which dolly used
53
+ t_warmup: 200ba # add some warmup though, seems to help with MPT
54
+ alpha_f: 0
55
+
56
+ optimizer:
57
+ # Based on Dolly
58
+ name: decoupled_lionw
59
+ lr: 1.0e-6
60
+ betas:
61
+ - 0.9
62
+ - 0.999
63
+ eps: 1.0e-8
64
+ weight_decay: 0
65
+
66
+ algorithms:
67
+ gradient_clipping:
68
+ clipping_type: norm
69
+ clipping_threshold: 1.0
70
+
71
+ max_duration: 4ep # 2-3 epochs seems like the sweet spot
72
+ eval_interval: 1
73
+ # eval_subset_num_batches: -1
74
+ # eval_first: true
75
+ global_train_batch_size: 8 # somewhere in the 6-8 * numgpus range seems good
76
+
77
+ # System
78
+ seed: ${global_seed}
79
+ # device_eval_batch_size: 8
80
+ device_train_microbatch_size: 2
81
+ # device_train_microbatch_size: auto
82
+ precision: amp_bf16
83
+
84
+ # FSDP
85
+ fsdp_config:
86
+ sharding_strategy: FULL_SHARD
87
+ mixed_precision: PURE
88
+ activation_checkpointing: true
89
+ activation_checkpointing_reentrant: false
90
+ activation_cpu_offload: false
91
+ limit_all_gathers: true
92
+ verbose: false
93
+
94
+ # Logging
95
+ progress_bar: false
96
+ log_to_console: true
97
+ console_log_interval: 1ba
98
+
99
+ callbacks:
100
+ speed_monitor:
101
+ window_size: 10
102
+ lr_monitor: {}
103
+ memory_monitor: {}
104
+ runtime_estimator: {}
105
+
106
+ # loggers:
107
+ # wandb: {}
108
+
109
+ # Checkpoint to local filesystem or remote object store
110
+ save_interval: 1ep
111
+ save_num_checkpoints_to_keep: 4 # Important, this cleans up checkpoints saved to DISK
112
+ save_folder: ./{run_name}/checkpoints
113
+ # save_folder: s3://my-bucket/my-folder/{run_name}/checkpoints