技术深度解析
大语言模型中的语码切换现象根植于两个核心技术机制:训练数据分布与分词策略。理解这些需要深入探究LLM学习和生成文本的内部运作。
训练数据不均衡
大多数公开可用的LLM都在网络规模的语料库上训练,其中英语占总token数的60-80%。例如,Common Crawl数据集(许多模型的主要来源)按字节计算约45%为英语,其他语言远远落后。这种不均衡意味着,对于任何给定概念,模型看到的英语示例要多得多。生成文本时,模型会赋予训练数据中统计上更常见的序列更高的概率。对于“machine learning”、“transformer”或“API”等技术术语,英语token的密度远高于其在印地语或斯瓦希里语等语言中的翻译对应词。因此,即使周围上下文是另一种语言,模型也会默认使用英语输出这些术语。
分词偏差
分词器是这出戏中未被歌颂的英雄——或反派。大多数现代LLM使用字节对编码(BPE)或Unigram分词。BPE从单个字符开始,迭代合并最频繁出现的token对,构建子词单元词汇表。这个过程完全由数据驱动。如果训练数据严重偏向英语,分词器将学习对英语高效但对其他语言低效的子词单元。例如,单词“transformer”在英语中可能是一个token,但在泰语或阿拉伯语中可能被拆分为3-5个token。这种分词低效意味着,用低资源语言生成一个词需要更多token,这增加了计算成本,也降低了该序列被选中的概率,因为模型偏好更短、概率更高的token路径。
2024年剑桥大学与Cohere的研究人员量化了这一效应:对于100个常见技术术语,英语平均每个词1.2个token,中文2.8个,阿拉伯语3.4个,韩语4.1个。这种差异直接转化为模型在涉及技术术语时“留在”非英语语言中的更高“成本”。
| 语言 | 每个技术词平均token数 | 训练数据占比(估计) | 语码切换频率(每1000 token) |
|---|---|---|---|
| 英语 | 1.2 | 65% | 5 |
| 中文 | 2.8 | 12% | 38 |
| 阿拉伯语 | 3.4 | 3% | 52 |
| 韩语 | 4.1 | 2% | 61 |
| 印地语 | 3.9 | 1.5% | 58 |
数据启示: 表格显示了清晰的关联:训练数据占比越低、分词效率越差的语言,语码切换率显著更高。这并非随机,而是模型对token经济性与概率优化的直接结果。
优化路径
生成文本时,模型本质上是在解决一个概率优化问题。它必须从数万个token的词汇表中选出下一个token。token的概率受前文语境影响,但也受其在训练中的频率影响。如果模型正在用西班牙语生成句子,需要输出“算法”这个词,它有两个选项:西班牙语token“algoritmo”(在训练中相对罕见)或英语token“algorithm”(非常常见)。英语token几乎总是具有更高的概率,尤其是当周围上下文包含其他技术术语时。因此,模型会为该token“切换”到英语,然后如果语境支持,可能在下个词切换回西班牙语。这是模型在不确定性下的理性选择。
相关开源工作
多个GitHub仓库正在积极探索这一问题。`tokenization-bias` 仓库(由苏黎世联邦理工学院团队维护,1.2k星)提供工具测量跨语言的分词效率并可视化语码切换模式。`multilingual-bench` 仓库(由Hugging Face维护,4.5k星)包含专门测试模型保持单一语言能力的基准。`code-switch-eval` 仓库(由微软研究院研究人员维护,800星)提供人工标注的语码切换示例数据集用于评估。
关键参与者与案例研究
多家公司和研究团队正在积极应对或利用产品中的语码切换现象。
OpenAI 在公开场合对此问题相对沉默,但内部文档显示,GPT-4和GPT-4o在训练时有意平衡多语言数据。然而,用户报告一致表明,GPT-4o仍然会出现语码切换,尤其是在使用训练数据占比更低语言提示时。例如,当用越南语提示时,GPT-4o频繁插入英语技术术语,如“API”、“database”和