程序员慌不慌?这个AI能自动写代码!
大家好,我是轩辕。
相信大家听说过人工智能写代码吧?
之前我听说这玩意的时候还不屑一顾,不过最近我看了一个AI写代码的能力,还真让我开了眼界。
这个AI叫做:CodeGeeX
根据官方的宣称,这个家伙的诞生可不简单:
CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型
在20多种编程语言的代码语料库(>8500亿Token)上经过历时两个月预训练得到。
CodeGeeX采用华为MindSpore框架实现
在鹏城实验室的“鹏城云脑ll”平台上训练而成。
130亿+参数,20多种编程语言,训练2个月...真不愧是炼丹术,让我们来看看这训练出来的AI写代码能力究竟如何。
如何使用?
使用很简单,你只需要在注释中阐述你需要什么样的功能,AI会自动提示代码输出,接下来要做的就是不停按Tab键就可以了。
PS: 描述程序功能的时候,用英文的效果比中文要好一些。
这里是它们的官网,在官网提供了在线测试的入口,大家可以去“调戏”一波:
https://models.aminer.cn/codegeex/zh-CN/
除了在线使用,另一种更加实用的方式是集成到IDE中。
这玩意提供了VSCode的插件支持(PS:VSCode真香),可以在VSCode中体验丝滑般的使用体验。
接下来我分别使用了三种主流的编程语言,来试试这家伙的“智能”到底是什么水平。
Python
在Python中,我敲下了一行注释:
# start a web server on port 8090
意思就是在8090端口给我起一个web服务,来看看AI的表现:
看起来还不错吧,当然视频是我设置了三倍速播放,正常情况下差不多是1-2秒钟出来一行,我就是一直等待它计算出来后,不断按tab键,坐等程序编写完成。
整体来看生成的程序符合我的要求,给个好评。
Java
再来看看Java中的表现,我在注释中敲下了:
// download a file from a specified url
从一个指定的URL下载一个文件。
额,不知道为啥把Android的包都引入进来了,难道这玩意的Java是在Android语义环境下训练出来的?
而且,我没说这是个图片啊,代码直接当成了Bitmap在处理。
有点文不对题,这次给个差评!
C++
最后来看看在C++中的表现。
我的注释是:
traverse the files in the specified directory
遍历指定目录下的所有文件。
好家伙,一来就告诉我,目前只支持Windows平台,所以生成的代码是基于Win32 API的,没想到这家伙还精通已经逐渐没落的Win32编程,让我有点意外。
整体来看效果还不错,生成的代码可用性还是挺高,基于它的结果我们改一下就可以用起来了,再次好评。
总结
除了这三个例子,实际上我还测试了很多,大部分时候还是能get到我的意思,输出我想要的代码,但还是有些场景下,输出的代码风牛马不相及,不知道是什么意思。
整体来看,这款AI的水平已经算不错了,但感觉还是有点鸡肋。比如上面三个例子,我在百度那么一搜,去博客园、CXDN找一找别人写的说不定还快一点,质量还可靠一点。
简单的用不上,复杂的搞不定,差不多就是这么个意思。
当然还是不能否定人家的成绩,能做到这个程度已经很不容易,相信随着后续的优化迭代,也会越来越完善。
AI:程序员们,你们颤抖吧!
往期推荐