大型语言模型(Large Language Models, LLMs)已深刻改变了代码相关任务的实现方式。然而,大多数代码 LLM 忽视了编程语言中的结构性模式。本文围绕具备代码结构感知能力的 LLM展开研究,提出了多种新颖的方法、基准测试和预训练策略,表明显式的结构建模能显著提升 LLM 的编程能力。 首先,我们提出 ADELT,一种可将代码结构转换与 API 关键字翻译解耦的转译器(transpiler)。ADELT 在无需平行语料的条件下实现了最先进的跨语言代码转译效果,展示了结构感知的重要性。 为了严格评估模型的结构理解能力,我们构建了 SAFIM,一个面向语法感知填充(Syntax-Aware Fill-in-the-Middle, FIM)任务的基准数据集。我们对15个主流 LLM 进行了评测,挑战了“大模型 = 高性能”的观点,强调预训练策略与数据质量的重要性。SAFIM 有望成为该领域未来研究的基础工具。 随后,我们提出了两种结构感知的预训练范式。AST-T5 将抽象语法树(AST)集成进 T5 风格的编码器-解码器模型,在代码修复和转译任务中表现优于现有基线方法。而针对仅解码架构,我们提出 AST-FIM,通过 AST 引导的掩码机制更好地平衡了填充任务(FIM)与从左至右(Left-to-Right, L2R)生成之间的权衡,在保持 L2R 能力的同时,在代码补全任务上显著优于传统方法。 综上所述,我们证明了代码结构感知能够增强 LLM 在代码生成、理解与转换方面的能力。本文的贡献涵盖转译框架、评测基准与预训练技术,构建了一条将代码结构整合进 LLM 的研究路径图。

成为VIP会员查看完整内容
11

相关内容

【阿姆斯特丹博士论文】带约束学习的优化算法
【ETHZ博士论文】机器学习代码: 安全性与可靠性
专知会员服务
19+阅读 · 2024年10月25日
【CMU博士论文】经典方法对现代机器学习的改进
专知会员服务
28+阅读 · 2024年8月16日
论文浅尝 | 基于神经网络的知识推理
开放知识图谱
14+阅读 · 2018年3月12日
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
13+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Arxiv
171+阅读 · 2023年4月20日
A Survey of Large Language Models
Arxiv
472+阅读 · 2023年3月31日
Arxiv
78+阅读 · 2023年3月26日
Arxiv
171+阅读 · 2023年3月24日
Arxiv
24+阅读 · 2023年3月17日
VIP会员
相关基金
国家自然科学基金
0+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
13+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
3+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
微信扫码咨询专知VIP会员