天下苦 AI 味久矣。这话如今说出来,大概不会有人反对。打开任何一个信息流,都能看见同一副腔调:三段式排比、莫名其妙的加粗、把一切结论都包装成「这意味着」,结尾还要来一句「希望对你有帮助」。
「偷懒」是人类进步的源动力。我确实想写点东西,但从前写一篇要坐三四个小时,现在让模型起草,十分钟就能出一版。问题在于那一版实在不忍心发出去。它不太像人话,发出去是污染大家的 timeline,也白白增加读者的理解负担。
思来想去,决定给 AI 去去味儿。
味道出在句法上
最先想到的是列一张禁用词表。试过之后发现没用。那些词早就换过好几轮了,从「赋能」「抓手」换到「颗粒度」「对齐」;禁掉一批,很快又会有新的一批冒出来。
真正稳定的特征在句法层面。举几个我这几个月反复见到的:
- 先立一个读者并没有的误解,再把误解推翻。「真正的壁垒不是技术,而是认知」,可没有人说过壁垒是技术。
- 把该展开的关系压掉。写成「三条路,按侵入性从小到大」,读者要先还原一次才知道在数什么。
- 造缩写。「命中的那部分」缩成「命中段」,既不是通行术语,也没有在前文交代。
- 用交通隐喻讲抽象过程。「隔着几段路」「把这条路走一遍」,中文不这么说话。
这几条共同的来源是省字。模型在压缩 token,人写文章不按 token 计费。
先把自己的写法变成数字
既然要让它像我,先得知道「我」是什么。这件事靠感觉说不清,我自己的判断也不可靠。
于是把它变成可统计的东西。我把博客 2013 年到 2025 年的 405 篇文章存成一份语料,去掉代码、图片和链接地址,剩下 51.6 万个汉字,跑了一遍统计。
结果里有些数字是我事先没想到的。
平均句长 50.9 字,其中五十字以上的长句占三成三,十五字以内的短句不到百分之九。这和我对自己文风的印象不太一样,我一直觉得自己写得挺利落。
引号几乎全是直角引号「」。中文双引号在 51.6 万字里只出现十次左右。这一条我自己都没意识到,但它是最好认的一项,改稿时一眼就能看出来。
87.9% 的文章没有「总结」章节,写完就停。剩下那 12% 里有总结的,基本都是问答整理类的稿子,因为素材本来就是别人的话,需要自己再落一遍结论。
配图平均每篇 0.9 张,三分之二的文章完全没有图。有图的场合很固定:编译效果、报错界面、操作步骤。
统计之外,还得把原文读一遍。405 篇我没有逐篇读完,但每个体裁都抽了十几篇通读,看句子怎么起、段落怎么接、什么时候突然用一个短句。数字能告诉我平均句长五十字,读原文才知道那五十字是靠逗号、破折号和括号分层的,不是一口气写完。
最后我把结果整理成六层:语言、结构、选题、素材、认知框架、视觉。这六层里,前三层可以让模型照着写,后三层只能提示它立场在哪里。
数字复刻不了判断
第一版样本是我让它试写的,题目是 prefix cache 的命中率为什么换不来吞吐。数据、结构、句式都照做了,交到我手上还是不对。问题出在每一句话怎么选。
后来又改了四轮,每一轮挑出来的毛病都不一样,但把这些毛病追下去,指向的是同一个地方。
第一轮挑出来的是记账腔。稿子里有「它决定了这 1 GiB 最终记在谁头上」,还有「这一点在第三节会变成一笔很难看的账」。用记账的词讲性能,读者会以为在谈钱。
第二轮挑出来的是假想误解。稿子里写「容器能看到的 CPU 是三个不同的东西,混在一起就会得出错误结论」。后半句在替读者预防一个没有人犯过的错,把它删掉,前半句照样成立。
第三轮挑出来的是缩写和压缩。稿子里有「命中段」,有「三条路,按侵入性从小到大」,还有「线程池开到 64,实际执行宽度只有 2」。最后那句里的「执行宽度」是英文 execution width 的直译,中文没有这个说法。
第四轮挑出来的是断句。稿子里有一句「P99 还抖得厉害」,六个字,主语加形容词,前面没有给出观察角度。中文会写成「从延迟曲线上看,P99 也会大幅抖动」。
四轮下来,我归纳出一条总纲:不够省才是对的。把关系说全,观察角度给出来,指代说清楚,该展开的展开。
把批评变成规则
只有 DNA 还不够。DNA 告诉我写成什么样,没告诉我改的时候往哪个方向改,而我下次未必还记得这四轮里揪出来的细节。
所以我把每一轮的批评写成一条规则,一共十七条。每条要有两样东西:一个能定位的触发标记,一个最小改法。
记账腔的触发标记是「账」「台账」「算账」「记在谁头上」出现在非财务语境里。假想误解的标记是陈述之后追加「否则就会怎样」,而原文里并没有人提出过那个误解。压缩拆成四种:主谓补结构的紧凑断句、计数型缩写、英文概念直译,以及省掉施事的判断句。
写成规则的好处是可验收。改完一段可以逐条对照,指不出对应规则的改动就是改多了;反过来,找得到的毛病也终于有了名字。
它现在能干什么
按这套东西写出来的稿子,句式、结构、判断顺序都对了。最后那篇讲容器里 nproc 为什么报出宿主机核数的文章,前后改了五轮,我才点头。
做不到的地方也清楚:写不出我没有经历过的事。它可以把我踩过的坑写成我的语气,但没踩过的坑,它会编。数据也一样,让它写实测,它会给出一个看起来合理的数字,我得自己回去核对。
想用可以去拿
代码和规则都放在 GitHub 上:Liam0205/skills。
里面是三个独立的 skill,可以只装一个:
liam-page-writing:这次蒸馏出来的结果,五份分析产物加 405 篇原文语料。动笔之前会先读产物,再从语料里挑五篇同体裁的原文通读。less-ai-tone:十七条清理规则,不依赖任何语料,单篇文章也能用。writing-dna:蒸馏方法论本身。想给自己或者别人的文章做同样的分析,用的是这一套。
安装两步:
1 | git clone https://github.com/Liam0205/skills.git |
--target 换成 hermes 或 codex,装到对应的目录。默认用软链接,改仓库里的文件立刻生效,方便迭代。
用起来就一句话:让它按某个人的文风写,或者把一段稿子丢过去要求清掉 AI 痕迹。前者要读语料,慢一些;后者快很多。
规则和脚本是 MIT 许可。语料目录里的文章版权归我,只授权阅读和风格分析,不授权转载。
还有一点要说清楚:这套东西对语料的依赖很重。liam-page-writing 之所以能写到七八分像,是因为它在动笔前读了几百篇原文。换成没有语料的场合,它的效果就退回到 less-ai-tone 那一层,管的是句子,管不到是谁的口吻。
「偷懒」在这里的算法是:一次性把风格拆到规则级别,换来以后每篇少改几轮。头一回花的时间远比自己写要多,从第二篇开始,省下来的时间才超过这笔投入。
规则能管住怎么说,管不住说什么。写什么这件事,还是得自己来。