新知榜官方账号
2023-09-17 23:26:46
从程序员到数据工程师,编写程序代码是一项基本功,但是编写冗长代码的过程也极大地消耗了开发者的耐心。近来,有不少关于代码补全工具的消息爆出,例如,来自美国的Kite,来自加拿大的TabNine等,一时间获得了不少程序员的关注。但其实很多人还并不知道,在这些国外产品不断被媒体推送的背后,有一款能力更为强大、更早将深度学习应用于代码补全的产品,一款源自中国的工具——aiXcoder,它的研发者们来自于北京大学。
aiXcoder支持Java、C++/C、Python、PHP、JavaScript等语言,以插件的方式集成到现有的IDE中,如Pycharm、AndroidStudio、VSCode、Eclipse、Webstorm、Sublime等,插件的背后是一个强大的云端深度学习引擎。针对开发者,该产品目前分为社区版、专业版和企业版。社区版是完全免费的,专业版也可以通过分享而免费获得。企业版是aiXcoder功能最为强大的版本,它能够在企业内部的私有云中进行部署,并能够利用企业自己的代码来进行模型的优化训练,从而具有更高的准确率和运行性能。
aiXcoder用起来怎么样?机器之心也对aiXocder进行了使用测试。机器之心在Pycharm上试用了社区版/专业版,它们都是需要在线推断。不同的地方在于专业版还需要额外的内存,因为每一个Pro用户都需要额外的缓冲区来储存模型「学到的」用户习惯。当然,Pro用户的缓冲区是是只有该插件能访问的。
使用体会一般而言,当我们选择Python和PyCharm时,代码补全就自然用IDE自带的工具。使用aiXcoder第一个感受是它比自带的补全工具灵活得多,因为以前的补全主要体现在Python函数或其它包的API,而aiXcoder还会预测变量名是什么、运算是什么、想调用的函数又是什么。虽然代码补全的推断过程全是在云端完成的,但在我们的使用中,一般网络环境甚至4G都能有实时的反馈,所以补全速度上基本和Pycharm自带的工具差不多。
aiXcoder的代码补全效果我们先看看写TensorFlow时的代码补全效果:
如上所示,aiXcoder在TensorFlow的代码环境下能够直接「猜测」到模型建立后的一系列代码流程。例如,在定义了loss之后需要定义optimizer,之后需要train_op、init方法,然后最终定义模型的保存方式saver,以及开始运行计算图。这样一个流程基本上是深度学习开发者所知晓的,但是按照流程写下来非常繁琐。在aiXcoder的提示下,开发速度得到了提升。
对于一些变量,aiXcoder可根据变量类型提出该变量可能的操作。例如,对于下图的变量「m」,aiXcoder提出了一个对字符串进行增加的代码:
如下是自动补全的一些候选,一些函数名称可能是开发者之间经常使用的,因此得到了推荐:
aiXcoder也将产品和其他代码补全工具进行了对比,包括Kite和TabNine等。在对比过程中,aiXcoder较其他插件在效率上提升1.5倍以上。
aiXcoder,背后有着强大的技术支撑。据李戈教授介绍,aiXcoder很早就试过了语言模型,将代码视为一种语言从而直接建模,这就和DeepTabNine一样。但是研究者很快发现,只有语言模型是行不通的,它总会提出一些毫无意义、很不科学的补全建议。为此,aiXcoder融合了基于序列的程序代码语言模型、基于抽象语法树和程序逻辑关系的图神经网络等方法,共同打造一个完整的系统。
在获得程序代码的各种特征之后,就该把这些特征输入深度神经网络进行分析了,但这并不容易,因为在输入神经网络之前需要把这些特征进行向量化表示。在研究过程中,北京大学提出了一系列解决程序语言成分相量化的办法,并且在国际上最早发表了相关的论文,这些都为aiXcoder的构造打下了基础。
总体而言,aiXcoder主要依赖于其特有的对程序代码进行学习的深度神经网络模型,该模型能够对程序的如下几类特征进行分析:1.程序的结构语义特征,2.程序元素间的逻辑关系,3.程序语言序列模型。aiXcoder借助图神经网络能够对程序元素之间的多种关系进行建模,从而能够对程序元素之间的复杂关系进行分析和推理。
aiXcoder的团队来自北京大学高可信软件技术教育部重点实验室,是国内顶尖的软件科学研究团队,是北京大学计算机软件与理论全国重点学科的主要支撑。该团队在AAAI/IJCAI/ACL等顶会上发表过很多代码生成的相关论文,这也是一大笔技术累积。
相关工具
相关文章
推荐
FLUX.1 Kontext 一出,AI生图领域 “地震” 了!
2025-06-06 15:38
用Deepseek写AI绘图提示词,像呼吸一样简单!
2025-02-19 16:12
你以为AI绘画是黑科技?其实早成了“路边摊生意”!
2025-02-19 10:15
Flux爆火,全网最全面最详细的Flux使用教程!
2025-02-18 14:19
用AI如何创作音乐,实战教学来啦!
2025-02-17 17:23
MidJourney让你秒变绘画大神,从零开始画哪吒!
2025-02-17 14:56
AI应用新境界:让人工智能成为你的得力助手
2025-02-14 15:45
AI短片革命:当创作遇上智能,人人都能成为导演
2025-02-14 14:53
AI狂潮下的人类职场:是失业危机还是进化契机?
2025-02-13 16:53
开启影视创作新纪元,效率提升 10 倍的神器来了!
2025-02-13 15:11