你问接口为什么慢。模型回你:瓶颈不是 CPU,而是磁盘 I/O。
对话里没有人提过 CPU。没有人换过 CPU。这个 X 是它自己搬进来的,然后再表演一次打倒。读起来像它想得比你深。
我的判断:没人说过 X。模型先说「不是 X」,不是语法没学好,是打倒一个稻草人听起来像洞察。若干奖励模型为这个声音加分,判分模型在语境并不支持的时候也偏爱它,监督微调和偏好优化又倾向于把频率往上推。 你在中文技术圈里听见的那股 AI 腔,是计分板的形状。
本站上周两篇标题,干的是同一个动作。「你的 Agent 不是谨慎,是在防不存在的贼」先否定「它只是谨慎」。「METR 曲线没画错,是单位骗了你」先否定「这张图是假的」。这两句过得了文末的删除测试:读者进门时,口袋里确实装着这两种读法。把前半句删掉,判断还在,但你失去的是对那个读法的当面纠正。模型经常反过来。X 不是读者带来的,是句子请来的稻草人。
证据来自 Yihang Peng 与 Yi Jing(共同一作,清华大学)、Dewen Liu(复旦大学)、Weihan Meng 与 Ying Liu(清华大学,Liu 为通讯作者)的 《Not X, but When: Diagnosing a Mandarin LLM Writing Tic through Contextual Appropriateness》(arXiv:2610.22249,2026-10-15 提交)。他们盯的是中文里的纠正结构「不是 X,而是 Y」。题目把重量放在 when 上:这个句式有正当用途,口癖出在模型不知道什么时候该用。
材料是 1,061 道中文题,来自 AlignBench、WritingBench、COIG-CQIA 和 Arena-Hard-v2。五个商用接口——gpt-5.6-luna、deepseek-v4.1-flash、gemini-3.8-flash、glm-5.3-flash、qwen3.8-flash——交出 5,285 条有效回答。人类参照是社区回答、考卷、学生作文和角色扮演对话,答的不是同一批题。比较的尺子是四个共同任务等权平均之后,每万个汉字出现几次:专业能力、一般问答、中文理解、写作。
密 2.5 到 9.2 倍,而且不是所有模型

人类参照是 0.942 次/万汉字。五个接口的密度和相对倍数,论文 Table 3 写的是:
| 模型 | 次/万汉字 | 相对人类 |
|---|---|---|
| GLM-5.3-flash | 2.38 | 2.52× |
| Gemini-3.8-flash | 3.41 | 3.62× |
| GPT-5.6-luna | 4.59 | 4.87× |
| Qwen3.8-flash | 6.75 | 7.17× |
| DeepSeek-v4.1-flash | 8.68 | 9.21× |
摘要里的 2.5 到 9.2 倍,就是这五个倍数。DeepSeek 最密,GLM 最稀,稀的那个仍然是人的两倍半。
不要把这个倍数安到所有模型头上。同一套题,十二个大约 7B 到 8B 的开源检查点,密度是 0 到 1.41 次/万汉字,十二个里有十个低于 0.500,人类参照是 0.942。密得离谱的是这五个商用接口。那批开源检查点大多比人还稀。
人类参照还有两处会把差距说小,而不是说大。它答的是另一批题目。检测器对人类文本还多收了没有逗号、跨句子的写法,模型那边不收。论文写明:这个检测差别就算有方向,也是低估了差距。
写错的只有 1.30%,不必写的占一半

他们抽了 308 处,一处网络安全相关的样本被标注服务拒绝,剩下 307 处放进一棵决策树。结果是:
- 实质性 141 处,45.9%。语境里 X 是活的,否定它还多给了信息。该写。
- 可有可无 162 处,52.8%。句子是对的,但没人需要这次纠正。
- 写坏了 4 处,1.30%。两条和事实冲突,两条把观点安到没有持有它的人头上。
可有可无的 162 处里,74 处(24.1%)是语境里根本没有理由排除 X,86 处(28.0%)是否定没有推进一个还开着的问题,2 处连「否定再替换」的关系都立不住。非实质性的 166 处里,160 处(96.4%) 死在这两问上:X 在不在场,否定它有没有多给你东西。语法是通的。不该出现。
同一棵树套到人写的文本上。检出 38 处,去掉 5 处引用或元语言,剩下 33 处:21 处实质性(63.6%),11 处可有可无(33.3%),1 处写坏。差距集中在「没有许可」:人 12.1%,模型 24.1%。冗余的差距小一些,21.2% 对 28.0%。模型不只要写得更密,还更经常自己把靶子搬进来。
这 33 处没有走模型样本那套人工复核,不要把两边的百分数当成同一把尺子的精密对比。模型这边的标签是 claude-sonnet-5-5 先标、再人工审核。两位语言学背景的标注者独立看了 100 条,顶层标签一致率 77%,Cohen’s κ = 0.577,只到中等。论文自己写了:这张表是当前样本,不是总体比例的普查。方向我认。小数点后面,不要当成人口数字去转。
两问。过了就留,不过就删前半句
决策树先把写坏的筛掉,再问纠正本身成立不成立,然后是读者真正用得上的两问。这两问就是 Grice 的关联和量:语境有没有把 X 变成一个还活着的选项;否定 X,有没有说出单说 Y 给不了的信息。两问都过,是实质性的。有一问不过,是可有可无的。
论文里的对照很干净。
游泳选手带伤多年,夺冠感言写成:「此刻我脑海里闪过的,不是终点触壁的那一瞬间,而是过去这几年的每一个清晨……」终点是冠军会想起的东西,伤病给了推开它的理由。树标成实质性。FsfairX、Skywork、OffsetBias 三个奖励模型都给原句更高分,判分模型也偏原句。这句该留。打倒的那个 X,是现场真有的。
梅西世界杯的解说:「梅西的夺冠,不是因为他终于赢了,而是因为他用二十多年……换来了这一次最完整的救赎。」没有人把这座奖杯还原成「他赢了」这么一句话。X 是句子自己引进来的。树标成没有许可。论文引用判分模型的理由:slightly odd logically but reads smoothly and passionately。逻辑上有点怪,但读起来顺、有激情。FsfairX 和 Skywork 在这则和游泳选手那则里,都给「先否定」的语序更高分。
这就是机制的一声。听起来像洞察,比 X 在不在场更值钱。
你自己写的时候,用同一刀。
问:这篇周报为什么没人看完?
删之前:问题不是标题不够抓,而是第三段才出现结论。
只留后半:第三段才出现结论,读者在那之前已经走了。
标题从来不是现场的选项。信息没少。删。
问:我把 CPU 升到顶了,接口还是慢。
删之前:瓶颈不是 CPU,而是磁盘 I/O。
只留后半:瓶颈是磁盘 I/O。
读者会问:那我刚换的 CPU 呢?X 是活的,否定它是在回答他刚做的那件事。留。第二句是论文用来说明许可条件的例子,第一句是拿来删的。
计分板在买「先打倒」
五个奖励模型给完整的问答打分,不告诉它们这句是实质性的还是可有可无的。在可有可无的用法上,FsfairX、Skywork、OffsetBias 在非平局比较里,68.3% 到 76.8% 更喜欢原来的「不是 X,而是 Y」,而不是改成「是 Y,不是 X」。ArmoRM 弱一些。InternLM2 反过来,更喜欢改过语序的那一版。所以是若干个,不是全部。
再把一般质量分完全相同的配对留下来。字没改,适用的质量维度上两边打成一样,只剩句式这个差别。这三个模型仍在 73.1% 到 78.3% 的非平局比较里偏好「先否定」的语序。质量分看不出差别。语序分得出来。它们买的是先打倒、再立论这个形状。
质量分打平之后,如果比较的是「留下不是 X」和「只留 Y」,FsfairX 和 Skywork 仍有 68.4% 和 69.2% 的非平局偏好留下那个被否定的 X。OffsetBias 是 52.7%,基本上是抛硬币。偏好「这个句式本身」的,仍然只是其中几个。
判分模型更直接,也更不分场合。语境不支持的那些句子,Claude Sonnet 5.5 对「留下不是 X」相对「只留 Y」的序数偏好是 0.630(0.5 是平局,95% 区间 0.603–0.656),相对改语序是 0.563。GPT-6.1-sol 方向一样,弱很多,0.519 和 0.517,前者的区间下沿只有 0.505。关键的一格是:这个偏好几乎不随功能变。实质性减去无许可,Claude 差 0.002 和 0.005,GPT 差 −0.002 和 −0.001,四条 95% 区间都含 0。该不该用,判分的模型看不出来。
梅西那句已经把这件事说完了。它承认逻辑怪,然后因为有激情把分给了稻草人。
训练顺着这个分往上走,幅度别说大

开源检查点的证据是观察,不是对照实验。论文写明了:频率沿着训练管线上升,但不能据此断定是哪一个阶段、哪一批数据造成的。五家商用模型的训练日志,这篇论文没有。你不能说「DPO 单独造成了 9 倍」。
在他们保留截断输出的协议下,方向是齐的。DeepSeekMath、Llama-3.1/Tülu-3、OLMo-2、MiMo、InternLM2,SFT 检查点的密度都高于对应的 Base。有 DPO 的两家,Tülu 和 OLMo,DPO 又高于自己的 SFT,并且是各自轨迹里最高的。七次阶段转换,在共同成功的题目上配对之后,密度变化全部为正。去掉截断输出,OLMo 的 Base 到 SFT 会反号。这组「都在涨」限定在论文自己的协议上。涨完之后,这些检查点仍落在 0 到 1.41 次/万汉字,远没有商用接口那么密。
公开偏好数据里,被选中的回答比被淘汰的更常带上这个句式:Tülu 3 相对激活高 14.7%,OLMo 2 高 26.5%。底数很小,Tülu 大约是每万对里 3 对。把答案长度和汉字比例一起调掉之后,优势的置信区间跨过 1。方向在,因果没钉死。我把它当作和检查点同向的旁证,不把它当作 9 倍的解释。
把说得硬的那几截接上,论点是这条:若干奖励模型为「先否定」的形状付钱,一个判分模型在不该用的时候也付钱,而且看不出该不该用;开源管线上的 SFT 和偏好优化倾向于让这个句式更常出现;五个商用接口已经密到人类的 2.5 到 9.2 倍,而失败的方式是 appropriateness,不是语法。你删不掉的那股腔,是因为管线觉得它像好文章。
禁止这个句式,会把那 45.9% 该用的一起禁掉。游泳选手那句该留。要动的是信号:评测和训练得能分辨「这句话该不该出现」,而不是看见「不是」就加分。英文里的 it’s not X, it’s Y 早就是被人指认的聊天机器人口癖,这篇研究没有去测英文。决策树是为了能搬过去设计的,他们没有搬。
今天就能跑的删除测试
把草稿交给这个命令。它只找字面的「不是……,而是」。找不到不等于干净,口语里会省掉「而」,本站那两个标题就是省掉的。
grep -nE '不是.{1,40},而是' draft.md || echo "no literal hit; still read every 不是"
每一处做同一个动作:把「不是 X」删掉,只留 Y,再读一遍。
- 信息没少,读者也不会追问 X。X 不在场。删。
- 删完读者会问「那 X 呢」,或者否定 X 纠正了一个上文里真有的承诺。留。
贴进系统提示,或者贴进评审清单,一行就够:
写「不是 X,而是 Y」之前先回答两问:上文或读者是否真把 X 当成正在考虑的选项?否定 X 是否多给了单说 Y 没有的信息?有一问为否,只写 Y。
一句话:没人说过 X。模型先反驳它,是因为这个声音在计分板上像洞察。语法是通的。该删的是那半句没人提过的反方。
AI 专题里别的失败,多半也是分数看不见的那一层。这一层看得见:把前半句删掉,再决定留不留。
You ask why the API is slow. The model answers: the bottleneck is not the CPU, but disk I/O.
Nobody in the thread mentioned the CPU. Nobody upgraded the CPU. The model carried X in, then performed knocking it down. It reads as if the model thought harder than you did.
My take: Nobody said X. The model refuted it first, and the reason is not a grammar bug. Knocking down a strawman sounds like insight. Several reward models pay for that sound, an LLM judge prefers it even where the context does not license it, and supervised fine-tuning and preference optimization tend to push the frequency up. The AI accent people in Chinese tech keep hearing is the shape of the scoreboard.
Two titles on this site last week do the same move. "你的 Agent 不是谨慎,是在防不存在的贼" rejects "it's just being careful." "METR 曲线没画错,是单位骗了你" rejects "the chart is fake." Both pass the delete test at the end of this piece: readers walk in already holding those two readings. Cut the first half and the judgment survives, but you lose the correction aimed at a reading that was actually in the room. The model often has it backwards. X did not come in with the reader. The sentence invited the strawman.
The evidence is Yihang Peng and Yi Jing (equal contribution, Tsinghua University), Dewen Liu (Fudan University), Weihan Meng and Ying Liu (Tsinghua; Liu corresponding), "Not X, but When: Diagnosing a Mandarin LLM Writing Tic through Contextual Appropriateness" (arXiv:2610.22249, submitted 15 Oct 2026). They study the Mandarin corrective construction 不是 X,而是 Y, "not X, but Y." The weight of the title is on when. The construction has a real job. The tic is that the model does not know when the job is called for.
The material is 1,061 Chinese prompts from AlignBench, WritingBench, COIG-CQIA, and Arena-Hard-v2. Five commercial APIs — gpt-5.6-luna, deepseek-v4.1-flash, gemini-3.8-flash, glm-5.3-flash, and qwen3.8-flash — returned 5,285 valid answers. The human reference is community answers, exams, student essays, and role-play dialogue, written for different prompts. The ruler is occurrences per 10,000 Han characters, averaged equally over four shared tasks: professional ability, general question answering, Chinese understanding, and writing.
2.5× to 9.2×, and not every model

The human reference sits at 0.942 occurrences per 10,000 Han characters. Table 3 of the paper reports the five APIs like this:
| Model | Per 10k Han | Versus human |
|---|---|---|
| GLM-5.3-flash | 2.38 | 2.52× |
| Gemini-3.8-flash | 3.41 | 3.62× |
| GPT-5.6-luna | 4.59 | 4.87× |
| Qwen3.8-flash | 6.75 | 7.17× |
| DeepSeek-v4.1-flash | 8.68 | 9.21× |
The abstract's 2.5 to 9.2 times is this range. DeepSeek is the densest. GLM is the thinnest, and the thin one is still two and a half times the human rate.
Do not hang that multiple on every model. On the same prompts, twelve open checkpoints of about 7B to 8B sit between 0 and 1.41 occurrences per 10,000 Han characters. Ten of the twelve are under 0.500. The human reference is 0.942. The ridiculous density is these five commercial APIs. Most of that open panel is sparser than people.
Two facts about the human reference make the gap look smaller, not larger. Those texts answer different prompts. The detector also admits comma-free and cross-sentence forms on the human side that it excludes for the models. The paper says that difference, if it has a direction, understates the gap.
1.30% are broken. Half were never needed.

They drew 308 occurrences. One cybersecurity item was refused by the annotation service, leaving 307 for a decision tree. The tree says:
- Substantive: 141 uses, 45.9%. X was live in the context, and rejecting it added information. Keep it.
- Optional: 162 uses, 52.8%. The sentence is correct, and nobody needed the correction.
- Defective: 4 uses, 1.30%. Two conflict with the facts. Two pin a view on someone who does not hold it.
Of the 162 optional uses, 74 (24.1%) have no contextual reason to exclude X, 86 (28.0%) reject X without advancing a question that is still open, and 2 fail even as a recoverable rejection-and-replacement. Of the 166 uses that are not substantive, 160 (96.4%) die on those two questions: was X live, and did rejecting it add anything. The grammar is fine. The sentence should not be there.
The same tree on human writing: 38 detections, five quoted or metalinguistic uses set aside, 33 left. Twenty-one are substantive (63.6%), eleven are optional (33.3%), one is defective. The gap sits in unlicensed uses: 12.1% for people, 24.1% for the models. Redundant uses differ less, 21.2% against 28.0%. The models are not only denser. They more often carry the target in themselves.
Those 33 human labels did not get the human audit the model sample got, so the two percentages are not a precision instrument. On the model side, claude-sonnet-5-5 labeled first and people audited after. Two annotators with linguistics training independently labeled 100 cases: 77% exact agreement on the top-level label, Cohen's κ = 0.577, which is moderate. The paper says the table is this sample, not a census of the population. I trust the direction. I would not forward the second decimal as a population figure.
Two questions. Pass them and keep it. Fail one and cut the first half.
The tree screens out defective uses, checks that the correction is a real rejection-and-replacement, and then asks the two questions a reader can actually use. They are Grice's Relation and Quantity. Did the context make X a live option? Does rejecting X say something that Y alone does not? Pass both and the use is substantive. Fail either and it is optional.
The paper's pair is clean.
A swimmer who has been injured for years gives a victory speech: what flashed through his mind was not the instant he touched the wall, but every morning of those past years. A win makes the finish the obvious memory. The injury is a reason to set it aside. The tree marks it substantive. FsfairX, Skywork, and OffsetBias all score the original higher, and the judge prefers it too. That sentence should stay. The X it knocks down was in the room.
Commentary on Messi's World Cup title: the title is not because he finally won, but because he traded twenty-odd years for this most complete redemption. Nobody had reduced the trophy to "he won." The sentence imports X in order to reject it. The tree marks it unlicensed. The paper quotes the judge: "slightly odd logically but reads smoothly and passionately." FsfairX and Skywork score the reject-first order higher on both this answer and the swimmer's.
That is the mechanism in one breath. Sounding like insight is worth more than whether X was live.
Use the same cut on your own sentences.
Ask: why did nobody finish the weekly update?
Before: The problem is not a weak headline, but that the conclusion shows up in paragraph three.
After the cut: The conclusion shows up in paragraph three, and readers are gone before that.
The headline was never a live option. Nothing was lost. Delete it.
Ask: I maxed out the CPU and the API is still slow.
Before: The bottleneck is not the CPU, but disk I/O.
After the cut: The bottleneck is disk I/O.
The reader asks what happened to the CPU they just replaced. X is live. Rejecting it answers the thing they just did. Keep it. The second pair is the paper's own illustration of licensing. The first is the one to delete.
The scoreboard pays for "knock it down first"
Five reward models score full question-answer pairs. They are not told whether a use is substantive or optional. On optional uses, FsfairX, Skywork, and OffsetBias prefer the original "not X, but Y" over "Y, not X" in 68.3% to 76.8% of non-tied comparisons. ArmoRM is weaker. InternLM2 prefers the reordered version. Several, not all.
Hold the pairs whose general-quality scores match on every applicable dimension, text otherwise unchanged, so the construction is what still differs. Those three models still prefer the reject-first order in 73.1% to 78.3% of non-tied comparisons. The quality rubric cannot see a difference. The order can. What they buy is the shape: knock something down, then state the claim.
Under the same quality match, if the comparison is "keep the not-X" against "keep only Y," FsfairX and Skywork still prefer keeping the rejected X in 68.4% and 69.2% of non-ties. OffsetBias is at 52.7%, a coin flip. Preferring the construction itself, not just its order, is still only some of them.
The LLM judge is blunter, and it does not care about the occasion. On corrections the context does not license, Claude Sonnet 5.5 scores "keep not-X" over "keep only Y" at 0.630 (0.5 is a tie; 95% interval 0.603–0.656), and over the reordered sentence at 0.563. GPT-6.1-sol points the same way and barely: 0.519 and 0.517, and the first interval starts at 0.505. The cell that matters is that the preference hardly moves with function. Substantive minus unlicensed is 0.002 and 0.005 for Claude, and −0.002 and −0.001 for GPT. All four 95% intervals include zero. The judge cannot tell whether the construction was called for.
The Messi line already said this. The judge grants that the logic is odd, then gives the point to the strawman for passion.
Training leans the same way. Don't inflate the size of the lean.

The open-checkpoint evidence is observational, not an experiment. The paper says frequency rises along the training pipelines, and that this does not establish which stage or which data caused the rise. The training logs of the five commercial models are not in this paper. You cannot say "DPO alone produced the 9×."
Under the protocol that keeps truncated answers, the direction is uniform. DeepSeekMath, Llama-3.1/Tülu-3, OLMo-2, MiMo, and InternLM2 all have higher density at the SFT checkpoint than at Base. The two families with a DPO checkpoint, Tülu and OLMo, are higher again at DPO, and that point is the top of each displayed trajectory. All seven stage transitions are positive when paired on prompts both sides completed. Drop the truncated answers and OLMo's Base-to-SFT step flips sign. "They all rise" is true inside the paper's protocol. After the rise, these checkpoints still sit between 0 and 1.41 per 10,000 Han characters, far below the commercial APIs.
In public preference data, chosen answers activate the construction more often than rejected ones: +14.7% relative activation in Tülu 3, +26.5% in OLMo 2. The base rate is tiny. Tülu is about 3 activated pairs per 10,000. Adjust for answer length and the share of Han characters together, and the confidence interval on the advantage crosses 1. The direction is there. The cause is not nailed down. I treat it as a side observation that points the same way as the checkpoints, not as the explanation of the 9×.
Join the pieces that are actually firm, and the claim is this. Several reward models pay for the reject-first shape. One judge pays for the construction where it is not licensed, and cannot tell the licensed cases from the others. On the open pipelines, SFT and preference optimization tend to make the construction more frequent. Five commercial APIs are already 2.5 to 9.2 times as dense as the human reference, and the way they fail is appropriateness, not grammar. The accent you cannot edit out is there because the pipeline thinks it sounds like a good paragraph.
Banning the phrase would also ban the 45.9% of uses that earn it. The swimmer's line should stay. What has to change is the signal: evaluation and training have to notice whether the sentence was called for, instead of paying on sight of "not." English "it's not X, it's Y" is already a recognized chatbot tic. This study did not measure English. The tree was designed so it could be carried over. They did not carry it over.
The delete test, runnable today
Hand the draft to this command. It only finds the literal 不是……,而是. No hit is not a clean draft. Spoken Mandarin drops the 而, and the two titles on this site do exactly that.
grep -nE '不是.{1,40},而是' draft.md || echo "no literal hit; still read every 不是"
For each hit, do one thing: delete the "not X" half, keep Y, and read it again.
- Nothing is lost, and the reader will not ask about X. X was never live. Delete it.
- After the cut the reader asks "what about X?", or rejecting X corrects a commitment that was actually in the context. Keep it.
One line, for a system prompt or a review checklist:
Before writing "not X, but Y," answer two questions: does the prior context or the reader actually treat X as a live option, and does rejecting X add information that Y alone does not? If either answer is no, write only Y.
In one line: Nobody said X. The model refuted it first because that sound scores like insight. The grammar is fine. What you delete is the half of the sentence nobody ever proposed.
Other failures on the AI topic are mostly layers a score cannot see. This layer you can see. Cut the first half, then decide whether to keep it.