deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (native)

Fine-tuned Qwen3-4B strips AI writing tics, trained on a MacBook Air

A developer fine-tuned Qwen3-4B-Instruct on a MacBook Air to remove AI writing tics like em dashes and lists of three, cutting a slop score from 121 to 12.5 per 1000 words. It runs locally via Ollama.

Fine-tuned Qwen3-4B strips AI writing tics, trained on a MacBook Air

A developer has fine-tuned Qwen3-4B-Instruct to write without the verbal habits readers now associate with machine-generated prose, and did the entire job on a MacBook Air. Released as qwen3-4b-deslop, the model needs no system prompt to avoid em dashes, "not X, but Y" constructions and lists of three, and it runs offline through Ollama, according to the write-up published at 100toolkit.com and shared on Hacker News.

On 40 prompts never seen in training, the author reports that a weighted count of AI-style tics fell from 121 per 1000 words in the stock model to 12.5, with 68 percent of answers landing in the range typical of human writing. Em dashes dropped from 20.5 per 1000 words to zero. The fine-tune still answered 30 of 30 factual questions correctly and matched the requested genre and length roughly as often as the original.

Measuring the tics

The headline number comes from a detector the author built from a style guide of AI writing habits: the em dash, the "it's not X, it's Y" pattern, groups of three, rhetorical questions answered on the spot, signposts such as "here's the thing", short fragments used for emphasis, and words like "delve" and "seamless". Each habit carries a weight, and the score is a weighted count per 1000 words; careful human prose scores close to zero.

Because pattern counts cannot judge writing quality, every candidate model was also checked for damage. The author measured how far predictions drift on 22 passages of human prose, ran the 30-question factual quiz, used rule-based checks to flag broken output such as lowercase sentence starts, and read samples by hand.

Three rounds of distillation

The work builds on two earlier findings. Subtracting an "assistant register" direction from the model while it writes, paired with a plain-style system prompt, brought the score to about 15, but it required the prompt and code running during generation and shifted the model's behavior on ordinary text. Separately, flipping the sign of four neurons removed 70 percent of "not X, but Y" at almost no cost, though only that one habit.

To move the fixes into the weights, the author used distillation: a teacher assembled from the best techniques so far answered 288 training prompts, answers that passed the checks were kept, and a small LoRA adapter learned to reproduce them from the bare prompt. The first round reached a score of about 20 with no prompt and no runtime hooks.

A second round scored better and wrote worse. The student reached 9.9, but its opinion pieces never stated a position, one answer about houseplants cited a study the model had invented, and sentences were chained with ", which" or ", so" 28 times as often as in the original, a habit the author traced to their own teacher prompt and two rounds of imitation. It did what the prompt asked only 60 percent of the time, against 78 percent for the stock model.

The third teacher was prompted to put the task first: take a position when asked, write in the first person for personal pieces, vary sentences, and do not invent studies or names. It generated three answers per prompt, and only those scoring under 12 and passing every check were kept, about 30 percent, covering 161 of the 288 prompts. The model trained on those answers is the released one: a score of 12.5, task fit back at 80 percent, and invented studies and percentages nearly eliminated.

Running it locally

The quantised Q4_K_M build is a 2.5 GB download that runs through Ollama or llama.cpp, and the full-precision weights load through the standard transformers interface like any Qwen3-4B checkpoint. The repository also publishes the parts separately: the 126 MB LoRA adapter and the neuron edit, a 175-byte list of four weight columns and their scales. The adapter was trained with the edit active, so the two are meant to be used together.

Known limitations

The author is candid about the trade-offs. The voice is plain to the point of flat, with runs of short declarative sentences, and the model still invents names and places because concrete detail was rewarded at every round. Answers run long: a request for about 150 words often comes in near 200. Only short English prose was tested; code, long conversations, other languages and tool use may be no better than the original, or worse. The score is a style guide expressed as regular expressions, no blind test with readers has been run, and results move between runs, with the same model scoring 10.2 through the adapter and 12.5 as merged weights from sampling differences alone.

Why it matters

This is a demonstration that a narrow, well-defined behavior can be edited out of a small open model's weights cheaply, on consumer hardware, with no runtime steering and no system prompt. It is also a cautionary tale about optimization: chasing the slop score alone quietly degraded task performance until explicit checks were added, and each student only ended up about as good as its teacher. The author says the recipe does not depend on model size and plans to run it on larger models with a better teacher built from a curated set of human writing. For anyone who wants AI-assisted text that does not read like AI, a 2.5 GB local model is now a working option.

  • #open-source
  • #fine-tuning
  • #language-models
  • #ollama
  • #qwen

Related posts