From cd8f4ebcdb9a8b28eb7f139f8e6729b2262da141 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Sun, 10 May 2026 22:25:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: xiaolesu/OsmosisProofling-SFT-NT-GRPO-NT-V2 Source: Original Platform --- .gitattributes | 36 +++++++++ README.md | 179 +++++++++++++++++++++++++++++++++++++++++ chat_template.jinja | 93 +++++++++++++++++++++ config.json | 69 ++++++++++++++++ generation_config.json | 12 +++ model.safetensors | 3 + tokenizer.json | 3 + tokenizer_config.json | 29 +++++++ 8 files changed, 424 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 generation_config.json create mode 100644 model.safetensors create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..52373fe --- /dev/null +++ b/.gitattributes @@ -0,0 +1,36 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.model filter=lfs diff=lfs merge=lfs -text +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.safetensors filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..66dff90 --- /dev/null +++ b/README.md @@ -0,0 +1,179 @@ +--- +library_name: transformers +license: apache-2.0 +base_model: Qwen/Qwen3-8B +tags: +- generated_from_trainer +datasets: +- xiaolesu/OsmosisProofling-SFT +model-index: +- name: outputs/OsmosisProofling-SFT/ + results: [] +--- + + + +[Built with Axolotl](https://github.com/axolotl-ai-cloud/axolotl) +
See axolotl config + +axolotl version: `0.16.0.dev0` +```yaml +base_model: Qwen/Qwen3-8B + +load_in_8bit: false +load_in_4bit: false +strict: false + +plugins: + - axolotl.integrations.liger.LigerPlugin + +liger_rope: true +liger_rms_norm: true +liger_glu_activation: true +liger_layer_norm: true +liger_fused_linear_cross_entropy: true + +chat_template: qwen3 + +chat_template_kwargs: + enable_thinking: false + +datasets: + - path: xiaolesu/OsmosisProofling-SFT + type: alpaca + split: train + +test_datasets: + - path: xiaolesu/OsmosisProofling-SFT + type: alpaca + split: validation + +output_dir: ./outputs/OsmosisProofling-SFT/ + +sequence_len: 4096 +sample_packing: true +flex_attention: true + +flex_attn_compile_kwargs: + dynamic: false + mode: max-autotune-no-cudagraphs + +wandb_project: OsmosisProofling-SFT +wandb_entity: +wandb_watch: +wandb_name: OsmosisProofling-SFT-Run1 +wandb_log_model: + +gradient_accumulation_steps: 1 +micro_batch_size: 2 +num_epochs: 2 +optimizer: adamw_torch_fused +lr_scheduler: cosine +learning_rate: 1e-5 + +bf16: true +tf32: true + +resume_from_checkpoint: +logging_steps: 5 + +evals_per_epoch: 10 +saves_per_epoch: 10 +save_total_limit: 3 + +warmup_ratio: 0.1 +weight_decay: 0.0 +fsdp: + - full_shard + - auto_wrap + +fsdp_config: + fsdp_version: 2 + fsdp_offload_params: false + fsdp_cpu_ram_efficient_loading: true + fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP + fsdp_transformer_layer_cls_to_wrap: Qwen3DecoderLayer + fsdp_state_dict_type: FULL_STATE_DICT + fsdp_sharding_strategy: FULL_SHARD + fsdp_reshard_after_forward: true + fsdp_activation_checkpointing: true + +special_tokens: + +``` + +

+ +# outputs/OsmosisProofling-SFT/ + +This model is a fine-tuned version of [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B) on the xiaolesu/OsmosisProofling-SFT dataset. +It achieves the following results on the evaluation set: +- Loss: 0.3543 +- Ppl: 1.4252 +- Memory/max Active (gib): 20.98 +- Memory/max Allocated (gib): 20.98 +- Memory/device Reserved (gib): 36.0 + +## Model description + +More information needed + +## Intended uses & limitations + +More information needed + +## Training and evaluation data + +More information needed + +## Training procedure + +### Training hyperparameters + +The following hyperparameters were used during training: +- learning_rate: 1e-05 +- train_batch_size: 2 +- eval_batch_size: 2 +- seed: 42 +- distributed_type: multi-GPU +- num_devices: 7 +- total_train_batch_size: 14 +- total_eval_batch_size: 14 +- optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments +- lr_scheduler_type: cosine +- lr_scheduler_warmup_steps: 21 +- training_steps: 212 + +### Training results + +| Training Loss | Epoch | Step | Validation Loss | Ppl | Active (gib) | Allocated (gib) | Reserved (gib) | +|:-------------:|:------:|:----:|:---------------:|:------:|:------------:|:---------------:|:--------------:| +| No log | 0 | 0 | 1.3417 | 3.8257 | 16.56 | 16.56 | 20.27 | +| 1.2425 | 0.1048 | 11 | 0.9643 | 2.6231 | 20.98 | 20.98 | 36.1 | +| 0.7372 | 0.2095 | 22 | 0.5572 | 1.7458 | 20.98 | 20.98 | 36.0 | +| 0.5042 | 0.3143 | 33 | 0.4529 | 1.5728 | 20.98 | 20.98 | 36.0 | +| 0.4350 | 0.4190 | 44 | 0.4158 | 1.5155 | 20.98 | 20.98 | 36.0 | +| 0.3719 | 0.5238 | 55 | 0.3908 | 1.4782 | 20.98 | 20.98 | 36.0 | +| 0.3934 | 0.6286 | 66 | 0.3780 | 1.4594 | 20.98 | 20.98 | 36.0 | +| 0.3594 | 0.7333 | 77 | 0.3696 | 1.4471 | 20.98 | 20.98 | 36.0 | +| 0.3513 | 0.8381 | 88 | 0.3645 | 1.4398 | 20.98 | 20.98 | 36.0 | +| 0.3499 | 0.9429 | 99 | 0.3616 | 1.4356 | 20.98 | 20.98 | 36.0 | +| 0.3517 | 1.0476 | 110 | 0.3583 | 1.4309 | 20.98 | 20.98 | 36.0 | +| 0.3422 | 1.1524 | 121 | 0.3567 | 1.4286 | 20.98 | 20.98 | 36.0 | +| 0.3219 | 1.2571 | 132 | 0.3557 | 1.4272 | 20.98 | 20.98 | 36.0 | +| 0.3098 | 1.3619 | 143 | 0.3552 | 1.4264 | 20.98 | 20.98 | 36.0 | +| 0.3068 | 1.4667 | 154 | 0.3546 | 1.4257 | 20.98 | 20.98 | 36.0 | +| 0.3168 | 1.5714 | 165 | 0.3545 | 1.4254 | 20.98 | 20.98 | 36.0 | +| 0.3198 | 1.6762 | 176 | 0.3546 | 1.4256 | 20.98 | 20.98 | 36.0 | +| 0.3207 | 1.7810 | 187 | 0.3544 | 1.4253 | 20.98 | 20.98 | 36.0 | +| 0.3232 | 1.8857 | 198 | 0.3541 | 1.4249 | 20.98 | 20.98 | 36.0 | +| 0.3441 | 1.9905 | 209 | 0.3543 | 1.4252 | 20.98 | 20.98 | 36.0 | + + +### Framework versions + +- Transformers 5.3.0 +- Pytorch 2.9.1+cu128 +- Datasets 4.5.0 +- Tokenizers 0.22.2 diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..77ea906 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,93 @@ +{%- 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 %} +{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} +{#- Determine the real last index: use provided value or default to messages length - 1 #} +{%- if real_last_index is defined and real_last_index is not none %} + {%- set ns.real_last_index = real_last_index %} +{%- else %} + {%- set ns.real_last_index = messages|length - 1 %} +{%- endif %} +{%- for message in messages[::-1] %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- if ns.multi_step_tool and message.role == "user" and not(message.content.startswith('') and message.content.endswith('')) %} + {%- set ns.multi_step_tool = false %} + {%- set ns.last_query_index = index %} + {%- endif %} +{%- endfor %} +{%- for message in messages %} + {%- if (message.role == "user") or (message.role == "system" and not loop.first) %} + {{- '<|im_start|>' + message.role + '\n' + message.content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {%- set content = message.content %} + {%- set reasoning_content = '' %} + {%- if message.reasoning_content is defined and message.reasoning_content is not none %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in message.content %} + {%- set content = message.content.split('')[-1].lstrip('\n') %} + {%- set reasoning_content = message.content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- if loop.index0 > ns.last_query_index %} + {%- if loop.index0 == ns.real_last_index or (loop.index0 != ns.real_last_index and reasoning_content) %} + {{- '<|im_start|>' + message.role + '\n\n' + reasoning_content.strip('\n') + '\n\n\n' + content.lstrip('\n') }} + {%- else %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- endif %} + {%- else %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- endif %} + {%- 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' }} + {{- message.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' }} + {%- if enable_thinking is defined and enable_thinking is false %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n\n' }} + {%- endif %} +{%- endif %} diff --git a/config.json b/config.json new file mode 100644 index 0000000..cfb6abd --- /dev/null +++ b/config.json @@ -0,0 +1,69 @@ +{ + "architectures": [ + "Qwen3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": null, + "dtype": "bfloat16", + "eos_token_id": 151645, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 4096, + "initializer_range": 0.02, + "intermediate_size": 12288, + "layer_types": [ + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 40960, + "max_window_layers": 36, + "model_type": "qwen3", + "num_attention_heads": 32, + "num_hidden_layers": 36, + "num_key_value_heads": 8, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_theta": 1000000, + "rope_scaling": null, + "sliding_window": null, + "tie_word_embeddings": false, + "transformers_version": "5.3.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..9bda08a --- /dev/null +++ b/generation_config.json @@ -0,0 +1,12 @@ +{ + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "temperature": 0.6, + "top_k": 20, + "top_p": 0.95, + "transformers_version": "5.3.0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..7714f8c --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b340bab70abc2bf26fc22f4ea53c5cc1229468b1de76009d311412048cfb2a7 +size 16381517208 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..c7afbed --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506 +size 11422650 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..2c0f7b3 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,29 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "extra_special_tokens": { + "<|im_start|>": "<|im_start|>", + "<|im_end|>": "<|im_end|>", + "<|object_ref_start|>": "<|object_ref_start|>", + "<|object_ref_end|>": "<|object_ref_end|>", + "<|box_start|>": "<|box_start|>", + "<|box_end|>": "<|box_end|>", + "<|quad_start|>": "<|quad_start|>", + "<|quad_end|>": "<|quad_end|>", + "<|vision_start|>": "<|vision_start|>", + "<|vision_end|>": "<|vision_end|>", + "<|vision_pad|>": "<|vision_pad|>", + "<|image_pad|>": "<|image_pad|>", + "<|video_pad|>": "<|video_pad|>" + }, + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +}