一个听起来很聪明的想法
网上流传过一种说法:既然大模型是按 token 收费的,那用文言文跟 AI 交流岂不是更划算?文言文惜字如金,同样的意思只要一半甚至三分之一的字数。字数少了,token 就少了,成本就低了。甚至有人更进一步,说让 AI 用文言文做思维链推理,整个推理过程的 token 消耗都会大幅降低。
这个想法乍一看非常有道理。但如果你读过上一篇文章《用中文问 AI 和用英文问 AI,效果一样吗?》,你应该已经隐约感觉到哪里不对了。
问题就出在那个关键的前提上:字数少了,token 就少了。
这个等式在现代汉语中大致成立(每个常用字通常是一个 token),但在文言文中就未必了。
· · ·
BPE 不认识文言文
《用中文问 AI 和用英文问 AI,效果一样吗?》我们讲过,BPE 算法构建词表的逻辑是纯粹的频率统计:在训练语料中出现频次越高的字符组合,越有可能被收录为一个独立的 token。
训练语料是什么?是从互联网上爬取的海量文本。网页、新闻、社交媒体、论文、代码、书籍。这些文本的绝大部分是现代语言。文言文在其中的占比微乎其微。
这就导致了一个直接的后果:文言文中很多常用的字和词组,在 BPE 的统计视角下其实是"低频字符"。
比如文言虚词"矣""焉""兮""乎""哉""耳""尔"。这些字在文言文中几乎每句必用,但在现代文本中极少出现。BPE 在构建词表的时候,面对的是以现代文本为主的语料,这些字的频率太低,可能不会被分配独立的 token 位置。
如果一个字没有独立的 token 位置,会怎样?它会被拆成更底层的 UTF-8 字节。一个汉字在 UTF-8 中占 3 个字节,如果这 3 个字节也没有被合并成一个 token(因为这个组合在语料中出现太少),那一个字就变成了两到三个 token。
于是出现了一个讽刺的结果:你精心写了一句简洁的文言文,字数确实比现代汉语少了一半。但其中好几个文言虚词每个都被 tokenizer 拆成了两三个 token。省下来的字数,被 tokenizer 的低效编码吃回去了。最终的 token 数量可能跟现代汉语差不多,甚至更多。
· · ·
即使真的省了 token,也是赔本买卖
退一步说,假设某个 tokenizer 对文言文的编码效率还行,文言文确实比现代汉语省了一些 token。这个"省"值得吗?
不值得。因为你省掉的是 token 数量,但损失的是理解质量。
《用中文问 AI 和用英文问 AI,效果一样吗?》文章的核心论点是:模型的能力来自于训练数据中的统计模式。它见过多少某种语言模式的样本,就对这种模式理解多深。
现代中文在训练数据中有海量的样本。模型见过无数种现代中文的表达方式、句式结构、词语搭配,所以它对现代中文的"直觉"很强。
文言文的样本少得可怜。模型可能见过一些《论语》《史记》的片段,但总量跟现代中文完全不在一个量级。这意味着模型对文言文的 token 模式非常不熟悉。它对"虽慧然行不谨"这句话中每个 token 之间的关系,远不如对"虽然他很聪明但做事不够谨慎"这句话理解得准确。
更关键的是,文言文中很多字的含义跟现代汉语完全不同。"走"在文言文中是"跑"的意思,"去"是"离开","汤"是"热水"。模型在现代汉语语料中学到的关于这些字的上下文模式,会直接干扰它对文言文的理解。这不是简单的"不熟悉",而是"学到了错误的关联"。
所以你省了一点 token 的成本,但得到了一个更差的回答。这笔账怎么算都亏。
· · ·
"让 AI 用文言文思考"是一个更深层的误解
有人走得更远:不只是用文言文提问,还要求 AI 用文言文输出思维链(Chain of Thought)。理由是文言文更精炼,思维链更短,推理成本更低。
这个想法背后有一个对 AI"思考"方式的根本性误解。
人类用精炼的语言思考,效率可能确实更高。一个数学家用符号推导比用自然语言叙述更快更准确。但大模型的"思考"跟人类完全不同。
模型的思维链就是一串 token 序列。每生成一个 token,它都在做一次"根据前面所有 token 预测下一个 token"的计算。每一步预测的准确率,直接取决于它对当前 token 模式的熟悉程度。
如果你强制模型用文言文生成思维链,它每一步都在一个不熟悉的 token 模式下做预测。每一步的准确率都比用现代汉语或英文时稍微低一点。而思维链的特点是:误差会累积。第一步的微小偏差会影响第二步的预测,第二步的偏差影响第三步,链条越长,累积误差越大。
就像在走钢丝。如果你穿着习惯的鞋子走(用熟悉的语言),每一步都很稳,走十步二十步问题不大。但如果你换了一双从没穿过的鞋子(用不熟悉的语言),每一步都稍微晃一点,走到第十步的时候偏差已经很大了。
实际测试的结果也印证了这一点。在复杂推理任务上,让模型用英文做思维链通常效果最好,用现代中文次之,用文言文最差。排序跟训练数据中各语言的占比基本一致。
· · ·
那文言文的精炼风格完全没用吗?
有一种场景下,文言文的精炼思路是有价值的:当你需要在有限的上下文窗口中塞进大量背景信息的时候。
大模型的上下文窗口按 token 计算。如果你有一大段背景材料要放进提示词里,用更精炼的方式压缩它确实能腾出更多空间。
但这里有一个重要的前提:你的压缩方式必须使用模型能够良好理解的词汇和句式。
"列举三个方案,每个包含优劣分析"和"试列三策,各陈利弊"表达的意思一样,后者字数更少。但前者用的是模型极为熟悉的现代中文模式,后者用的是模型不太熟悉的文言句式。省了几个 token 的空间,但增加了模型理解出错的风险。
所以可行的做法是:借鉴文言文的精炼精神,但不要用文言文的实际词汇和语法。用现代中文的词汇,把句子写得简洁紧凑,去掉不必要的修饰和过渡。这样既能减少 token 数量,又不损失模型的理解准确率。
比如,与其写"我现在想要请你帮我分析一下以下这段文字中存在的主要问题,并且给出你的修改建议",不如写"分析以下文字的问题并给出修改建议"。省了一半的 token,但每个词模型都非常熟悉,理解不会出偏差。
这才是真正有效的"省 token"策略:用模型最熟悉的语言,写最精炼的句子。不是换一种模型不熟悉的语言。
· · ·
回到那个根本性的认知
这个例子再次印证了《用中文问 AI 和用英文问 AI,效果一样吗?》文章的核心论点:你不能用人类对语言的直觉来推导模型层面的效率。
人类觉得文言文精炼,所以文言文"效率高"。但 BPE 算法不在乎精炼不精炼,它只在乎频率。模型也不在乎你的语言有多优美,它只在乎它在训练中对这种模式见过多少次。
Token 是统计的产物,不是语义的原子。这句话值得反复品味。它意味着,在 AI 的世界里,"好"的语言不是最精炼的语言,不是最优美的语言,而是在训练数据中出现最频繁的那种语言。
这个事实或许有些令人沮丧。但理解它,是避免被各种似是而非的"AI 使用技巧"误导的前提。

