50美元,一个周末,让一个7B参数的AI模型写出了可以“以假乱真”的1995年微软技术文档风格。这听起来像是个科技怀旧派的行为艺术,但结果却让作者本人都惊了:训练得越“浅”、越“便宜”的模型,模仿得反而越真诚。

起因:一场对抗“AI味”的文艺复兴

在这个大模型动辄千亿参数、全民追逐最新前沿的时代,一位技术写作者却想开倒车。他的目标很纯粹:微调一个本地运行的指令模型,让它学会上世纪80、90年代老派技术文档那种结构清晰、用词严谨、带点古板却无比可靠的写作风格。

为什么?因为现在AI生成的文档,总带着一股标准化的“README味”,像工业流水线产品。而老文档,是带着“人”和“时代”烙印的手艺活。

挖掘“数字考古”宝藏:3700万字的训练素材

训练风格的第一步,是找到范本。作者盯上了一个叫 Bitsavers 的网站,这是一个致力于扫描和归档古老计算机手册和宣传册的“数字考古”圣地。

他选择了微软1977-2005年间绝版文档的集合,超过3700万字。用Python脚本清理格式,再花8美元用便宜模型过滤掉难以理解的段落。最终,他得到了近20万条训练样本。

这就像收集了一整座90年代微软图书馆的“墨香”,准备灌输给AI。

微调:一场与技术黑话和有限预算的搏斗

作者没几百万美元去从头训练一个模型,于是选择了“微调”——好比用拖船稍微改变一下巨型冰山的航向。他坦言自己并非专家,过程中充满了QLoRA、量化、LoRA适配器这些让人头晕的术语。

现实很骨感:在家搞大模型,要么费时间,要么烧钱,要么降低目标。为了这个周末项目,他以每小时6美元的价格在RunPod上租用了强大的云GPU。整个过程花了约50美元,还因为预算耗尽丢失了两个训练中的适配器——平台可不会留情面。

实验结果:便宜的小模型,反而成了“老戏骨”

作者用三个问题测试了训练好的模型:写malloc()函数文档、编造一个ConnectWifi()函数文档、以及用1990年代风格解释“REST API”这个2000年后的概念。

结果出现了戏剧性反转。

未经修改的现代模型,输出的是标准的Markdown README。而微调后的模型,则开始模仿出 “Synopsis”、“Return Value” 这样的古典章节结构。

虚构函数测试中,只有训练了3个周期的模型坚持住了人设,其他模型都忍不住“破功”,用内部知识打破了虚构。

最精彩的测试是用90年代风格写REST API。参数更大的Llama模型失败了,输出平淡。而一个7B参数的Qwen模型,经过在1990年代文档上的训练,其输出却惊人地像Windows 2000资源手册的开篇章节,风格迁移成功了

一个更有趣的发现适配器“秩”(rank)参数越低,模型模仿得越“执着”甚至“死板”,但更不容易穿帮。参数更灵活的适配器,反而更容易产生幻觉,摆脱范本的束缚。有时,“笨”一点的演员,演戏反而更投入。

启示与局限:它是个好替身,但不是好主角

这场实验证明,用特定时代风格的语料微调模型,确实能让它成为一个出色的风格模仿者。成本可控,效果显著,或许未来可以用于企业内部文档的风格审核,或辅助生成符合特定品牌调性的内容。

但作者也清醒地指出:微调只是给模型戴上了“面具”,它的内核——缺乏真正判断力——并未改变。 它无法替代人类技术作者对深度和上下文的理解。老文档之所以好,不仅因为格式,更因为在那个发布周期漫长、硬件资源有限的年代,作者被迫将深度和简洁推向了极致。

技术评论的要点是深度,不是文风。你需要的是理解和上下文,才能写出“往日那种文档”。任何LLM的把戏都无法让你免除这一点。

这场实验,更像是一次成功的“角色扮演”。它让我们怀念那个文档如磐石般可靠的时代,也让我们再次看清:AI是最好的模仿者,却依然不是深刻的思考者。 下一个挑战或许是:我们能否教会AI理解那些隐藏在简洁文字背后的、真正的“设计意图”?

【锐评】:用90年代的砖,砌AI时代的墙,结果发现最稳的砖,往往是最老实、最不“聪明”的那块。

参考链接:
https://passo.uno/fine-tuning-docs-llm/