Qwen3-32B — Grounded Personal-Voice (MLX 4-bit)

A fine-tune of Qwen/Qwen3-32B that writes in one author's personal prose style, trained so it can respond grounded in a supplied source reading — the model behind a study assistant's grounded-draft feature. It is the 32B sibling of ericlmtn/qwen3-14b-personal-voice-mlx, tuned toward source-grounded answers rather than bare style transfer.

This repo is the MLX 4-bit build (SFT, merged and quantized) — it runs locally on Apple Silicon, fully offline.

How it was made

  1. Grounded SFT. A QLoRA fine-tune of Qwen3-32B on the author's own writing (~121K words, verified human: GPTZero median 0% AI), loss only on the author's prose. Doc selection is a 152-doc agent-audited keep list. For the 77 quote-bearing docs, the source sentences each essay actually quotes are attached to that chunk's prompt — so the model learns to ground quotes in supplied material instead of the confabulation seen on bare prompts. Prompts were synthesized by instruction backtranslation.
  2. No RL. GRPO against the live GPTZero detector was tried on the 32B SFT and added nothing — the SFT already emits ~0% AI, leaving no reward gradient to climb (KL pinned at ~4e-4). Unlike the 14B, which needed GRPO to close a gap, this build is SFT-only.
  3. Merge + convert. Adapter merged into the base, then converted to 4-bit MLX (group_size 64, affine).

Results (GPTZero AI %, lower = more human)

3 samples per prompt, temperature 0.9, non-thinking.

Eval set median mean < 15%
Held-out (backtranslated prompts) 1% 17% 54/74
Real past assignments — bare prompt 1% 2% 9/9
Real past assignments — reading attached 1% 7% 8/9

Detector evasion is strong and matches the SFT sibling. The tail is the flowing, reflective essay prompts where sentence-length variance collapses.

Grounding is enforced downstream, not by the model

Even with grounded training, the model still fabricates quotes when generating freely — on the grounded eval it produced only 1/18 quoted spans verbatim (the rest paraphrased or invented, while the citation looked plausible). Detector scores stay near 0% either way, so a fabricated quote reads as human. The production pipeline therefore does not trust the model's quotes: a deterministic post-generation pass verifies every quoted span against the source, snaps near-misses to the real sentence, deletes fabrications, and injects the correct page citation. Grounding is a guarantee by construction, not by asking the model nicely.

Run it (Apple Silicon)

pip install mlx-lm
python -m mlx_lm generate --model ericlmtn/qwen3-32b-grounded-voice-mlx \
  --prompt "/no_think Using the reading below, answer in your own voice: ..." --max-tokens 1000
  • Prefix the user message with /no_think. The model was trained non-thinking; without it, it spends the token budget on a hidden reasoning block and returns empty content.
  • Attach the source as notes/context and let it write around it. Then verify quoted spans against that source — do not ship the model's quotes unchecked (see above).
  • Serve serially if scripting your own calls; concurrent requests to a single MLX instance can return HTTP 500.

Intended use & limitations

  • Intended use: drafting/responding to writing tasks in the author's voice, grounded in a supplied reading, with a downstream quote-verification pass.
  • Confabulation: on bare prompts (no reading) it invents details, quotes, and citations. Only reliable when grounded on supplied source text and post-verified.
  • First person of the notes. It writes in the first person of whatever voice the notes are in — frame third-person source material in the third person, or it will impersonate the source's author.
  • One detector, moving target: tuned and evaluated against GPTZero only. Detectors retrain; results will drift and won't transfer to other detectors.
  • Length sweet spot ~250–430 words. Longer generations can repeat or fragment; cap targets or add a stop string. Texts under ~150 words score higher AI.
  • Style is one person's — a specific individual's register, not a general "human" style.

Responsible use

This model was trained to make one person's own writing read as their own, grounded in their own sources. It is not a license to misrepresent AI-generated text as human work where that is prohibited (e.g. coursework that bars AI assistance). Use it on writing you're entitled to edit, and follow the rules of wherever you submit.

License & attribution

Inherits the Apache-2.0 license of the base model, Qwen/Qwen3-32B. Quantized with mlx-lm. Training data (the author's personal corpus) is not released.

Downloads last month
-
Safetensors
Model size
33B params
Tensor type
BF16
·
U32
·
MLX
Hardware compatibility
Log In to add your hardware

4-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ericlmtn/qwen3-32b-grounded-voice-mlx

Base model

Qwen/Qwen3-32B
Adapter
(361)
this model