一、续笔十年,未曾写过一句自己的话

翰林院下设一个小衙门,叫观文堂。编制三十人,干的活说出来都不太好意思——"代笔"。

不是代笔写文章。是续写。某位大人上折子写了上半段,下面不知道怎么接了,把稿子丢到观文堂来。观文堂的笔帖式负责往下续——续出来得跟那位大人亲笔写的一样口气、一样用词、一样立场,前后浑然一体,像同一个人一口气写完的。

观文堂的掌班叫沈续之,在这间屋子里坐了二十二年。他续过的折子不下三百万件。六部的、各直省的、都察院的、内务府的——什么样的公文他没见过?

"沈师傅续的折子,摘了落款你分不清是谁写的。"这是翰林院流传最广的一句评价。

今年开春,观文堂来了个新差事,把所有人都难住了。

不是续折子。是续——"所有东西"。

二、天底下的文字,没有它收不了的尾

新来的掌院学士姓谭,是个有想法的人。他翻了一遍观文堂二十年的存档,发现了一件事:沈续之续折子只需看三行。

"三行?"谭学士把沈续之叫来,"你只看三行,就知道后面该写什么?"

"用不了三行。"沈续之低头站着,"有时候看一行就够了。"

"那你给我续一个。"谭学士从桌案上随手抽了张纸,念了十二个字:

"'臣闻治天下者,当以民为本,以——'"

"以教化为先。"沈续之脱口而出。

谭学士愣了片刻。他把那张纸翻过来——他念的确实是原件的前半句,而原件的后半句正是"以教化为先"。沈续之根本没看过原件。

"这不是猜的,"谭学士放下纸,"你脑子里,是怎么出来的这四个字?"

"回学士——'臣闻治天下者,当以民为本'这个开头,下官见过至少六万次。这六万次里,后面跟'以教化为先'的占了两万七千次,跟'以法度为纪'的占了一万四千次,跟其他说法的加起来不到两万次。"

"如果前头是'臣闻治天下者,当以民为本,以教化为先,则——'呢?"

"后面的'则'字,十个里有八个跟'天下'——'则天下幸甚'、'则天下安定'、'则天下归心'。"

谭学士放下茶盏,来回踱了六七步。

"沈续之,你知不知道为什么我把你叫来?"

"下官不知。"

"我要你把观文堂改成另一个东西——不续折子了。续天底下所有的东西。"

三、续诗、续判、续药方、续墓志

谭学士办了一个"万文馆"——从六部衙门、各省督抚衙门、各地府州县,调来了过去一百八十年间的所有公文存档。加上国子监的课卷、太医院的医案、刑部的判词、礼部的祭文、翰林院自存的诗赋词章——摞起来有一千二百万件。

"你要什么有什么。"谭学士指着那堆积如山的文档,"我要你做一件事:把这一千二百万件全读一遍——哦不,不是读。是当成'上半段',然后往下续。"

全观文堂三十个人,花了整整一年半。把这堆纸一页一页录下来。每看到前文,就试着往下续——续完跟原文对照,看对不对。

三年后。观文堂变成了一个没人见过的怪物。

礼部来了个人,拿着一张新拟的祭天祝文,只写了开头六句。丢进观文堂。一顿饭的工夫,续出了后十二句——骈四俪六,庄重典丽,天地祖宗该用的词一个不落。

太医院来了个老御医,拿了一本残缺的《伤寒论》古抄本——中间蛀掉了一大段,竹简上的字全糊了。老御医自己琢磨了半年没补出来。丢给观文堂。观文堂的人看了前一句和残留的零星笔画,结合前后文,把蛀掉的那段补了七句。老御医拿去跟另一家藏本一对——七句对了六句,剩下一句虽然字不同,药性方向毫无二致。

最离谱的是刑部。一个案子两造各执一词,证词前后矛盾,审了半年审不清。有人突发奇想——把双方的诉状和证人证词都丢给观文堂,让"续"一个判词出来。观文堂出了一篇。刑部老尚书看了半天,说了一句:"这判词若是真堂官写的,本官服。"

沈续之的名声传遍了六部。但没人知道他续这些的时候在想什么。

四、从不问"真的假的",只管"顺不顺"

新来的学徒崔和有一天问了个没人敢问的问题。

"沈师傅,您续药方的时候——懂医术吗?"

"不懂。"

"续判词的时候——读过《大清律例》吗?"

"翻过几页,但记不全。"

"那续祭天祝文呢?您又不是礼官,您怎么知道天地祖宗跟前该说什么?"

沈续之放下笔。

"因为我不是在'写'。我只是在往下续。"

"续和写有区别?"

"写,你得知道你要说什么。续——你只需要知道,话说到这儿,下一个字最可能是哪一个。"

他拿过崔和桌上的半张纸,是某位侍郎留下的折子残稿。

"'伏念臣一介寒儒,蒙圣恩简拔,系列——'"

"'卿贰。'"沈续之把笔补上,"我不是因为'卿贰'是什么意思才写的。是因为在六万封类似的谢恩折里,'系列'后面跟的最多的那个词就是'卿贰'。我不知道它是几品官、干什么的。但我知道它该出现在这里。"

崔和听得后背发凉。

"所以您续这些东西的时候,心里没有任何'知识'?"

"也可以说有。但那个知识不是——'地球是圆的'、'药性是温的'——那样的知识。是另一种:见过太多次,就到了骨子里。你不需要'知道'它,你已经'是'它了。"

崔和想了很久。

"那要是一样东西您从来没在旧档里见过呢?比如洋人新发明的蒸汽……机?"

"那就续不好。没见过,不知道它跟什么词挨着。硬续的话——只能蒙一把。蒙中了算运气,蒙不中就是笑话。"

沈续之顿了顿:"所以我们有个铁规矩——续出来的东西,必须给行家看过。续药方请教御医,续判词请教刑部。我们只负责把'该续什么'这个事做好。对不对,那是行家的事。"

崔和终于懂了。观文堂这帮人的功夫,不是"什么都懂"。是"看过了太多"——以至于任何一句话开了头,他们都能接上。

那天傍晚,沈续之临走前又跟崔和说了一句。

"天底下的字,没有一个字是凭空冒出来的。每一个字的后面,都跟着它最可能的下一个字。二十二年——我不过是在这堆纸里,认清了它们一个牵一个的脾气。"

五、一个字,一个字,往下走

谭学士到晚年,有人问起观文堂。

"这间屋子里的东西,到底算什么?会写文章?会断案子?会治病?"

谭学士摇了摇头。

"都不是。它一样也不会。它只会一件事:你给它一截话,它告诉你,下一个字最可能是哪个。然后它把这个字接上去——再把它自己刚接的这个字也当成上文的一部分,继续猜下一个字。"

"它就是这样,一个字、一个字、一个字——走完一整段路。"

来人愣了半天:"就这?就靠猜下一个字,就能续出祭天祝文、补出医书、断出案来?"

"能。只要它见过的东西足够多。"

谭学士端起茶,透过窗子望着院子里那棵老槐树。

"抄书万卷,无师自通。续笔一字,天下无穷。"

技术解读

自回归语言建模(Autoregressive Language Modeling)是 GPT 系列大语言模型的底层训练范式——简单来说,就是教一个模型"根据上文预测下一个词"。

这个想法可以追溯到 Shannon(1948)的信息论,但真正把它变成工程现实的是 Transformer(Vaswani et al., 2017)和 GPT(Radford et al., 2018)。GPT 的核心理念有一种极致的简洁:取一段文本,用前面的 token 预测后面的 token,把这个"预测下一个词"的任务在上万亿 token 的语料上反复训练。训练完成后,你只需给模型一个开头——它就会一个字一个字地接着往下写。预训练阶段学到的不是某个具体领域的知识,而是语言本身最深层的统计规律:一个词后面,全人类最常接哪一个词。

核心概念回顾

概念 通俗解释
自回归(Autoregressive) 生成每个新 token 时,把之前生成的所有 token 都当作上下文输入,一个接一个串行生成
下一个 token 预测(Next Token Prediction) 预训练的终极简单目标:给定前文,猜下一个 token。猜对了就加强,猜错了就修正
交叉熵损失(Cross-Entropy Loss) 衡量模型预测的概率分布与真实 token 之间的差距。训练目标就是最小化这个损失
因果注意力掩码(Causal Mask) Transformer 中的下三角矩阵,确保每个 token 只能看到它"之前"的 token,不能作弊看后面的
最大似然估计(MLE) 让模型最大化看到真实训练数据的概率——"让自己更有可能写出训练集中出现过的文本"
复杂度(Perplexity) 衡量语言模型好坏的指标:模型对文本"不确定"的程度。越低越好,等于交叉熵的指数
预训练语料规模 现代 LLM 的训练数据量级:从 GPT-3 的 300B token 到 LLaMA 2 的 2T,再到 GPT-4 的估计十余万亿
教师强制(Teacher Forcing) 训练时,每一步的"上文"用的是真实文本而非模型自己的预测——这样才能并行训练
涌现(Emergence) 大量能力不是被专门训练的,而是在"预测下一个词"这个看似简单的任务中,随着模型和数据的规模增长自然出现的
文本延续(Text Continuation) 与"指令遵循"相对:原始 GPT 只会续写,不会"问答"。后来的 RLHF 和指令微调才教它学会对话

故事中的隐喻对照

故事元素 映射的技术概念 解释
观文堂(续折子的小衙门) GPT 预训练模型 一群"只会续写"的人,但续得足够多之后,续写本身就是一种智慧
沈续之(掌班) 训练好的 LLM(如 GPT-3) 看了太多文本后能自动预测下一个字,不需要理解领域知识
"只看三行就知道后面" 下一个 token 预测 模型的核心能力就是根据前文推测最可能的后续
一千二百万件存档 预训练语料 模型见过的所有文本数据。越多→越准
"六万次里两万七千次跟了这个" token 概率分布 模型为每个可能的后续 token 分配一个概率——它不是一个确定性答案,而是一个概率向量
续祭天祝文 在特定风格/语体上续写 预训练模型学到了不同文体和语域的分布,可以通过提示切换到对应风格
续《伤寒论》(蛀掉的段落) 补全/填空能力 在足够多的类似文本上训练后,模型能推断出缺失部分最可能的文本
续判词(刑部案件) 带有推理特征的续写 在大量判词文书上训练后,模型续写出符合裁判文书模式的文本
"不懂医术、不懂律例——只是往下续" 语言模型学的是统计规律,不是真知识 模型没有"理解"——它只是极其擅长估计条件概率 P(下一个词
"没见过的东西续不好" 分布外(OOD)泛化能力弱 模型在训练分布之外的输入上表现不可靠
"必须给行家看过" 人工审核 / 对齐 预训练模型的输出需要经过专家验证或后续对齐,不能直接用于高风险决策
"一个字一个字往下走" 自回归解码 每次生成一个 token,然后把这个 token 加入上下文,继续生成下一个
"抄书万卷,无师自通" 涌现能力 大量能力不是在直接监督下学会的,而是在足够大的规模和语料上自然涌现的

为什么这个故事对应预训练 / 下一个词预测?

  1. "预测下一个词"是 LLM 唯一的预训练任务。 GPT 系列不做情感分析、不做文本分类、不做问答——预训练阶段只做一件事:给定上文,猜下文。这个任务简单到可以在任何文本上运行——不需要人工标注。沈续之二十二年只"续"不"写",正是这个逻辑。

  2. "只看三行"体现的是上下文中的条件概率。 语言模型做的事情本质上是估计 P(w_t | w_1, w_2, ..., w_{t-1})——给定前文,下一个 token 的条件概率。沈续之看到六万次"以民为本"后面跟的分布,就是这一条件概率的直觉版本。

  3. 续药方、续判词、续祭文的多样性,展示了"预测下一个词"作为统一界面(Universal Interface)的能力。 不管输入的"前文"是药方、判词还是祝文——模型都用同一个机制来处理:条件概率。这使得单个模型可以覆盖无限多种任务——只要你能把任务"重写"为续写的形式。

  4. "没见过的东西续不好"指出了预训练的根本局限。 语言模型只学到训练分布中的统计规律。面对训练数据中从未出现或极少出现的内容(新概念、新词汇、事实性的零样本问题),模型要么猜错,要么产生幻觉。

  5. "一个字一个字走完一整段路"是自回归生成的精确写照。 推理时,模型先根据输入 prompt 预测第一个 token,然后把预测出的 token 拼回上下文,再预测第二个……如此循环。这个串行过程既是强大之处(每一步都有完整的上下文),也是效率瓶颈(不能一次性并行生成整个序列)。

  6. 涌现是预训练最令人惊叹的现象。 "抄书万卷,无师自通"——GPT-3 的论文标题叫"Language Models are Few-Shot Learners",发现 175B 参数的模型不需要专门的训练就能做翻译、问答、算术等任务——而这些能力从未被显式训练过。它们是从"预测下一个词"这个唯一的目标中涌现出来的。

后记:预训练的美感在于它的极致简约。你不需要教模型什么是语法、什么是逻辑、什么是事实——你只需要给它看足够多的文本,让它反复做一件事:猜下一个字。猜久了,语法自然就渗透进了每一层权重;猜久了,事实自然就凝结在了某个注意力头里;猜久了,连推理的路径都藏在了字与字的牵连之中。沈续之在观文堂坐了二十二年,他续过的每一个字都在告诉他——世间一切文字,不过是上一个字牵着下一个字,从开头走到结尾。所有的智慧,都埋在这"下一个字"里。