From 031ff14420de3928f09ee5feea5652cc08386dbb Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Wed, 29 Apr 2026 12:28:53 +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: israel/AfriqueQwen-14B-multiturn Source: Original Platform --- .gitattributes | 37 ++++++ README.md | 61 +++++++++ all_results.json | 8 ++ chat_template.jinja | 85 +++++++++++++ config.json | 75 +++++++++++ generation_config.json | 9 ++ model.safetensors | 3 + tokenizer.json | 3 + tokenizer_config.json | 15 +++ train_results.json | 8 ++ trainer_log.jsonl | 35 +++++ trainer_state.json | 281 +++++++++++++++++++++++++++++++++++++++++ training_args.bin | 3 + training_loss.png | Bin 0 -> 34940 bytes 14 files changed, 623 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 all_results.json 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 create mode 100644 train_results.json create mode 100644 trainer_log.jsonl create mode 100644 trainer_state.json create mode 100644 training_args.bin create mode 100644 training_loss.png diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..eb4c97b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,37 @@ +*.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 +checkpoint-34265/tokenizer.json filter=lfs diff=lfs merge=lfs -text diff --git a/README.md b/README.md new file mode 100644 index 0000000..5975d18 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +--- +library_name: transformers +license: other +base_model: McGill-NLP/AfriqueQwen-14B +tags: +- llama-factory +- full +- generated_from_trainer +model-index: +- name: AfriqueQwen-14B-multiturn + results: [] +--- + + + +# AfriqueQwen-14B-multiturn + +This model is a fine-tuned version of [McGill-NLP/AfriqueQwen-14B](https://huggingface.co/McGill-NLP/AfriqueQwen-14B) on the afri_multiturn dataset. + +## 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: 1 +- eval_batch_size: 8 +- seed: 42 +- distributed_type: multi-GPU +- num_devices: 4 +- gradient_accumulation_steps: 2 +- total_train_batch_size: 8 +- total_eval_batch_size: 32 +- 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: 0.1 +- num_epochs: 5.0 + +### Training results + + + +### Framework versions + +- Transformers 5.2.0 +- Pytorch 2.10.0+cu128 +- Datasets 4.0.0 +- Tokenizers 0.22.2 diff --git a/all_results.json b/all_results.json new file mode 100644 index 0000000..c38e8bb --- /dev/null +++ b/all_results.json @@ -0,0 +1,8 @@ +{ + "epoch": 5.0, + "total_flos": 1091733654863872.0, + "train_loss": 0.42485430567312915, + "train_runtime": 114160.2816, + "train_samples_per_second": 2.401, + "train_steps_per_second": 0.3 +} \ No newline at end of file diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..699ff8d --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,85 @@ +{%- 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 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.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..7026c3c --- /dev/null +++ b/config.json @@ -0,0 +1,75 @@ +{ + "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": 5120, + "initializer_range": 0.02, + "intermediate_size": 17408, + "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", + "full_attention", + "full_attention", + "full_attention", + "full_attention" + ], + "max_position_embeddings": 32768, + "max_window_layers": 40, + "model_type": "qwen3", + "num_attention_heads": 40, + "num_hidden_layers": 40, + "num_key_value_heads": 8, + "pad_token_id": 151643, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "rope_theta": 1000000, + "rope_type": "default" + }, + "sliding_window": null, + "tie_word_embeddings": false, + "transformers_version": "5.2.0", + "use_cache": false, + "use_sliding_window": false, + "vocab_size": 151936 +} diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..39331ca --- /dev/null +++ b/generation_config.json @@ -0,0 +1,9 @@ +{ + "_from_model_config": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "transformers_version": "5.2.0" +} diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..cd61518 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c00c3e05d9310da4dcdc3b1e919ba7c1a445da8eeff56950f0a74ca8b2306a96 +size 29536666272 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..ea4d101 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,15 @@ +{ + "add_prefix_space": false, + "backend": "tokenizers", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "is_local": false, + "model_max_length": 131072, + "pad_token": "<|endoftext|>", + "padding_side": "right", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/train_results.json b/train_results.json new file mode 100644 index 0000000..c38e8bb --- /dev/null +++ b/train_results.json @@ -0,0 +1,8 @@ +{ + "epoch": 5.0, + "total_flos": 1091733654863872.0, + "train_loss": 0.42485430567312915, + "train_runtime": 114160.2816, + "train_samples_per_second": 2.401, + "train_steps_per_second": 0.3 +} \ No newline at end of file diff --git a/trainer_log.jsonl b/trainer_log.jsonl new file mode 100644 index 0000000..212f1e2 --- /dev/null +++ b/trainer_log.jsonl @@ -0,0 +1,35 @@ +{"current_steps": 1000, "total_steps": 34265, "loss": 1.091951904296875, "lr": 2.915086081120514e-06, "epoch": 0.1459321415541773, "percentage": 2.92, "elapsed_time": "0:55:22", "remaining_time": "1 day, 6:42:13"} +{"current_steps": 2000, "total_steps": 34265, "loss": 0.9010311279296875, "lr": 5.833090166326233e-06, "epoch": 0.2918642831083546, "percentage": 5.84, "elapsed_time": "1:50:40", "remaining_time": "1 day, 5:45:32"} +{"current_steps": 3000, "total_steps": 34265, "loss": 0.8496372680664063, "lr": 8.751094251531953e-06, "epoch": 0.43779642466253194, "percentage": 8.76, "elapsed_time": "2:46:03", "remaining_time": "1 day, 4:50:33"} +{"current_steps": 4000, "total_steps": 34265, "loss": 0.8293939208984376, "lr": 9.991513345767592e-06, "epoch": 0.5837285662167092, "percentage": 11.67, "elapsed_time": "3:41:25", "remaining_time": "1 day, 3:55:21"} +{"current_steps": 5000, "total_steps": 34265, "loss": 0.8073157348632812, "lr": 9.936020028278053e-06, "epoch": 0.7296607077708865, "percentage": 14.59, "elapsed_time": "4:36:43", "remaining_time": "1 day, 2:59:41"} +{"current_steps": 6000, "total_steps": 34265, "loss": 0.7829708251953125, "lr": 9.829343371836088e-06, "epoch": 0.8755928493250639, "percentage": 17.51, "elapsed_time": "5:32:07", "remaining_time": "1 day, 2:04:34"} +{"current_steps": 7000, "total_steps": 34265, "loss": 0.7496401977539062, "lr": 9.672589544454328e-06, "epoch": 1.021452024808464, "percentage": 20.43, "elapsed_time": "6:27:24", "remaining_time": "1 day, 1:08:55"} +{"current_steps": 8000, "total_steps": 34265, "loss": 0.6121725463867187, "lr": 9.46738398205746e-06, "epoch": 1.1673841663626414, "percentage": 23.35, "elapsed_time": "7:22:45", "remaining_time": "1 day, 0:13:38"} +{"current_steps": 9000, "total_steps": 34265, "loss": 0.611597412109375, "lr": 9.215854533761766e-06, "epoch": 1.3133163079168186, "percentage": 26.27, "elapsed_time": "8:18:11", "remaining_time": "23:18:31"} +{"current_steps": 10000, "total_steps": 34265, "loss": 0.6123408203125, "lr": 8.920609397454381e-06, "epoch": 1.459248449470996, "percentage": 29.18, "elapsed_time": "9:13:31", "remaining_time": "22:23:07"} +{"current_steps": 11000, "total_steps": 34265, "loss": 0.609525390625, "lr": 8.584710074466158e-06, "epoch": 1.6051805910251733, "percentage": 32.1, "elapsed_time": "10:08:58", "remaining_time": "21:27:58"} +{"current_steps": 12000, "total_steps": 34265, "loss": 0.6133668823242188, "lr": 8.211639623780629e-06, "epoch": 1.7511127325793505, "percentage": 35.02, "elapsed_time": "11:04:20", "remaining_time": "20:32:37"} +{"current_steps": 13000, "total_steps": 34265, "loss": 0.615207763671875, "lr": 7.805266544962458e-06, "epoch": 1.897044874133528, "percentage": 37.94, "elapsed_time": "11:59:35", "remaining_time": "19:37:05"} +{"current_steps": 14000, "total_steps": 34265, "loss": 0.5413321533203125, "lr": 7.3698046643160645e-06, "epoch": 2.042904049616928, "percentage": 40.86, "elapsed_time": "12:54:57", "remaining_time": "18:41:45"} +{"current_steps": 15000, "total_steps": 34265, "loss": 0.38200238037109374, "lr": 6.909769440229038e-06, "epoch": 2.1888361911711054, "percentage": 43.78, "elapsed_time": "13:50:21", "remaining_time": "17:46:27"} +{"current_steps": 16000, "total_steps": 34265, "loss": 0.38497344970703123, "lr": 6.4299311407857035e-06, "epoch": 2.334768332725283, "percentage": 46.69, "elapsed_time": "14:45:41", "remaining_time": "16:51:03"} +{"current_steps": 17000, "total_steps": 34265, "loss": 0.3850032653808594, "lr": 5.935265379168761e-06, "epoch": 2.48070047427946, "percentage": 49.61, "elapsed_time": "15:40:54", "remaining_time": "15:55:34"} +{"current_steps": 18000, "total_steps": 34265, "loss": 0.38166015625, "lr": 5.430901519764892e-06, "epoch": 2.6266326158336373, "percentage": 52.53, "elapsed_time": "16:36:17", "remaining_time": "15:00:15"} +{"current_steps": 19000, "total_steps": 34265, "loss": 0.3862608642578125, "lr": 4.9220694899697185e-06, "epoch": 2.7725647573878147, "percentage": 55.45, "elapsed_time": "17:31:33", "remaining_time": "14:04:50"} +{"current_steps": 20000, "total_steps": 34265, "loss": 0.38137054443359375, "lr": 4.414045549219315e-06, "epoch": 2.918496898941992, "percentage": 58.37, "elapsed_time": "18:26:50", "remaining_time": "13:09:27"} +{"current_steps": 21000, "total_steps": 34265, "loss": 0.2938824462890625, "lr": 3.912097577588397e-06, "epoch": 3.064356074425392, "percentage": 61.29, "elapsed_time": "19:22:11", "remaining_time": "12:14:06"} +{"current_steps": 22000, "total_steps": 34265, "loss": 0.19125808715820314, "lr": 3.4214304512770823e-06, "epoch": 3.2102882159795696, "percentage": 64.21, "elapsed_time": "20:17:28", "remaining_time": "11:18:44"} +{"current_steps": 23000, "total_steps": 34265, "loss": 0.18847378540039061, "lr": 2.9471320714071095e-06, "epoch": 3.356220357533747, "percentage": 67.12, "elapsed_time": "21:12:42", "remaining_time": "10:23:20"} +{"current_steps": 24000, "total_steps": 34265, "loss": 0.19000143432617186, "lr": 2.4941206057740675e-06, "epoch": 3.502152499087924, "percentage": 70.04, "elapsed_time": "22:08:12", "remaining_time": "9:28:04"} +{"current_steps": 25000, "total_steps": 34265, "loss": 0.18782159423828124, "lr": 2.06709349062457e-06, "epoch": 3.6480846406421015, "percentage": 72.96, "elapsed_time": "23:03:30", "remaining_time": "8:32:43"} +{"current_steps": 26000, "total_steps": 34265, "loss": 0.18233416748046874, "lr": 1.6704787212769829e-06, "epoch": 3.7940167821962785, "percentage": 75.88, "elapsed_time": "23:58:48", "remaining_time": "7:37:22"} +{"current_steps": 27000, "total_steps": 34265, "loss": 0.17911607360839843, "lr": 1.3083889366705216e-06, "epoch": 3.939948923750456, "percentage": 78.8, "elapsed_time": "1 day, 0:54:08", "remaining_time": "6:42:01"} +{"current_steps": 28000, "total_steps": 34265, "loss": 0.12317549133300781, "lr": 9.845787739562829e-07, "epoch": 4.085808099233856, "percentage": 81.72, "elapsed_time": "1 day, 1:49:35", "remaining_time": "5:46:43"} +{"current_steps": 29000, "total_steps": 34265, "loss": 0.08010615539550782, "lr": 7.024059353355333e-07, "epoch": 4.231740240788033, "percentage": 84.63, "elapsed_time": "1 day, 2:45:03", "remaining_time": "4:51:24"} +{"current_steps": 30000, "total_steps": 34265, "loss": 0.08023818969726562, "lr": 4.64796370857008e-07, "epoch": 4.377672382342211, "percentage": 87.55, "elapsed_time": "1 day, 3:40:23", "remaining_time": "3:56:03"} +{"current_steps": 31000, "total_steps": 34265, "loss": 0.07947054290771484, "lr": 2.7421393820510846e-07, "epoch": 4.523604523896388, "percentage": 90.47, "elapsed_time": "1 day, 4:35:53", "remaining_time": "3:00:43"} +{"current_steps": 32000, "total_steps": 34265, "loss": 0.07735189056396484, "lr": 1.326348540874095e-07, "epoch": 4.669536665450566, "percentage": 93.39, "elapsed_time": "1 day, 5:31:22", "remaining_time": "2:05:22"} +{"current_steps": 33000, "total_steps": 34265, "loss": 0.07909833526611328, "lr": 4.152720214406214e-08, "epoch": 4.815468807004743, "percentage": 96.31, "elapsed_time": "1 day, 6:26:45", "remaining_time": "1:10:01"} +{"current_steps": 34000, "total_steps": 34265, "loss": 0.07906644439697266, "lr": 1.8357098688476238e-09, "epoch": 4.96140094855892, "percentage": 99.23, "elapsed_time": "1 day, 7:22:10", "remaining_time": "0:14:40"} +{"current_steps": 34265, "total_steps": 34265, "epoch": 5.0, "percentage": 100.0, "elapsed_time": "1 day, 7:42:40", "remaining_time": "0:00:00"} diff --git a/trainer_state.json b/trainer_state.json new file mode 100644 index 0000000..48df15c --- /dev/null +++ b/trainer_state.json @@ -0,0 +1,281 @@ +{ + "best_global_step": null, + "best_metric": null, + "best_model_checkpoint": null, + "epoch": 5.0, + "eval_steps": 500, + "global_step": 34265, + "is_hyper_param_search": false, + "is_local_process_zero": true, + "is_world_process_zero": true, + "log_history": [ + { + "epoch": 0.1459321415541773, + "grad_norm": 2.2002170436333888, + "learning_rate": 2.915086081120514e-06, + "loss": 1.091951904296875, + "step": 1000 + }, + { + "epoch": 0.2918642831083546, + "grad_norm": 2.3899237660554205, + "learning_rate": 5.833090166326233e-06, + "loss": 0.9010311279296875, + "step": 2000 + }, + { + "epoch": 0.43779642466253194, + "grad_norm": 1.7207455491966865, + "learning_rate": 8.751094251531953e-06, + "loss": 0.8496372680664063, + "step": 3000 + }, + { + "epoch": 0.5837285662167092, + "grad_norm": 1.49997561253202, + "learning_rate": 9.991513345767592e-06, + "loss": 0.8293939208984376, + "step": 4000 + }, + { + "epoch": 0.7296607077708865, + "grad_norm": 1.43919873990257, + "learning_rate": 9.936020028278053e-06, + "loss": 0.8073157348632812, + "step": 5000 + }, + { + "epoch": 0.8755928493250639, + "grad_norm": 1.384519444393501, + "learning_rate": 9.829343371836088e-06, + "loss": 0.7829708251953125, + "step": 6000 + }, + { + "epoch": 1.021452024808464, + "grad_norm": 1.457416645249146, + "learning_rate": 9.672589544454328e-06, + "loss": 0.7496401977539062, + "step": 7000 + }, + { + "epoch": 1.1673841663626414, + "grad_norm": 1.5133027310610572, + "learning_rate": 9.46738398205746e-06, + "loss": 0.6121725463867187, + "step": 8000 + }, + { + "epoch": 1.3133163079168186, + "grad_norm": 1.3855612557611925, + "learning_rate": 9.215854533761766e-06, + "loss": 0.611597412109375, + "step": 9000 + }, + { + "epoch": 1.459248449470996, + "grad_norm": 1.5802706606106216, + "learning_rate": 8.920609397454381e-06, + "loss": 0.6123408203125, + "step": 10000 + }, + { + "epoch": 1.6051805910251733, + "grad_norm": 1.4685873474216664, + "learning_rate": 8.584710074466158e-06, + "loss": 0.609525390625, + "step": 11000 + }, + { + "epoch": 1.7511127325793505, + "grad_norm": 1.219859265372452, + "learning_rate": 8.211639623780629e-06, + "loss": 0.6133668823242188, + "step": 12000 + }, + { + "epoch": 1.897044874133528, + "grad_norm": 1.2535196330309815, + "learning_rate": 7.805266544962458e-06, + "loss": 0.615207763671875, + "step": 13000 + }, + { + "epoch": 2.042904049616928, + "grad_norm": 1.5681754211680612, + "learning_rate": 7.3698046643160645e-06, + "loss": 0.5413321533203125, + "step": 14000 + }, + { + "epoch": 2.1888361911711054, + "grad_norm": 1.2447962924993787, + "learning_rate": 6.909769440229038e-06, + "loss": 0.38200238037109374, + "step": 15000 + }, + { + "epoch": 2.334768332725283, + "grad_norm": 1.4067667074111327, + "learning_rate": 6.4299311407857035e-06, + "loss": 0.38497344970703123, + "step": 16000 + }, + { + "epoch": 2.48070047427946, + "grad_norm": 1.326059120500027, + "learning_rate": 5.935265379168761e-06, + "loss": 0.3850032653808594, + "step": 17000 + }, + { + "epoch": 2.6266326158336373, + "grad_norm": 1.6923974019115828, + "learning_rate": 5.430901519764892e-06, + "loss": 0.38166015625, + "step": 18000 + }, + { + "epoch": 2.7725647573878147, + "grad_norm": 1.5367782861850559, + "learning_rate": 4.9220694899697185e-06, + "loss": 0.3862608642578125, + "step": 19000 + }, + { + "epoch": 2.918496898941992, + "grad_norm": 1.3054321737811847, + "learning_rate": 4.414045549219315e-06, + "loss": 0.38137054443359375, + "step": 20000 + }, + { + "epoch": 3.064356074425392, + "grad_norm": 1.69275953279231, + "learning_rate": 3.912097577588397e-06, + "loss": 0.2938824462890625, + "step": 21000 + }, + { + "epoch": 3.2102882159795696, + "grad_norm": 1.5240170572509457, + "learning_rate": 3.4214304512770823e-06, + "loss": 0.19125808715820314, + "step": 22000 + }, + { + "epoch": 3.356220357533747, + "grad_norm": 1.5774125509908914, + "learning_rate": 2.9471320714071095e-06, + "loss": 0.18847378540039061, + "step": 23000 + }, + { + "epoch": 3.502152499087924, + "grad_norm": 1.8421166872943977, + "learning_rate": 2.4941206057740675e-06, + "loss": 0.19000143432617186, + "step": 24000 + }, + { + "epoch": 3.6480846406421015, + "grad_norm": 1.5694212047061644, + "learning_rate": 2.06709349062457e-06, + "loss": 0.18782159423828124, + "step": 25000 + }, + { + "epoch": 3.7940167821962785, + "grad_norm": 1.496800606594422, + "learning_rate": 1.6704787212769829e-06, + "loss": 0.18233416748046874, + "step": 26000 + }, + { + "epoch": 3.939948923750456, + "grad_norm": 1.984744582152809, + "learning_rate": 1.3083889366705216e-06, + "loss": 0.17911607360839843, + "step": 27000 + }, + { + "epoch": 4.085808099233856, + "grad_norm": 1.2567953809414274, + "learning_rate": 9.845787739562829e-07, + "loss": 0.12317549133300781, + "step": 28000 + }, + { + "epoch": 4.231740240788033, + "grad_norm": 1.091077915720754, + "learning_rate": 7.024059353355333e-07, + "loss": 0.08010615539550782, + "step": 29000 + }, + { + "epoch": 4.377672382342211, + "grad_norm": 1.2460581955478622, + "learning_rate": 4.64796370857008e-07, + "loss": 0.08023818969726562, + "step": 30000 + }, + { + "epoch": 4.523604523896388, + "grad_norm": 1.7839106451867877, + "learning_rate": 2.7421393820510846e-07, + "loss": 0.07947054290771484, + "step": 31000 + }, + { + "epoch": 4.669536665450566, + "grad_norm": 1.1265268481087043, + "learning_rate": 1.326348540874095e-07, + "loss": 0.07735189056396484, + "step": 32000 + }, + { + "epoch": 4.815468807004743, + "grad_norm": 1.0896372619502366, + "learning_rate": 4.152720214406214e-08, + "loss": 0.07909833526611328, + "step": 33000 + }, + { + "epoch": 4.96140094855892, + "grad_norm": 1.2750658260191035, + "learning_rate": 1.8357098688476238e-09, + "loss": 0.07906644439697266, + "step": 34000 + }, + { + "epoch": 5.0, + "step": 34265, + "total_flos": 1091733654863872.0, + "train_loss": 0.42485430567312915, + "train_runtime": 114160.2816, + "train_samples_per_second": 2.401, + "train_steps_per_second": 0.3 + } + ], + "logging_steps": 1000, + "max_steps": 34265, + "num_input_tokens_seen": 0, + "num_train_epochs": 5, + "save_steps": 50000, + "stateful_callbacks": { + "TrainerControl": { + "args": { + "should_epoch_stop": false, + "should_evaluate": false, + "should_log": false, + "should_save": true, + "should_training_stop": true + }, + "attributes": {} + } + }, + "total_flos": 1091733654863872.0, + "train_batch_size": 1, + "trial_name": null, + "trial_params": null +} diff --git a/training_args.bin b/training_args.bin new file mode 100644 index 0000000..e3f36cf --- /dev/null +++ b/training_args.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a4cc99de1a10fd6c19d45d4b68f0e6d1e0fb1309394ed1c123226c8b71056c8 +size 7377 diff --git a/training_loss.png b/training_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..360f84af725ce495e52fdd00d50caef153d293d6 GIT binary patch literal 34940 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