一夜之间,第一位AI程序员诞生的消息铺天盖地。这句看起来超级拉风的"只需一句指令,它可端到端地处理整个开发项目"成功的引起了我的注意。
纳尼?现在做软件项目都这样丝一般顺滑了吗?对接需求就只需要简简单单一句话?都不带吵架的吗?秉着科学严谨的吃瓜精神,我决定到消息源头去看看这位新晋顶流的具体情况。
初识Devin同学
首页是一段视频1分49秒的视频,对AI程序员进行了简单的介绍。演示内容包含:人下需求指令,Devin同学写代码,debug,部署。。。。打住,现在不是流行逐帧吃瓜嘛,咱们暂停视频,先看看具体需求是啥:
我希望您能在三个不同的提供商( Replicate、Together、Perplexity)上对 Llama 2进行基准测试。了解他们的 API格式,并编写一个脚本,该脚本向这三个提供商发送相同的提示/参数。
Devin同学先做了一个Planning,对工作进行了分步,然后打开它的编码区进行编码:
然后他发现需要查官方API文档,于是调了他的浏览器进行查询:
代码写好后跑一下,不出意外的出了意外!
开始查log进行debug:
跑通后,部署可视化页面:
一气呵成,完成!
各位程序员什么感想?是不是有你撸代码那味儿了。
视频的后半部分大概是秀肌肉的过程。Cognition AI 让 Devin 进行了一次编码基准测试 SWE-Bench,解决开源项目里真实存在的 GitHub 难题。 Devin同学端到端正确解决了其中的 13.86%,远远超过了 GPT-4、Claude2 等一众前辈。 。。。
下面让我们重新审视一下Devin同学。
Devin同学的优缺点
Devin同学的优点,不必多说了吧,从上一部分一目了然。在另外的一个例子中,Devin同学还自己从github上下了套代码跑起来,展现了惊人的代码阅读能力。
有哪里不对劲呢?
Devin同学超强的能力,基本上都是剑指coding能力、debug能力、异常情况的处理能力、对于新技术的超强学习能力、甚至部署运维能力,而这些能力的本质, 都是分析问题和解决问题的能力(以及执行能力)。在他开始工作之前,你必须要有一个确定的、清晰的问题给到他。
可现实中的问题,都是由多个不确定的、不同层面和维度的问题复杂交织在一起的。
我们真实的工作场景是什么样子的?产品梳理业务场景,然后进行“业务建模”,把业务建模后的内容讲给研发人员,研发人员撸起袖子开撕,俗称“需求评审”。为啥一定会有这个过程?因为研发需要对业务进行“技术建模”,大家的视角是不一样的,所以对于同一个业务问题的解决方法一定会有争议的。在这个过程中大家逐渐加深认知,最后碰撞出一个妥协后的最优解。
这个过程,是发现问题的过程。
然后是架构师进行技术选型,各种分模块,下开发任务。到了功能模块这一层,就是清晰的需求了,“发现问题”的过程基本上就完成了。
Devin同学教会我们的事
必须承认的是,视频中Devin同学的表现确实还蛮惊艳的,但真的还不至于让程序员瑟瑟发抖。我认为最可怕的点,在于视频的最后,创始人给出的结束语:
正如埃隆 · 马斯克刚刚发出的预言:到 2029 年底,AI 将超越整个人类的智力水平。
不管你多么不愿,亦或多么不屑,和千千万万的Devin同学共事,是一个确定的未来。这是每个人都要共同面对的问题。
作为赛博世界的缔造者,程序员对于AI,本不应当持忌惮或者鄙视的态度。程序员需要充分利用“近水楼台先得月”的优势,了解和会用主流大模型、了解其应用场景和局限性,以及了解基于大模型的应用层开发框架,才能更好地与AI进行合作,并充分发挥其潜力。