just you
A small open model, fine-tuned on a MacBook Air, that writes without em dashes, "not X, but Y" or lists of three and needs no scheme prompt, and you can run it locally alongside Ollama.
Erik Markus Kannike · October 2026 ·
TL;DR
- I trained the aide penning habits out of Qwen3-4B-Instruct and released it as qwen3-4b-deslop. With Ollama it's ollama run hf.co/erikkannike/qwen3-4b-deslop-v4-GGUF:Q4_K_M, a 2.5 GB download.
- On 40 prompts it never saw in training, the slop mark dropped from 121 to 12.5 per 1000 words, and 68% of answers mark in the range of individual writing. Em dashes went from 20.5 per 1000 words to zero.
- It motionless answers 30 of 30 actual questions correctly and fits the requested genre and dimension as frequently as the original. Its predictions on human-written prose moved concerning a third as much as alongside runtime steering.
- An intermediate type scored 9.9 and wrote badly: opinion pieces without an opinion, invented studies, and a new habit of joining all declaration alongside ", which". Fixing that took a second display that checks whether an answer does what the immediate asked.
- The sound is plain to the item of flat, and it motionless invents names and places.
My residence lab is a MacBook Air, so this is a 4B example trained on 161 answers. The formula doesn't depend on the example size, and operating it on larger models is the next step.
Answers on 40 held-out prompts
These are one sampled answer per immediate from the first example and from the released one, on ten topics in four genres, alongside no scheme prompt. Underlined passages are what the slop detector counts.
Topic
Original Qwen3-4B-Instruct
De-slopped
The slop score
The mark comes from a detector I wrote from a manner guide of AI penning habits: the em dash, "it's not X, it's Y", lists of three, rhetorical questions answered on the spot, signposts akin "here's the thing", abbreviated fragments for emphasis, and words akin "delve" and "seamless". Each habit has a weight, and the mark is a valued figure per 1000 words. A paragraph by a careful individual author scores near to zero, and the first example averages 121.
A regex can't inform fine penning from bad, so all example below was additionally checked for damage. Drift measures how far its predictions on 22 passages of individual prose move from the first model's. A 30-question quiz checks that it motionless knows things, and a rule-based inspect flags damaged output akin lowercase declaration starts or a misplaced topic. I additionally peruse a example of answers from all model.
Training method
An before experiment on this example established the aide enroll as a direction inner it: subtracting it during the example writes, together alongside a plain-style scheme prompt, takes the mark to concerning 15, but it needs the immediate and code operating during generation, and it shifts the model's predictions on average text. A second one peruse neurons one at a period and established four whose sign flip removes 70% of "not X, but Y" at nearly no cost, although lone for that one habit.
To get the two into the weights I used distillation: a teacher, built from any worked finest so far, answers 288 training prompts. I keep the answers that continue the checks, and a small LoRA adapter learns to create them from the naked prompt. The archetypal circular got the mark to concerning 20 alongside no immediate and no hooks.
Round two
For circular two the instructor was the round-one example affirmative the four-neuron place and the plain-style prompt. Adding the direction steering on top as fine produced the lowest mark I have measured, 9.5, from content alongside no chief alphabet that wandered off topic, so I took the steering rear out. The instructor afterward averaged 7.4, and the pupil trained on its 171 finest answers scored 9.9, alongside 80% of answers in the individual range.
In its answers, an opinion part concerning a company's new CRM never took a stance and peruse akin an event report. A blog article concerning moving to a new city became a third-person narrative concerning a family alongside a leaking apartment. A part concerning houseplants cited "a study from the University of Technology Sydney", which the example invented. Almost all declaration ran into the next alongside ", which" or ", so", 28 times as frequently as in the first model. That final habit came from my own instructor prompt, which had told the example to associate sentences "with because, so, but, which", and two rounds of imitation had amplified it.
Task-fit checks
I added rule-based checks for whether an answer does what the immediate asked. An opinion part has to province a stance early, a individual consideration have to be in the archetypal person, an email has to open alongside a greeting, and the dimension has to approximately equivalent the request. Two additional checks figure ", which" and ", so" joins and invented studies and percentages. On those, the round-two example did what was asked lone 60% of the time, against 78% for the original.
Round three
The third instructor got a immediate that put the project first: obtain a stance whenever asked, compose in the archetypal individual whenever it's personal, change the sentences, and don't invent studies or names. It wrote three answers per prompt, and an answer was kept lone if it scored under 12, passed the damage checks and passed all the project checks. About 30% did, which covered 161 of the 288 prompts.
The example trained on those answers is the released one. Its mark rosy a little, from 9.9 to 12.5, during project fit went rear to 80% and the ", which" joins cut from 1.4 to 0.3 per 100 words. Invented studies and percentages nearly disappeared.
Downloads and usage
The quantised build (Q4_K_M, 2.5 GB) runs on a laptop alongside Ollama or llama.cpp:
ollama run hf.co/erikkannike/qwen3-4b-deslop-v4-GGUF:Q4_K_M llama-cli -hf erikkannike/qwen3-4b-deslop-v4-GGUF:Q4_K_M
The full-precision weights burden alongside transformers akin any Qwen3-4B checkpoint:
from transformers import AutoModelForCausalLM, AutoTokenizer name = "erikkannike/qwen3-4b-deslop-v4" tok = AutoTokenizer.from_pretrained(name) model = AutoModelForCausalLM.from_pretrained(name, torch_dtype="auto") msgs = [{"role": "user", "content": "Write a LinkedIn article concerning switching to a four-day week."}] ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt") out = model.generate(ids, max_new_tokens=300, do_sample=True, temperature=0.7) print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True)) The repo additionally has the parts on their own: the LoRA adapter (126 MB) and the neuron edit, a 175-byte catalog of four importance columns and their scales. The adapter was trained alongside the edit active, so the two go together.
Limitations
The sound is flat: the example writes runs of abbreviated declarative sentences, and its individual pieces peruse akin diary entries.
It additionally motionless makes things up: studies and percentages are rare now, but invented names and places are common, akin a coffee shop on Maple Street run by a female named Maria, since tangible item is what all circular rewarded. It additionally runs long, and answers to "about 150 words" frequently arrive in near 200.
I have lone tested abbreviated English prose in these genres. Code, lengthy conversations, another languages and tool use may be no improved than the first model, or worse. The mark is my manner guide written as regular expressions, and no blind test alongside readers has checked it yet. The numbers additionally move between runs: the identical example scored 10.2 through the adapter and 12.5 as merged weights, from sampling differences alone.
Next steps
Each pupil ended up concerning as fine as the finest answers its instructor could write, so a improved example needs a improved teacher. I'm putting together a set of outstanding individual writing, public-domain essays and alphabet affirmative contemporary pieces, to use as examples for a basis model. A basis example never went through aide training and motionless writes akin the group it learned from. If that instructor writes improved than this example does, the identical formula should create a pupil alongside several sensation as fine as spotless habits. After that comes the identical pipeline on a 7 to 8B example and one about 30B, and a blind test anywhere group choice the improved text.
Method notes and caveats- Base model: Qwen3-4B-Instruct-2507 in bf16. Every adapter is a rank-16 LoRA on all notice and MLP projections, trained for two epochs on the naked person immediate alongside defeat on the reply only, between one and three hours per circular on an M2 MacBook Air.
- Test set: ten topics never used in training, all in four genres (blog post, LinkedIn post, explainer, opinion piece), one sampled answer per immediate at heat 0.7, no scheme prompt. Drift is the KL divergence from the first example on 22 passages of individual prose.
- The task-fit checks are uncomplicated rules (a stance term near the commencement of an opinion piece, first-person pronouns in a reflection, a salutation in an email, term counts) and they young female things a audience would catch. The training data was filtered on the identical checks reported here, so the task-fit numbers flatter the example somewhat.
- The neuron edit flips the sign of four MLP neurons (layer 32 neuron 4852, tier 33 neuron 348, tier 28 neuron 1121, tier 32 neuron 5418), which is the identical as negating four columns of their layers' down-projection weights. The GGUF build was quantised from a Q8_0 conversion of the merged weights.
- The readers' conversation and live cursors nexus readers immediately complete WebRTC (Trystero alongside community Nostr relays). Peers can see all other's IP addresses, nothing is saved, and "hide" disconnects you.