From 544efa748cb4b4cea313da2d9f3b4a03942563a4 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Sun, 23 Aug 2026 02:56:16 +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: nityaak/qwen3-4b-stance-matrix-mtcsd-qlora Source: Original Platform --- .gitattributes | 36 ++ README.md | 21 + ...68938_2026-08-10T122726Z_carbontracker.log | 10 + ...8_2026-08-10T122726Z_carbontracker_err.log | 2 + ...026-08-10T122726Z_carbontracker_output.log | 17 + ...68938_2026-08-03T142720Z_carbontracker.log | 10 + ...8_2026-08-03T142720Z_carbontracker_err.log | 2 + ...026-08-03T142720Z_carbontracker_output.log | 17 + ...68938_2026-08-04T163517Z_carbontracker.log | 10 + ...8_2026-08-04T163517Z_carbontracker_err.log | 2 + ...026-08-04T163517Z_carbontracker_output.log | 17 + chat_template.jinja | 97 +++++ config.json | 72 ++++ generation_config.json | 13 + loss_curve.png | Bin 0 -> 25925 bytes model-00001-of-00002.safetensors | 3 + model-00002-of-00002.safetensors | 3 + model.safetensors.index.json | 405 ++++++++++++++++++ tokenizer.json | 3 + tokenizer_config.json | 226 ++++++++++ training_summary.json | 48 +++ 21 files changed, 1014 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker.log create mode 100644 carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_err.log create mode 100644 carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_output.log create mode 100644 carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker.log create mode 100644 carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_err.log create mode 100644 carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_output.log create mode 100644 carbontracker/823512.368938_2026-08-04T163517Z_carbontracker.log create mode 100644 carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_err.log create mode 100644 carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_output.log create mode 100644 chat_template.jinja create mode 100644 config.json create mode 100644 generation_config.json create mode 100644 loss_curve.png create mode 100644 model-00001-of-00002.safetensors create mode 100644 model-00002-of-00002.safetensors create mode 100644 model.safetensors.index.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 training_summary.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..e9618eb --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +--- +base_model: unsloth/Qwen3-4B-unsloth-bnb-4bit +tags: +- text-generation-inference +- transformers +- unsloth +- qwen3 +license: apache-2.0 +language: +- en +--- + +# Uploaded finetuned model + +- **Developed by:** nityaak +- **License:** apache-2.0 +- **Finetuned from model :** unsloth/Qwen3-4B-unsloth-bnb-4bit + +This qwen3 model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library. + +[](https://github.com/unslothai/unsloth) diff --git a/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker.log b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker.log new file mode 100644 index 0000000..1c88dbc --- /dev/null +++ b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker.log @@ -0,0 +1,10 @@ +2026-08-10 12:27:26 - carbontracker version 2.4.5 +2026-08-10 12:27:26 - Only predicted and actual consumptions are multiplied by a PUE coefficient of 1.58 (Daniel Bizo, 2023, Uptime Institute Global Data Center Survey). +2026-08-10 12:27:26 - The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-10 12:27:26 - Monitoring thread started. +2026-08-10 12:41:42 - Epoch 1: +2026-08-10 12:41:42 - Duration: 0:11:42.67 +2026-08-10 12:41:42 - Average power usage (W) for gpu: 268.58829487179486 +2026-08-10 12:41:42 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-10 12:41:42 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-10 12:41:42 - Monitoring thread ended. diff --git a/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_err.log b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_err.log new file mode 100644 index 0000000..808acd0 --- /dev/null +++ b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_err.log @@ -0,0 +1,2 @@ +2026-08-10 12:27:26,972 - MainThread - WARNING - No API keys provided. Skipping intensity provider initialization. +2026-08-10 12:27:27,101 - MainThread - WARNING - No carbon intensity provider specified. Using average carbon intensity for NL: 253.31 gCO2eq/kWh. diff --git a/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_output.log b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_output.log new file mode 100644 index 0000000..2c59e65 --- /dev/null +++ b/carbontracker/2703903.368938_2026-08-10T122726Z_carbontracker_output.log @@ -0,0 +1,17 @@ +2026-08-10 12:27:26 - CarbonTracker: The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-10 12:41:42 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:11:43 + Energy: 0.082830863392 kWh + CO2eq: 20.982011908817 g + This is equivalent to: + 0.196460785663 km travelled by car +2026-08-10 12:41:42 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-10 12:41:42 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:11:43 + Energy: 0.082830863392 kWh + CO2eq: 20.982011908817 g + This is equivalent to: + 0.196460785663 km travelled by car +2026-08-10 12:41:42 - CarbonTracker: Finished monitoring. diff --git a/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker.log b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker.log new file mode 100644 index 0000000..49dc835 --- /dev/null +++ b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker.log @@ -0,0 +1,10 @@ +2026-08-03 14:27:20 - carbontracker version 2.4.5 +2026-08-03 14:27:20 - Only predicted and actual consumptions are multiplied by a PUE coefficient of 1.58 (Daniel Bizo, 2023, Uptime Institute Global Data Center Survey). +2026-08-03 14:27:20 - The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-03 14:27:20 - Monitoring thread started. +2026-08-03 14:34:50 - Epoch 1: +2026-08-03 14:34:50 - Duration: 0:04:54.87 +2026-08-03 14:34:50 - Average power usage (W) for gpu: 272.02613220338986 +2026-08-03 14:34:50 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-03 14:34:50 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-03 14:34:50 - Monitoring thread ended. diff --git a/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_err.log b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_err.log new file mode 100644 index 0000000..ba50c2c --- /dev/null +++ b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_err.log @@ -0,0 +1,2 @@ +2026-08-03 14:27:20,152 - MainThread - WARNING - No API keys provided. Skipping intensity provider initialization. +2026-08-03 14:27:20,278 - MainThread - WARNING - No carbon intensity provider specified. Using average carbon intensity for NL: 253.31 gCO2eq/kWh. diff --git a/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_output.log b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_output.log new file mode 100644 index 0000000..dcd1fec --- /dev/null +++ b/carbontracker/4141995.368938_2026-08-03T142720Z_carbontracker_output.log @@ -0,0 +1,17 @@ +2026-08-03 14:27:20 - CarbonTracker: The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-03 14:34:50 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:04:55 + Energy: 0.035204873214 kWh + CO2eq: 8.917799945125 g + This is equivalent to: + 0.083499999486 km travelled by car +2026-08-03 14:34:50 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-03 14:34:50 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:04:55 + Energy: 0.035204873214 kWh + CO2eq: 8.917799945125 g + This is equivalent to: + 0.083499999486 km travelled by car +2026-08-03 14:34:50 - CarbonTracker: Finished monitoring. diff --git a/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker.log b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker.log new file mode 100644 index 0000000..e86b301 --- /dev/null +++ b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker.log @@ -0,0 +1,10 @@ +2026-08-04 16:35:17 - carbontracker version 2.4.5 +2026-08-04 16:35:17 - Only predicted and actual consumptions are multiplied by a PUE coefficient of 1.58 (Daniel Bizo, 2023, Uptime Institute Global Data Center Survey). +2026-08-04 16:35:17 - The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-04 16:35:17 - Monitoring thread started. +2026-08-04 16:49:26 - Epoch 1: +2026-08-04 16:49:26 - Duration: 0:11:35.38 +2026-08-04 16:49:26 - Average power usage (W) for gpu: 280.3775648414986 +2026-08-04 16:49:26 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-04 16:49:26 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-04 16:49:26 - Monitoring thread ended. diff --git a/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_err.log b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_err.log new file mode 100644 index 0000000..99dad03 --- /dev/null +++ b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_err.log @@ -0,0 +1,2 @@ +2026-08-04 16:35:17,066 - MainThread - WARNING - No API keys provided. Skipping intensity provider initialization. +2026-08-04 16:35:17,212 - MainThread - WARNING - No carbon intensity provider specified. Using average carbon intensity for NL: 253.31 gCO2eq/kWh. diff --git a/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_output.log b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_output.log new file mode 100644 index 0000000..fdf2610 --- /dev/null +++ b/carbontracker/823512.368938_2026-08-04T163517Z_carbontracker_output.log @@ -0,0 +1,17 @@ +2026-08-04 16:35:17 - CarbonTracker: The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-04 16:49:26 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:11:35 + Energy: 0.085569504836 kWh + CO2eq: 21.675741335689 g + This is equivalent to: + 0.202956379548 km travelled by car +2026-08-04 16:49:26 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-04 16:49:26 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:11:35 + Energy: 0.085569504836 kWh + CO2eq: 21.675741335689 g + This is equivalent to: + 0.202956379548 km travelled by car +2026-08-04 16:49:26 - CarbonTracker: Finished monitoring. diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..ba89998 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,97 @@ +{%- 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) %} +{%- for forward_message in messages %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- set message = messages[index] %} + {%- set tool_start = '' %} + {%- set tool_start_length = tool_start|length %} + {%- set start_of_message = message.content[:tool_start_length] %} + {%- set tool_end = '' %} + {%- set tool_end_length = tool_end|length %} + {%- set start_pos = (message.content|length) - tool_end_length %} + {%- if start_pos < 0 %} + {%- set start_pos = 0 %} + {%- endif %} + {%- set end_of_message = message.content[start_pos:] %} + {%- if ns.multi_step_tool and message.role == "user" and not(start_of_message == tool_start and end_of_message == tool_end) %} + {%- 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('')|last).lstrip('\n') %} + {%- set reasoning_content = (message.content.split('')|first).rstrip('\n') %} + {%- set reasoning_content = (reasoning_content.split('')|last).lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- if loop.index0 > ns.last_query_index %} + {%- if loop.last or (not loop.last 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' }} + {%- endif %} +{%- endif %} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..15512da --- /dev/null +++ b/config.json @@ -0,0 +1,72 @@ +{ + "architectures": [ + "Qwen3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": null, + "torch_dtype": "bfloat16", + "eos_token_id": 151645, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 2560, + "initializer_range": 0.02, + "intermediate_size": 9728, + "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": 151654, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": true, + "unsloth_fixed": true, + "unsloth_version": "2026.7.5", + "use_cache": true, + "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..bf14878 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,13 @@ +{ + "do_sample": false, + "eos_token_id": [ + 151645, + 151643 + ], + "max_length": 40960, + "pad_token_id": 151654, + "temperature": 1.0, + "top_k": 50, + "top_p": 1.0, + "transformers_version": "5.5.0" +} diff --git a/loss_curve.png b/loss_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..33b0ed1f2bd84e940707a03ee5a265b28025123b GIT binary patch literal 25925 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 z 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%0D_q?HO;_*o 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 xPkvISit?4~7CXB5kdHBP75Ps;?BnZ-`1*52ht", + "errors": "replace", + "is_local": false, + "model_max_length": 40960, + "pad_token": "<|vision_pad|>", + "padding_side": "left", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null, + "added_tokens_decoder": { + "151643": { + "content": "<|endoftext|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151644": { + "content": "<|im_start|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151645": { + "content": "<|im_end|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151646": { + "content": "<|object_ref_start|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151647": { + "content": "<|object_ref_end|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151648": { + "content": "<|box_start|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151649": { + "content": "<|box_end|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151650": { + "content": "<|quad_start|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151651": { + "content": "<|quad_end|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151652": { + "content": "<|vision_start|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151653": { + "content": "<|vision_end|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151654": { + "content": "<|vision_pad|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151655": { + "content": "<|image_pad|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151656": { + "content": "<|video_pad|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + "151657": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151658": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151659": { + "content": "<|fim_prefix|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151660": { + "content": "<|fim_middle|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151661": { + "content": "<|fim_suffix|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151662": { + "content": "<|fim_pad|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151663": { + "content": "<|repo_name|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151664": { + "content": "<|file_sep|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151665": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151666": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151667": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + }, + "151668": { + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": false + } + }, + "chat_template": "{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0].role == 'system' %}\n {{- messages[0].content + '\\n\\n' }}\n {%- endif %}\n {{- \"# 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\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\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\" }}\n{%- else %}\n {%- if messages[0].role == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0].content + '<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for forward_message in messages %}\n {%- set index = (messages|length - 1) - loop.index0 %}\n {%- set message = messages[index] %}\n {%- set tool_start = '' %}\n {%- set tool_start_length = tool_start|length %}\n {%- set start_of_message = message.content[:tool_start_length] %}\n {%- set tool_end = '' %}\n {%- set tool_end_length = tool_end|length %}\n {%- set start_pos = (message.content|length) - tool_end_length %}\n {%- if start_pos < 0 %}\n {%- set start_pos = 0 %}\n {%- endif %}\n {%- set end_of_message = message.content[start_pos:] %}\n {%- if ns.multi_step_tool and message.role == \"user\" and not(start_of_message == tool_start and end_of_message == tool_end) %}\n {%- set ns.multi_step_tool = false %}\n {%- set ns.last_query_index = index %}\n {%- endif %}\n{%- endfor %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {%- set content = message.content %}\n {%- set reasoning_content = '' %}\n {%- if message.reasoning_content is defined and message.reasoning_content is not none %}\n {%- set reasoning_content = message.reasoning_content %}\n {%- else %}\n {%- if '' in message.content %}\n {%- set content = (message.content.split('')|last).lstrip('\\n') %}\n {%- set reasoning_content = (message.content.split('')|first).rstrip('\\n') %}\n {%- set reasoning_content = (reasoning_content.split('')|last).lstrip('\\n') %}\n {%- endif %}\n {%- endif %}\n {%- if loop.index0 > ns.last_query_index %}\n {%- if loop.last or (not loop.last and reasoning_content) %}\n {{- '<|im_start|>' + message.role + '\\n\\n' + reasoning_content.strip('\\n') + '\\n\\n\\n' + content.lstrip('\\n') }}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- else %}\n {{- '<|im_start|>' + message.role + '\\n' + content }}\n {%- endif %}\n {%- if message.tool_calls %}\n {%- for tool_call in message.tool_calls %}\n {%- if (loop.first and content) or (not loop.first) %}\n {{- '\\n' }}\n {%- endif %}\n {%- if tool_call.function %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {%- if tool_call.arguments is string %}\n {{- tool_call.arguments }}\n {%- else %}\n {{- tool_call.arguments | tojson }}\n {%- endif %}\n {{- '}\\n' }}\n {%- endfor %}\n {%- endif %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if loop.first or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n\\n' }}\n {{- message.content }}\n {{- '\\n' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n {%- if enable_thinking is defined and enable_thinking is false %}\n {{- '\\n\\n\\n\\n' }}\n {%- endif %}\n{%- endif %}" +} \ No newline at end of file diff --git a/training_summary.json b/training_summary.json new file mode 100644 index 0000000..9e2d1a8 --- /dev/null +++ b/training_summary.json @@ -0,0 +1,48 @@ +{ + "experiment_metadata": { + "timestamp": "2026-08-04T14:49:27.038232+00:00", + "pretrained_model_name_or_path": "unsloth/Qwen3-4B-unsloth-bnb-4bit", + "data_dir": "nityaak/stance-matrix-mtcsd", + "push_to_hub_id": "nityaak/qwen3-4b-stance-matrix-mtcsd-qlora" + }, + "configuration": { + "load_in_4bit": true, + "from_foundation_model": false, + "learning_rate": 2e-05, + "num_train_epochs": 1.0, + "per_device_train_batch_size": 8, + "gradient_accumulation_steps": 2, + "effective_batch_size": 16, + "weight_decay": 0.01, + "warmup_ratio": 0.1, + "optim": "adamw_8bit", + "max_length": 512, + "packing": true, + "completion_only_loss": true + }, + "training_stats": { + "train_runtime": 695.3914, + "train_samples_per_second": 2.21, + "train_steps_per_second": 0.139, + "total_flos": 1.516976054160384e+16, + "train_loss": 0.4799127658617865, + "epoch": 1.0 + }, + "gpu_stats": { + "gpu_id": 0, + "gpu_name": "NVIDIA A100-SXM4-40GB", + "memory_used_mb": 14184.0, + "memory_total_mb": 40626.8, + "memory_utilization_percent": 34.91, + "runtime_seconds": 695.4 + }, + "weight_verification": { + "all_changed": true, + "unchanged_params": [] + }, + "carbon_tracking": { + "enabled": true, + "log_dir": "carbontracker", + "note": "See carbontracker/ in this repo for actual consumption (time, energy, CO2eq)." + } +} \ No newline at end of file