File size: 7,215 Bytes
f72c23f
0ecad4f
 
 
f72c23f
0ecad4f
f72c23f
 
 
0ecad4f
 
 
 
 
f72c23f
 
0ecad4f
 
13688d0
0ecad4f
13688d0
0ecad4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13688d0
0ecad4f
 
 
 
 
 
13688d0
 
 
 
0ecad4f
 
13688d0
0ecad4f
13688d0
 
0ecad4f
 
13688d0
 
 
 
0ecad4f
 
 
 
 
13688d0
0ecad4f
 
 
 
 
 
 
8e2b93e
 
 
 
 
13688d0
8e2b93e
13688d0
8e2b93e
0ecad4f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13688d0
8e2b93e
13688d0
8e2b93e
13688d0
0ecad4f
13688d0
0ecad4f
 
 
13688d0
0ecad4f
 
13688d0
 
 
 
0ecad4f
 
f72c23f
13688d0
 
 
 
 
 
f72c23f
0ecad4f
f72c23f
13688d0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
language:
- en
license: apache-2.0
base_model: unsloth/Qwen3.5-27B
library_name: transformers
tags:
- unsloth
- qwen3_5
- lora
- rewriting
- style-transfer
- unslop
pipeline_tag: text-generation
---

# qwen3.5-27b-unslop-good-lora-v1

A Qwen 3.5 27B fine-tune for unslop rewriting: taking AI-sounding passages and rewriting them into cleaner, more natural prose while preserving meaning.

This run is the large dense-text Qwen 3.5 lane in the current series and is meant to test whether a 27B text model can deliver stable, high-quality rewrite behavior with production-serving constraints.

## How it was trained
- Base model: `unsloth/Qwen3.5-27B`
- Training path: Unsloth fine-tuning on Hugging Face Jobs
- Dataset: `N8Programs/unslop-good`
- Rows used: 1000 (full training split)
- Objective: conversational rewrite / style cleanup

## Training shape
- hardware: A100 80GB (`a100-large`)
- max_seq_length: 6144
- num_train_epochs: 2
- batch_size: 1
- gradient_accumulation_steps: 1
- learning_rate: 1e-4
- scheduler: cosine
- warmup_steps: 50
- LoRA rank: 8
- LoRA alpha: 20
- LoRA dropout: 0.0
- 4-bit loading
- bf16 training

## Training outcome
This 27B run completed successfully on Hugging Face Jobs and produced a deployable merged-model artifact.

- train_runtime: 10665.33s
- train_loss: 1.916
- final step: 1000

Operator notes:
- training completed to full planned step count
- merged full-model artifact and tokenizer were published
- endpoint path is now operating in merged-model mode (`adapter_mode: false` expected)
- evaluation block below uses fixed provided samples (no extra live-call refresh in this update)

## Intended use
Use this model as a rewrite stage for:
- rewriting AI-sounding prose into more natural text
- preserving scene structure and intent while improving readability
- production-style rewrite comparisons across Qwen 3.5 model scales

## Limitations
- still trained on the same 1000-row dataset
- training success does not guarantee strict fidelity in all long-form cases
- this model can still be more stylistic than ideal for minimal-touch rewrites
- continued side-by-side evaluation vs 9B and 30B reference lanes remains necessary

## Training loss vs training progress

Normalized curve from the completed 27B run:

![Qwen3.5-27B training loss vs normalized progress](./training_loss_vs_progress.svg)

Curve notes:
- first logged loss: 2.279
- final logged step loss: 1.864
- trainer-reported final train_loss: 1.916
- final step: 1000

Across the successful Qwen 3.5 HF Jobs runs, trainer-reported final `train_loss` values were:
- 0.8B: 2.504
- 2B: 2.241
- 4B: 1.989
- 9B: 1.854
- 27B: 1.916 (latest HF job run: `Oysiyl/69ca19caf900226fc14aea81`)

![Qwen3.5 family HF Jobs final train_loss](./training_loss_qwen35_family.svg)

## Recommended evaluation sample
Use this full fiction passage for held-out testing:

> The wind rose all at once, as if the mountain itself had inhaled.
> 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.
> “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.”
> 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.”
> 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.
> “You’ll die,” he said.
> 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.”
> She stepped forward.
> The mountain exhaled.

## Full observed output on that sample

Short sanity sample observed output:

> This feature saves teams hours each week, yet the copy still feels mechanical and impersonal.

Held-out long sample observed output:

> 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.

## Judgment

Blunt judgment: this 27B run is now in the credible positive lane.

Why:
- short sample output is clean and coherent
- long-form output preserves scene structure and emotional arc
- rewrite behavior is interventionist but not chaotic
- overall readability and cadence are materially strong for dense-text rewrite use

## Comparison vs pilot series

- **0.8B:** useful cheapest baseline, but weakest rewrite control.
- **2B:** better stability than 0.8B, still limited on long-form nuance.
- **4B:** first practical small-lane quality point.
- **9B:** strong medium-lane baseline with good practicality.
- **30B-A3B reference lane:** still strong on strict fidelity-sensitive long-form cases.
- **Qwen3.5 27B (this run):** strong language quality and coherent long-form rewrite behavior; now a serious top-tier candidate in this family.

## Conclusion

This repo is a full 27B post-run artifact with completed training metrics, normalized loss plots, and deployment-backed output samples. The current result is no longer just infrastructure-valid: the provided short and long observed outputs are coherent and stylistically strong, placing this run in the credible positive lane for production-oriented unslop rewriting evaluation.