前几天,Google DeepMind基于AlphaZero开发了一种新算法——AlphaDev。
据称,这个算法可以创造出比人类编写的算法快3倍的排序算法。
消息刚出的时候,很多网友都认为这是机器学习领域的重大突破。
但经过一段时间的发酵之后,部分网友对AlphaDev取得的成就的评价似乎出现了分歧。
先是一位推特网友表示,用GPT-4也成功地发现了和AlphaDev发现的几乎一样的算法。
然后不少网友也在讨论,觉得AlphaDev取得的实际成果和他们自己吹的「历史性突破」差距过大。
网友的这些讨论甚至把马库斯也引来围观看热闹了。
此外,马院士也回复了用GPT-4发现算法的网友,「推特老板到此一游」
GPT-4也能「发现」同样的算法
现在我们来看看这位用GPT-4发现和AlphaDev几乎一样算法的网友到底是怎么做到的。
他把自己的Prompt和GPT-4的回复都Po了出来。
顺便问了一句,我这东西能发Nature吗?
网友的提示词有两个部分,第一个部分让GPT-4针对这段排序算法进行优化,标注出哪段指令可以删除,再一步一步解释原因,然后回头再验证一遍。
然后他又给了第二部分提示词,让GPT-4根据上面的提示词继续做,让Temperature=0(保持结果的一致性)。
最后GPT-4还小小地总结了一下。
认为删除「mov S P」,再把删除后代码的P用S替换一下就行。
AlphaDev发现的算法
如下图示例,原始sort3实现,有min(A, B, C),使用AlphaDev Swap Move,AlphaDev发现,你只需要min(A, B)。
对比网友用GPT-4的优化内容,只能说是一模一样!
不知道是GPT-4过于强大,还是说AlphaDev确实也就那样?
AlphaDev被吹得有些过头了?
马库斯也在推特上转载了一段YC社区网友对于AlphaDev发现的算法这个事比较刻薄评价。
YC社区的用户orlp指出,他们能够在某个libc++算法上取得70%的改进主要是因为这个库在过去10年中没有得到积极开发。
此外,DeepMind的改进能起作用其实是因为库本身在无分支排序网络的高效实现方面存在一些问题。
其他用户指出,这种观点「过于极端」了,算法能够自动生成新的排序算法已经是很了不起的一件事了。
orlp回复说,虽然该算法确实能够自动生成良好的代码,但它远未达到革命性或改进现有技术水平的程度。
网友主要的观点认为算法并没有找到全新的排序方法,而只是对代码进行了优化。
但是,其实已经存在「超级优化器」的程序能够以不同的原理实现类似的效果。
而且在GitHub上也有项目已经完成了更加快速的排列网络的自动搜索,效果似乎比AlphaDev的算法还要好。
项目地址:https://github.com/bertdobbelaere/SorterHunter
不少国内网友还是选择相信AlphaDev,搞不好是因为GPT-4抄得快,不一定是原创。
不过确实有些读者认为,这类改进确实意义不算特别大。
参考资料:
https://twitter.com/DimitrisPapail/status/1666843952824168465
https://twitter.com/GaryMarcus/status/1666985156375203840