Skip to content

Commit f4494f4

Browse files
authored
Merge branch 'flagos-ai:main' into main
2 parents 5d801b8 + bcf923d commit f4494f4

67 files changed

Lines changed: 6933 additions & 107 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/unit_tests_common.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ jobs:
165165
--pip-deps typer \
166166
--retry-count 3
167167
168+
# TODO: temp solution to install newly added deps, remove once the new image is built
169+
pip install qwen_vl_utils==0.0.14 diffusers==0.36.0 websocket-client==1.8.0 websocket==0.2.1 websockets==15.0.1 msgpack==1.1.0
170+
168171
# Copy test data (keep existing logic)
169172
mkdir -p /opt/data
170173
cp -r /home/gitlab-runner/data/Megatron-LM/* /opt/data/ || true

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ exclude: |
55
flagscale/models/megatron/.*|
66
tools/checkpoint/loader.*\.py|
77
tools/checkpoint/saver.*\.py|
8+
tools/checkpoint/qwen3_engram/modeling_hf/.*|
89
examples/aquila/tokenizer*|
910
)$
1011
repos:
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
system:
2+
no_shared_fs: ${experiment.runner.no_shared_fs}
3+
num_workers: 2
4+
tensor_model_parallel_size: 1
5+
pipeline_model_parallel_size: 1
6+
expert_model_parallel_size: 1
7+
context_parallel_size: 1
8+
sequence_parallel: true
9+
use_distributed_optimizer: true
10+
overlap_grad_reduce: true
11+
overlap_param_gather: true
12+
precision:
13+
bf16: true
14+
attention_softmax_in_fp32: true
15+
accumulate_allreduce_grads_in_fp32: true
16+
logging:
17+
log_interval: 1
18+
tensorboard_log_interval: 1
19+
wandb_project: ${experiment.exp_name}
20+
wandb_exp_name: ${experiment.exp_name}
21+
log_timers_to_tensorboard: true
22+
log_validation_ppl_to_tensorboard: true
23+
log_throughput: true
24+
log_params_norm: true
25+
log_num_zeros_in_grad: true
26+
log_memory_to_tensorboard: true
27+
checkpoint:
28+
save_interval: ${experiment.save_steps}
29+
load: ${experiment.load}
30+
ckpt_format: ${experiment.ckpt_format}
31+
32+
model:
33+
transformer_impl: transformer_engine
34+
num_layers: 36
35+
hidden_size: 2560
36+
ffn_hidden_size: 9728
37+
num_attention_heads: 32
38+
kv_channels: 128
39+
group_query_attention: true
40+
num_query_groups: 8
41+
seq_length: 4096
42+
max_position_embeddings: 32768
43+
norm_epsilon: 1e-6
44+
use_rotary_position_embeddings: true
45+
rotary_base: 10000
46+
swiglu: true
47+
normalization: RMSNorm
48+
qk_layernorm: true
49+
init_method_std: 0.02
50+
attention_dropout: 0.0
51+
hidden_dropout: 0.0
52+
untie_embeddings_and_output_weights: true
53+
position_embedding_type: rope
54+
no_rope_fusion: true
55+
56+
# hf: attention_bias: true
57+
disable_bias_linear: true
58+
add_qkv_bias: false
59+
60+
# engram args =================
61+
use_engram: true
62+
engram_tokenizer_name_or_path: xxx
63+
engram_vocab_size: [759680, 759680]
64+
max_ngram_size: 3
65+
n_embed_per_ngram: 512
66+
n_head_per_ngram: 8
67+
engram_layer_ids: [2]
68+
engram_pad_id: 2
69+
engram_seed: 0
70+
engram_kernel_size: 4
71+
engram_hc_mult: 1
72+
# hf: engram_lr_multiplier: 5.0 miss
73+
74+
75+
# training
76+
seed: ${experiment.seed}
77+
finetune: false
78+
# to be update
79+
micro_batch_size: 1
80+
# hf: gbs: 1024
81+
global_batch_size: 128
82+
# hf: max_steps: 24000
83+
train_iters: 102400
84+
eval_iters: 0
85+
86+
87+
optimizer:
88+
clip_grad: 1.0
89+
weight_decay: 0.1
90+
adam_beta1: 0.9
91+
adam_beta2: 0.95
92+
lr_scheduler:
93+
lr: 3.0e-4
94+
min_lr: 3.0e-4
95+
# lr_warmup_fraction: 0.01
96+
lr_warmup_iters: 240
97+
lr_decay_style: WSD
98+
lr_wsd_decay_style: cosine
99+
lr_wsd_decay_iters: 10
100+
101+
data:
102+
reset_position_ids: True
103+
reset_attention_mask: True
104+
data_path: xxx
105+
split: 1
106+
no_mmap_bin_files: true
107+
tokenizer:
108+
legacy_tokenizer: true
109+
tokenizer_type: Qwen2TokenizerFS
110+
tokenizer_path: xxx
111+
vocab_size: 151936
112+
make_vocab_size_divisible_by: 64
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
defaults:
2+
- _self_
3+
- train: engram
4+
5+
experiment:
6+
exp_name: Qwen3-Engram
7+
seed: 42
8+
save_steps: 50
9+
load: None
10+
exp_dir: xxx
11+
ckpt_format: torch
12+
task:
13+
type: train
14+
backend: megatron
15+
entrypoint: flagscale/train/megatron/train_engram.py
16+
runner:
17+
per_node_task: false
18+
no_shared_fs: false
19+
rdzv_backend: static
20+
hostfile: xxx
21+
ssh_port: xxx
22+
cmds:
23+
before_start: ulimit -n 1048576 && source /root/miniconda3/bin/activate flagscale-train
24+
envs:
25+
LOGLEVEL: "INFO"
26+
CUDA_VISIBLE_DEVICES: "0,1,2,3,4,5,6,7"
27+
CUDA_DEVICE_MAX_CONNECTIONS: 1
28+
29+
action: run
30+
31+
hydra:
32+
run:
33+
dir: ${experiment.exp_dir}/hydra

0 commit comments

Comments
 (0)