世界首个AI程序员Devin视频竟造假?博主逐帧解析,Devin代码任务完成很糟糕 全球首个ai程序员 世界上第一个ai程序员
admin
2024-04-14 19:24:11
0


新智元报道

编辑:桃子

【新智元导读】全球首个AI程序员Devin被爆视频造假?YouTube博主近日揭露了背后明星初创公司Cognition的谎言,通过逐帧分析发现,Devin并不能独立完成Upwork工作。

全网爆火的世界首个AI程序员Devin,如今被爆出视频竟是作假?

最近,一位有35年软件工程师经验的YouTube博主去逐帧复现了,Devin完成Upwork任务的宣传视频。

却意外发现,AI并不能像人类工程师一样完成任务,而且非常糟糕。


他将25分钟「揭穿Devin的谎言」视频公开后,一时间引爆全网并在HN、Reddit等社交平台上掀起轩然大波。


更有意思的是,博主自己复制了Devin尝试做的任务,花费了大约36分钟。

然而,Devin用了至少6个小时,甚至可能超过一天。


有网友表示,「正如博主详细解释的那样,尽管其试图在演示中暗示,Devin并不能独立完成Upwork的工作。它正在创建混乱、过于复杂的代码」。


也有人认为,Devin从诞生之初,就更多的是营销和炒作,而不是现实。


说来,Devin视频真的是作假了吗?

逐帧分析,揭穿Devin的谎言

Devin发布之初,背后初创公司Cognition AI更新的官方博文中,通过七个视频介绍了这一AI的「魔力」。


其中,一个视频是,让Devin自主完成了全球最大的综合类自由职业平台Upwork的一项任务。


当时,网友看后惊讶地表示,没想到AI智能体都可以做副业了。


Cognition的开发者You挑选了一项「用计算机视觉模型做推理」的工作,具体要求是:

- 我希望利用该资源库中的模型进行推断。(https://github.com/mahdi65/roadDamageDetection2020)

- 您的交付成果将是关于如何在AWS的EC2实例中进行操作的详细说明。

- 请提供您完成这项工作的评估报告。我不会回复没有评估的报告。


如下是Devin在官方视频中,完成任务的表现。

接下来,一起看下YouTube博主如何逐帧分析,Devin在真正实操中的能力。

博主称,我们首先看到Devin并不是能做Upwork上的任何工作,而是在这项任务中,研究者精心挑选了「road damage」任务。

当然,这并非说Devin就是欺骗性的,而是代表其在别的任务中的表现,一定要比这个差。


然后,在实际对话中,开发者You向Devin提出的要求如下,「我想用这个储存库中的模型进行推理,请弄清楚」。


值得注意的是,客户的要求是「你需要在亚马逊EC2实例中提交这一操作的详细说明」,与开发者提出要求显然不同。


然而,根据Devin的视频末尾,实际上它并没有按照客户要求完成工作。


在博主看来,完成这项任务之前,你需要明确怎样开始这项工作。

这就需要向客户询问:

- 实例的大小,类型

- 是更倾向于一个运行更快但成本更高的实例,还是一个更经济但运行较慢的实例?

- 这个系统需要持续在线吗?

如何处理自己需要进行推理分析的资料/图片?你将怎样把这些上传到服务器?

比如,可以建立一个网页界面来处理,也可以通过SSH上传,或者放在S3 bucket里。那输出结果的访问方式又是怎样的呢?

这些都是你必须了解的问题。


总而言之,博主称,这也是我之前视频里提到的,软件开发者的工作中最难的、最关键的、最耗时的一部分:

主要是与客户、领导及其他利益相关者的沟通。

这些都是 AI 目前无法完成的任务,而这些恰恰是我们所做的非常重要的事情。

Devin实际上做了什么?

如下是视频中的一个截图,提到了一个Repo。


这是一个名为 requirements.txt 的文件,它规定了代码的依赖库版本。

不过,这个代码库最初依赖的一些库是四年前的版本,而现在其中一些库已经不再提供下载,所以不得不进行修改。

再此,视频中提到了Devin更新了代码。博主表示,「Devin能够做到这一点确实令人赞叹」。


与客户的要求相比,他们基本上希望建立自己的推理能力。

Devin被告知只使用样例数据就可以,因此这正是博主复现Devin操作时所做的。

Devin很早就遇到了一个错误,这是一个命令行错误:


在顶部,遇到了与打开图像、文件未找到、无此文件或目录相关的错误。

这个错误出现在一个名为visualize_detections.py的代码文件中。博主称自己并没有遇到这一问题,是因为在代码库中不存在名为visualize_detections.py的文件。


回到命令行,如果放大窗口的其他部分,便会看到,Devin将一些内容写入一个名为inspect_results.py的文件中,接着运行Python执行这个文件,结果出现了语法错误。

在Python文件中使用/n是不行,而且echo命令也不该这么使用。这整个过程都是错误的毫无意义。

Devin在创建这些含错误的文件后,又进行了修正。视频中提到,Devin实际上是在进行打印行调试。这是一个很常见的做法,很多人都会用到。


评论里说,「Devin正在添加代码,追踪数据流直至彻底理解」。

博主对此怀疑道,我不相信Devin真的能理解任何事物。


放大观察这一部分,可以看到一个奇特的循环。它正在读取一个文件,并把数据读入一个缓冲区。这是update_image_ids.py文件。

再次说明,这个文件在客户要求使用的代码仓库中不存在。

实际上,博主在GitHub上搜索了所有可能的位置,只有2处存在带有这个名称的文件。


屏幕上显示三个的原因是,其中一个是另一个的分支版本,它们与Devin正在使用的文件完全不同。

但问题在于Devin此处正在调试一个自己创建的文件,而这个文件完全不在项目代码仓库中,非常不妥。

其实,Devin并不是在修正自己在网上发现的代码,也不是在处理客户指定的问题代码,而是在修正自己生成的错误代码。

更糟糕的是,这样做并无必要。这是那个代码库中的readme文件。


该库中有一个名为infer.py的文件,正如视频中Devin所做的那样。

readme文件说明了其功能及使用方法。在右侧,甚至还有一个小按钮,可以复制整条命令,粘贴至命令行窗口,然后按下回车。

博主认为开发这个「检测道路损坏」的代码仓库的人已经尽可能地简化了使用说明,但Devin似乎还是没能理解。

因此,Devin不得不自己创建了一个混乱的项目。

正如Devin正在发现的,复杂,难以处理,很容易出现小错误,这样的代码很难调试。


半小时复现,AI却用了6小时

接下来,博主计划自己去复现Devin尝试做的任务。

他表示,自己用了大约36分的时间,完成所做的事。


下一张幻灯片中,实际上有一个需要修复的错误,在名为dataset.py的文件第33行。

问题是torch模块缺少一个名为underscore six的属性。

博主在谷歌上搜索了这个问题,找到了GitHub上的一个相关评论。

他按照该评论中的建议修改了代码行,这样确实解决了问题。

「解决这个问题总共花了我大约一分钟七秒的时间,只需这么短的时间我就修正了错误。这只是一个快速的谷歌搜索而已」。


以下是博主所做的修改的具体内容,这是最初状态和最后状态之间的差异。

这是requirements.txt文件的一处修改,最开始使用的是torch 1.4.0版本,博主使用了最新版本的torch 2.2.2。

然后在右边,这是Devin视频中的最后一屏,左边是我的视频,也就是最后的输出。

它们两个大同小异。博主的框是黄色的,Devin是红色的。


根据Devin官方视频中时间,从最初2024年3月9日3:25pm开始,一直到9:41pm完成,中间经历了6个小时。



最后再看下,Devin完成工作的效果及其评价。

为了复制Devin的结果,博主只需要在云实例上设置合适硬件的环境,并实际运行两个带有正确路径的命令。

这些东西看起来就像Devin做了很多工作,完成了很多任务。

然而,只要你设置好环境,实际上你只需要运行2个命令。些代码修正全都无关紧要,因为它们都是 Devin 自生成的代码。

在视频的最后,研究者You表示Devin做得好。而实际上,Devin完成的任务对于AI来说的确很酷。


AI程序员,全网沸腾

3月初,还记得Devin发布时,全网都在疯转这个AI。

在SWE-bench基准测试中,它的表现远远超过Claude 2、Llama、GPT-4等选手,取得了13.86%的惊人成绩!


它不仅能自主学习不熟悉的技术,端到端地构建和部署应用程序,自己改bug,甚至还能训练和微调自己的AI模型!

网友纷纷恐慌,Devin会偷走我们的工作吗?难道程序员真的不存在了?!


甚至,背后十人初创团队的励志故事也被人挖了出来。


核心创始人首席执行官Scott Wu,以及弟弟Neal Wu等人共揽收十枚IOI金牌。


也就不到一个月的时间,各种AI程序员相继诞生。

比如,普林斯顿团队提出的SWE-agent,可以在真实的GitHub仓库里修bug,还有OpenDevin,Devika开源项目。


不过,关于AI程序员能否解决真实问题的能力,却是还应该持有保留态度。

因为,即便是借助了GPT-4 Turbo的能力,AI也并非是万能的。

参考资料:

https://x.com/0interestrates/status/1779268441226256500

https://www.reddit.com/r/programming/comments/1c1g0fn/debunking_devin_first_ai_software_engineer_upwork/


相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...