
春节刚过,稀宇科技(MiniMax)的内部检测发现一个尴尬问题:他们最新发布的M2系列大模型,在提到艺人“马嘉祺”时,总是不由自主地输出“佳琪”或“琪琪”。这看似只是叫错一个名字,却捅破了一个大模型训练中普遍存在的隐形“黑洞”——词元偏移。
问题出在大模型处理文本的第一步:分词器。它好比一个翻译官,负责把句子切分成模型能理解的最小单元。以“马嘉祺”为例,分词器把他切成了“马”和“嘉祺”两个词。模型在预训练阶段是学过这两个词的,但在后续的指令微调(也就是“后训练”)中,问题冒了出来。因为后训练用的对话数据里,“嘉祺”这个词几乎没出现过,等于说这个词元处于“零训练”状态。而同时,代码符号、工具调用这些高频词元在训练中不断被强化,它们的向量参数更新,就像往一个拥挤的沙发上硬塞人,把“嘉祺”这类低频词一点点挤出了正确的概率区间。最终模型只能找一个读音相近的“佳琪”来凑数。
这种“词元退化”不是个例。稀宇科技扫描了全词表约20万个词元,发现4.9%的词元都出现了显著的性能衰退。最触目惊心的是日文词元,退化比例高达29.7%——这就是为什么M2模型在用日语对话时,偶尔会突然蹦出俄语或韩语字符,像混血儿串台。受影响的还包括LaTeX公式标记、维基百科源码符号,甚至一些SEO垃圾关键词。数据稀疏带来的后果是全局性的:后训练数据没法均匀覆盖所有语种和特定词汇,模型生成逻辑自然就偏了。
为了解决这个结构性难题,研发团队想了个笨办法:构造覆盖全词表的合成数据,强制模型进行“复读”任务——让模型把每个词元都读一遍,等于给每个词元建立了一个生成频率的“低保户”。修复后的数据显示,全词表输出稳定性大幅提升,日语回答里混入异语字符的比例从47%直接降到1%。团队还在探索更深层的优化,比如在微调阶段混入预训练语料,或者直接清理词表中那些不再用的老标记。
这件事给整个行业敲了警钟:大模型的分词器往往基于海量网络语料,喜欢广撒网;但下游的实际应用场景却各有侧重,像人名、专业术语、外语词汇,很容易成为“数据孤岛”。未来,如何在追求语义多样性的同时,从底层统计学角度确保每个词元都被照顾到,将是提升大模型可靠性的关键课题。毕竟,连一个名字都叫不准的AI,谁敢把重要事情交给它呢?