Upload AssemLM2 config.yaml
Browse files- config.yaml +135 -0
config.yaml
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# AssemLM 2.0 training configuration.
|
| 2 |
+
# The launch script supplies local model and dataset paths through environment variables.
|
| 3 |
+
|
| 4 |
+
run_id: assemlm_v2
|
| 5 |
+
run_root_dir: ./results
|
| 6 |
+
seed: 42
|
| 7 |
+
wandb_project: assemlm-v2
|
| 8 |
+
wandb_entity: null
|
| 9 |
+
wandb_group: train
|
| 10 |
+
|
| 11 |
+
datasets:
|
| 12 |
+
assemble_data:
|
| 13 |
+
dataset_py: hdf5datasets
|
| 14 |
+
eval_with_val: true
|
| 15 |
+
num_samples: 50
|
| 16 |
+
point_token_len: 256
|
| 17 |
+
label_pad_token_id: -100
|
| 18 |
+
per_device_batch_size: 3
|
| 19 |
+
num_workers: 4
|
| 20 |
+
# ``auto`` discovers every assemlm_*.hdf5 file below ASSEMLM_DATA_ROOT.
|
| 21 |
+
train_mix: auto
|
| 22 |
+
test_mix: auto
|
| 23 |
+
data_features: src_pc,tgt_pc,imgs,lang,asset,category,pre_pose
|
| 24 |
+
seed: 42
|
| 25 |
+
shuffle: true
|
| 26 |
+
drop_last: true
|
| 27 |
+
import_rotation: true
|
| 28 |
+
centering_mode: mean
|
| 29 |
+
point_token_len: 256
|
| 30 |
+
|
| 31 |
+
framework:
|
| 32 |
+
name: AssemLM2
|
| 33 |
+
framework_py: AssemLM2
|
| 34 |
+
pvlm_py: pvlm
|
| 35 |
+
vlm:
|
| 36 |
+
base_vlm: ${oc.env:ASSEMLM_VLM_PATH}
|
| 37 |
+
attn_implementation: eager
|
| 38 |
+
point_encoder:
|
| 39 |
+
type: vn_dgcnn_patch
|
| 40 |
+
vn_dgcnn_patch:
|
| 41 |
+
pc_feat_dim: 512
|
| 42 |
+
fusion_module: patch_transformer
|
| 43 |
+
pooling: mean
|
| 44 |
+
norm_type: rmsnorm
|
| 45 |
+
num_patches: 128
|
| 46 |
+
patch_size: 4
|
| 47 |
+
patch_method: fps_knn
|
| 48 |
+
normalize_frame: true
|
| 49 |
+
force_fp32: true
|
| 50 |
+
bridge:
|
| 51 |
+
enabled: true
|
| 52 |
+
hidden_dim: 1024
|
| 53 |
+
num_layers: 4
|
| 54 |
+
num_heads: 8
|
| 55 |
+
ffn_dim: 4096
|
| 56 |
+
dropout: 0.1
|
| 57 |
+
pos_embed_type: fourier
|
| 58 |
+
fourier_bands: 6
|
| 59 |
+
fourier_max_freq: 10.0
|
| 60 |
+
deepstack_enabled: true
|
| 61 |
+
deepstack_num_layers: 3
|
| 62 |
+
deepstack_layer_indexes: auto
|
| 63 |
+
deepstack_init_scale: 0.1
|
| 64 |
+
feature_layout: four_branch_equiv_invariant
|
| 65 |
+
position_normalize: joint_isotropic
|
| 66 |
+
scale_encoding_enabled: true
|
| 67 |
+
scale_injection: film
|
| 68 |
+
scale_feature_mode: part_radii_center_distance_joint_radius
|
| 69 |
+
scale_reference: 1.0
|
| 70 |
+
scale_log_clip: 10.0
|
| 71 |
+
attention_isolation: protect_invariant
|
| 72 |
+
point_projector:
|
| 73 |
+
projection_hidden_layer: 2
|
| 74 |
+
backbone_output_dim: 6
|
| 75 |
+
projection_hidden_dim: [1024, 2048]
|
| 76 |
+
project_output_dim: 2048
|
| 77 |
+
point_mrope:
|
| 78 |
+
enabled: true
|
| 79 |
+
grid_size: 64
|
| 80 |
+
normalize: joint_isotropic
|
| 81 |
+
base_mode: first_point
|
| 82 |
+
reflow_text_positions: true
|
| 83 |
+
point_attention:
|
| 84 |
+
bidirectional_enabled: true
|
| 85 |
+
bidirectional_scope: all_points
|
| 86 |
+
feature_isolation: protect_invariant
|
| 87 |
+
pose_regression:
|
| 88 |
+
enabled: true
|
| 89 |
+
query_mode: pose_query_token
|
| 90 |
+
query_token: <pose_query>
|
| 91 |
+
hidden_dim: 4096
|
| 92 |
+
num_blocks: 2
|
| 93 |
+
output_dim: 9
|
| 94 |
+
trans_loss_weight: 1.0
|
| 95 |
+
rot_loss_weight: 1.0
|
| 96 |
+
rot_loss_unit: radian
|
| 97 |
+
use_category_in_instruction: true
|
| 98 |
+
|
| 99 |
+
trainer:
|
| 100 |
+
max_train_steps: 10000000
|
| 101 |
+
num_warmup_steps: 50000
|
| 102 |
+
save_interval: 5000
|
| 103 |
+
save_start_step: 0
|
| 104 |
+
save_end_step: 500000
|
| 105 |
+
eval_interval: 1000
|
| 106 |
+
eval_start_step: 0
|
| 107 |
+
eval_end_step: 10000000
|
| 108 |
+
learning_rate:
|
| 109 |
+
base: 1.0e-5
|
| 110 |
+
pvlm_interface: 5.0e-6
|
| 111 |
+
lr_scheduler_type: cosine_with_min_lr
|
| 112 |
+
scheduler_specific_kwargs:
|
| 113 |
+
min_lr: 5.0e-7
|
| 114 |
+
freeze_modules: ""
|
| 115 |
+
max_grad_norm: 1.0
|
| 116 |
+
warmup_ratio: 0.1
|
| 117 |
+
weight_decay: 0.0
|
| 118 |
+
logging_frequency: 10
|
| 119 |
+
gradient_clipping: 1.0
|
| 120 |
+
gradient_accumulation_steps: 1
|
| 121 |
+
optimizer:
|
| 122 |
+
name: AdamW
|
| 123 |
+
betas: [0.9, 0.95]
|
| 124 |
+
eps: 1.0e-8
|
| 125 |
+
weight_decay: 1.0e-8
|
| 126 |
+
enable_gradient_checkpointing: true
|
| 127 |
+
enable_mixed_precision_training: true
|
| 128 |
+
vlm_max_length: 1800
|
| 129 |
+
vlm_padding: true
|
| 130 |
+
eval_seed: 42
|
| 131 |
+
reproducible_training: true
|
| 132 |
+
deterministic_training: true
|
| 133 |
+
pa_thresholds: 0.01,0.008,0.005
|
| 134 |
+
epoch_eval_enabled: true
|
| 135 |
+
epoch_checkpoint_enabled: true
|