如果你最近用过带“深度思考”开关的国产大模型,大概率见过这么一幕:明明用中文提问,界面里先蹦出来一长串英文,像是一个人在脑子里打草稿,最后回答倒是规规矩矩的中文。我一开始以为自己按错了输入法,后来在好几个模型的思考框里都看到同样的情况,才意识到这压根不是偶然。这篇文章想聊的就是这件事:为什么国产 AI 一开始思考,就突然说英语了?
先说一段我自己实测时看到的画面。当时我拿了一道普通的数学题投给某国产大模型,题面是中文,结果思考过程长这样:
用户问的是打八折后再满减,最终需要付多少钱。 Let me think step by step. 0.8 * 25 = 20. Then apply the coupon: 20 - 10 = 10. 所以最后应该是 10 元。第一行中文,中间一大段英文,结尾又切回中文。我把这个截图发到群里,结果不少人都遇到过类似情况,有人甚至说它的模型连“中午吃什么”这种问题都用英文先想一通。这就很有意思了:一个中国团队训练的模型,中文能力明明很强,为什么一到“思考”环节就自动切英文?
1. 一个让人反复围观的现象:中文发问,英文打草稿
1.1 我在一次实测里看到的“草稿纸”
这种“中英混搭”的思考过程,在最近一年的大模型产品里越来越常见。尤其是那些加了“深度思考”“o系列模式”“推理增强”开关的国产模型,你点开思考过程,经常能刷出满屏的英文。
我举两个自己遇到过的例子。
第一个是逻辑题:“三个连续自然数之和是 36,求中间那个数。”模型思考过程大概是:
Let x be the middle number. Then (x-1) + x + (x+1) = 36. 3x = 36. x = 12.全英文,没有一句中文。最后给我的回答是“中间数是 12”,用中文答得干净利落。
第二个例子更夸张。我让它用“菜市场杀鱼大叔的口吻”介绍一个科学概念,这种明显带地域语言色彩的问题,它的思考过程前半段还是“用户想要一个 street-vendor tone,需要先 explain the concept in simple words”,后面才慢慢切回中文语境。虽然最终效果不错,但那种“先想英文、再翻译成中文”的感觉非常明显。
1.2 为什么这件事会变成大家讨论的焦点
关键在于:以前我们不怎么看得到模型的思考过程。
早一两年的对话模型,回答是直接生成的,中间那个“推理”过程藏在模型内部,用户根本看不见。现在各家模型为了展示推理能力,把思考过程单独做成一个可展开的区域,还会用“已深度思考”之类的标识提示你。于是,模型“思考时的语言偏好”就第一次暴露在了普通用户面前。
想象力丰富的人马上就开始编段子。有人说“这模型上课一定是在国外上的”,有人说“原来 AI 内心住着一个外国人”,还有人怀疑是不是国内团队为了省事,直接套了个英文底模,再在表面加了一层中文。
最后这种猜测其实是误解。今天的大模型普遍是多语言训练出来的,不存在“中文版外壳”和“英文版内核”这种物理隔离。但误解归误解,这个现象本身是真实存在且相当普遍的。我们需要回答的问题是:模型在准备“推理”时,为什么概率上更偏向英文?
2. 拆开看:英文思考是训练数据、分词效率和强化学习一起喂出来的
2.1 训练语料是第一个“惯犯”
大模型预训练阶段见过的文本里,逻辑推理、数学证明、代码解释这一类“高质量思考内容”,绝大多数是英文。
你去看那些常见的推理类公开数据集,比如数学题 GSM8K、MATH,还有各种代码逻辑题,题目和答案的英文占比非常高。哪怕是中文团队自己整理的数据,里面也经常混着大段英文技术文档、英文论坛帖子、英文论文摘要。GitHub 上的 issue 和 Stack Overflow 的回答,更是英文占绝对主导。
模型学习“如何推理”,靠的不是专门有人教它“中文推理应该怎么说”,而是它从海量文本里自行归纳出规律:当一串逻辑链条很长、经常出现“therefore”“because”“if”这些连接词的时候,这段文本更像一份“高质量的技术推导”。于是,当模型进入多步思考状态,它潜意识里就觉得,英文是更适合干这事的语言。
你可以把这种效应想象成一个从小用英文教材学编程的人。他日常说中文没问题,但只要一讨论代码逻辑,脑子里冒出来的术语、关键字、注释习惯全是英文的。模型没有“母语”意识,但它有统计规律,而统计规律恰恰向英文倾斜。
2.2 分词效率在背后推了一把
第二个原因藏在模型处理文本的方式里。
大模型看到的不是完整句子,而是一个个被切开的 token。不同语言在同一个小模型词表里的“价格”不一样。一个常见的英文单词,比如“think”“then”“if”,可能各自只占一个 token;而同样的中文意思“思考”“然后”“如果”,在中文分词表里可能占更多 token,或者是多个字符拼在一起。
对模型来说,生成多少个 token 是要付出计算代价的。在同样的推理目标下,如果“用英文思考”能用更少的 token 完成一整段逻辑,模型会更倾向于走这条更“省力”的路径。尤其在做数学题和代码题时,英文单词和数学符号天然混在一起,比如“Let x be...”“Then compute...”,这种表达在预训练语料里大量出现,模型预测起来非常顺手。
中文当然也能承载完整推理,但成本上不占优势。有人做过对比,同样长度的逻辑推导,英文 token 数经常比中文少三分之一甚至更多。这对追求效率和稳定性的生成过程来说,是一个很现实的选择偏向。
2.3 推理强化学习进一步固定了这种偏好
近一年多,国产模型纷纷引入“推理强化学习”,也就是让模型在大量试错里学会长链条思考。这个过程里,模型做出的每一次推理都会被打分,分数高的行为被保留,分数低的行为被淘汰。
问题在于,打分的标准从哪来?很多评分参考数据本身又是英文为主的。一份用英文写成的严谨推导,在读起来更“规范”、更像标准答案,于是得分往往更高。模型在反复迭代里逐渐悟出一个规律:用英文列步骤,更容易获得高分。久而久之,英文思考成了一种默认策略。
这不是哪个团队故意设计的,而是强化学习的数据分布造成的“意外收获”。你让它放开思考,它自己找到了一条最容易被认可的路径,只不过这条路恰好是英文。
3. 为什么“想”的时候用英文,“说”的时候又切回中文?
3.1 思维链和最终回答是两条生产线
很多人会疑惑一个点:既然模型已经习惯用英文思考,那它最后为什么还能精准切回中文回答?难道它每答完一题还要做一次翻译?
其实这背后不是翻译,而是生成链条的两端受着不同力量的约束。
思维链部分,更像是模型的“自由发挥区”。在预训练和推理强化学习阶段,模型发现用英文在这个区域做逻辑推演更稳、更省事,于是它按统计规律走,中英夹杂也好,纯英文也罢,只要推理结果正确,系统不会过多干涉。
但最终回答部分是“对齐重灾区”。模型在后期微调的时候,大量数据都要求它“用用户提问的语言来回答”。你问中文,它就被强化学习训练成回答中文;你问英文,它就用英文回。这个对齐约束覆盖得很彻底,所以哪怕模型脑子里已经绕了一圈英文,最后开口时还是会把自己拉回中文轨道。
你可以把这个过程理解成一个人写会议纪要:私下构思的时候,脑子里可能先用英文把逻辑理一遍,但正式落到文档上,他会按场合重新组织语言,确保读者看得懂。模型也一样。
3.2 一个很贴切的类比:脑子里算账,嘴上说中文
这个现象在双语使用者里非常常见。一个在国内长大、后来用英文工作的人,他和家人聊天用中文,一到计算月供、回忆代码逻辑时,脑子里跳出来的数字和术语反而全是英文。这个不是故意装,而是那座“知识仓库”当初就是用英文建的,调用起来更顺。
模型也是这样。它脑子里的“推理仓库”,大量内容就是英文符号和英文句式堆起来的。中文常用语料更偏生活习惯、情感表达、日常交流,这些内容也存在于模型里,但和“逻辑推演”相关的那部分,英文占比实在太高了。
所以更准确的说法是:模型不是“崇洋媚外”,它的思考语言和任务类型强相关。让它写一首古风歌词,你往往会看到中文思考;让它算一道概率题或写一段递归代码,英文思考的概率就暴涨。语言不是模型身份的标志,而是它检索知识时最方便的钥匙。
4. 英文思考不是洪水猛兽,真正的坑在别处
4.1 数学和代码场景,英文思考反而更利索
我实测过一些数学题和编程题,中文思考和英文思考的最终答案准确率其实差不多,但英文思考有个明显优势:步骤更精简,中间不容易跑偏。
中文思考经常会出现“首先,我们设中间数为 x。接着,根据题意列出方程”这种仪式感很强的叙述,语句更长,占用的注意力也更多。英文思考则是“Let x be...”“Then...”“Thus...”,直接跳到关键步骤,整个链路更紧凑。
对模型来说,更短的推理链路意味着更小的出错概率。所以在数学、物理、代码这些高度形式化的任务里,我其实不太反对它用英文思考。反正用户看到的是最终中文答案,内部草稿怎么写,对大多数人不重要。
4.2 中文写作和文化类任务,用英文思考就“够不着”
但换到需要中文语言功底的任务,情况就反过来了。
我试过让模型写一副对联、模仿《故事会》风格讲一个小故事,或者用方言味道很浓的语气写一段开场白。如果它强行用英文思考,最后出来的文字经常“有骨架没血肉”,用词偏书面,节奏不对,连成语都用得像翻译软件硬凑出来的。
原因很简单:英文词汇体系里本身就没有对联的平仄规则、没有“话本小说”的语气套路,更没有地方俗语的微妙含义。模型用英文思考,相当于绕远了路,还得把中文美感一点点“翻译”回中文,丢失大量细节。
这类任务你只要在提示词里加一句“请用中文思考”,生成质量立刻上一个台阶,措辞也更自然。所以不是“英文思考一直差”,而是要看任务在哪个文化语境里生长。
4.3 真正容易踩坑的是格式和稳定性
比起“思考语言”本身,我觉得大家更该关注的是它带来的副作用。
一是格式漂移。模型在英文思考过程中,可能会把一些英文关键词、变量名、JSON 字段名带进最终输出,尤其是在代码生成和结构化输出任务里。比如你要求它只返回一个 JSON 对象,结果它因为思考时用了英文,输出里也混进了奇怪的字段命名,或者把中文内容套进英文句式的模板里,解析时容易出问题。
二是调用的稳定性。如果你在做应用开发,把思考过程放在服务端展示给用户,用户可能搞不清“为什么我的问题只有一半是中文”。你要么直接隐藏思考过程,要么用提示词约束思考语言,把它变成一个可控输入。
我整理了一个简单的对比表,方便你判断什么时候值得干预:
| 任务类型 | 常见思考语言 | 对最终答案的影响 | 建议 |
|---|---|---|---|
| 数学题、物理题、逻辑题 | 英文为主 | 影响不大,准确率持平 | 不用刻意干预 |
| 编程、代码调试 | 英文为主 | 正常,甚至更高效 | 不用刻意干预 |
| 中文写作、文案、诗词 | 中文占优 | 明显影响文风 | 强制中文思考 |
| 多语言翻译 | 取决于源语言 | 容易产生“翻译腔” | 按目标语言约束 |
| JSON/结构化输出 | 中英混杂 | 可能产生格式错乱 | 在提示词里固定输出模板 |
5. 想让模型“用中文思考”的几种尝试
5.1 提示词层面的“口头约定”
最直接的办法,就是在提问时加一句约束,比如“请用中文进行思考,再给中文回答”。这个不是玄学,实测下来很多模型都会听。
我试过一个方法:把这句话放在问题后面而不是前面,效果更稳定。比如:
帮我算一下这个双十一的优惠规则:原价 399 元,满 300 减 50,充值金抵扣 0.9 折,最后花多少钱?请先用中文思考并推理,然后用中文回答。只要模型看到了明确的语言约束,它的思考过程就会明显偏向中文,哪怕中途偶尔蹦几个英文单词,整体结构也是中文为主。
对一部分模型来说,这种方法几乎百分之百有效。但也有模型会在思考到后半段时“忘掉”你的约束,重新滑回英文。这种情况建议把语言要求重复一遍,或者在系统提示词里固定住。
5.2 在 API 侧做语言锁定
如果你是开发者,在调 API 的时候可以往系统提示词里写清楚:
你是一个中文助手。所有内部推理、思维链和最终回答都必须使用中文,除非用户明确要求使用其他语言。把这条写进系统提示词,要比临时在用户输入里加约束稳定得多。实测来看,系统提示词的优先级更高,模型在整段对话里都会更配合。
还有一招更实用:如果你不需要向用户展示思考过程,直接在服务端把思维链内容过滤掉,只把最终结果返回给用户。很多提供“思考模式”的开放接口,返回体里会有专门放思维链的字段,你可以不传给前端,这样用户既不会被满屏英文吓到,也节约了展示成本。
如果项目里确实需要展示思考过程,又不想让用户看到英文,可以加一个后处理步骤:把截取到的思维链文本再丢给模型,让它“用中文重新概括刚才的思考步骤”,然后把整理后的中文版本展示给用户。这样多花一次调用成本,但用户体验统一。
5.3 我的实测结果与提醒
我做过的几轮对比,结果大致是这样:加“请用中文思考”后,中文写作任务的质量提升最明显;数学和代码任务基本不受影响,只是思考过程变啰嗦了一点,有时候中文思考的步骤反而比英文长,耗时也会多一点。
有一个坑要提醒你:不要用力过猛。有些人为了让模型说中文思考,在提示词里写了一整段“不管你内部发生什么,所有细节都必须使用中文,绝对不许出现任何英文单词”,结果模型为了憋住英文术语,出现了表达别扭、步骤冗余甚至直接中断的情况。语言约束点到为止就行,真正重要的是保证推理依旧完整。
另外,遇到那种“你让它用中文思考,它前两句听你的,第三句又切回英文”的模型,不用太较真。这是它的分词策略在拉锯,不是它故意叛逆。把系统提示词写好,或者接受这种拉锯,都不影响最终答案的正确性。
6. 回到标题:这事到底值不值得在意
我把这个现象聊到最后,最想说的其实是:别把“思考时说英语”看得太重。
它是一个结果,不是一个态度。模型没有所谓的“语言立场”,它只是在无数文本里学会了“英文更适合逻辑推演”这个统计规律。随着中文高质量推理语料越来越多,将来一定会看到更多国产模型开始用中文、或者中英夹杂的方式思考。这一天什么时候来,取决于数据,不取决于我们怎么“要求”它。
站在使用者的角度,我更关心的是语言和任务是否匹配。写代码算概率,英文思考不碍事;写文案拟对子,中文思考更靠谱。把语言选择当成一个可以调节的参数,比把它上升到“谁的模型更爱国”要实际得多。
如果你在开发中踩到过类似问题,建议先检查一下自己的系统提示词,再决定要不要强制干预思考语言。大多数情况下,把最终输出管好就够了。毕竟对用户来说,真正重要的从来不是 AI 用什么语言“想”,而是它用你熟悉的语言,给了你一个能用、好用、可信的结果。