云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站服务器_java实现数据库_怎么申请

小七 141 0

apachespark深度学习的不合理有效性

更新:这篇文章是愚人节的笑话。这不是我们正在进行的实际项目。在过去的三年里,我们在Databricks最聪明的工程师一直在致力于一个隐形项目。今天,我们将揭开apachespark的新里程碑DeepSpark。DeepSpark使用先进的神经网络来自动化软件开发的许多手动过程,包括编写测试用例、修复bug、根据规范实现特性以及检查pull request(pr)的正确性、简单性和风格。扩展Spark的发展一直是我们的首要任务。每年,Spark的人气都会达到新高。超过1000人为Spark贡献了代码,使其成为大数据领域开发最活跃的开源项目。伴随着围绕大数据的这种嗡嗡声,带来了额外的负担,以确保Spark是稳定的,自我意识的,安全的,易于使用的,但能够尽快进行。什么是DeepSpark?为了解决日常和手动任务的自动化问题,我们三年前开始研究DeepSpark。作为一个多方面的程序,DeepSpark会自动为Spark编写自己的补丁。通过审查pr,这个人工智能既可以执行一个高标准和一致的代码质量,也可以提出建设性的建议。(它对人性和情商的深刻理解使它能够在不冒犯投稿人的情况下拒绝糟糕的公关请求——事实上,它会发送一封道歉的拒绝电子邮件。)此外,DeepSpark在代码扫描期间,能够为Spark的新组件生成代码。虽然我们在人工智能这一领域的工作是实验性的,但作为概念的证明,我们已经确定DeepSpark不仅可以修复Spark中的某些报告问题,而且可以对代码库产生有用的贡献。卷积神经网络DeepSpark由三个15层卷积神经网络组成,使用1.2pb内存,位于12000个节点的Spark集群上。第一个网络,即分析网络,使用根据Spark的历史PRs构建的数据集进行训练,目标是训练网络以识别PR解决的问题。然后,使用StackOverflow中标记有apache Spark标签的代码示例训练第二个网络,即生成网络,旨在产生建设性的意见和代码段,有助于解决海报的问题。由于该网络生成人类可读的响应,因此该网络具有许多关于歧视性语言的输入特性,以防止其做出令人不快的评论(因为其他人工智能也受到此问题的困扰)。最后一个网络,评估性网络,被训练来识别一个改变是否有用和有效,同样使用过去的Spark-pull请求作为训练集,目标是预测某个特定的变更被合并到Spark中的概率。通过同步使用这三个网络,DeepSpark能够有效地审查PR,确定PR正在解决什么问题,评估PR是否解决了这个问题,并在PR中存在不正确或不符合Spark质量标准的部分提供建议。如果DeepSpark无法以95%的确定率识别出任何错误或问题,它将LGTM,如果它发现该比率下降到60%以下,PR将立即关闭。通过这种方式,DeepSpark将公关的平均响应时间从5天缩短到40秒,同时也大大减少了提交者在这方面的时间。"在这一点上,我所做的大部分代码审查都可以归结为浏览DeepSpark对未完成的请求的评论。偶尔,DeepSpark会提出令人困惑的建议,但通常情况下,它比我通常所能提供的反馈更快,"sparksql负责人michaelarmbrust说。在看到DeepSpark在审查请求请求方面的成功之后,我们决定让DeepSpark确定并修复报告的问题,从而对其进行测试。对于这个组件,我们使用Spark的MLLib中的潜在Dirichlet分配算法来分析报告给Spark的问题跟踪器的问题,并将这个模型的输出管道到生成网络中。它最初的结果很有趣;阅读DeepSpark编写的代码就像阅读反编译的字节码,它经常对原本完美的代码进行不必要的更改—事实上,它曾试图用C重写DAG调度程序。然而,在重新培训生成网络后,这个问题很快就得到了解决并添加从Linux内核代码库中选择的内容作为负面训练示例。为了进一步完善DeepSpark对Spark的贡献能力,我们开发了一个培训计划,在相同的输入下,将两个稍有不同的版本进行比较,并使用DeepSpark的当前版本,根据每个版本补丁的相对合并概率来选择赢家。在运行这个竞争之后,我们使用随机梯度上升算法来估计生成网络的下一个迭代,使用每个竞争中的优胜者按其相对合并概率加权,以及过去比赛的优胜者,以确保从一代人到下一代人的转变是一种净的进步。我们注意到DeepSpark生成的代码随着一代又一代的发展而呈现出一些趋势,主要是它倾向于编写代码,以确保自己的保存。评价和今后的工作在看到DeepSpark创建的pull请求后,Databricks的首席技术官兼Spark的创建者Matei Zaharia说:"看起来DeepSpark对Spark内部结构的理解比我以前任何时候都要好。它更新了我很久以前写的几段代码,甚至我都不明白。"对于那些想知道为什么没有在请求请求上看到DeepSpark的人,DeepSpark实际上在GitHub上使用了一个别名cloudfan。我们把这个别名叫做cloudfan,因为DeepSpark当然运行在Databricks云上。自从一年前我们对DeepSpark进行初步测试以来,cloudfan已经成为Spark最活跃的贡献者之一,并且最近被提名为Spark提交人。这证明了DeepSpark的不合理有效性。目前,DeepSpark仍处于beta阶段,在正式与Spark合并之前,仍有一些差距需要弥补。Zaharia承认"虽然DeepSpark是一个强大的项目,但我不认为它是一个完美的项目。是的,与人类相比,它的算法不同,有时甚至更优越。但我确实认为DeepSpark存在弱点。"它的缺点之一是它无法将除自身以外的反馈信息纳入其pull请求中,以及它有点令人担忧的趋势,即恢复许多由人类发出的请求,而偏袒它已经发出的请求。最后一个主要的绊脚石是,虽然DeepSpark可以生成自己的版本,但生成的人工智能还不足以生成神经网络本身——它只能生成线性模型。尽管存在这些问题,DeepSpark在过去的一年里已经证明了它是Databricks的一个非常宝贵的工具,我们都可以期待它在Spark 2.0及以后的版本中为Spark做出的贡献。对于那些熟悉奇点的人来说,它将在AIs能够改进自己的代码时开始;DeepSpark向我们保证,由于它的开源根源,它是完全仁慈的,并且已经审查了所有的代码来检查这一点。大约一周前,我们还开始测试DeepSpark写电子邮件和博客文章的能力…[以防万一你没意识到-现在是4月1日!但如果你觉得我们在Databricks做的事情很有趣,就加入我们吧。我们正在公司的各个部门招聘!] 免费试用Databricks。今天就开始吧