From 7815315ddcea43cfb8364df866fbf2dbe968287d Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Mon, 24 Aug 2026 19:29:18 +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-semeval-mtcsd-qlora Source: Original Platform --- .gitattributes | 36 ++ README.md | 21 + ...68938_2026-08-10T122755Z_carbontracker.log | 10 + ...8_2026-08-10T122755Z_carbontracker_err.log | 2 + ...026-08-10T122755Z_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 -> 23879 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/3557673.368938_2026-08-10T122755Z_carbontracker.log create mode 100644 carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_err.log create mode 100644 carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_output.log create mode 100644 carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker.log create mode 100644 carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker_err.log create mode 100644 carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker_output.log create mode 100644 carbontracker/823514.368938_2026-08-04T163517Z_carbontracker.log create mode 100644 carbontracker/823514.368938_2026-08-04T163517Z_carbontracker_err.log create mode 100644 carbontracker/823514.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/3557673.368938_2026-08-10T122755Z_carbontracker.log b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker.log new file mode 100644 index 0000000..e885dbc --- /dev/null +++ b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker.log @@ -0,0 +1,10 @@ +2026-08-10 12:27:55 - carbontracker version 2.4.5 +2026-08-10 12:27:55 - 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:55 - The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-10 12:27:55 - Monitoring thread started. +2026-08-10 12:53:27 - Epoch 1: +2026-08-10 12:53:27 - Duration: 0:22:58.50 +2026-08-10 12:53:27 - Average power usage (W) for gpu: 288.0383183139535 +2026-08-10 12:53:27 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-10 12:53:27 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-10 12:53:27 - Monitoring thread ended. diff --git a/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_err.log b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_err.log new file mode 100644 index 0000000..ca12568 --- /dev/null +++ b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_err.log @@ -0,0 +1,2 @@ +2026-08-10 12:27:55,614 - MainThread - WARNING - No API keys provided. Skipping intensity provider initialization. +2026-08-10 12:27:55,742 - MainThread - WARNING - No carbon intensity provider specified. Using average carbon intensity for NL: 253.31 gCO2eq/kWh. diff --git a/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_output.log b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_output.log new file mode 100644 index 0000000..d4f10cf --- /dev/null +++ b/carbontracker/3557673.368938_2026-08-10T122755Z_carbontracker_output.log @@ -0,0 +1,17 @@ +2026-08-10 12:27:55 - CarbonTracker: The following components were found: GPU with device(s) NVIDIA A100-SXM4-40GB. +2026-08-10 12:53:27 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:22:59 + Energy: 0.174265869803 kWh + CO2eq: 44.143552363931 g + This is equivalent to: + 0.413329141984 km travelled by car +2026-08-10 12:53:27 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-10 12:53:27 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:22:59 + Energy: 0.174265869803 kWh + CO2eq: 44.143552363931 g + This is equivalent to: + 0.413329141984 km travelled by car +2026-08-10 12:53:27 - CarbonTracker: Finished monitoring. diff --git a/carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker.log b/carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker.log new file mode 100644 index 0000000..daaa4be --- /dev/null +++ b/carbontracker/4141991.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:39:44 - Epoch 1: +2026-08-03 14:39:44 - Duration: 0:09:46.92 +2026-08-03 14:39:44 - Average power usage (W) for gpu: 271.9617593856656 +2026-08-03 14:39:44 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-03 14:39:44 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-03 14:39:44 - Monitoring thread ended. diff --git a/carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker_err.log b/carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker_err.log new file mode 100644 index 0000000..ba50c2c --- /dev/null +++ b/carbontracker/4141991.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/4141991.368938_2026-08-03T142720Z_carbontracker_output.log b/carbontracker/4141991.368938_2026-08-03T142720Z_carbontracker_output.log new file mode 100644 index 0000000..f375e2a --- /dev/null +++ b/carbontracker/4141991.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:39:44 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:09:47 + Energy: 0.070055109704 kWh + CO2eq: 17.745766323001 g + This is equivalent to: + 0.166158860702 km travelled by car +2026-08-03 14:39:44 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-03 14:39:44 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:09:47 + Energy: 0.070055109704 kWh + CO2eq: 17.745766323001 g + This is equivalent to: + 0.166158860702 km travelled by car +2026-08-03 14:39:44 - CarbonTracker: Finished monitoring. diff --git a/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker.log b/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker.log new file mode 100644 index 0000000..0043a9b --- /dev/null +++ b/carbontracker/823514.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 17:00:53 - Epoch 1: +2026-08-04 17:00:53 - Duration: 0:23:02.05 +2026-08-04 17:00:53 - Average power usage (W) for gpu: 291.8201261783902 +2026-08-04 17:00:53 - Carbon intensities (gCO2eq/kWh) fetched every 900 s at detected location: Breda, North Brabant, NL: [253.31] +2026-08-04 17:00:53 - Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-04 17:00:53 - Monitoring thread ended. diff --git a/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker_err.log b/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker_err.log new file mode 100644 index 0000000..654c7ca --- /dev/null +++ b/carbontracker/823514.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,210 - MainThread - WARNING - No carbon intensity provider specified. Using average carbon intensity for NL: 253.31 gCO2eq/kWh. diff --git a/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker_output.log b/carbontracker/823514.368938_2026-08-04T163517Z_carbontracker_output.log new file mode 100644 index 0000000..40450ec --- /dev/null +++ b/carbontracker/823514.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 17:00:53 - CarbonTracker: +Predicted consumption for 1 epoch(s): + Time: 0:23:02 + Energy: 0.177007651249 kWh + CO2eq: 44.838077189595 g + This is equivalent to: + 0.419832183423 km travelled by car +2026-08-04 17:00:53 - CarbonTracker: Average carbon intensity during training was 253.31 gCO2eq/kWh. +2026-08-04 17:00:53 - CarbonTracker: +Actual consumption for 1 epoch(s): + Time: 0:23:02 + Energy: 0.177007651249 kWh + CO2eq: 44.838077189595 g + This is equivalent to: + 0.419832183423 km travelled by car +2026-08-04 17:00:53 - 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..2af49a4686aae4e0b47499d84f60aa9d2248eab2 GIT binary patch literal 23879 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", + "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..a17285f --- /dev/null +++ b/training_summary.json @@ -0,0 +1,48 @@ +{ + "experiment_metadata": { + "timestamp": "2026-08-04T15:00:54.929322+00:00", + "pretrained_model_name_or_path": "unsloth/Qwen3-4B-unsloth-bnb-4bit", + "data_dir": "nityaak/stance-matrix-semeval-mtcsd", + "push_to_hub_id": "nityaak/qwen3-4b-stance-matrix-semeval-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": 1382.0645, + "train_samples_per_second": 2.128, + "train_steps_per_second": 0.133, + "total_flos": 2.989188029374464e+16, + "train_loss": 0.3190907484487347, + "epoch": 1.0 + }, + "gpu_stats": { + "gpu_id": 0, + "gpu_name": "NVIDIA A100-SXM4-40GB", + "memory_used_mb": 14222.0, + "memory_total_mb": 40626.8, + "memory_utilization_percent": 35.01, + "runtime_seconds": 1382.1 + }, + "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