您的位置: 首页 >精选综合 >

Facebook已发布机器学习工具以帮助工程师编码

2019-04-16 09:11:54 编辑: 来源:
导读 Facebook已发布机器学习工具以帮助工程师编码Facebook AI发布了Aroma,这是一种能够搜索大型图书馆并向工程师提供代码推荐的机器学习工具

Facebook已发布机器学习工具以帮助工程师编码Facebook AI发布了Aroma,这是一种能够搜索大型图书馆并向工程师提供代码推荐的机器学习工具。工程师通常会编写与其他地方使用的代码类似或相同的代码。允许程序员搜索Github等大量代码库的工具在帮助工程师相互学习,扩展和修改代码,避免常见错误和错误,甚至执行质量检查方面都非常有价值。

过去没有这样的工具存在。但Facebook的AI团队发布了一个工具,利用机器学习为工程师提供代码建议,以帮助他们自己编写基于机器学习的工具,应用程序和算法。

类似于Google的图像搜索功能可以使用图像进行搜索以查找类似和相同的图像,Facebook的代码推荐引擎(称为Aroma)可以使用代码片段进行查询,以便在其他地方找到该代码的类似用法 - 为工程师提供简便的方法了解其他开发人员如何在其他项目中实现特定的代码。通过利用机器学习,Aroma不仅能够找到代码片段的精确匹配,还能够找到它的不同迭代,并确保没有两个建议彼此太相似。

在这个为期一周的课程中,我们将看到两个低成本但功能丰富的电子设计自动化(EDA)程序:CircuitStudio和KiCad。

根据Facebook的人工智能团队的说法,在Aroma之前,没有现成的工具真正解决了以高效准确的方式搜索大型代码库的问题。“文档工具并不总是可用且可能过时,代码搜索工具通常会返回无数匹配结果,并且很难立即找到惯用的使用模式,”Facebook软件工程师Celeste Barnaby,Satish Chandra和Frank Luan写道博客文章。“通过Aroma,工程师可以轻松找到常见的编码模式,而无需手动浏览数十个代码段,从而节省了日常开发工作流程的时间和精力。”

Facebook AI还发表了一篇详细介绍Aroma开发和测试的论文。

假设您已经编写了一些代码,但是您想要查看其他在类似项目上工作的人是如何实现它的。看到其他程序员设置的选项或处理的常见错误可以帮助避免在您自己的工作中出现相同的陷阱。

Aroma可以在大型代码库中搜索包含与您的模式相同的模式的代码片段集,并实时生成代码建议。据Facebook称,该工具也与语言无关,可以识别许多流行语言,包括但不限于Python,Javascript和Java。

Aroma通过三个步骤创建代码推荐:第一步是基于特征的搜索 - 基本上Aroma梳理代码,并解析最重要的细节。然后它使用它根据相似性对其代码库中的代码进行排名。

第二步是对候选人进行聚类。这是通过修剪每个候选者以删除任何不相关的代码位并重新排列推荐来完成的。然后在新的候选列表中搜索相似的代码片段,其中包含可能对工程师有用的额外编码语句。

最后,检查代码建议以确保没有太相似。这可以确保Aroma可以返回有用而非冗余的结果。最终,Aroma接受工程师的代码查询,将其分解为基本组件,并使用该基本代码查找类似和增强代码的集群,同时还删除任何冗余或无用的示例。

在开发Aroma Facebook AI时,工程师根据人们在热门编码讨论网站Stack Overflow上提出的建议对其进行了测试。

根据该研究:“我们手动分析并将建议分类为几个代表性类别。我们还评估了50个部分代码片段的Aroma建议,其中我们发现Aroma可以推荐37个查询的确切代码片段,而在剩余的13个案例中,Aroma推荐了仍然有用的替代建议。

据研究人员称,平均而言,Aroma能够在1.6秒内从查询中返回建议。

在他们的博客文章中,Facebook AI工程师表示,他们希望Aroma将成为一种工具,帮助工程师轻松发现和学习已有的代码。就像AI被提议承担与自动化相关的枯燥,重复的任务一样,允许人类工作者专注于更高级别的工作职能,Facebook希望Aroma和类似的工具可以为程序员提供同样的优势。“......我们相信编程应该成为一个半自由的任务,人类表达更高层次的想法,详细的实施是由计算机本身完成的。”


免责声明:本文由用户上传,如有侵权请联系删除!

最新文章

精彩推荐

图文推荐

点击排行

2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ   备案号:

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。

邮箱:toplearningteam#gmail.com (请将#换成@)