语法感知的即时代码完成
本研究描述了一种在 JetBrains' IntelliJ 平台上构建的多标记代码补全功能,称为 Full Line Code Completion。该功能仅建议语法正确的代码,并在用户设备上完全本地工作,为用户提供更丰富的体验,同时快速、紧凑且安全。作者分享了一些满足开发限制的有用技术,并描述了离线和在线评估流程以帮助做出更好的决策。
May, 2024
本文介绍了一种基于多任务学习的预训练语言模型,采用 Transformer 神经网络架构,通过混合目标函数进行预训练,可以更好地理解和生成代码;在实验中证明了该模型相比现有的方法更为有效,尤其在完成标识符的任务上效果显著。
Dec, 2020
本研究旨在探索是否通过使用上下文数据使代码易于理解会提高预训练代码语言模型完成代码补全任务的性能,并建议在训练、微调或选择此类模型时做出适当的设计选择,以改善自动补全的实用性和准确性。
Apr, 2023
我们开发了一个机器学习模型,可以根据代码上下文和可用的遥测数据准确预测何时调用代码补全工具,该模型显著优于基准模型并在维持低延迟的同时集成了一些额外的遥测数据。
May, 2024
本文介绍了 IntelliCode Compose—— 一种通用的多语言代码自动完成工具,它可以预测任意类型的代码令牌序列,生成最多整行语法正确的代码。它利用了基于 1.2 亿行 Python、C#、JavaScript 和 TypeScript 编程语言源代码训练的最先进的生成式变换模型,在 Visual Studio Code IDE 和 Azure Notebook 中实现了按编辑时间完成建议要求的客户端树形缓存、高效的并行实现的波束搜索解码器和计算图优化。我们的最佳模型为 Python 编程语言提供了 86.7%的平均编辑相似度和 1.82 的困惑度。
May, 2020
本文提出一种名为 CCAG 的新的代码完成方法,它将部分 AST 的平坦序列建模为 AST 图,使用 AST 图注意力块捕捉表示学习中的不同依赖关系,并通过多任务学习优化代码完成的子任务,无需调整任务权重即可自动实现任务平衡,实验结果表明 CCAG 比现有方法具有更优越的性能,能够提供智能代码完成。
Mar, 2021
我们描述了我们在 Transformer 模型的特征实现中,对上下文组成的方法,同时还分享了改善该功能的下一步计划,并强调了该领域中的几个研究方面的重要性。
Feb, 2024
本文提出了一种利用外部代码片段参考的检索增强代码补全框架,使用统计语言模型来训练,实现了针对 Python 和 Java 编程语言的最新表现状态的代码补全任务。
Mar, 2022
基于 Transformer 的语言模型在自动代码补全方面显示出巨大的潜力,但是这些模型的评估很少使用真实数据。本研究提供了对三个公共代码语言模型在完成真实世界代码时的定量和定性评估。
Feb, 2024
本文介绍了一种基于 Transformer 的模型 Grammformer,用于根据编程语言语法生成具有 “空洞” 的代码完成。在 C# 和 Python 的代码完成方面通过 ROUGE 和新的度量标准 RegexAcc 的度量检验结果,结果显示 Grammformer 比传统生成模型生成更加准确的代码完成,且生成的草图较传统技术生成的草图更长。
Jun, 2021