diff --git a/.gitattributes b/.gitattributes index 13e2444b30a7ef1b58bd85aa40a9bf48054d2883..3303f4cb6ccc7bc1bdd1e420433e3bce4d78a838 100644 --- a/.gitattributes +++ b/.gitattributes @@ -91,3 +91,5 @@ ckpts/S2/4b/qwen3_5_2b/v13_2/v1-20260817-033406/checkpoint-1530/tokenizer.json f ckpts/S2/4b/qwen3_5_2b/v13_3/v0-20260817-190428/checkpoint-1530/tokenizer.json filter=lfs diff=lfs merge=lfs -text ckpts/S2/4b/qwen3_5_2b/v13_5/v0-20260821-172306/checkpoint-1530/tokenizer.json filter=lfs diff=lfs merge=lfs -text ckpts/S2/4b/qwen3_5_2b/v13_6/v0-20260820-192228/checkpoint-1400/tokenizer.json filter=lfs diff=lfs merge=lfs -text +ckpts/S2/4b/qwen3_5_2b/v14_1_mkl_layer3/v0-20261012-043050/checkpoint-1530/tokenizer.json filter=lfs diff=lfs merge=lfs -text +ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/config.json b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/config.json new file mode 100644 index 0000000000000000000000000000000000000000..ac88c3f910cd79235cee799e4e3771b6f4caa68a --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/config.json @@ -0,0 +1,21 @@ +{ + "deepstack_visual_indexes": [], + "depth": 24, + "hidden_act": "gelu_pytorch_tanh", + "hidden_size": 1024, + "in_channels": 3, + "initializer_range": 0.02, + "intermediate_size": 4096, + "model_type": "qwen3_5", + "num_heads": 16, + "num_position_embeddings": 2304, + "out_hidden_size": 2048, + "patch_size": 16, + "spatial_merge_size": 2, + "temporal_patch_size": 2, + "transformers_version": "5.5.4", + "vtc_compressor_type": "vtc_x2", + "vtc_compressor_variant": "baseline", + "vtc_feature_fusion_layers": [], + "vtc_temporal_attention_window": 2 +} diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/export_manifest.json b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/export_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..be78d1ba82c1b8c71eaf592c3e2a79856b9b9af8 --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/export_manifest.json @@ -0,0 +1,70 @@ +{ + "architecture": { + "compressor": "vtc_x2", + "decoder_bottleneck_size": 704, + "decoder_temporal_attention_window": 2, + "image_route": "duplicate_two_then_compress_one", + "placement": "post_final_layernorm_pre_projector", + "spatial_attention": true, + "temporal_attention": true, + "temporal_attention_window": 2, + "temporal_downsample": "conv1d_stride2", + "temporal_group_size": 2, + "temporal_position": "learned_local_two_slot", + "variant": "baseline", + "vtc_feature_fusion_layers": [] + }, + "downstream": { + "native_merger_mlp_discarded": true, + "native_merger_norm_retained_as_final_layernorm": true, + "preferred_model_type": "llava_qwen3_5vit_qwen3", + "projector": "standard_llava_ov_mlp_reinitialized_in_s1", + "reconstruction_decoder_discarded": true, + "train_frames": 64, + "video_mode": "vtc_compression", + "visual_units": 32 + }, + "export": { + "dropped": { + "merger_mlp": 4, + "non_visual": 355 + }, + "exported_keys": 293, + "final_layernorm_from": "student.model.visual.merger.norm", + "retained": { + "merger_norm_as_final_layernorm": 2 + } + }, + "freeze": { + "language_model": true, + "lm_head": true, + "native_merger": true, + "patch_embed": true, + "pos_embed": true, + "trainable": [ + "model.visual.blocks.*", + "vtc_compressor.*", + "reconstruction_decoder.*" + ] + }, + "loss": { + "image": "v12_4_llm_semantic_change_hidden_fusion_forward_kl", + "image_weight": 0.5, + "video": "vtc_compress_reconstruct_full_vocab_forward_kl", + "video_compressed_units": 16, + "video_direct_target": "teacher_vit_temporal_mean_llm", + "video_direct_weight": 0.0, + "video_input_mode": "repeat2", + "video_llm_relation": "full_token_cosine_matrix_mse", + "video_llm_relation_weight": 0.0, + "video_reconstructed_units": 32, + "video_teacher_frames": 32, + "video_weight": 0.5 + }, + "resolution": 384, + "schema": "visionencoder.v14_1_mkl", + "source_model": "/share/m2v_intern_v3/wangjunjie09/model_cache/huggingface/Qwen/Qwen3.5-2B", + "step": 5258, + "version": 1, + "vision_source_id": "qwen3_5_2b" +} diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/mp_rank_00_model_states.pt b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/mp_rank_00_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..2289e7510ac5c137d8ff4357da8c8974947dac2c --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/mp_rank_00_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ba66fc267c59f2212d6ec8c311047e8fde7d75f8ae92165998ac1c0392ac42a +size 4460548929 diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/trainer_state.json b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/trainer_state.json new file mode 100644 index 0000000000000000000000000000000000000000..1c6b515d9ee84ae9a44a666f88aa7483bcde258c --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/trainer_state.json @@ -0,0 +1,6 @@ +{ + "batch_in_epoch": 0, + "epoch": 1, + "global_step": 5258, + "max_steps": 5258 +} diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/v12_vision_model_states.pt b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/v12_vision_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..fac545625a6bbdbc8a36d3a7ae95aaa28aa09945 --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/v12_vision_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b7a2e8c5139162cc0dc5a37e51af74f7c0fc769fcbfca91590cfb24fbb2a650 +size 612522145 diff --git a/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/vtc_compressor_model_states.pt b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/vtc_compressor_model_states.pt new file mode 100644 index 0000000000000000000000000000000000000000..29e90d9ca1e76b8fea2c0a6b8d85733f5ef9ab3f --- /dev/null +++ b/ckpts/S0/qwen3_5_2b/v14_1_mkl_layer3/step005258/vtc_compressor_model_states.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bde1f903958ce742a72bf376007c4388c5387323f038a27d126a21c362c35a9 +size 33826053 diff --git a/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.jinja b/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.jinja new file mode 100644 index 0000000000000000000000000000000000000000..70adff8a08fb31e0636f618564838d4bf3c05286 --- /dev/null +++ b/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.jinja @@ -0,0 +1,61 @@ +{%- if tools %} + {{- '<|im_start|>system\n' }} + {%- if messages[0].role == 'system' %} + {{- messages[0].content + '\n\n' }} + {%- endif %} + {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within XML tags:\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n\n\nFor each function call, return a json object with function name and arguments within XML tags:\n\n{\"name\": , \"arguments\": }\n<|im_end|>\n" }} +{%- else %} + {%- if messages[0].role == 'system' %} + {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- for message in messages %} + {%- if message.content is string %} + {%- set content = message.content %} + {%- else %} + {%- set content = '' %} + {%- endif %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) %} + {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- if message.tool_calls %} + {%- for tool_call in message.tool_calls %} + {%- if (loop.first and content) or (not loop.first) %} + {{- '\n' }} + {%- endif %} + {%- if tool_call.function %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {{- '\n{"name": "' }} + {{- tool_call.name }} + {{- '", "arguments": ' }} + {%- if tool_call.arguments is string %} + {{- tool_call.arguments }} + {%- else %} + {{- tool_call.arguments | tojson }} + {%- endif %} + {{- '}\n' }} + {%- endfor %} + {%- endif %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- content }} + {{- '\n' }} + {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} +{%- endif %} \ No newline at end of file diff --git a/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.json b/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.json new file mode 100644 index 0000000000000000000000000000000000000000..68724c68b1612e9ab2e31f84e3279099ad656ff6 --- /dev/null +++ b/ckpts/S2/4b/qwen3_5_2b/baseline_tmerge_64f_20pct/v0-20261012-171609/checkpoint-1530/chat_template.json @@ -0,0 +1,3 @@ +{ + "chat_template": "{% for message in messages %}{{'<|im_start|>' + message['role'] + ' '}}{# Render all images first #}{% for content in message['content'] | selectattr('type', 'equalto', 'image') %}{{ '' }}{% endfor %}{# Render all video then #}{% for content in message['content'] | selectattr('type', 'equalto', 'video') %}{{ '