本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
一行一行地敲代码就像是徒手搬砖,聪明的程序猿们表示:我们要解放生产力!
比如像这样:

在机器学习的时代,AI智能补全代码早已不是梦想,各种IDE和插件都在努力帮助程序猿减少击键次数,延长键盘寿命。
有位来自斯里兰卡的程序猿也加入了关爱键盘协会,他尝试用简单的深度学习模型来实现自动补全Python代码这个目标,效果意外的不错。该项目现已开源!
简单的模型也强大
抱着实验的心态,在这个项目中,斯里兰卡小哥用到的只是一个简单的LSTM(Long Short-Term Memory)模型。
用来进行预测的算法是集束搜索(beam search),这是一种启发式图搜索算法。在进行每一步深度扩展时,集束搜索仅保留一些质量较高的节点,减少空间消耗,提高时间效率。采用集束搜索算法最多可以实现10个字符的预测。
而投喂给模型的数据是标记化的Python代码,这些代码里的注释、字符串和空行事先清理掉了。
训练效果是这样的:


绿色的字母就是自动补全开始的位置,按下TAB键选择补全,高亮标注为灰色的部分就是AI补充的代码。
小哥表示,如此简单的模型下,使用深度学习来自动补全Python代码,仍可以减少30-50%的击键次数,真的是surprise!
在GitHub上,小哥提供了一个Python的解析器,而只要写一个其他语言的解析器,这个方案完全可以推广到其他语言上,实现Java自动补全,C自动补全等等。
使用方法
想要亲测一下效果?
没问题,只需五步,你就可以训练自己的自动补全模型。

1、安装进行机器学习的实验环境(lab,地址见文末)。
2、将数据复制到 ./data/source。
3、运行 extract_code.py 来收集所有的python文件,编码并将其合并到 all.py。
4、运行 evaluate.py 对模型进行评估。
5、运行 train.py 训练模型。
仍需成长
方法简单,效果还挺好,听上去这个项目很有潜力啊。不过理想很丰满,现实还是有点骨感的。这个新生的AI还是面临着许多成长挑战的。
挑战一:效率太低
首先是它的性能尚未能满足实际使用的需要。由于编辑集成器的限制,集束搜索算法效率低下,有等它补全代码的时间,手动都可以敲好几行代码了。
对此斯里兰卡小哥表示,下一步他们会尝试用不同的架构来提高推理性能,也欢迎大家向他们分享想法和建议。
挑战二:前辈强大
Reddit网友们还指出,用机器学习来补全代码这个想法早已有比较成功的实现方案,比如获得了Trith Ventures投资的Kite。

全球有超过3万名Python开发人员使用Kite,它被誉为当前好用的Python自动补全工具。不仅能补全代码,Kite还能帮你跳过文档了解到别人是如何实时使用函数的,同时,它也能提供你的自定义代码库里的定义和用法。
连Python之父都忍不住为Kite点赞:这可真够酷的。

比起Kite这位前辈,小哥的这个项目还是非常稚嫩的,不过Kite并没有开源,其作为补充使用的云引擎也引起了有关安全性的质疑,有网友表示:
要是在工作上用了Kite,贵公司的法务部门怕不是要疯。

此外,还有网友好奇AI跟Pycharm比起来又如何?毕竟Pycharm的自动补全就已经挺好用了。
传送门
Github:https://github.com/vpj/python_autocomplete
Lab:https://github.com/vpj/lab
【编辑推荐】
点赞 0
- 大家都在看
- 猜你喜欢
编辑推荐
- 24H热文
- 一周话题
- 本月获赞
- 推荐 10 个标星 100 K 的 GitHub 开源项目博士生DIY超级显微镜,直接看到原子!网友:太极客了突发!美国再次瞄准中国超算,飞腾、申威等 7 大实体被列入管制清单CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了我们从2021谷歌I/O大会给的谜题中发现了隐藏信息“口罩厂”霍尼韦尔搞出的量子计算机,刚刚获得Nature认可谈谈为何会出现全球“缺芯”详解三大编译器:gcc、llvm 和 clang
- 将在2021年颠覆业务发展的十种技术详解三大编译器:gcc、llvm 和 clang不爱跳槽的程序员集中在8-17k,揭晓中国开发者的真实现状只要你一句话,马斯克就得留扫把头,项目已开源突发!美国再次瞄准中国超算,飞腾、申威等 7 大实体被列入管制清单5个开源的Java项目快速开发脚手架,项目经验有了真香!微软出Go语言教程了(中文版)什么样的程序员,在35岁以后,依然被公司抢着要?
- 你的Windows10即将终止!各大版本服务终止日期大全将在2021年颠覆业务发展的十种技术真香!微软出Go语言教程了(中文版)详解三大编译器:gcc、llvm 和 clang92年百度程序员被抓,给我们警示什么?GitHub 访问不了?用这个方法轻松解决5个开源的Java项目快速开发脚手架,项目经验有了2021年中国程序员薪资和生活现状调查报告
订阅专栏+更多
-
16招轻松掌握PPT技巧
GET职场加薪技能共16章 | 晒书包347人订阅学习
-
20个局域网建设改造案例
网络搭建技巧共20章 | 捷哥CCIE704人订阅学习
-
WOT2019全球人工智能技术峰会
通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。共50章 | WOT峰会0人订阅学习
视频课程+更多
-
JAVA面试题[秒杀/Redis/MongoDB/SpringBoot/S
讲师:鸟哥教育19304人学习过
-
韩立刚Windows Server 2008系统管理视频教程
讲师:韩立刚404972人学习过
-
Spring视频教程[IntelliJ IDEA版本]
讲师:鸟哥教育5863人学习过
专题推荐+更多
- 精选博文
- 论坛热帖
- 下载排行
读 书 +更多
数据库系统工程师考试全程指导
为了满足广大考生的需要,我们组织了参与过多年资格考试命题或辅导的教师,以新的考试大纲为依据,编写了《数据库系统工程师考试全程指导》...
-
订阅51CTO邮刊
点击这里查看样刊

51CTO服务号

51CTO播客