From 6edb6dfa36bb2f52eca811e862d9efd3ccec9391 Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Mon, 13 Apr 2026 12:45:12 +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: Oysiyl/qwen3-0.6b-unslop-good-lora-v1 Source: Original Platform --- .gitattributes | 36 +++++++++++++ README.md | 76 ++++++++++++++++++++++++++ chat_template.jinja | 99 ++++++++++++++++++++++++++++++++++ config.json | 30 +++++++++++ generation_config.json | 13 +++++ model.safetensors | 3 ++ tokenizer.json | 3 ++ tokenizer_config.json | 15 ++++++ training_loss_vs_progress.png | Bin 0 -> 33647 bytes 9 files changed, 275 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 create mode 100644 training_loss_vs_progress.png 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..eba76ff --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +--- +language: +- en +license: apache-2.0 +base_model: Qwen/Qwen3-0.6B +library_name: transformers +tags: +- unsloth +- qwen3 +- lora +- rewriting +- style-transfer +- unslop +pipeline_tag: text-generation +--- + +# qwen3-0.6b-unslop-good-lora-v1 + +A small pilot fine-tune of Qwen3-0.6B for unslop rewriting: taking AI-sounding passages and attempting to rewrite them into cleaner, more natural prose while preserving meaning. + +This is the weakest model in the current unslop pilot family and should be treated as a proof-of-behavior artifact, not a production-ready standalone model. + +## How it was trained + +- Base model: `Qwen/Qwen3-0.6B` +- Training path: Unsloth 4-bit LoRA fine-tuning on Hugging Face Jobs +- Dataset: `N8Programs/unslop-good` +- Rows used: 1000 (full training split) +- Objective: conversational rewrite / style cleanup + +## Intended use + +Use this model as a pipeline stage for: +- rewriting AI-sounding prose into more natural text +- reducing cliché-heavy or overblown style +- experimenting with a compact unslopper before scaling to larger models + +## Limitations + +- pilot-sized dataset +- very small model size (0.6B) +- may introduce local coherence issues on longer passages +- may overcompress content and drop details +- should be reviewed by a human or used as one stage in a larger editing pipeline + +## Example usage + +```python +from transformers import AutoTokenizer, AutoModelForCausalLM + +repo = "Oysiyl/qwen3-0.6b-unslop-good-lora-v1" +messages = [ + {"role": "user", "content": "Polish this AI passage to feel more human while preserving meaning:\n[TEXT HERE]"} +] + +tokenizer = AutoTokenizer.from_pretrained(repo) +model = AutoModelForCausalLM.from_pretrained(repo, device_map="auto") +text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) +inputs = tokenizer(text, return_tensors="pt").to(model.device) +outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.8, repetition_penalty=1.1, do_sample=True) +print(tokenizer.decode(outputs[0], skip_special_tokens=True)) +``` + +## Training loss vs training progress + +![Training loss vs training progress](./training_loss_vs_progress.png) + +Training loss is shown on normalized training progress (0–100%) for optimization visibility only. It helps show whether the run trained smoothly, but it is not by itself evidence of generalization or overfitting. Held-out rewrite fidelity remains the real decision metric. + +## Judgment + +Too bad output. + +## Conclusion + +Too bad output. diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000..370b963 --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,99 @@ +{%- 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 current_content = message.content if message.content is defined and message.content is not none else '' %} + {%- set tool_start = '' %} + {%- set tool_start_length = tool_start|length %} + {%- set start_of_message = current_content[:tool_start_length] %} + {%- set tool_end = '' %} + {%- set tool_end_length = tool_end|length %} + {%- set start_pos = (current_content|length) - tool_end_length %} + {%- if start_pos < 0 %} + {%- set start_pos = 0 %} + {%- endif %} + {%- set end_of_message = current_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 m_content = message.content if message.content is defined and message.content is not none else '' %} + {%- set content = m_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 m_content %} + {%- set content = (m_content.split('')|last).lstrip('\n') %} + {%- set reasoning_content = (m_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 (not reasoning_content.strip() == '')) %} + {{- '<|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..f5c3703 --- /dev/null +++ b/config.json @@ -0,0 +1,30 @@ +{ + "architectures": [ + "Qwen3ForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "bos_token_id": 151643, + "eos_token_id": 151645, + "head_dim": 128, + "hidden_act": "silu", + "hidden_size": 1024, + "initializer_range": 0.02, + "intermediate_size": 3072, + "max_position_embeddings": 40960, + "max_window_layers": 28, + "model_type": "qwen3", + "num_attention_heads": 16, + "num_hidden_layers": 28, + "num_key_value_heads": 8, + "rms_norm_eps": 1e-06, + "rope_scaling": null, + "rope_theta": 1000000, + "sliding_window": null, + "tie_word_embeddings": true, + "torch_dtype": "bfloat16", + "transformers_version": "4.51.0", + "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..20a8a91 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,13 @@ +{ + "bos_token_id": 151643, + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "temperature": 0.6, + "top_k": 20, + "top_p": 0.95, + "transformers_version": "4.51.0" +} \ No newline at end of file diff --git a/model.safetensors b/model.safetensors new file mode 100644 index 0000000..b5b4aa1 --- /dev/null +++ b/model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a8dba0861b08c180b37e61858c1f0f1f28d8118533e2b960c5a69dc041d598 +size 1192135096 diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..7edcf72 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7430e9138b76e93fb6f93462394d236b411111aef53cb421ba97d2691040cca +size 11423114 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..487e2cb --- /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": 40960, + "pad_token": "<|PAD_TOKEN|>", + "padding_side": "left", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null +} diff --git a/training_loss_vs_progress.png b/training_loss_vs_progress.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecb19ffe208cc1e9658f04da2d1386e2ddc8dd3 GIT binary patch literal 33647 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 O@+B+&ob40*$$tX?hn~#< literal 0 HcmV?d00001