Developer Vincent Schmalbach tried to strip the telltale vocabulary of AI-generated prose using logit_bias, an OpenAI Chat Completions parameter that lets a caller push the probability of specific tokens up or down before the model samples its next word. The attempt mostly failed. Suppressing tokens did not remove the model’s tendency toward certain words; it just forced the model down less likely paths, and the resulting sentences sometimes read as though a weaker system had written them.

The mechanic itself is straightforward. Every token a model could output gets a score, called a logit, before sampling turns those scores into probabilities. logit_bias adds a supplied value, from negative 100 to positive 100, onto that score for specific token IDs. A large negative number can push a word’s odds of selection close to zero. That is a harder constraint than a prompt instruction: a prompt asks the model to avoid a word, and the model can ignore that request when something else in the task seems to matter more. logit_bias edits the arithmetic directly, before any reasoning about the sentence happens.

Access to that arithmetic varies sharply by provider. OpenRouter is the one place Schmalbach found broad support, listing roughly 115 models that advertise compatibility with the parameter, though some individual provider routes behind those listings silently ignored the bias values or rejected requests despite claiming to support them. Neither of the two largest labs offers the option at all: OpenAI’s current chat lineup returns an unsupported_parameter error whenever the field is sent, and Anthropic never built a comparable score-adjustment field into its own chat API.

Schmalbach built a blacklist of words that show up unusually often in AI-written text, converted them into token IDs, and applied a bias of negative 8 to each one. He ran eight AI-generated source articles through DeepSeek V4 Flash via OpenRouter twice each: once with no bias applied as a control, once with the blacklist active. The source articles contained 264 occurrences of the watched words combined. The biased rewrites still contained 180 of them, cutting the total by 84.

The suppression also reshaped more of the text than intended. Measuring shared five-word sequences between each source and its rewrite, the control versions averaged 0.982 overlap with the original wording, while the blacklist-active versions dropped to 0.896. Seven of the eight biased rewrites kept the original facts, names, and level of certainty intact. The eighth swapped an entity and dropped the hedge “appears,” turning a qualified claim into a flat assertion, a change with real stakes for a publication that cares about accuracy.

A separate grammar and clarity pass rated three of the eight biased rewrites as better than their sources, four as no worse, and one as worse: it mangled a clause reading “That detail matters because” into the ungrammatical “That details why.” After discarding any rewrite that changed meaning or degraded prose, six of the eight biased articles survived, against seven of eight controls.

Because GPT-5.6 Sol sits among the models without access to the score-based approach, Schmalbach tested a plain prompt blacklist on it instead, giving it a 93-word suppression list directly in the instructions. Across five paired articles, that list cut watched-word occurrences from 11 in the control outputs to just one in the experimental outputs. Two of those five experimental articles nonetheless dropped or altered information, while all five controls kept the source meaning intact, showing that moving the list into the prompt trades one failure mode for another rather than removing it.

Pushing the token-level penalty harder did not help either. Moving the bias from negative 4 to negative 12 did not reliably remove more watched words, and setting it to negative 100 banned the words outright but sent the model into a repetition loop until it exhausted its output.

The finding worth remembering is that word choice reflects how a model was trained and prompted, not a property that a decoding-time constraint can override. Teams trying to make AI copy read less mechanically should invest in system prompts, few-shot examples, or fine-tuning rather than token-level bans, and should budget review time for the grammar damage a hard suppression list can leave behind.

Vincent Schmalbach described these logit_bias experiments in a July 29, 2026 post on his site.