Syntax Without Semantics: Teaching Large Language Models to Code in an Unseen Language
作者: Vinayshekhar Bannihatti Kumar, Disha Makhija, Manoj Ghuhan Arivazhagan, Rashmi Gangadharaiah
分类: cs.CL, cs.LG
发布日期: 2026-05-15
💡 一句话要点
研究表明大语言模型在未见语言的代码生成中存在语义理解鸿沟
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大语言模型 语义理解 泛化能力 编程语言 迁移学习 中心核对齐
📋 核心要点
- 现有大语言模型在代码生成方面表现出色,但缺乏对未见语言的泛化能力,存在语义理解的挑战。
- 论文核心在于通过引入一种全新的极简编程语言PyLang,来评估和分析大语言模型在代码生成中的语义理解能力。
- 实验结果表明,即使经过微调,模型在PyLang上的表现仍远低于Python,揭示了模型在语法和语义理解之间的差距。
📝 摘要(中文)
大型语言模型(LLMs)在代码生成基准测试中取得了很高的通过率,但它们是否能将这种能力迁移到预训练语料库中不存在的语言,目前尚不清楚。我们引入了PyLang,一种预训练语料库中完全没有的最小命令式语言,并在352个问题上评估了Qwen3(4B、8B、32B)的zero-shot和微调性能。我们发现微调能迅速学习语法,但无法迁移语义能力:在所有配置中,Python的性能比PyLang高出高达19%,并且没有干预措施(多任务学习、偏好调整、代码填充或潜在空间目标)能够弥合这一差距。LLM评估器显示,前沿模型在80%的时间里选择与Python相同的算法,但无法将其翻译成可工作的PyLang实现。CKA分析证实,微调后的模型在不同语言之间收敛到几乎相同的内部表示(CKA > 0.97),但在输出阶段出现分歧。我们将此称为实现保真度差距:模型具有语言无关的算法理解能力,但无法用不熟悉的语言表达它。我们的研究结果强调,需要训练方法将推理与特定于语言的实现分离。
🔬 方法详解
问题定义:论文旨在研究大型语言模型(LLMs)是否能够将其在代码生成方面的能力迁移到预训练数据中未出现的编程语言。现有方法虽然在常见编程语言上表现良好,但缺乏对全新语言的泛化能力,这表明模型可能过度依赖于预训练数据中的语言特性,而未能真正理解代码的语义。
核心思路:论文的核心思路是创建一个全新的、极简的编程语言PyLang,该语言在任何预训练语料库中都不存在。通过评估LLMs在PyLang上的代码生成能力,可以更清晰地衡量模型对代码语义的理解程度,并区分语法学习和语义理解。
技术框架:整体框架包括以下几个关键步骤:1) 定义一种新的编程语言PyLang;2) 构建一个包含352个问题的代码生成数据集;3) 使用Qwen3(4B、8B、32B)等大型语言模型进行zero-shot和微调实验;4) 使用LLM评估器评估生成的代码质量;5) 使用中心核对齐(CKA)分析模型内部表示的相似性。
关键创新:论文的关键创新在于:1) 提出了PyLang,一种全新的、极简的编程语言,用于评估LLMs的语义理解能力;2) 揭示了“实现保真度差距”,即模型具有语言无关的算法理解能力,但无法用不熟悉的语言表达它;3) 通过CKA分析,验证了模型在不同语言之间收敛到相似的内部表示,但在输出阶段存在差异。
关键设计:PyLang的设计目标是极简,只包含最基本的命令式编程结构,例如变量赋值、条件语句和循环语句。数据集包含352个问题,涵盖了各种常见的编程任务。微调实验使用了不同的干预措施,例如多任务学习、偏好调整、代码填充和潜在空间目标,以试图弥合Python和PyLang之间的性能差距。CKA分析使用了线性核函数,并计算了不同层之间的相似性。
📊 实验亮点
实验结果表明,即使经过微调,Qwen3模型在PyLang上的性能仍远低于Python,差距高达19%。LLM评估器显示,模型在80%的时间里选择了与Python相同的算法,但无法将其转化为可工作的PyLang实现。CKA分析表明,微调后的模型在不同语言之间收敛到几乎相同的内部表示(CKA > 0.97),但在输出阶段存在显著差异。
🎯 应用场景
该研究成果可应用于提升代码生成模型的泛化能力,使其能够适应新的编程语言和领域。通过解耦推理和语言实现,可以开发出更加智能和灵活的代码生成系统,从而加速软件开发过程,并降低开发成本。此外,该研究也为评估和改进LLMs的语义理解能力提供了新的思路。
📄 摘要(原文)
Large language models (LLMs) achieve high pass rates on code generation benchmarks, yet whether they can transfer this ability to languages absent from pretraining remains poorly understood. We introduce PyLang, a minimal imperative language absent from all pretraining corpora, and evaluate frontier models zero-shot and fine-tuned Qwen3 (4B, 8B, 32B) on 352 problems. We find that fine-tuning quickly teaches syntax but fails to transfer semantic competence: Python outperforms PyLang by up to 19% across all configurations, and no intervention (multi-task learning, preference tuning, code infilling, or latent-space objectives) closes the gap. An LLM judge reveals that frontier models select an identical algorithm to Python 80% of the time, yet cannot translate it into a working PyLang implementation., and CKA analysis confirms that fine-tuned models converge to nearly identical internal representations across languages (CKA > 0.97) while diverging at the output stage. We term this the implementation fidelity gap: models possess language-agnostic algorithmic understanding but cannot express it in an unfamiliar language. Our findings highlight the need for training methods that decouple reasoning from language-specific realization.