docs: add model card metadata and usage notes
Browse files
README.md
CHANGED
|
@@ -16,131 +16,37 @@ pipeline_tag: text-generation
|
|
| 16 |
|
| 17 |
# qwen3.5-27b-unslop-good-lora-v1
|
| 18 |
|
| 19 |
-
|
| 20 |
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
## How it was trained
|
| 24 |
- Base model: `unsloth/Qwen3.5-27B`
|
| 25 |
-
-
|
| 26 |
-
-
|
| 27 |
-
-
|
| 28 |
-
- Objective: conversational rewrite / style cleanup
|
| 29 |
-
|
| 30 |
-
## Training shape
|
| 31 |
-
- hardware: A100 80GB (`a100-large`)
|
| 32 |
-
- max_seq_length: 6144
|
| 33 |
-
- num_train_epochs: 2
|
| 34 |
-
- batch_size: 1
|
| 35 |
-
- gradient_accumulation_steps: 1
|
| 36 |
-
- learning_rate: 1e-4
|
| 37 |
-
- scheduler: cosine
|
| 38 |
-
- warmup_steps: 50
|
| 39 |
-
- LoRA rank: 8
|
| 40 |
-
- LoRA alpha: 20
|
| 41 |
-
- LoRA dropout: 0.0
|
| 42 |
-
- 4-bit loading
|
| 43 |
-
- bf16 training
|
| 44 |
-
|
| 45 |
-
## Training outcome
|
| 46 |
-
This 27B run completed successfully on Hugging Face Jobs and produced a deployable merged-model artifact.
|
| 47 |
-
|
| 48 |
-
- train_runtime: 10665.33s
|
| 49 |
-
- train_loss: 1.916
|
| 50 |
-
- final step: 1000
|
| 51 |
-
|
| 52 |
-
Operator notes:
|
| 53 |
-
- training completed to full planned step count
|
| 54 |
-
- merged full-model artifact and tokenizer were published
|
| 55 |
-
- endpoint path is now operating in merged-model mode (`adapter_mode: false` expected)
|
| 56 |
-
- evaluation block below uses fixed provided samples (no extra live-call refresh in this update)
|
| 57 |
|
| 58 |
## Intended use
|
| 59 |
-
|
| 60 |
-
-
|
| 61 |
-
-
|
| 62 |
-
- production-style rewrite comparisons across Qwen 3.5 model scales
|
| 63 |
|
| 64 |
## Limitations
|
| 65 |
-
- still
|
| 66 |
-
-
|
| 67 |
-
-
|
| 68 |
-
- continued side-by-side evaluation vs 9B and 30B reference lanes remains necessary
|
| 69 |
-
|
| 70 |
-
## Example inference (current Modal deployment)
|
| 71 |
-
|
| 72 |
-
Current live endpoint settings (from deployment config):
|
| 73 |
-
- temperature: `0.7`
|
| 74 |
-
- top_p: `0.8`
|
| 75 |
-
- top_k: `20`
|
| 76 |
-
- min_p: `0.0`
|
| 77 |
-
- presence_penalty: `1.5`
|
| 78 |
-
- repetition_penalty: `1.0`
|
| 79 |
-
- do_sample: `true`
|
| 80 |
-
|
| 81 |
-
## Training loss vs training progress
|
| 82 |
-
|
| 83 |
-
Normalized curve from the completed 27B run:
|
| 84 |
-
|
| 85 |
-

|
| 86 |
-
|
| 87 |
-
Curve notes:
|
| 88 |
-
- first logged loss: 2.279
|
| 89 |
-
- final logged step loss: 1.864
|
| 90 |
-
- trainer-reported final train_loss: 1.916
|
| 91 |
-
- final step: 1000
|
| 92 |
-
|
| 93 |
-
Across the successful Qwen 3.5 HF Jobs runs, trainer-reported final `train_loss` values were:
|
| 94 |
-
- 0.8B: 2.504
|
| 95 |
-
- 2B: 2.241
|
| 96 |
-
- 4B: 1.989
|
| 97 |
-
- 9B: 1.854
|
| 98 |
-
- 27B: 1.916 (latest HF job run: `Oysiyl/69ca19caf900226fc14aea81`)
|
| 99 |
-
|
| 100 |
-

|
| 101 |
-
|
| 102 |
-
## Recommended evaluation sample
|
| 103 |
-
Use this full fiction passage for held-out testing:
|
| 104 |
-
|
| 105 |
-
> The wind rose all at once, as if the mountain itself had inhaled.
|
| 106 |
-
> She stood at the edge of the pass, cloak snapping like a torn banner behind her, staring down at the valley where the last lights were going out one by one. Each flame extinguished felt deliberate—an answer to a question she had been too afraid to ask. Somewhere below, bells began to ring, not in warning, but in mourning. They already knew.
|
| 107 |
-
> “Don’t,” he said, breathless, reaching for her arm. His fingers brushed fabric, then air. “If you cross that line, there’s no coming back.”
|
| 108 |
-
> She didn’t turn. The cold burned her lungs, sharpened her thoughts. “There was never a way back,” she replied softly. “Only a way forward you were willing to pretend didn’t exist.”
|
| 109 |
-
> Thunder rolled, low and ancient. For a moment, the sky fractured into white fire, and in that instant he saw her face—resolved, terrified, incandescent with purpose. Not the girl he had sworn to protect, but the woman the world had demanded she become.
|
| 110 |
-
> “You’ll die,” he said.
|
| 111 |
-
> She smiled then, finally facing him, eyes bright with unshed tears. “So will everyone,” she answered. “The difference is what we leave burning when we’re gone.”
|
| 112 |
-
> She stepped forward.
|
| 113 |
-
> The mountain exhaled.
|
| 114 |
-
|
| 115 |
-
## Full observed output on that sample
|
| 116 |
-
|
| 117 |
-
Short sanity sample observed output:
|
| 118 |
-
|
| 119 |
-
> This feature saves teams hours each week, yet the copy still feels mechanical and impersonal.
|
| 120 |
-
|
| 121 |
-
Held-out long sample observed output:
|
| 122 |
-
|
| 123 |
-
> It started as a whisper, the kind of sound that lives between heartbeats. She stood at the mouth of the pass, her cloak whipping violently behind her like a flag surrendering to the storm. Below, the valley stretched out, its lights flickering out one by one—not from fear, but from choice. Each extinguished flame felt like an answer to a question she’d long refused to ask. From somewhere deep within the town, bells began to toll. Not warnings. Not calls to arms. Just a mournful rhythm, steady and certain. They already knew. “Don’t,” he whispered, his voice barely audible over the rising wind. He reached for her arm, his fingers grazing fabric before slipping through the air. “If you step past that line, there’s no return.” She didn’t turn. The cold bit into her skin, sharp enough to clear her mind. “There was never a way back,” she replied, her voice steady despite the tempest around them. “Only a way forward you were too afraid to see.” A low rumble echoed from the heavens, shaking the ground beneath their feet. For a fleeting moment, lightning split the sky, illuminating her face—determined, frightened, yet blazing with resolve. This wasn’t the girl he had promised to protect; this was the woman the world had forced her to become. “You’ll die,” he said, desperation threading through his words. She turned to face him, a faint smile breaking across her lips, her eyes shimmering with unshed tears. “We all will,” she answered softly. “The only difference is what we leave burning when we’re gone.” She took a step forward. The mountain breathed.
|
| 124 |
-
|
| 125 |
-
## Judgment
|
| 126 |
-
|
| 127 |
-
Blunt judgment: this 27B run is now in the credible positive lane.
|
| 128 |
-
|
| 129 |
-
Why:
|
| 130 |
-
- short sample output is clean and coherent
|
| 131 |
-
- long-form output preserves scene structure and emotional arc
|
| 132 |
-
- rewrite behavior is interventionist but not chaotic
|
| 133 |
-
- overall readability and cadence are materially strong for dense-text rewrite use
|
| 134 |
|
| 135 |
-
##
|
|
|
|
| 136 |
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
- **30B-A3B reference lane:** still strong on strict fidelity-sensitive long-form cases.
|
| 142 |
-
- **Qwen3.5 27B (this run):** strong language quality and coherent long-form rewrite behavior; now a serious top-tier candidate in this family.
|
| 143 |
|
| 144 |
-
|
|
|
|
| 145 |
|
| 146 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
# qwen3.5-27b-unslop-good-lora-v1
|
| 18 |
|
| 19 |
+
Unslop rewrite adapter focused on reducing hype/corporate phrasing while preserving meaning.
|
| 20 |
|
| 21 |
+
## Model summary
|
| 22 |
+
- Repo: `Oysiyl/qwen3.5-27b-unslop-good-lora-v1`
|
|
|
|
| 23 |
- Base model: `unsloth/Qwen3.5-27B`
|
| 24 |
+
- Adapter type: LoRA
|
| 25 |
+
- Pipeline: text generation / rewrite style transfer
|
| 26 |
+
- Current downloads (snapshot): 2150
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
## Intended use
|
| 29 |
+
- Rewrite AI-sounding drafts into cleaner, more natural prose.
|
| 30 |
+
- Keep meaning and key facts intact.
|
| 31 |
+
- Use as a post-processing layer for longform and social text cleanup.
|
|
|
|
| 32 |
|
| 33 |
## Limitations
|
| 34 |
+
- Can still over-rewrite some passages.
|
| 35 |
+
- Not guaranteed to improve factual accuracy.
|
| 36 |
+
- Should be human-reviewed for fidelity-sensitive outputs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
+
## Evaluation notes
|
| 39 |
+
This card records this model as part of the Unslop family with a common quality goal: preserve meaning, reduce hype, and avoid hallucinated additions.
|
| 40 |
|
| 41 |
+
## Usage (PEFT)
|
| 42 |
+
```python
|
| 43 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 44 |
+
from peft import PeftModel
|
|
|
|
|
|
|
| 45 |
|
| 46 |
+
base = "unsloth/Qwen3.5-27B"
|
| 47 |
+
adapter = "Oysiyl/qwen3.5-27b-unslop-good-lora-v1"
|
| 48 |
|
| 49 |
+
tokenizer = AutoTokenizer.from_pretrained(base, trust_remote_code=True)
|
| 50 |
+
base_model = AutoModelForCausalLM.from_pretrained(base, trust_remote_code=True, device_map="auto")
|
| 51 |
+
model = PeftModel.from_pretrained(base_model, adapter)
|
| 52 |
+
```
|