伴随 AI 和大数据技能在整体软件市场的运用,软件开拓行业正迎来自己的“第三次工业革命”,AI 技能也开始在编码事情中发挥浸染。
近日,智能编程机器人供应商 aiXcoder 宣告推出海内首个基于深度学习的支持方法级代码天生的智能编程模型——aiXcoder XL,该模型能同时理解人类措辞和编程措辞,可根据自然措辞功能描述一键天生完全程序代码(NL to Code)。目前 aiXcoder XL 已完成在程序编写场景下的运用测试,并即将以 IDE 插件形态推出支持商业编程的产品。
aiXcoder XL 方法级代码天生实测

aiXcoder XL 效果如何呢?我们以 Java 措辞为例,“将 byte 数组转化为 16 进制字符串”,创建这样一个描述功能的自然措辞语句,点击天生按钮,模型就自动天生了与之对应的完全函数代码,程序员可直策应用。
再比如,输入“用 map 中的值更新 url 中的参数”这样一句中文描述,就可以得到一个完全方法的代码实现。
aiXcoder XL 对英文自然措辞描述的支持也相称出色。比如以下这个示例,“Calculate the inner product of two matrices”(打算两个矩阵的内积),当我们还在思考详细打算步骤时,aiXcoder XL 已经给出了完全的程序方法。
考试测验了多个类似的输入,aiXcoder XL 都给出了可以直接复用的代码天生结果。特殊是对付一些软件开拓中须要常常在不同场景中编写的代码(例如,各种文件操作、字符串操作、网络做事等)aiXcoder XL 的天生结果更是令人面前一亮。
随机应变:根据需求变革,天生相应代码aiXcoder XL 还能进行动态交互,实现个性化人机结对编程。在实际开拓过程中,有时无法“一步到位”描述清楚想要的内容是什么,须要“边写边改”,这时就须要模型能灵巧理解每一处调度。aiXcoder XL 支持与程序员进行动态的人机交互:在处理一些繁芜的场景时,开拓者不仅可以通过修正自然措辞,也可以直接对已天生的代码进行编辑,使后续天生的代码更匹配开拓者的详细需求。
例如,不才图示例中,开拓者可以直接在已天生代码里修正函数署名,把输入的压缩文件参数类型 InputStream 换成 File 工具,这样 aiXcoder XL 就能根据修正重新天生匹配需求的代码。
贴近实战:功能自动拆分,逐级天生方法代码为了更好的代码可读性,aiXcoder XL 天生代码时会将功能进行拆分,有时会使天生的代码中包含对其它尚不存在的函数的引用。将鼠标移到这些函数上,根据提示选择“为这段函数调用天生它的实现”即可进一步天生这些函数的实现。
如下图所示,aiXcoder XL 原来天生了一个调用了 isSorted 函数的 sort 方法。用户通过一次鼠标点击,让 aiXcoder XL 进一步天生了被调用的 isSorted 函数。
全体交互的过程大大提升了开拓者的编程效率,创造了更智能、流畅的人机结对编程体验。对开拓者来说,就像拥有了智能输入法一样,无论你在写什么代码,aiXcoder XL 都有可能帮到你。
在此之前能实现类似功能的只有由微软、OpenAI、GitHub 三家联合推出的 GitHub Copilot。aiXcoder 进一步做了与 Copilot 的性能比拟测试。
根据 aiXcoder 的官方先容,测试数据集包含了 175 个代码的功能描述,这些描述清晰明确、功能独立,包括 Java 编程中高频涌现的代码例子,涵盖大部分运用处景,并为每个例子配备了自动测试程序来验证程序的精确性。结果显示,aiXcoder XL 展现出了能够匹敌 Copilot 的代码天生能力。
瑕不掩瑜:针对问题,持续改进对付代码自动天生而言,方法级代码天生是一项困难的任务。aiXcoder XL 带来诸多惊喜的同时,测试者在试用过程中也碰着了一些缺点的案例,例如:
示例 1:当测试中输入“打算标准差”时,天生的代码并不是所期待的。
在这个例子中,中文描述中的“标准差”一词被理解成了“标准化”,导致天生的代码未能知足需求。不过,如果把输入文本改成“Calculate the standard deviation”,就能得到想要的输出结果。可能对这个案例而言,英文描述比中文描述更随意马虎区分。
示例 2:测试者输入“Extract all images from a PowerPoint file. And save them in to a folder”时,所天生的代码中却短缺了对 PowerPoint 的支持。
这里的需求是提取 PowerPoint 文件里的图片,但 aiXcoder XL 却理解成了从某个文件夹中提取图片文件。“这表示出 aiXcoder XL 对付一些分外需求的捕捉和理解还须要进一步改进”,aiXcoder 的技能职员反馈。
示例 3,当测试者输入“Return a new immutable collection containing…”时,aiXcoder XL 天生的代码中包含了一个未定义的工具。
在这个例子中,天生的代码中包含了一个 store 工具,用来表示当前路径的目录,但它却是一个没有被定义的工具。
在详细利用场景中,以上问题都有可能碰着。aiXcoder CTO 郝逸洋表示,将在后续的演习过程中进行调度,帮助模型更快“发展”。
降本增效,重新定义编程领域延续以往版本的上风,aiXcoder XL 仍支持企业私有化支配。“私有”的云端环境可充分保护企业的代码知识产权,知足企业特定场景的智能开拓需求,帮助企业降落开拓本钱、提升质效。对开拓者而言,有了 aiXcoder 智能开拓工具的赞助,将大大提高写代码的效率、减少编程缺点,让开发者从繁重的重复性编码劳动中解放出来,投入到更具创造性的事情中。目前,在 aiXcoder 官方网站上,供应了 aiXcoder XL 模型的测试页面,可供开拓者们在线体验。
还会有 aiXcoder XXL 吗?间隔自动化编程还有多远?“会有。”aiXcoder 联合创始人刘洋表示,“大家大概已经看到,aiXcoder 本系列的版本标号,采取了类似服装号码的标记。从 L 版到 XL 版,再到 XXL 版,是一个逐步蜕变的过程。这不仅表示了模型规模的变革,也表示了模型能力的逐步提升。在不久之后,大家将会看到能力更加强大的 aiXcoder XXL。”
间隔自动编程还有多远?人类程序员会被机器取代吗?这是一个常常被大家谈论的话题。刘洋表示,“人类的创造潜能是无限的,aiXcoder 当前的事情目标是要帮助开拓者,尽可能减少开拓者的事情包袱,让人们有更多的精力投入到更加富有创造性的事情中。这正如 aiXcoder 的 Slogan 一样——把更多的编程事情交给 aiXcoder,把更多的创造潜能留给人类。”
aiXcoder XL 的涌现,为程序员供应了大模型时期的个性化智能编程体验。随着 AI 技能的发展和遍及,这或将重新定义编程领域。