1414# ruff: noqa: F401
1515"""Common helpers for llama performance recipes."""
1616
17+ import torch
18+
1719from megatron .bridge .perf_recipes ._common import (
1820 _benchmark_common ,
1921 _enable_overlap_param_gather_with_optimizer_step ,
@@ -56,3 +58,189 @@ def _llama_benchmark_common(cfg: ConfigContainer) -> None:
5658 cfg .model .moe_token_dispatcher_type = "alltoall"
5759 if cuda_graph_impl == "none" and te_rng_disabled :
5860 cfg .rng .te_rng_tracker = cfg .model .use_te_rng_tracker = False
61+
62+
63+ def _llama31_8b_common (cfg : ConfigContainer ) -> None :
64+ """Set common configurations for all Llama3.1 8B configs."""
65+ cfg .optimizer .adam_beta2 = 0.95
66+ cfg .optimizer .adam_eps = 1e-05
67+ cfg .optimizer .bf16 = True
68+ cfg .optimizer .fp8_recipe = 'tensorwise'
69+ cfg .optimizer .overlap_param_gather = True
70+ cfg .optimizer .params_dtype = torch .bfloat16
71+ cfg .optimizer .use_distributed_optimizer = True
72+ cfg .optimizer .weight_decay = 0.1
73+ cfg .optimizer .bucket_size = 768000000
74+ cfg .ddp .data_parallel_sharding_strategy = 'optim_grads_params'
75+ cfg .ddp .delay_wgrad_compute = False
76+ cfg .ddp .overlap_grad_reduce = True
77+ cfg .ddp .overlap_param_gather = True
78+ cfg .ddp .use_distributed_optimizer = True
79+ cfg .ddp .bucket_size = 768000000
80+ cfg .ddp .grad_reduce_in_fp32 = False
81+ cfg .ddp .average_in_collective = False
82+ cfg .model .add_bias_linear = False
83+ cfg .model .apply_rope_fusion = True
84+ cfg .model .attention_dropout = 0.0
85+ cfg .model .gradient_accumulation_fusion = True
86+ cfg .model .hidden_dropout = 0.0
87+ cfg .model .hidden_size = 4096
88+ cfg .model .kv_channels = 128
89+ cfg .model .masked_softmax_fusion = True
90+ cfg .model .microbatch_group_size_per_vp_stage = 1
91+ cfg .model .normalization = 'RMSNorm'
92+ cfg .model .num_attention_heads = 32
93+ cfg .model .num_layers = 32
94+ cfg .model .num_layers_at_end_in_bf16 = 0
95+ cfg .model .num_layers_at_start_in_bf16 = 0
96+ cfg .model .num_query_groups = 8
97+ cfg .model .overlap_p2p_comm = True
98+ cfg .model .params_dtype = torch .bfloat16
99+ cfg .model .persist_layer_norm = True
100+ cfg .model .pipeline_dtype = torch .bfloat16
101+ cfg .model .recompute_modules = ['core_attn' ]
102+ cfg .model .tp_only_amax_red = True
103+ cfg .model .use_te_rng_tracker = True
104+ cfg .model .wgrad_deferral_limit = 50
105+ cfg .model .batch_p2p_comm = False
106+ cfg .model .fused_single_qkv_rope = True
107+ cfg .train .check_optimizer_step_success = False
108+ cfg .train .decrease_batch_size_if_needed = False
109+ cfg .train .empty_unused_memory_level = 0
110+ cfg .train .exit_signal_handler = False
111+ cfg .train .exit_signal_handler_for_dataloader = False
112+ cfg .train .exit_signal_handler_for_training = False
113+ cfg .train .iterations_to_skip = []
114+ cfg .train .manual_gc = True
115+ cfg .train .manual_gc_eval = False
116+ cfg .train .manual_gc_interval = 500
117+ cfg .train .skip_sync_grad_norm_across_mp = True
118+ cfg .scheduler .end_weight_decay = 0.1
119+ cfg .scheduler .lr_decay_style = 'cosine'
120+ cfg .scheduler .lr_warmup_init = 0.0
121+ cfg .scheduler .lr_warmup_samples = 0
122+ cfg .scheduler .lr_wsd_decay_style = 'exponential'
123+ cfg .scheduler .override_opt_param_scheduler = False
124+ cfg .scheduler .start_weight_decay = 0.1
125+ cfg .scheduler .use_checkpoint_opt_param_scheduler = False
126+ cfg .scheduler .weight_decay_incr_style = 'constant'
127+ cfg .dataset .add_extra_token_to_sequence = True
128+ cfg .dataset .allow_ambiguous_pad_tokens = False
129+ cfg .dataset .create_attention_mask = False
130+ cfg .dataset .data_parallel_size = 1
131+ cfg .dataset .data_sharding = True
132+ cfg .dataset .dataloader_type = 'single'
133+ cfg .dataset .defer_npy_index_mmap = True
134+ cfg .dataset .drop_last = True
135+ cfg .dataset .drop_last_partial_validation_sequence = True
136+ cfg .dataset .eod_mask_loss = False
137+ cfg .dataset .fast_cache_load = True
138+ cfg .dataset .hybrid_context_parallel = False
139+ cfg .dataset .inter_document_masking = False
140+ cfg .dataset .mid_level_dataset_surplus = 0.005
141+ cfg .dataset .mmap_bin_files = True
142+ cfg .dataset .mock = False
143+ cfg .dataset .num_dataset_builder_threads = 1
144+ cfg .dataset .num_workers = 8
145+ cfg .dataset .persistent_workers = True
146+ cfg .dataset .pin_memory = True
147+ cfg .dataset .reset_attention_mask = False
148+ cfg .dataset .reset_position_ids = False
149+ cfg .dataset .seq_length = 8192
150+ cfg .dataset .sequence_length = 8192
151+ cfg .dataset .sequence_parallel_size = 0
152+ cfg .checkpoint .also_save_hf_checkpoint = False
153+ cfg .checkpoint .async_ckpt_cpu_priority = 10
154+ cfg .checkpoint .async_ckpt_io_priority = 3
155+ cfg .checkpoint .async_ckpt_use_cpu_shm = False
156+ cfg .checkpoint .async_save = False
157+ cfg .checkpoint .async_strategy = 'mcore'
158+ cfg .checkpoint .async_write_results_mp_mode = 'fork'
159+ cfg .checkpoint .auto_detect_ckpt_format = False
160+ cfg .checkpoint .ckpt_assume_constant_structure = False
161+ cfg .checkpoint .ckpt_convert_update_legacy_dist_opt_format = False
162+ cfg .checkpoint .ckpt_format = 'torch_dist'
163+ cfg .checkpoint .ckpt_fully_parallel_load_exchange_algo = 'broadcast'
164+ cfg .checkpoint .ckpt_fully_parallel_load_process_group = 'dp'
165+ cfg .checkpoint .ckpt_fully_parallel_save_process_group = 'dp'
166+ cfg .checkpoint .ckpt_load_validate_sharding_integrity = True
167+ cfg .checkpoint .dist_ckpt_optim_fully_reshardable = False
168+ cfg .checkpoint .dist_ckpt_save_pre_mcore_014 = False
169+ cfg .checkpoint .dist_ckpt_strictness = 'log_all'
170+ cfg .checkpoint .dist_ckpt_workers = 1
171+ cfg .checkpoint .distrib_optim_fully_reshardable_mem_efficient = False
172+ cfg .checkpoint .exit_on_missing_checkpoint = False
173+ cfg .checkpoint .finetune = False
174+ cfg .checkpoint .fully_parallel_load = True
175+ cfg .checkpoint .fully_parallel_save = True
176+ cfg .checkpoint .hf_distributed_save = False
177+ cfg .checkpoint .hf_save_every_n_ranks = 1
178+ cfg .checkpoint .hf_trust_remote_code = False
179+ cfg .checkpoint .load_optim = False
180+ cfg .checkpoint .load_rng = False
181+ cfg .checkpoint .most_recent_k = - 1
182+ cfg .checkpoint .non_persistent_local_ckpt_algo = 'fully_parallel'
183+ cfg .checkpoint .replication = False
184+ cfg .checkpoint .replication_factor = 2
185+ cfg .checkpoint .save_optim = True
186+ cfg .checkpoint .save_rng = True
187+ cfg .checkpoint .save_tokenizer_assets = True
188+ cfg .checkpoint .storage_writers_per_rank = 1
189+ cfg .checkpoint .strict_fsdp_dtensor_load = False
190+ cfg .checkpoint .use_checkpoint_args = False
191+ cfg .checkpoint .use_mp_args_from_checkpoint_args = False
192+ cfg .checkpoint .use_persistent_ckpt_worker = True
193+ cfg .checkpoint .use_tokenizer_model_from_checkpoint_args = True
194+ cfg .checkpoint .verify_integrity = False
195+ cfg .logger .barrier_with_L1_time = True
196+ cfg .logger .filter_warnings = True
197+ cfg .logger .log_device_memory_used = False
198+ cfg .logger .log_energy = False
199+ cfg .logger .log_interval = 1
200+ cfg .logger .log_l2_norm_grad_to_tensorboard = False
201+ cfg .logger .log_loss_scale_to_tensorboard = True
202+ cfg .logger .log_max_attention_logit = False
203+ cfg .logger .log_memory_to_tensorboard = False
204+ cfg .logger .log_num_zeros_in_grad = False
205+ cfg .logger .log_params_norm = False
206+ cfg .logger .log_progress = False
207+ cfg .logger .log_runtime_to_tensorboard = False
208+ cfg .logger .log_throughput = False
209+ cfg .logger .log_throughput_to_tensorboard = False
210+ cfg .logger .log_timers_to_tensorboard = False
211+ cfg .logger .log_validation_ppl_to_tensorboard = False
212+ cfg .logger .log_world_size_to_tensorboard = False
213+ cfg .logger .logging_level = 20
214+ cfg .logger .mlflow_log_artifacts = True
215+ cfg .logger .moe_routing_trace_capture_hidden_states = False
216+ cfg .logger .moe_routing_trace_capture_logits = False
217+ cfg .logger .moe_routing_trace_dump_weights = False
218+ cfg .logger .runtime_time_unit = 'hours'
219+ cfg .logger .set_level_for_all_loggers = False
220+ cfg .logger .skip_train_metrics_log = False
221+ cfg .logger .tensorboard_log_interval = 1
222+ cfg .logger .tensorboard_queue_size = 1000
223+ cfg .logger .throughput_window_size = 100
224+ cfg .logger .timing_log_level = 0
225+ cfg .logger .timing_log_option = 'minmax'
226+ cfg .tokenizer .force_system_message = False
227+ cfg .tokenizer .hf_tokenizer_kwargs = {'use_fast' : True }
228+ cfg .tokenizer .make_vocab_size_divisible_by = 1
229+ cfg .tokenizer .null_tokenizer_pad_id = - 1
230+ cfg .tokenizer .pad_vocab_size = False
231+ cfg .tokenizer .rank = 0
232+ cfg .tokenizer .sp_tokenizer_kwargs = {}
233+ cfg .tokenizer .tensor_model_parallel_size = 1
234+ cfg .tokenizer .tiktoken_num_special_tokens = 1000
235+ cfg .tokenizer .tokenizer_hf_no_include_special_tokens = False
236+ cfg .tokenizer .tokenizer_hf_no_use_fast = False
237+ cfg .tokenizer .tokenizer_sentencepiece_ignore_extra_whitespaces = True
238+ cfg .tokenizer .tokenizer_sentencepiece_legacy = False
239+ cfg .tokenizer .tokenizer_type = "NullTokenizer"
240+ cfg .tokenizer .trust_remote_code = False
241+ cfg .tokenizer .vocab_extra_ids = 0
242+ cfg .rng .data_parallel_random_init : False
243+ cfg .rng .inference_rng_tracker = False
244+ cfg .rng .te_rng_tracker = True
245+ cfg .ddp .align_param_gather = False
246+ cfg .optimizer .overlap_param_gather_with_optimizer_step = False
0 commit comments