针对全行代码补全的上下文构建
本文介绍了 IntelliCode Compose—— 一种通用的多语言代码自动完成工具,它可以预测任意类型的代码令牌序列,生成最多整行语法正确的代码。它利用了基于 1.2 亿行 Python、C#、JavaScript 和 TypeScript 编程语言源代码训练的最先进的生成式变换模型,在 Visual Studio Code IDE 和 Azure Notebook 中实现了按编辑时间完成建议要求的客户端树形缓存、高效的并行实现的波束搜索解码器和计算图优化。我们的最佳模型为 Python 编程语言提供了 86.7%的平均编辑相似度和 1.82 的困惑度。
May, 2020
本研究描述了一种在 JetBrains' IntelliJ 平台上构建的多标记代码补全功能,称为 Full Line Code Completion。该功能仅建议语法正确的代码,并在用户设备上完全本地工作,为用户提供更丰富的体验,同时快速、紧凑且安全。作者分享了一些满足开发限制的有用技术,并描述了离线和在线评估流程以帮助做出更好的决策。
May, 2024
本研究旨在探索是否通过使用上下文数据使代码易于理解会提高预训练代码语言模型完成代码补全任务的性能,并建议在训练、微调或选择此类模型时做出适当的设计选择,以改善自动补全的实用性和准确性。
Apr, 2023
我们开发了一个机器学习模型,可以根据代码上下文和可用的遥测数据准确预测何时调用代码补全工具,该模型显著优于基准模型并在维持低延迟的同时集成了一些额外的遥测数据。
May, 2024
本文介绍了一种基于多任务学习的预训练语言模型,采用 Transformer 神经网络架构,通过混合目标函数进行预训练,可以更好地理解和生成代码;在实验中证明了该模型相比现有的方法更为有效,尤其在完成标识符的任务上效果显著。
Dec, 2020
本文介绍了一种基于 Transformer 的模型 Grammformer,用于根据编程语言语法生成具有 “空洞” 的代码完成。在 C# 和 Python 的代码完成方面通过 ROUGE 和新的度量标准 RegexAcc 的度量检验结果,结果显示 Grammformer 比传统生成模型生成更加准确的代码完成,且生成的草图较传统技术生成的草图更长。
Jun, 2021
通过在真实的代码完成实例上训练模型,我们研究了代码完成的预测性能,并发现这些模型比在源代码和工作版本快照上训练的模型分别提高了 12.8% 和 13.8% 的准确性,这与程序员实际自动完成使用率增加 6.2% 相对应,证明了真实的代码完成示例对于构建强大的模型非常重要。
Nov, 2020
基于 Transformer 的语言模型在自动代码补全方面显示出巨大的潜力,但是这些模型的评估很少使用真实数据。本研究提供了对三个公共代码语言模型在完成真实世界代码时的定量和定性评估。
Feb, 2024
本研究利用程序分析器从 Python 包中提取代码信息,探讨了使用相应信息来优化代码补全模型的方法,并发现这可以显著提高函数调用参数的补全效果。
Jun, 2023
本研究旨在解决深度学习模型内存消耗大的问题,通过模块化的神经框架探索多种技术,并设计一种新颖的基于静态分析和细粒度令牌编码相结合的神经重排序模型,其消耗内存仅为 6MB,计算单个补全所需仅 8ms,最高精度达到 90%。
Apr, 2020