77 lines
2.4 KiB
Markdown
77 lines
2.4 KiB
Markdown
---
|
||
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 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.
|