ScatterAI
Issue #7 · 2026年3月17日

Low-Resource Languages Expose a Structural Gap in Code LLMs

Research

03 {代码} 低资源编程语言揭示代码大模型的结构性缺陷

大模型在 Python、Java 和 C++ 上表现优异。这一成功掩盖了一个结构性问题:训练语料稀少的通用编程语言不仅对模型更具挑战性——它们还暴露出一种失败模式,而标准的增强策略不仅无法修复这一问题,在某些情况下甚至会使其更严重。

CangjieBench 以仓颉语言为测评对象。仓颉是华为开发的一种低资源通用编程语言,之所以选择它,正是因为它处于大多数代码基准所优化的高资源语言群之外。该基准包含 248 个从 HumanEval 和 ClassEval 人工翻译而来的样本,涵盖文本转代码(自然语言生成代码)和代码转代码(跨语言翻译)两类任务。人工翻译在此至关重要:自动转换基准样本是一种已知的数据污染途径,而本评测的设计目标正是保持数据的纯净性。

性能差距背后的机制颇具启示意义。语法约束生成(Syntax-Constrained Generation)——在生成前向模型提供形式化语法规则——相比直接生成能带来稳定的性能提升。模型在被明确给出结构性规则时是能够遵循的。这指向一种具体的失败模式:瓶颈在于语法知识,而非推理能力。模型能够推理解题过程,但不知道合法的仓颉代码长什么样。RAG(检索增强生成,一种通过检索外部知识来辅助生成的方法)的表现不及预期,在多种配置下甚至低于直接生成的基线。在低资源场景中,检索到的代码片段稀少且质量往往低劣,这意味着检索步骤引入的是噪声而非有效信号。RAG 的核心假设——检索到的示例具有参考价值——在语料稀薄时便会失效。

智能体(Agent)设置展现出最大的提升空间。当模型能够迭代执行并自我纠错时,性能超越了 RAG 和语法约束两种方案,尽管与高资源语言的性能差距在所有设置下依然显著。没有任何单一配置能够弥合这一差距。

局限性在于覆盖范围:仓颉只是一种语言,248 个样本的规模虽然质量较高,但数量偏小。将结论推广至其他低资源通用编程语言,仍需直接的实验验证。

对于在企业环境中构建或评估代码助手的团队而言——这类环境中专有语言或小众语言十分常见——语法约束生成的结果是最具即时可操作性的发现。检索流水线并不能直接迁移到低资源场景。

核心结论:

来源:CangjieBench: Benchmarking LLMs on a Low-Resource General-Purpose Programming Language

来源:CangjieBench: Benchmarking LLMs on a Low-Resource General-Purpose Programming La