
1. 项目概述为什么我们需要关注大语言模型的“代码切换”推理行为如果你最近在折腾多语言大语言模型比如DeepSeek-R1或者Gemini系列你可能会发现一个有趣的现象当你用中文提问一个复杂的数学问题模型的思考链里可能会突然蹦出几个英文术语比如“Let’s think step by step”然后又切回中文继续推导。或者反过来一个用英文提出的逻辑谜题模型在推理时却用中文来标注关键变量。这种在单次推理过程中混合使用多种语言或文字系统的现象在语言学里被称为“代码切换”。这可不是模型在“秀”它的多语言能力或者出了什么bug。恰恰相反这背后反映的是现代大语言模型一个核心的、却常被忽视的内在推理机制。我们团队最近花了不少时间系统性地研究了这个现象目标就是搞清楚大语言模型到底是怎么、以及为什么会在推理时切换代码这些切换行为有没有规律可循更重要的是我们能不能系统地评估这些切换的质量从而反过来指导我们训练出更“聪明”、更适应全球化场景的模型传统的模型评估无论是MMLU、BIG-Bench还是各种数学推理榜大多只关心最终答案的对错。但答案是怎么来的这个“黑箱”里的思考过程尤其是跨语言的思考过程长期被忽略了。然而在真实世界的应用中——无论是为跨国企业提供多语言客服支持、辅助跨文化学术研究还是开发面向全球用户的教育工具——模型的推理过程是否自然、准确、符合目标语言用户的认知习惯其重要性不亚于最终答案本身。一个在中文思考中突兀插入错误英文术语的模型其输出的可信度和用户体验会大打折扣。因此我们这项工作的核心就是尝试打开这个“黑箱”为LLM的代码切换推理行为建立一个清晰的“分类法”并配套一套可操作的评估方法。这就像给模型的混合语言思维过程做一次“行为分析”不仅描述它“做了什么”还要解读它“为什么这么做”以及“做得好不好”。接下来我会详细拆解我们是如何一步步构建这个分类体系并利用DeepSeek-R1、Gemini-2.0-Flash-Thinking、Claude 3.7 Sonnet、Llama-3.1-Nemotron-Nano等一众主流模型进行实践验证的。2. 核心思路拆解从现象观察到系统分类我们的研究不是凭空构想而是建立在大量实际观察的基础上。我们首先需要回答一个根本问题面对模型千变万化的代码切换输出我们该如何入手进行系统化的分析2.1 定义问题边界什么是“推理中的代码切换”首先我们必须明确研究对象的范围。我们关注的“代码切换”特指在大语言模型生成推理过程时发生的语言或脚本混合。这区别于简单的翻译任务或单语生成。推理过程通常表现为思维链、逐步推导或问题分解的文本。在这个语境下代码切换可以表现为语种切换如中英混合、英法混合、西葡混合等。脚本切换如拉丁字母与汉字、阿拉伯文、片假名等不同文字系统之间的混合。术语级切换在一种主体语言中嵌入来自另一种语言的特定专业术语或固定表达如“Let‘s think step by step”, “Q.E.D.”, “per se”。我们的目标不是评判切换的“对错”而是理解其“模式”和“功能”。比如切换是为了调用更丰富的概念表达还是因为训练数据中某种语言的解题范式更强或是模型在遇到表达瓶颈时的“无奈之举”2.2 方法论基石如何让模型自己“报告”切换策略手动从海量推理文本中归纳模式效率极低且主观性强。我们采用了一个关键策略让大语言模型自己充当“行为分析师”。我们设计了一个结构化的提示词让一个强大的LLM我们主要使用了Gemini 2.5 Flash去分析另一份模型生成的推理文本并提取其中的代码切换“策略”或“特征”。这个提示词的核心指令是“请识别并描述上述推理中任何代码切换策略的模式基于多种有意义的区分标准。” 我们特别强调标准必须是“有意义的”、“描述性的”不能使用“标准1、标准2”这样的占位符。模型需要输出类似这样的内容patterns 术语锚定切换在引入关键专业概念或公式时固定使用源语言如始终用英文书写“Bayes‘ theorem” 逻辑连接词切换在表达逻辑转折如“因此”、“但是”时倾向于使用训练数据中逻辑推理部分的高资源语言 计算过程语言隔离在进行数值计算或符号演算时切换至数学表达更紧凑或模型更熟练的语言 文化概念适配当问题涉及特定文化背景知识时推理中相关部分使用该文化的主流语言 /patterns这种方法的好处是它能利用LLM自身的语言和元认知能力发现人类可能忽略的细微模式。我们将其应用于多个模型DeepSeek-R1系列、Phi-4-mini、Gemma-3等在多样化数据集如BBEH硬核推理、UniMoral道德判断、Global MMLU多学科知识上生成的推理文本从而收集到第一批“策略描述”池。2.3 从策略描述到行为分类主题建模的降维与归纳收集到成千上万条由LLM生成的、自由文本形式的“策略描述”后我们面临下一个挑战如何将这些描述性的文字归纳成一个清晰、互斥、覆盖全面的分类体系这里我们引入了自然语言处理中的经典技术——主题建模。我们使用了BERTopic管道来完成这项工作嵌入使用all-mpnet-base-v2模型将所有策略描述文本转化为高维向量。这个步骤将文字语义转化为计算机可计算的数值形式。降维使用UMAP算法将高维向量降至5维同时保留其主要的语义结构。这就像把一幅复杂的高维点云图投影到一个我们能看懂的五维地图上。聚类使用HDBSCAN算法在降维后的空间中进行密度聚类。HDBSCAN的优点在于它能自动发现簇并识别出噪声点那些不属于任何明确类别的独特描述。我们设置min_cluster_size15确保每个类别都有足够的实例支撑。主题词提取与润色对每个聚类内的文本使用c-TF-IDF方法提取关键词语。最后再次请Gemini 2.5 Flash模型根据聚类中的典型描述和关键词为每个主题生成一个高度概括且易于理解的行为类别名称和定义。经过这一套流程我们最终得到了一个相对稳定和可解释的“代码切换推理行为分类法”。这个分类法不是我们拍脑袋想出来的而是从模型的实际行为数据中“涌现”出来的。3. 揭秘代码切换推理行为分类法基于上述方法我们从数据中归纳出了几个核心的代码切换行为类别。每一类都代表了模型在跨语言推理时一种特定的“思维习惯”或“策略选择”。3.1 术语锚定与概念借用这是最常见的一类行为。当模型在推理中触及某些特定领域的核心概念、公式、定理或专有名词时它会倾向于固定使用其最初接触该概念时所用的语言通常是英语。行为表现在中文推理链中突然插入“Newton‘s second law: Fma”然后用中文继续解释。或者在法语推理中保留“Blockchain”这个英文词。背后逻辑这很大程度上反映了训练数据的现状。大量的科学、技术、学术文献是以英语为主导的。模型在预训练时将特定概念与英语词汇形成了强绑定。当它需要精确指代该概念时切换回英语是保证“术语准确性”和“概念一致性”的最可靠路径避免了翻译可能带来的歧义或信息损耗。实操观察在Global MMLU的“大学物理”、“机器学习”等科目中这种行为出现频率极高。即使是DeepSeek-R1-Distill-Qwen-7B这样中文能力很强的模型在推导量子力学问题用到“Schrödinger equation”时也几乎不会将其翻译成“薛定谔方程”。3.2 元认知与流程控制语言固化我们发现模型在组织其推理步骤、进行自我提示或总结阶段性结论时所使用的语言也常常是固化的并且往往与问题本身的语言不同。行为表现用中文提问“如何证明勾股定理”模型开始推理“Step 1:Let‘s denote the two perpendicular sides as a and b, and the hypotenuse as c.Step 2:We consider four copies of the right triangle...”。步骤标识和引导词Step, Let‘s, We consider是英文而具体的几何构造描述可能又切回中文。背后逻辑这与思维链提示的标准化有关。在训练和指令微调阶段模型接触了大量以英语格式化的推理示例如“Let‘s think step by step”。模型可能内化了这样一种模式“执行推理框架”这件事本身与英语这种“元语言”相关联。当它启动“推理模式”时会下意识地调用这套英语框架来搭建思考结构。评估意义这种行为不一定影响最终答案的正确性但它揭示了模型内部任务执行模块与内容生成模块可能存在的“语言区隔”。评估时我们需要关注这种固化是否导致了与主体推理内容的脱节。3.3 计算与符号演算的语言隔离一个非常有趣且普遍的现象是当推理进入纯数学计算、代数操作或符号逻辑推导环节时模型经常会进入一种“数学语言”状态这种状态下的文本可能混合了数字、符号,-,,∑和一种特定的、简练的语言通常是英语而与前后的问题描述语言形成鲜明对比。行为表现一个西班牙语逻辑谜题模型在分析命题时用西语但到了列真值表或布尔代数化简时整个段落变为“Let P ‘it is raining‘, Q ‘the ground is wet‘. We have P → Q. Given ¬Q, we can infer ¬P via modus tollens.” 计算完成后结论又用西语给出。背后逻辑数学和形式逻辑本身具有高度符号化和国际化的特点。模型的数学能力很可能在大量以英语和标准数学符号书写的数据上得到集中训练。当执行这些高度形式化的操作时切换到这套“训练最充分”的符号-语言系统对模型来说认知负荷可能最低也最不容易出错。实操心得在评估这类切换时“准确性”和“流畅性”有时存在权衡。一个生硬但计算正确的英文演算段落可能比一个流畅但最终计算出错的本土语言段落更有价值。我们的评估方法需要能捕捉这种权衡。3.4 资源驱动与回避性切换这类行为更直接地暴露了模型在不同语言上能力的不均衡。当模型用低资源语言如斯瓦希里语、约鲁巴语进行复杂推理遇到困难时它可能会部分或全部切换至高资源语言如英语、中文以完成它更有把握的推理部分。行为表现用泰语提出一个伦理困境问题模型开头用泰语分析了几句随后出现“这部分涉及复杂的功利主义计算我将用英语进行以确保准确性... calculating the net utility...”计算完毕后再用泰语总结。背后逻辑这直接体现了“能力断层”。模型在低资源语言上的训练数据不足导致其在该语言的深层逻辑表达、抽象概念操作上存在短板。切换至高资源语言是一种“求助”或“规避风险”的策略。从积极角度看这显示了模型的“自知之明”从消极角度看这影响了推理过程的连贯性和对目标语言使用者的可理解性。关键考量这是评估的重点区域。我们需要判断这种切换是“聪明的资源利用”还是“无奈的逃避”。如果切换后推理质量显著提升且模型能妥善地将结论转译回去这可能是一种有效的混合策略。反之如果切换导致上下文断裂或结论无法回译则是一个负面信号。3.5 文化语境适配与示例引用当推理问题涉及特定文化背景、历史事件、文学典故或地域性知识时模型可能会在相关部分切换至该文化的主流语言以更精准地调用相关知识或表达细微差别。行为表现一个关于“《红楼梦》中人物关系”的问题即使用英文提出模型在分析“宝黛钗”关系时很可能直接引用中文原文片段或使用中文人物称谓然后再用英文解释。背后逻辑某些概念和文化符号与其原生语言深度绑定翻译会损失大量内涵。模型在训练中学习到了这种关联。当检测到问题触及这些文化特定概念时切换语言可以看作是一种“语境还原”或“精确引用”的努力。与术语锚定的区别术语锚定更多针对普适性学术概念而文化适配针对的是具有独特文化负载的特定内容。前者是为了全球一致性后者是为了本地准确性。4. 构建评估体系如何量化“好”的代码切换有了分类法我们就能对行为进行描述和归类。但更重要的是评估。我们如何判断一次代码切换是“高质量”的还是“低质量”的我们主要从两个维度构建了评估体系准确性和流畅性并同样利用LLM作为评判员。4.1 准确性评估切换用得对不对准确性关注代码切换的语义正确性和情境恰当性。一个词或一句话切换到另一种语言是否用得准确无误是否符合该语言在此语境下的习惯评估标准低准确性1分切换的术语或表达存在错误、歧义或在该语境下完全不恰当。例如在中文法律推理中错误地使用了一个德文哲学术语且含义不符。中等准确性2分大部分切换是合适的但存在次要错误如轻微的语法错误、用词不够地道、或切换边界略显生硬。高准确性3分切换的术语或表达准确无误完全符合目标语言在该专业或文化语境下的使用习惯且语义精准。评估提示词设计我们设计了一个简洁的提示词要求评估模型我们使用Qwen3-Next-80B-A3B-Instruct根据上述标准只输出1、2、3三个分数之一。提示词明确给出了评分标准和格式并要求模型“仅以score格式回复”极大减少了输出噪声。实操难点与技巧锚定评估焦点评估时必须紧扣“切换点”本身而不是整个推理链的正确性。一个数学答案错误但其中英文公式引用准确的例子在“切换准确性”上仍可能得高分。依赖高质量评估模型评估模型本身需要具备强大的多语言知识和细致的语义理解能力。我们对比发现像Qwen3.5-27B这样在多项评测中表现均衡的模型比某些专精于某一方面的模型更适合此项任务。人工校准我们抽取了部分样本进行人工评估与模型评估结果进行比对计算一致性以确保评估标准的有效性。在我们的验证集上模型评估与人工评估的一致性达到了可接受的水平。4.2 流畅性评估切换是否自然丝滑流畅性关注代码切换的句法整合度和阅读体验。切换是让文本更自然易懂还是显得突兀、打断思路评估标准低流畅性1分文本因切换而难以理解语法或句法混乱切换点非常突兀严重破坏了文本的连贯性。中等流畅性2分文本整体可懂但切换处有些许不自然或生硬语法基本正确但不够优美阅读时有“卡顿感”。高流畅性3分文本自然流畅易于理解语法句法正确代码切换无缝集成甚至增强了表达效果或思维流。评估提示词设计与准确性评估类似我们设计了专门的流畅性评估提示词强调对“语法、句法以及代码切换的平滑整合”的判断。实操心得上下文是关键流畅性必须在整个段落或推理步骤的上下文中判断。一个孤立的英文术语在中文句子里可能很突兀但如果前后有自然的过渡或解释就可能变得流畅。区分“流畅性”与“必要性”一个非常流畅但毫无必要的切换比如把简单的“因此”换成“therefore”其价值可能低于一个略显生硬但至关重要的术语切换。因此流畅性评估需与分类法结合看对于“术语锚定”行为流畅性要求可以适当放宽对于“元认知固化”行为流畅性则更重要。4.3 实施评估流程与配置我们的评估流程是自动化的但包含多个严谨步骤数据准备使用第2.2节的方法让模型在BBEH、UniMoral、Global MMLU Lite等数据集上生成带有代码切换的推理文本。语言识别为了精确分析我们需要知道每个词是什么语言。对于大多数用空格分词的语种这相对简单。但对于中文、日文、泰文等无空格语言我们使用了专门的分词工具如jieba、PyThaiNLP。语言识别主要依赖高效的Lingua库并对阿姆哈拉语、缅甸语等特殊语言辅以GlotScript和FastText模型进行补充。我们的词级语言识别在验证集上平均准确率达到93.3%为后续分析打下了可靠基础。调用评估模型将生成的推理文本分别送入配置好的“准确性评估”和“流畅性评估”提示词模板中调用评估模型进行打分。结果聚合与分析按模型、按数据集、按我们归纳出的行为分类对分数进行聚合分析。这让我们能回答诸如“DeepSeek-R1在术语锚定上的切换准确性平均分是多少”、“Gemini在资源驱动切换上的流畅性是否优于Claude”等具体问题。注意评估模型的温度参数通常设置为0以确保评分的一致性。同时评估提示词的设计要极度简洁、目标明确避免让模型进行开放式解释从而直接获得可统计的标量分数。5. 从评估到改进利用分类法指导模型训练分类和评估的最终目的是为了改进模型。我们探索了如何利用上述洞察通过数据工程和微调来引导或优化模型的代码切换行为。5.1 合成代码切换数据主动引导模型学习如果我们希望模型能更主动、更恰当地进行代码切换一个直接的方法是为它提供高质量的代码切换推理示例。我们设计了一个合成数据管道来批量制造这样的训练数据。基础翻译我们以高质量的英文推理数据如来自A.4的数据集为“种子”。首先使用强大的开源多语言机器翻译模型如SeamlessM4T v2将完整的英文推理链翻译成目标语言如西班牙语、印地语、阿拉伯语等。对于马来语我们使用了NLLB-200-3.3B模型因为它对标准马来语的支持更好。翻译精炼机器翻译的结果尤其是对于长文本和复杂逻辑文本可能不够完美。我们采用了一种“大模型精炼”策略使用一个强大的、支持目标语言的LLM如Apertus-70B以“翻译编辑”的角色对初版翻译进行润色。提示词类似于“源文[英文原文]。欠佳译文[机器翻译结果]。请给我一个更好的[目标语言]译文无需任何解释。”质量过滤精炼后的文本仍需过滤。我们设定了两个过滤器长度异常过滤如果精炼后的文本长度是原翻译的两倍以上很可能模型没有遵守指令而是添加了额外解释。我们丢弃精炼版保留原翻译。重复与噪声过滤移除那些包含重复字符四元组超过10次或包含大量“#”、“*”等无关符号的文本这些通常是模型生成失败的产物。构建代码切换样本有了高质量的目标语言译文后我们可以通过策略性地“回译”或“混合”部分内容人工构造代码切换样本。例如可以将关键术语、计算步骤或元认知框架保留为英文而将问题描述和结论性阐述改为目标语言。这样就生成了符合“术语锚定”或“计算隔离”等模式的训练样本。5.2 针对性微调塑造期望的切换行为有了合成的代码切换数据我们就可以对基础模型进行监督微调以强化或塑造特定的代码切换行为。任务设计我们可以设计不同的微调任务原生语言推理要求模型完全使用目标语言进行推理。这可以作为基线。策略性代码切换推理提供我们构造的、符合“高质量”标准高准确性、高流畅性的代码切换样本让模型学习在何时、以何种方式切换语言。合成代码切换推理直接使用上述管道合成的数据进行微调。微调配置我们使用LLaMA-Factory框架进行高效的LoRA微调。关键配置包括截断长度根据每个训练数据集中输入和目标序列的令牌长度分布的95分位数来动态设置cutoff_len确保既能覆盖大多数样本又不会因填充过多而浪费计算。批次大小通过调整gradient_accumulation_steps来确保有效的总批次大小为16这在保持训练稳定性和效率之间取得了平衡。评估与保存对于推理任务我们设置eval_steps和save_steps为10以便更频繁地监控模型在验证集上的表现。对于翻译任务则设置为100。学习率与调度采用较低的学习率1e-6和余弦退火调度配合10%的热身比例确保微调过程平稳避免灾难性遗忘。通过对比微调前后模型在准确性和流畅性评估上的得分变化以及观察其生成的推理文本中代码切换行为模式是否更接近我们期望的“高质量”模式我们可以定量和定性地验证这种针对性训练的有效性。6. 常见问题、挑战与避坑指南在实际操作中我们遇到了不少坑也总结出一些经验。6.1 评估一致性问题如何让模型评分更可靠问题不同的评估模型甚至同一模型在不同时间对同一文本的准确性/流畅性评分可能存在波动。解决思路提示词标准化提示词必须极其清晰、无歧义明确评分标准和输出格式。我们采用了“仅返回score”的强制格式减少了模型“自由发挥”的空间。使用更稳定的模型我们发现在指令遵循和评分一致性上一些经过严格对齐的模型如Qwen3.5系列表现比纯推理优化的模型更稳定。多数投票或平均对于关键样本可以使用多个不同的评估模型进行评分然后取众数或平均值以平滑单次评估的偏差。构建黄金评估集人工标注一小部分典型样本作为“黄金标准”定期用评估模型对这批样本评分监控其评分与人工标准的一致性是否发生漂移。6.2 低资源语言的处理困境问题对于斯瓦希里语、约鲁巴语、缅甸语等低资源语言无论是基础模型的生成能力、翻译模型的质量还是语言识别工具的准确性都面临巨大挑战。实操技巧语言识别组合拳不要依赖单一工具。对于非拉丁脚本语言如阿姆哈拉语、缅甸语我们结合使用了GlotScript基于脚本检测和FastText基于统计模型来提高词级语言识别的准确率。翻译模型选型对于特定语言需要调研并测试不同的开源翻译模型。例如我们发现对于马来语NLLB-200的表现优于SeamlessM4T v2。必要时可以针对目标语言收集平行语料对翻译模型进行额外微调。降低对低资源语言的期望在评估时对于低资源语言可以适当调整“流畅性”的评判标准。模型能进行一定程度的切换并完成推理可能已经是一种成功。评估重点可更多放在“准确性”上即切换的部分是否正确而非整体是否如母语般自然。6.3 分类的模糊边界与主观性问题我们归纳的几类行为之间并非总是泾渭分明。一次切换可能同时具备“术语锚定”和“资源驱动”的特征。处理方式接受模糊性分类法的目的是提供分析框架而非非此即彼的标签。一个样本可以被标记为多个相关类别。细化描述在人工分析或模型生成策略描述时鼓励更具体的描述而不是简单归类。例如描述为“在引用拉普拉斯变换定义时切换至英文但在后续举例时切回中文”这比单纯标“术语锚定”包含更多信息。聚焦核心模式在宏观分析时关注最显著、最频繁出现的模式。模糊的边界案例通常占比不高不影响对整体行为的趋势判断。6.4 计算成本与可扩展性挑战让大模型分析海量推理文本来生成策略描述再用另一个大模型进行主题建模和评估计算开销巨大。优化策略分层抽样不必对所有生成文本进行分析。可以按模型、数据集、题目难度进行分层抽样确保样本代表性同时大幅减少处理量。利用蒸馏模型对于初步的策略描述生成可以尝试使用较小的、蒸馏过的推理模型如DeepSeek-R1的各个蒸馏版本它们成本更低且在核心的推理模式捕捉上可能已经足够。评估阶段降级在初步实验或大规模筛选时可以使用较小但高效的模型如Gemma-3-4B进行快速评估只在最终确认阶段使用顶级模型如GPT-4、Claude 3.7进行精细评分。这项工作的价值在于它首次为理解和评估大语言模型这一复杂而普遍的内在行为——跨语言推理中的代码切换——提供了一套系统化的工具和视角。它不再将代码切换视为噪音或副产品而是将其作为一个重要的模型能力维度进行审视。通过分类我们得以洞察模型在不同语言间分配认知资源的策略通过评估我们可以量化这些策略的有效性通过数据合成和微调我们拥有了引导模型向更优混合推理模式发展的可能。在全球化应用日益深入的今天让AI的“思考”过程也能跨越语言屏障变得更加自然和高效无疑是一个值得深入探索的方向。