Add files using upload-large-folder tool
Browse files- .gitattributes +10 -0
- code/elf_l_baseline/checkpoint_64248 +3 -0
- code/elf_l_baseline/config.yml +113 -0
- code/elf_l_repa_reg/checkpoint_64248 +3 -0
- code/elf_l_repa_reg/config.yml +136 -0
- gsm8k/elf_b_baseline/checkpoint_84528 +3 -0
- gsm8k/elf_b_baseline/config.yml +113 -0
- gsm8k/elf_b_repa_reg/checkpoint_56352 +3 -0
- gsm8k/elf_b_repa_reg/config.yml +136 -0
- gsm8k/elf_l_baseline/checkpoint_70440 +3 -0
- gsm8k/elf_l_baseline/config.yml +113 -0
- gsm8k/elf_l_repa_reg/checkpoint_56352 +3 -0
- gsm8k/elf_l_repa_reg/config.yml +136 -0
- math500/elf_l_baseline/checkpoint_55824 +3 -0
- math500/elf_l_baseline/config.yml +113 -0
- math500/elf_l_repa_reg/checkpoint_55824 +3 -0
- math500/elf_l_repa_reg/config.yml +136 -0
- math_initialization/elf_l_baseline/checkpoint_35220 +3 -0
- math_initialization/elf_l_baseline/config.yml +113 -0
- math_initialization/elf_l_repa_reg/checkpoint_35220 +3 -0
- math_initialization/elf_l_repa_reg/config.yml +136 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,13 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
code/elf_l_baseline/checkpoint_64248 filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
code/elf_l_repa_reg/checkpoint_64248 filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
gsm8k/elf_b_repa_reg/checkpoint_56352 filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
math_initialization/elf_l_repa_reg/checkpoint_35220 filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
math_initialization/elf_l_baseline/checkpoint_35220 filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
gsm8k/elf_l_repa_reg/checkpoint_56352 filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
gsm8k/elf_b_baseline/checkpoint_84528 filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
gsm8k/elf_l_baseline/checkpoint_70440 filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
math500/elf_l_repa_reg/checkpoint_55824 filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
math500/elf_l_baseline/checkpoint_55824 filter=lfs diff=lfs merge=lfs -text
|
code/elf_l_baseline/checkpoint_64248
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1d149a8b9f1e8fd020af1294cfad01cb6e4c4b4cec37ffee0a74f6b3e43d7aca
|
| 3 |
+
size 11432492343
|
code/elf_l_baseline/config.yml
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Code: ELF-L baseline
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: mbppplus_test
|
| 8 |
+
path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/mbppplus_test
|
| 9 |
+
num_samples: 378
|
| 10 |
+
- name: humanevalplus_test
|
| 11 |
+
path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/humanevalplus_test
|
| 12 |
+
num_samples: 164
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 512
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment; REPA stops after epoch 8 of 12
|
| 36 |
+
repa_enabled: false
|
| 37 |
+
|
| 38 |
+
# REG semantic token
|
| 39 |
+
reg_enabled: false
|
| 40 |
+
|
| 41 |
+
# Denoiser objective
|
| 42 |
+
denoiser_p_mean: -1.5
|
| 43 |
+
denoiser_p_std: 0.8
|
| 44 |
+
denoiser_noise_scale: 2.0
|
| 45 |
+
t_eps: 0.05
|
| 46 |
+
time_schedule: logit_normal
|
| 47 |
+
|
| 48 |
+
# Decoder objective
|
| 49 |
+
decoder_prob: 0.2
|
| 50 |
+
decoder_noise_scale: 1.0
|
| 51 |
+
decoder_p_mean: 0.8
|
| 52 |
+
decoder_p_std: 0.8
|
| 53 |
+
|
| 54 |
+
# Conditioning
|
| 55 |
+
label_drop_prob: 0.0
|
| 56 |
+
self_cond_prob: 0.5
|
| 57 |
+
self_cond_cfg_min: 0.5
|
| 58 |
+
self_cond_cfg_max: 5.0
|
| 59 |
+
|
| 60 |
+
# Optimizer and training endpoint
|
| 61 |
+
epochs: 12
|
| 62 |
+
global_batch_size: 512
|
| 63 |
+
batch_size: 16
|
| 64 |
+
blr: 0.001
|
| 65 |
+
lr: 0.002
|
| 66 |
+
lr_schedule: constant
|
| 67 |
+
min_lr: 0.0
|
| 68 |
+
weight_decay: 0.0
|
| 69 |
+
warmup_steps: -1
|
| 70 |
+
warmup_epochs: 0.5
|
| 71 |
+
optimizer: muon
|
| 72 |
+
group_by_length: false
|
| 73 |
+
|
| 74 |
+
# EMA weights
|
| 75 |
+
ema_decay1:
|
| 76 |
+
- 0.9999
|
| 77 |
+
- 0.999
|
| 78 |
+
ema_warmup_updates: 1000
|
| 79 |
+
|
| 80 |
+
# Precision and memory
|
| 81 |
+
use_bf16: true
|
| 82 |
+
use_compile: false
|
| 83 |
+
gradient_checkpointing: false
|
| 84 |
+
|
| 85 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 86 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 87 |
+
generation_batch_size: 20
|
| 88 |
+
num_samples: 378
|
| 89 |
+
conditional_eval_metric: evalplus
|
| 90 |
+
training_generation_ema: null
|
| 91 |
+
truncate_generation: false
|
| 92 |
+
online_eval: false
|
| 93 |
+
|
| 94 |
+
# Logging and checkpoint frequency (epochs)
|
| 95 |
+
log_freq: 100
|
| 96 |
+
save_freq: 0.5
|
| 97 |
+
eval_freq: 0.5
|
| 98 |
+
|
| 99 |
+
# Output and initialization
|
| 100 |
+
output_dir: outputs/code_elf_l_baseline
|
| 101 |
+
resume: null
|
| 102 |
+
resume_only_weights: null
|
| 103 |
+
resume_only_weights_ema: null
|
| 104 |
+
|
| 105 |
+
# Optional experiment tracking
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_project: elf-reg
|
| 108 |
+
wandb_entity: null
|
| 109 |
+
wandb_run_name: code_elf_l_baseline
|
| 110 |
+
|
| 111 |
+
# Random seed and data loading
|
| 112 |
+
seed: 42
|
| 113 |
+
num_workers: 8
|
code/elf_l_repa_reg/checkpoint_64248
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:14ae888e6ab0d6cb5f9eff3d975922d0eaf510fc7756465a3c253adb76eb2592
|
| 3 |
+
size 11646012184
|
code/elf_l_repa_reg/config.yml
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Code: ELF-L REPA+REG
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: mbppplus_test
|
| 8 |
+
path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/mbppplus_test
|
| 9 |
+
num_samples: 378
|
| 10 |
+
- name: humanevalplus_test
|
| 11 |
+
path: data/opencodeinstruct-python-qwen3-embedding-0.6b-input512-max1024-v1/humanevalplus_test
|
| 12 |
+
num_samples: 164
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 512
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment; REPA stops after epoch 8 of 12
|
| 36 |
+
repa_enabled: true
|
| 37 |
+
repa_depth: 8
|
| 38 |
+
repa_t_min: 0.0
|
| 39 |
+
repa_t_max: 1.0
|
| 40 |
+
repa_projector_dim: 2048
|
| 41 |
+
repa_projector_layers: 3
|
| 42 |
+
repa_projector_type: mlp
|
| 43 |
+
repa_strength: 0.5
|
| 44 |
+
repa_end_fraction: 0.6666666666666666
|
| 45 |
+
repa_align_decoder_rows: true
|
| 46 |
+
repa_loss_type: cos_sim
|
| 47 |
+
repa_teacher_model_name: Qwen/Qwen3-1.7B-Base
|
| 48 |
+
repa_teacher_layer: 20
|
| 49 |
+
repa_teacher_dim: 2048
|
| 50 |
+
repa_teacher_input_format: raw
|
| 51 |
+
repa_prompt_loss_weight: 0.0
|
| 52 |
+
repa_response_loss_weight: 1.0
|
| 53 |
+
repa_shift: 0
|
| 54 |
+
repa_reg_target_source: repa
|
| 55 |
+
|
| 56 |
+
# REG semantic token
|
| 57 |
+
reg_enabled: true
|
| 58 |
+
reg_projection_topology: shared_text
|
| 59 |
+
reg_loss_weight: 0.1
|
| 60 |
+
reg_teacher_layer: 24
|
| 61 |
+
reg_teacher_dim: 2048
|
| 62 |
+
reg_teacher_pooling: last
|
| 63 |
+
|
| 64 |
+
# Denoiser objective
|
| 65 |
+
denoiser_p_mean: -1.5
|
| 66 |
+
denoiser_p_std: 0.8
|
| 67 |
+
denoiser_noise_scale: 2.0
|
| 68 |
+
t_eps: 0.05
|
| 69 |
+
time_schedule: logit_normal
|
| 70 |
+
|
| 71 |
+
# Decoder objective
|
| 72 |
+
decoder_prob: 0.2
|
| 73 |
+
decoder_noise_scale: 1.0
|
| 74 |
+
decoder_p_mean: 0.8
|
| 75 |
+
decoder_p_std: 0.8
|
| 76 |
+
|
| 77 |
+
# Conditioning
|
| 78 |
+
label_drop_prob: 0.0
|
| 79 |
+
self_cond_prob: 0.5
|
| 80 |
+
self_cond_cfg_min: 0.5
|
| 81 |
+
self_cond_cfg_max: 5.0
|
| 82 |
+
|
| 83 |
+
# Optimizer and training endpoint
|
| 84 |
+
epochs: 12
|
| 85 |
+
global_batch_size: 512
|
| 86 |
+
batch_size: 16
|
| 87 |
+
blr: 0.001
|
| 88 |
+
lr: 0.002
|
| 89 |
+
lr_schedule: constant
|
| 90 |
+
min_lr: 0.0
|
| 91 |
+
weight_decay: 0.0
|
| 92 |
+
warmup_steps: -1
|
| 93 |
+
warmup_epochs: 0.5
|
| 94 |
+
optimizer: muon
|
| 95 |
+
group_by_length: false
|
| 96 |
+
|
| 97 |
+
# EMA weights
|
| 98 |
+
ema_decay1:
|
| 99 |
+
- 0.9999
|
| 100 |
+
- 0.999
|
| 101 |
+
ema_warmup_updates: 1000
|
| 102 |
+
|
| 103 |
+
# Precision and memory
|
| 104 |
+
use_bf16: true
|
| 105 |
+
use_compile: false
|
| 106 |
+
gradient_checkpointing: false
|
| 107 |
+
|
| 108 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 109 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 110 |
+
generation_batch_size: 20
|
| 111 |
+
num_samples: 378
|
| 112 |
+
conditional_eval_metric: evalplus
|
| 113 |
+
training_generation_ema: null
|
| 114 |
+
truncate_generation: false
|
| 115 |
+
online_eval: false
|
| 116 |
+
|
| 117 |
+
# Logging and checkpoint frequency (epochs)
|
| 118 |
+
log_freq: 100
|
| 119 |
+
save_freq: 0.5
|
| 120 |
+
eval_freq: 0.5
|
| 121 |
+
|
| 122 |
+
# Output and initialization
|
| 123 |
+
output_dir: outputs/code_elf_l_repa_reg
|
| 124 |
+
resume: null
|
| 125 |
+
resume_only_weights: null
|
| 126 |
+
resume_only_weights_ema: null
|
| 127 |
+
|
| 128 |
+
# Optional experiment tracking
|
| 129 |
+
use_wandb: false
|
| 130 |
+
wandb_project: elf-reg
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: code_elf_l_repa_reg
|
| 133 |
+
|
| 134 |
+
# Random seed and data loading
|
| 135 |
+
seed: 42
|
| 136 |
+
num_workers: 8
|
gsm8k/elf_b_baseline/checkpoint_84528
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5c60024034fdd18801ad829f14e07a4e485f73bec2b91bb910a971576d68c5b0
|
| 3 |
+
size 3752304931
|
gsm8k/elf_b_baseline/config.yml
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-B baseline
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-B
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: false
|
| 37 |
+
|
| 38 |
+
# REG semantic token
|
| 39 |
+
reg_enabled: false
|
| 40 |
+
|
| 41 |
+
# Denoiser objective
|
| 42 |
+
denoiser_p_mean: -1.5
|
| 43 |
+
denoiser_p_std: 0.8
|
| 44 |
+
denoiser_noise_scale: 2.0
|
| 45 |
+
t_eps: 0.05
|
| 46 |
+
time_schedule: logit_normal
|
| 47 |
+
|
| 48 |
+
# Decoder objective
|
| 49 |
+
decoder_prob: 0.2
|
| 50 |
+
decoder_noise_scale: 1.0
|
| 51 |
+
decoder_p_mean: 0.8
|
| 52 |
+
decoder_p_std: 0.8
|
| 53 |
+
|
| 54 |
+
# Conditioning
|
| 55 |
+
label_drop_prob: 0.0
|
| 56 |
+
self_cond_prob: 0.5
|
| 57 |
+
self_cond_cfg_min: 0.5
|
| 58 |
+
self_cond_cfg_max: 5.0
|
| 59 |
+
|
| 60 |
+
# Optimizer and training endpoint
|
| 61 |
+
epochs: 18
|
| 62 |
+
global_batch_size: 512
|
| 63 |
+
batch_size: 32
|
| 64 |
+
blr: 0.001
|
| 65 |
+
lr: 0.002
|
| 66 |
+
lr_schedule: constant
|
| 67 |
+
min_lr: 0.0
|
| 68 |
+
weight_decay: 0.0
|
| 69 |
+
warmup_steps: -1
|
| 70 |
+
warmup_epochs: 0.5
|
| 71 |
+
optimizer: muon
|
| 72 |
+
group_by_length: false
|
| 73 |
+
|
| 74 |
+
# EMA weights
|
| 75 |
+
ema_decay1:
|
| 76 |
+
- 0.9999
|
| 77 |
+
- 0.999
|
| 78 |
+
ema_warmup_updates: 1000
|
| 79 |
+
|
| 80 |
+
# Precision and memory
|
| 81 |
+
use_bf16: true
|
| 82 |
+
use_compile: false
|
| 83 |
+
gradient_checkpointing: false
|
| 84 |
+
|
| 85 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 86 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 87 |
+
generation_batch_size: 50
|
| 88 |
+
num_samples: 1024
|
| 89 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 90 |
+
training_generation_ema: null
|
| 91 |
+
truncate_generation: true
|
| 92 |
+
online_eval: true
|
| 93 |
+
|
| 94 |
+
# Logging and checkpoint frequency (epochs)
|
| 95 |
+
log_freq: 100
|
| 96 |
+
save_freq: 1
|
| 97 |
+
eval_freq: 1
|
| 98 |
+
|
| 99 |
+
# Output and initialization
|
| 100 |
+
output_dir: outputs/gsm8k_elf_b_baseline
|
| 101 |
+
resume: null
|
| 102 |
+
resume_only_weights: null
|
| 103 |
+
resume_only_weights_ema: null
|
| 104 |
+
|
| 105 |
+
# Optional experiment tracking
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_project: elf-reg
|
| 108 |
+
wandb_entity: null
|
| 109 |
+
wandb_run_name: gsm8k_elf_b_baseline
|
| 110 |
+
|
| 111 |
+
# Random seed and data loading
|
| 112 |
+
seed: 42
|
| 113 |
+
num_workers: 8
|
gsm8k/elf_b_repa_reg/checkpoint_56352
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2722a1c302a3a566f25385b540d0f7ecb1929fb532166d5f1c003edb7151d237
|
| 3 |
+
size 3955993519
|
gsm8k/elf_b_repa_reg/config.yml
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-B REPA+REG
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-B
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: true
|
| 37 |
+
repa_depth: 4
|
| 38 |
+
repa_t_min: 0.0
|
| 39 |
+
repa_t_max: 1.0
|
| 40 |
+
repa_projector_dim: 2048
|
| 41 |
+
repa_projector_layers: 3
|
| 42 |
+
repa_projector_type: mlp
|
| 43 |
+
repa_strength: 0.5
|
| 44 |
+
repa_end_fraction: 1.0
|
| 45 |
+
repa_align_decoder_rows: true
|
| 46 |
+
repa_loss_type: cos_sim
|
| 47 |
+
repa_teacher_model_name: Qwen/Qwen3-1.7B-Base
|
| 48 |
+
repa_teacher_layer: 20
|
| 49 |
+
repa_teacher_dim: 2048
|
| 50 |
+
repa_teacher_input_format: raw
|
| 51 |
+
repa_prompt_loss_weight: 0.0
|
| 52 |
+
repa_response_loss_weight: 1.0
|
| 53 |
+
repa_shift: 0
|
| 54 |
+
repa_reg_target_source: repa
|
| 55 |
+
|
| 56 |
+
# REG semantic token
|
| 57 |
+
reg_enabled: true
|
| 58 |
+
reg_projection_topology: shared_text
|
| 59 |
+
reg_loss_weight: 0.1
|
| 60 |
+
reg_teacher_layer: 24
|
| 61 |
+
reg_teacher_dim: 2048
|
| 62 |
+
reg_teacher_pooling: last
|
| 63 |
+
|
| 64 |
+
# Denoiser objective
|
| 65 |
+
denoiser_p_mean: -1.5
|
| 66 |
+
denoiser_p_std: 0.8
|
| 67 |
+
denoiser_noise_scale: 2.0
|
| 68 |
+
t_eps: 0.05
|
| 69 |
+
time_schedule: logit_normal
|
| 70 |
+
|
| 71 |
+
# Decoder objective
|
| 72 |
+
decoder_prob: 0.2
|
| 73 |
+
decoder_noise_scale: 1.0
|
| 74 |
+
decoder_p_mean: 0.8
|
| 75 |
+
decoder_p_std: 0.8
|
| 76 |
+
|
| 77 |
+
# Conditioning
|
| 78 |
+
label_drop_prob: 0.0
|
| 79 |
+
self_cond_prob: 0.5
|
| 80 |
+
self_cond_cfg_min: 0.5
|
| 81 |
+
self_cond_cfg_max: 5.0
|
| 82 |
+
|
| 83 |
+
# Optimizer and training endpoint
|
| 84 |
+
epochs: 12
|
| 85 |
+
global_batch_size: 512
|
| 86 |
+
batch_size: 32
|
| 87 |
+
blr: 0.001
|
| 88 |
+
lr: 0.002
|
| 89 |
+
lr_schedule: constant
|
| 90 |
+
min_lr: 0.0
|
| 91 |
+
weight_decay: 0.0
|
| 92 |
+
warmup_steps: -1
|
| 93 |
+
warmup_epochs: 0.5
|
| 94 |
+
optimizer: muon
|
| 95 |
+
group_by_length: false
|
| 96 |
+
|
| 97 |
+
# EMA weights
|
| 98 |
+
ema_decay1:
|
| 99 |
+
- 0.9999
|
| 100 |
+
- 0.999
|
| 101 |
+
ema_warmup_updates: 1000
|
| 102 |
+
|
| 103 |
+
# Precision and memory
|
| 104 |
+
use_bf16: true
|
| 105 |
+
use_compile: false
|
| 106 |
+
gradient_checkpointing: false
|
| 107 |
+
|
| 108 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 109 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 110 |
+
generation_batch_size: 50
|
| 111 |
+
num_samples: 1024
|
| 112 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 113 |
+
training_generation_ema: null
|
| 114 |
+
truncate_generation: true
|
| 115 |
+
online_eval: true
|
| 116 |
+
|
| 117 |
+
# Logging and checkpoint frequency (epochs)
|
| 118 |
+
log_freq: 100
|
| 119 |
+
save_freq: 1
|
| 120 |
+
eval_freq: 1
|
| 121 |
+
|
| 122 |
+
# Output and initialization
|
| 123 |
+
output_dir: outputs/gsm8k_elf_b_repa_reg
|
| 124 |
+
resume: null
|
| 125 |
+
resume_only_weights: null
|
| 126 |
+
resume_only_weights_ema: null
|
| 127 |
+
|
| 128 |
+
# Optional experiment tracking
|
| 129 |
+
use_wandb: false
|
| 130 |
+
wandb_project: elf-reg
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: gsm8k_elf_b_repa_reg
|
| 133 |
+
|
| 134 |
+
# Random seed and data loading
|
| 135 |
+
seed: 42
|
| 136 |
+
num_workers: 8
|
gsm8k/elf_l_baseline/checkpoint_70440
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f62f9d2e0f7624fbd3db058c66a6a0a7890f90ed3c05a605dd1f3cdccb2a98f4
|
| 3 |
+
size 11432492983
|
gsm8k/elf_l_baseline/config.yml
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-L baseline
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: false
|
| 37 |
+
|
| 38 |
+
# REG semantic token
|
| 39 |
+
reg_enabled: false
|
| 40 |
+
|
| 41 |
+
# Denoiser objective
|
| 42 |
+
denoiser_p_mean: -1.5
|
| 43 |
+
denoiser_p_std: 0.8
|
| 44 |
+
denoiser_noise_scale: 2.0
|
| 45 |
+
t_eps: 0.05
|
| 46 |
+
time_schedule: logit_normal
|
| 47 |
+
|
| 48 |
+
# Decoder objective
|
| 49 |
+
decoder_prob: 0.2
|
| 50 |
+
decoder_noise_scale: 1.0
|
| 51 |
+
decoder_p_mean: 0.8
|
| 52 |
+
decoder_p_std: 0.8
|
| 53 |
+
|
| 54 |
+
# Conditioning
|
| 55 |
+
label_drop_prob: 0.0
|
| 56 |
+
self_cond_prob: 0.5
|
| 57 |
+
self_cond_cfg_min: 0.5
|
| 58 |
+
self_cond_cfg_max: 5.0
|
| 59 |
+
|
| 60 |
+
# Optimizer and training endpoint
|
| 61 |
+
epochs: 15
|
| 62 |
+
global_batch_size: 512
|
| 63 |
+
batch_size: 16
|
| 64 |
+
blr: 0.001
|
| 65 |
+
lr: 0.002
|
| 66 |
+
lr_schedule: constant
|
| 67 |
+
min_lr: 0.0
|
| 68 |
+
weight_decay: 0.0
|
| 69 |
+
warmup_steps: -1
|
| 70 |
+
warmup_epochs: 0.5
|
| 71 |
+
optimizer: muon
|
| 72 |
+
group_by_length: false
|
| 73 |
+
|
| 74 |
+
# EMA weights
|
| 75 |
+
ema_decay1:
|
| 76 |
+
- 0.9999
|
| 77 |
+
- 0.999
|
| 78 |
+
ema_warmup_updates: 1000
|
| 79 |
+
|
| 80 |
+
# Precision and memory
|
| 81 |
+
use_bf16: true
|
| 82 |
+
use_compile: false
|
| 83 |
+
gradient_checkpointing: false
|
| 84 |
+
|
| 85 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 86 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 87 |
+
generation_batch_size: 20
|
| 88 |
+
num_samples: 1024
|
| 89 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 90 |
+
training_generation_ema: null
|
| 91 |
+
truncate_generation: true
|
| 92 |
+
online_eval: true
|
| 93 |
+
|
| 94 |
+
# Logging and checkpoint frequency (epochs)
|
| 95 |
+
log_freq: 100
|
| 96 |
+
save_freq: 0.5
|
| 97 |
+
eval_freq: 0.5
|
| 98 |
+
|
| 99 |
+
# Output and initialization
|
| 100 |
+
output_dir: outputs/gsm8k_elf_l_baseline
|
| 101 |
+
resume: null
|
| 102 |
+
resume_only_weights: null
|
| 103 |
+
resume_only_weights_ema: null
|
| 104 |
+
|
| 105 |
+
# Optional experiment tracking
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_project: elf-reg
|
| 108 |
+
wandb_entity: null
|
| 109 |
+
wandb_run_name: gsm8k_elf_l_baseline
|
| 110 |
+
|
| 111 |
+
# Random seed and data loading
|
| 112 |
+
seed: 42
|
| 113 |
+
num_workers: 8
|
gsm8k/elf_l_repa_reg/checkpoint_56352
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0767a177e9c486b3d8dc359e4842e79a5a4e1109f208e5bfa52976b228c2121b
|
| 3 |
+
size 11646012184
|
gsm8k/elf_l_repa_reg/config.yml
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-L REPA+REG
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: true
|
| 37 |
+
repa_depth: 8
|
| 38 |
+
repa_t_min: 0.0
|
| 39 |
+
repa_t_max: 1.0
|
| 40 |
+
repa_projector_dim: 2048
|
| 41 |
+
repa_projector_layers: 3
|
| 42 |
+
repa_projector_type: mlp
|
| 43 |
+
repa_strength: 0.5
|
| 44 |
+
repa_end_fraction: 1.0
|
| 45 |
+
repa_align_decoder_rows: true
|
| 46 |
+
repa_loss_type: cos_sim
|
| 47 |
+
repa_teacher_model_name: Qwen/Qwen3-1.7B-Base
|
| 48 |
+
repa_teacher_layer: 20
|
| 49 |
+
repa_teacher_dim: 2048
|
| 50 |
+
repa_teacher_input_format: raw
|
| 51 |
+
repa_prompt_loss_weight: 0.0
|
| 52 |
+
repa_response_loss_weight: 1.0
|
| 53 |
+
repa_shift: 0
|
| 54 |
+
repa_reg_target_source: repa
|
| 55 |
+
|
| 56 |
+
# REG semantic token
|
| 57 |
+
reg_enabled: true
|
| 58 |
+
reg_projection_topology: shared_text
|
| 59 |
+
reg_loss_weight: 0.1
|
| 60 |
+
reg_teacher_layer: 24
|
| 61 |
+
reg_teacher_dim: 2048
|
| 62 |
+
reg_teacher_pooling: last
|
| 63 |
+
|
| 64 |
+
# Denoiser objective
|
| 65 |
+
denoiser_p_mean: -1.5
|
| 66 |
+
denoiser_p_std: 0.8
|
| 67 |
+
denoiser_noise_scale: 2.0
|
| 68 |
+
t_eps: 0.05
|
| 69 |
+
time_schedule: logit_normal
|
| 70 |
+
|
| 71 |
+
# Decoder objective
|
| 72 |
+
decoder_prob: 0.2
|
| 73 |
+
decoder_noise_scale: 1.0
|
| 74 |
+
decoder_p_mean: 0.8
|
| 75 |
+
decoder_p_std: 0.8
|
| 76 |
+
|
| 77 |
+
# Conditioning
|
| 78 |
+
label_drop_prob: 0.0
|
| 79 |
+
self_cond_prob: 0.5
|
| 80 |
+
self_cond_cfg_min: 0.5
|
| 81 |
+
self_cond_cfg_max: 5.0
|
| 82 |
+
|
| 83 |
+
# Optimizer and training endpoint
|
| 84 |
+
epochs: 12
|
| 85 |
+
global_batch_size: 512
|
| 86 |
+
batch_size: 16
|
| 87 |
+
blr: 0.001
|
| 88 |
+
lr: 0.002
|
| 89 |
+
lr_schedule: constant
|
| 90 |
+
min_lr: 0.0
|
| 91 |
+
weight_decay: 0.0
|
| 92 |
+
warmup_steps: -1
|
| 93 |
+
warmup_epochs: 0.5
|
| 94 |
+
optimizer: muon
|
| 95 |
+
group_by_length: false
|
| 96 |
+
|
| 97 |
+
# EMA weights
|
| 98 |
+
ema_decay1:
|
| 99 |
+
- 0.9999
|
| 100 |
+
- 0.999
|
| 101 |
+
ema_warmup_updates: 1000
|
| 102 |
+
|
| 103 |
+
# Precision and memory
|
| 104 |
+
use_bf16: true
|
| 105 |
+
use_compile: false
|
| 106 |
+
gradient_checkpointing: false
|
| 107 |
+
|
| 108 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 109 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 110 |
+
generation_batch_size: 20
|
| 111 |
+
num_samples: 1024
|
| 112 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 113 |
+
training_generation_ema: null
|
| 114 |
+
truncate_generation: true
|
| 115 |
+
online_eval: true
|
| 116 |
+
|
| 117 |
+
# Logging and checkpoint frequency (epochs)
|
| 118 |
+
log_freq: 100
|
| 119 |
+
save_freq: 0.5
|
| 120 |
+
eval_freq: 0.5
|
| 121 |
+
|
| 122 |
+
# Output and initialization
|
| 123 |
+
output_dir: outputs/gsm8k_elf_l_repa_reg
|
| 124 |
+
resume: null
|
| 125 |
+
resume_only_weights: null
|
| 126 |
+
resume_only_weights_ema: null
|
| 127 |
+
|
| 128 |
+
# Optional experiment tracking
|
| 129 |
+
use_wandb: false
|
| 130 |
+
wandb_project: elf-reg
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: gsm8k_elf_l_repa_reg
|
| 133 |
+
|
| 134 |
+
# Random seed and data loading
|
| 135 |
+
seed: 42
|
| 136 |
+
num_workers: 8
|
math500/elf_l_baseline/checkpoint_55824
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a60189530e7998fa04e417b49b55841b3b475881bec95b760a67647a498b5699
|
| 3 |
+
size 11432492343
|
math500/elf_l_baseline/config.yml
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# MATH-500: ELF-L baseline
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: math500_test
|
| 11 |
+
path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/math500_test
|
| 12 |
+
num_samples: 500
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: false
|
| 37 |
+
|
| 38 |
+
# REG semantic token
|
| 39 |
+
reg_enabled: false
|
| 40 |
+
|
| 41 |
+
# Denoiser objective
|
| 42 |
+
denoiser_p_mean: -1.5
|
| 43 |
+
denoiser_p_std: 0.8
|
| 44 |
+
denoiser_noise_scale: 2.0
|
| 45 |
+
t_eps: 0.05
|
| 46 |
+
time_schedule: logit_normal
|
| 47 |
+
|
| 48 |
+
# Decoder objective
|
| 49 |
+
decoder_prob: 0.2
|
| 50 |
+
decoder_noise_scale: 1.0
|
| 51 |
+
decoder_p_mean: 0.8
|
| 52 |
+
decoder_p_std: 0.8
|
| 53 |
+
|
| 54 |
+
# Conditioning
|
| 55 |
+
label_drop_prob: 0.0
|
| 56 |
+
self_cond_prob: 0.5
|
| 57 |
+
self_cond_cfg_min: 0.5
|
| 58 |
+
self_cond_cfg_max: 5.0
|
| 59 |
+
|
| 60 |
+
# Optimizer and training endpoint
|
| 61 |
+
epochs: 8
|
| 62 |
+
global_batch_size: 512
|
| 63 |
+
batch_size: 16
|
| 64 |
+
blr: 0.001
|
| 65 |
+
lr: 0.002
|
| 66 |
+
lr_schedule: constant
|
| 67 |
+
min_lr: 0.0
|
| 68 |
+
weight_decay: 0.0
|
| 69 |
+
warmup_steps: -1
|
| 70 |
+
warmup_epochs: 0.25
|
| 71 |
+
optimizer: muon
|
| 72 |
+
group_by_length: false
|
| 73 |
+
|
| 74 |
+
# EMA weights
|
| 75 |
+
ema_decay1:
|
| 76 |
+
- 0.9999
|
| 77 |
+
- 0.999
|
| 78 |
+
ema_warmup_updates: 0
|
| 79 |
+
|
| 80 |
+
# Precision and memory
|
| 81 |
+
use_bf16: true
|
| 82 |
+
use_compile: false
|
| 83 |
+
gradient_checkpointing: false
|
| 84 |
+
|
| 85 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 86 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 87 |
+
generation_batch_size: 20
|
| 88 |
+
num_samples: 1024
|
| 89 |
+
conditional_eval_metric: math_accuracy
|
| 90 |
+
training_generation_ema: 0.999,0.9999
|
| 91 |
+
truncate_generation: false
|
| 92 |
+
online_eval: true
|
| 93 |
+
|
| 94 |
+
# Logging and checkpoint frequency (epochs)
|
| 95 |
+
log_freq: 100
|
| 96 |
+
save_freq: 0.5
|
| 97 |
+
eval_freq: 0.5
|
| 98 |
+
|
| 99 |
+
# Output and initialization; initialize from GSM8K epoch 7.5, EMA 0.999
|
| 100 |
+
output_dir: outputs/math500_elf_l_baseline
|
| 101 |
+
resume: null
|
| 102 |
+
resume_only_weights: checkpoints/math_initialization/elf_l_baseline/checkpoint_35220
|
| 103 |
+
resume_only_weights_ema: 0.999
|
| 104 |
+
|
| 105 |
+
# Optional experiment tracking
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_project: elf-reg
|
| 108 |
+
wandb_entity: null
|
| 109 |
+
wandb_run_name: math500_elf_l_baseline
|
| 110 |
+
|
| 111 |
+
# Random seed and data loading
|
| 112 |
+
seed: 42
|
| 113 |
+
num_workers: 8
|
math500/elf_l_repa_reg/checkpoint_55824
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b72ce9be7b59738e8f47826eb5c82b5b1c3ea849d7ab30f401661e221e2e02a3
|
| 3 |
+
size 11646012184
|
math500/elf_l_repa_reg/config.yml
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# MATH-500: ELF-L REPA+REG
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: math500_test
|
| 11 |
+
path: data/openmath-math-qwen3-embedding-0.6b-input256-max1024-5M-v1/math500_test
|
| 12 |
+
num_samples: 500
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: true
|
| 37 |
+
repa_depth: 8
|
| 38 |
+
repa_t_min: 0.0
|
| 39 |
+
repa_t_max: 1.0
|
| 40 |
+
repa_projector_dim: 2048
|
| 41 |
+
repa_projector_layers: 3
|
| 42 |
+
repa_projector_type: mlp
|
| 43 |
+
repa_strength: 0.5
|
| 44 |
+
repa_end_fraction: 1.0
|
| 45 |
+
repa_align_decoder_rows: true
|
| 46 |
+
repa_loss_type: cos_sim
|
| 47 |
+
repa_teacher_model_name: Qwen/Qwen3-1.7B-Base
|
| 48 |
+
repa_teacher_layer: 20
|
| 49 |
+
repa_teacher_dim: 2048
|
| 50 |
+
repa_teacher_input_format: raw
|
| 51 |
+
repa_prompt_loss_weight: 0.0
|
| 52 |
+
repa_response_loss_weight: 1.0
|
| 53 |
+
repa_shift: 0
|
| 54 |
+
repa_reg_target_source: repa
|
| 55 |
+
|
| 56 |
+
# REG semantic token
|
| 57 |
+
reg_enabled: true
|
| 58 |
+
reg_projection_topology: shared_text
|
| 59 |
+
reg_loss_weight: 0.1
|
| 60 |
+
reg_teacher_layer: 24
|
| 61 |
+
reg_teacher_dim: 2048
|
| 62 |
+
reg_teacher_pooling: last
|
| 63 |
+
|
| 64 |
+
# Denoiser objective
|
| 65 |
+
denoiser_p_mean: -1.5
|
| 66 |
+
denoiser_p_std: 0.8
|
| 67 |
+
denoiser_noise_scale: 2.0
|
| 68 |
+
t_eps: 0.05
|
| 69 |
+
time_schedule: logit_normal
|
| 70 |
+
|
| 71 |
+
# Decoder objective
|
| 72 |
+
decoder_prob: 0.2
|
| 73 |
+
decoder_noise_scale: 1.0
|
| 74 |
+
decoder_p_mean: 0.8
|
| 75 |
+
decoder_p_std: 0.8
|
| 76 |
+
|
| 77 |
+
# Conditioning
|
| 78 |
+
label_drop_prob: 0.0
|
| 79 |
+
self_cond_prob: 0.5
|
| 80 |
+
self_cond_cfg_min: 0.5
|
| 81 |
+
self_cond_cfg_max: 5.0
|
| 82 |
+
|
| 83 |
+
# Optimizer and training endpoint
|
| 84 |
+
epochs: 8
|
| 85 |
+
global_batch_size: 512
|
| 86 |
+
batch_size: 16
|
| 87 |
+
blr: 0.001
|
| 88 |
+
lr: 0.002
|
| 89 |
+
lr_schedule: constant
|
| 90 |
+
min_lr: 0.0
|
| 91 |
+
weight_decay: 0.0
|
| 92 |
+
warmup_steps: -1
|
| 93 |
+
warmup_epochs: 0.25
|
| 94 |
+
optimizer: muon
|
| 95 |
+
group_by_length: false
|
| 96 |
+
|
| 97 |
+
# EMA weights
|
| 98 |
+
ema_decay1:
|
| 99 |
+
- 0.9999
|
| 100 |
+
- 0.999
|
| 101 |
+
ema_warmup_updates: 0
|
| 102 |
+
|
| 103 |
+
# Precision and memory
|
| 104 |
+
use_bf16: true
|
| 105 |
+
use_compile: false
|
| 106 |
+
gradient_checkpointing: false
|
| 107 |
+
|
| 108 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 109 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 110 |
+
generation_batch_size: 20
|
| 111 |
+
num_samples: 1024
|
| 112 |
+
conditional_eval_metric: math_accuracy
|
| 113 |
+
training_generation_ema: 0.999,0.9999
|
| 114 |
+
truncate_generation: false
|
| 115 |
+
online_eval: true
|
| 116 |
+
|
| 117 |
+
# Logging and checkpoint frequency (epochs)
|
| 118 |
+
log_freq: 100
|
| 119 |
+
save_freq: 0.5
|
| 120 |
+
eval_freq: 0.5
|
| 121 |
+
|
| 122 |
+
# Output and initialization; initialize from GSM8K epoch 7.5, EMA 0.999
|
| 123 |
+
output_dir: outputs/math500_elf_l_repa_reg
|
| 124 |
+
resume: null
|
| 125 |
+
resume_only_weights: checkpoints/math_initialization/elf_l_repa_reg/checkpoint_35220
|
| 126 |
+
resume_only_weights_ema: 0.999
|
| 127 |
+
|
| 128 |
+
# Optional experiment tracking
|
| 129 |
+
use_wandb: false
|
| 130 |
+
wandb_project: elf-reg
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: math500_elf_l_repa_reg
|
| 133 |
+
|
| 134 |
+
# Random seed and data loading
|
| 135 |
+
seed: 42
|
| 136 |
+
num_workers: 8
|
math_initialization/elf_l_baseline/checkpoint_35220
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d5785621263f8bb0154192174cd8d4532429831eeede71c73cd0679e90d4dc4c
|
| 3 |
+
size 11432492343
|
math_initialization/elf_l_baseline/config.yml
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-L baseline
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: false
|
| 37 |
+
|
| 38 |
+
# REG semantic token
|
| 39 |
+
reg_enabled: false
|
| 40 |
+
|
| 41 |
+
# Denoiser objective
|
| 42 |
+
denoiser_p_mean: -1.5
|
| 43 |
+
denoiser_p_std: 0.8
|
| 44 |
+
denoiser_noise_scale: 2.0
|
| 45 |
+
t_eps: 0.05
|
| 46 |
+
time_schedule: logit_normal
|
| 47 |
+
|
| 48 |
+
# Decoder objective
|
| 49 |
+
decoder_prob: 0.2
|
| 50 |
+
decoder_noise_scale: 1.0
|
| 51 |
+
decoder_p_mean: 0.8
|
| 52 |
+
decoder_p_std: 0.8
|
| 53 |
+
|
| 54 |
+
# Conditioning
|
| 55 |
+
label_drop_prob: 0.0
|
| 56 |
+
self_cond_prob: 0.5
|
| 57 |
+
self_cond_cfg_min: 0.5
|
| 58 |
+
self_cond_cfg_max: 5.0
|
| 59 |
+
|
| 60 |
+
# Optimizer and training endpoint
|
| 61 |
+
epochs: 15
|
| 62 |
+
global_batch_size: 512
|
| 63 |
+
batch_size: 16
|
| 64 |
+
blr: 0.001
|
| 65 |
+
lr: 0.002
|
| 66 |
+
lr_schedule: constant
|
| 67 |
+
min_lr: 0.0
|
| 68 |
+
weight_decay: 0.0
|
| 69 |
+
warmup_steps: -1
|
| 70 |
+
warmup_epochs: 0.5
|
| 71 |
+
optimizer: muon
|
| 72 |
+
group_by_length: false
|
| 73 |
+
|
| 74 |
+
# EMA weights
|
| 75 |
+
ema_decay1:
|
| 76 |
+
- 0.9999
|
| 77 |
+
- 0.999
|
| 78 |
+
ema_warmup_updates: 1000
|
| 79 |
+
|
| 80 |
+
# Precision and memory
|
| 81 |
+
use_bf16: true
|
| 82 |
+
use_compile: false
|
| 83 |
+
gradient_checkpointing: false
|
| 84 |
+
|
| 85 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 86 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 87 |
+
generation_batch_size: 20
|
| 88 |
+
num_samples: 1024
|
| 89 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 90 |
+
training_generation_ema: null
|
| 91 |
+
truncate_generation: true
|
| 92 |
+
online_eval: true
|
| 93 |
+
|
| 94 |
+
# Logging and checkpoint frequency (epochs)
|
| 95 |
+
log_freq: 100
|
| 96 |
+
save_freq: 0.5
|
| 97 |
+
eval_freq: 0.5
|
| 98 |
+
|
| 99 |
+
# Output and initialization
|
| 100 |
+
output_dir: outputs/gsm8k_elf_l_baseline
|
| 101 |
+
resume: null
|
| 102 |
+
resume_only_weights: null
|
| 103 |
+
resume_only_weights_ema: null
|
| 104 |
+
|
| 105 |
+
# Optional experiment tracking
|
| 106 |
+
use_wandb: false
|
| 107 |
+
wandb_project: elf-reg
|
| 108 |
+
wandb_entity: null
|
| 109 |
+
wandb_run_name: gsm8k_elf_l_baseline
|
| 110 |
+
|
| 111 |
+
# Random seed and data loading
|
| 112 |
+
seed: 42
|
| 113 |
+
num_workers: 8
|
math_initialization/elf_l_repa_reg/checkpoint_35220
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e11d5dd66aae10f0c0124d622e2d9d2ca981fc10f07f70145d88bfb8293e8c6e
|
| 3 |
+
size 11646012184
|
math_initialization/elf_l_repa_reg/config.yml
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# GSM8K: ELF-L REPA+REG
|
| 2 |
+
# Run commands from the repository root.
|
| 3 |
+
|
| 4 |
+
# Dataset and sequence lengths
|
| 5 |
+
data_path: data/gsm-math-qwen3-embedding-0.6b-v1/train
|
| 6 |
+
eval_data_path:
|
| 7 |
+
- name: validation_1024
|
| 8 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/validation_1024
|
| 9 |
+
num_samples: 1024
|
| 10 |
+
- name: gsm8k_test
|
| 11 |
+
path: data/gsm-math-qwen3-embedding-0.6b-v1/gsm8k_test
|
| 12 |
+
num_samples: 1319
|
| 13 |
+
max_length: 1024
|
| 14 |
+
max_input_length: 256
|
| 15 |
+
pad_token: eos
|
| 16 |
+
use_model_attention_mask: false
|
| 17 |
+
|
| 18 |
+
# Tokenizer and frozen encoder
|
| 19 |
+
tokenizer_name: Qwen/Qwen3-Embedding-0.6B
|
| 20 |
+
encoder_model_name: Qwen/Qwen3-0.6B-Base
|
| 21 |
+
encoder_dim: 1024
|
| 22 |
+
encoder_layer: 20
|
| 23 |
+
latent_mean: 0.0
|
| 24 |
+
latent_std: 1.0
|
| 25 |
+
|
| 26 |
+
# ELF architecture
|
| 27 |
+
model: ELF-L
|
| 28 |
+
bottleneck_dim: 128
|
| 29 |
+
num_time_tokens: 4
|
| 30 |
+
num_self_cond_cfg_tokens: 4
|
| 31 |
+
num_model_mode_tokens: 4
|
| 32 |
+
attn_dropout: 0.0
|
| 33 |
+
proj_dropout: 0.0
|
| 34 |
+
|
| 35 |
+
# REPA auxiliary alignment
|
| 36 |
+
repa_enabled: true
|
| 37 |
+
repa_depth: 8
|
| 38 |
+
repa_t_min: 0.0
|
| 39 |
+
repa_t_max: 1.0
|
| 40 |
+
repa_projector_dim: 2048
|
| 41 |
+
repa_projector_layers: 3
|
| 42 |
+
repa_projector_type: mlp
|
| 43 |
+
repa_strength: 0.5
|
| 44 |
+
repa_end_fraction: 1.0
|
| 45 |
+
repa_align_decoder_rows: true
|
| 46 |
+
repa_loss_type: cos_sim
|
| 47 |
+
repa_teacher_model_name: Qwen/Qwen3-1.7B-Base
|
| 48 |
+
repa_teacher_layer: 20
|
| 49 |
+
repa_teacher_dim: 2048
|
| 50 |
+
repa_teacher_input_format: raw
|
| 51 |
+
repa_prompt_loss_weight: 0.0
|
| 52 |
+
repa_response_loss_weight: 1.0
|
| 53 |
+
repa_shift: 0
|
| 54 |
+
repa_reg_target_source: repa
|
| 55 |
+
|
| 56 |
+
# REG semantic token
|
| 57 |
+
reg_enabled: true
|
| 58 |
+
reg_projection_topology: shared_text
|
| 59 |
+
reg_loss_weight: 0.1
|
| 60 |
+
reg_teacher_layer: 24
|
| 61 |
+
reg_teacher_dim: 2048
|
| 62 |
+
reg_teacher_pooling: last
|
| 63 |
+
|
| 64 |
+
# Denoiser objective
|
| 65 |
+
denoiser_p_mean: -1.5
|
| 66 |
+
denoiser_p_std: 0.8
|
| 67 |
+
denoiser_noise_scale: 2.0
|
| 68 |
+
t_eps: 0.05
|
| 69 |
+
time_schedule: logit_normal
|
| 70 |
+
|
| 71 |
+
# Decoder objective
|
| 72 |
+
decoder_prob: 0.2
|
| 73 |
+
decoder_noise_scale: 1.0
|
| 74 |
+
decoder_p_mean: 0.8
|
| 75 |
+
decoder_p_std: 0.8
|
| 76 |
+
|
| 77 |
+
# Conditioning
|
| 78 |
+
label_drop_prob: 0.0
|
| 79 |
+
self_cond_prob: 0.5
|
| 80 |
+
self_cond_cfg_min: 0.5
|
| 81 |
+
self_cond_cfg_max: 5.0
|
| 82 |
+
|
| 83 |
+
# Optimizer and training endpoint
|
| 84 |
+
epochs: 12
|
| 85 |
+
global_batch_size: 512
|
| 86 |
+
batch_size: 16
|
| 87 |
+
blr: 0.001
|
| 88 |
+
lr: 0.002
|
| 89 |
+
lr_schedule: constant
|
| 90 |
+
min_lr: 0.0
|
| 91 |
+
weight_decay: 0.0
|
| 92 |
+
warmup_steps: -1
|
| 93 |
+
warmup_epochs: 0.5
|
| 94 |
+
optimizer: muon
|
| 95 |
+
group_by_length: false
|
| 96 |
+
|
| 97 |
+
# EMA weights
|
| 98 |
+
ema_decay1:
|
| 99 |
+
- 0.9999
|
| 100 |
+
- 0.999
|
| 101 |
+
ema_warmup_updates: 1000
|
| 102 |
+
|
| 103 |
+
# Precision and memory
|
| 104 |
+
use_bf16: true
|
| 105 |
+
use_compile: false
|
| 106 |
+
gradient_checkpointing: false
|
| 107 |
+
|
| 108 |
+
# Training-time evaluation (headline evaluation uses the separate scripts)
|
| 109 |
+
sampling_configs_path: configs/sampling/training.yml
|
| 110 |
+
generation_batch_size: 20
|
| 111 |
+
num_samples: 1024
|
| 112 |
+
conditional_eval_metric: gsm8k_accuracy
|
| 113 |
+
training_generation_ema: null
|
| 114 |
+
truncate_generation: true
|
| 115 |
+
online_eval: true
|
| 116 |
+
|
| 117 |
+
# Logging and checkpoint frequency (epochs)
|
| 118 |
+
log_freq: 100
|
| 119 |
+
save_freq: 0.5
|
| 120 |
+
eval_freq: 0.5
|
| 121 |
+
|
| 122 |
+
# Output and initialization
|
| 123 |
+
output_dir: outputs/gsm8k_elf_l_repa_reg
|
| 124 |
+
resume: null
|
| 125 |
+
resume_only_weights: null
|
| 126 |
+
resume_only_weights_ema: null
|
| 127 |
+
|
| 128 |
+
# Optional experiment tracking
|
| 129 |
+
use_wandb: false
|
| 130 |
+
wandb_project: elf-reg
|
| 131 |
+
wandb_entity: null
|
| 132 |
+
wandb_run_name: gsm8k_elf_l_repa_reg
|
| 133 |
+
|
| 134 |
+
# Random seed and data loading
|
| 135 |
+
seed: 42
|
| 136 |
+
num_workers: 8
|