世界首個(gè)AI程序員Devin視頻竟造假?博主逐幀解析,Devin代碼任務(wù)完成很糟糕
全網(wǎng)爆火的世界首個(gè)AI程序員Devin,如今被爆出視頻竟是作假?
最近,一位有35年軟件工程師經(jīng)驗(yàn)的YouTube博主去逐幀復(fù)現(xiàn)了,Devin完成Upwork任務(wù)的宣傳視頻。
卻意外發(fā)現(xiàn),AI并不能像人類工程師一樣完成任務(wù),而且非常糟糕。

他將25分鐘「揭穿Devin的謊言」視頻公開后,一時(shí)間引爆全網(wǎng)并在HN、Reddit等社交平臺(tái)上掀起軒然大波。

更有意思的是,博主自己復(fù)制了Devin嘗試做的任務(wù),花費(fèi)了大約36分鐘。
然而,Devin用了至少6個(gè)小時(shí),甚至可能超過一天。

有網(wǎng)友表示,「正如博主詳細(xì)解釋的那樣,盡管其試圖在演示中暗示,Devin并不能獨(dú)立完成Upwork的工作。它正在創(chuàng)建混亂、過于復(fù)雜的代碼」。

也有人認(rèn)為,Devin從誕生之初,就更多的是營銷和炒作,而不是現(xiàn)實(shí)。

說來,Devin視頻真的是作假了嗎?
逐幀分析,揭穿Devin的謊言
Devin發(fā)布之初,背后初創(chuàng)公司Cognition AI更新的官方博文中,通過七個(gè)視頻介紹了這一AI的「魔力」。

其中,一個(gè)視頻是,讓Devin自主完成了全球最大的綜合類自由職業(yè)平臺(tái)Upwork的一項(xiàng)任務(wù)。

當(dāng)時(shí),網(wǎng)友看后驚訝地表示,沒想到AI智能體都可以做副業(yè)了。
Cognition的開發(fā)者You挑選了一項(xiàng)「用計(jì)算機(jī)視覺模型做推理」的工作,具體要求是:
- 我希望利用該資源庫中的模型進(jìn)行推斷。(https://github.com/mahdi65/roadDamageDetection2020)
- 您的交付成果將是關(guān)于如何在AWS的EC2實(shí)例中進(jìn)行操作的詳細(xì)說明。
- 請?zhí)峁┠瓿蛇@項(xiàng)工作的評估報(bào)告。我不會(huì)回復(fù)沒有評估的報(bào)告。

如下是Devin在官方視頻中,完成任務(wù)的表現(xiàn)。
接下來,一起看下YouTube博主如何逐幀分析,Devin在真正實(shí)操中的能力。
博主稱,我們首先看到Devin并不是能做Upwork上的任何工作,而是在這項(xiàng)任務(wù)中,研究者精心挑選了「road damage」任務(wù)。
當(dāng)然,這并非說Devin就是欺騙性的,而是代表其在別的任務(wù)中的表現(xiàn),一定要比這個(gè)差。

然后,在實(shí)際對話中,開發(fā)者You向Devin提出的要求如下,「我想用這個(gè)儲(chǔ)存庫中的模型進(jìn)行推理,請弄清楚」。

值得注意的是,客戶的要求是「你需要在亞馬遜EC2實(shí)例中提交這一操作的詳細(xì)說明」,與開發(fā)者提出要求顯然不同。

然而,根據(jù)Devin的視頻末尾,實(shí)際上它并沒有按照客戶要求完成工作。

在博主看來,完成這項(xiàng)任務(wù)之前,你需要明確怎樣開始這項(xiàng)工作。
這就需要向客戶詢問:
- 實(shí)例的大小,類型
- 是更傾向于一個(gè)運(yùn)行更快但成本更高的實(shí)例,還是一個(gè)更經(jīng)濟(jì)但運(yùn)行較慢的實(shí)例?
- 這個(gè)系統(tǒng)需要持續(xù)在線嗎?
......
如何處理自己需要進(jìn)行推理分析的資料/圖片?你將怎樣把這些上傳到服務(wù)器?
比如,可以建立一個(gè)網(wǎng)頁界面來處理,也可以通過SSH上傳,或者放在S3 bucket里。那輸出結(jié)果的訪問方式又是怎樣的呢?
這些都是你必須了解的問題。

總而言之,博主稱,這也是我之前視頻里提到的,軟件開發(fā)者的工作中最難的、最關(guān)鍵的、最耗時(shí)的一部分:
主要是與客戶、領(lǐng)導(dǎo)及其他利益相關(guān)者的溝通。
這些都是 AI 目前無法完成的任務(wù),而這些恰恰是我們所做的非常重要的事情。
Devin實(shí)際上做了什么?
如下是視頻中的一個(gè)截圖,提到了一個(gè)Repo。

這是一個(gè)名為 requirements.txt 的文件,它規(guī)定了代碼的依賴庫版本。
不過,這個(gè)代碼庫最初依賴的一些庫是四年前的版本,而現(xiàn)在其中一些庫已經(jīng)不再提供下載,所以不得不進(jìn)行修改。
再此,視頻中提到了Devin更新了代碼。博主表示,「Devin能夠做到這一點(diǎn)確實(shí)令人贊嘆」。

與客戶的要求相比,他們基本上希望建立自己的推理能力。
Devin被告知只使用樣例數(shù)據(jù)就可以,因此這正是博主復(fù)現(xiàn)Devin操作時(shí)所做的。
Devin很早就遇到了一個(gè)錯(cuò)誤,這是一個(gè)命令行錯(cuò)誤:

在頂部,遇到了與打開圖像、文件未找到、無此文件或目錄相關(guān)的錯(cuò)誤。
這個(gè)錯(cuò)誤出現(xiàn)在一個(gè)名為visualize_detections.py的代碼文件中。博主稱自己并沒有遇到這一問題,是因?yàn)樵诖a庫中不存在名為visualize_detections.py的文件。

回到命令行,如果放大窗口的其他部分,便會(huì)看到,Devin將一些內(nèi)容寫入一個(gè)名為inspect_results.py的文件中,接著運(yùn)行Python執(zhí)行這個(gè)文件,結(jié)果出現(xiàn)了語法錯(cuò)誤。
在Python文件中使用/n是不行,而且echo命令也不該這么使用。這整個(gè)過程都是錯(cuò)誤的毫無意義。
Devin在創(chuàng)建這些含錯(cuò)誤的文件后,又進(jìn)行了修正。視頻中提到,Devin實(shí)際上是在進(jìn)行打印行調(diào)試。這是一個(gè)很常見的做法,很多人都會(huì)用到。

評論里說,「Devin正在添加代碼,追蹤數(shù)據(jù)流直至徹底理解」。
博主對此懷疑道,我不相信Devin真的能理解任何事物。

放大觀察這一部分,可以看到一個(gè)奇特的循環(huán)。它正在讀取一個(gè)文件,并把數(shù)據(jù)讀入一個(gè)緩沖區(qū)。這是update_image_ids.py文件。
再次說明,這個(gè)文件在客戶要求使用的代碼倉庫中不存在。
實(shí)際上,博主在GitHub上搜索了所有可能的位置,只有2處存在帶有這個(gè)名稱的文件。

屏幕上顯示三個(gè)的原因是,其中一個(gè)是另一個(gè)的分支版本,它們與Devin正在使用的文件完全不同。
但問題在于Devin此處正在調(diào)試一個(gè)自己創(chuàng)建的文件,而這個(gè)文件完全不在項(xiàng)目代碼倉庫中,非常不妥。
其實(shí),Devin并不是在修正自己在網(wǎng)上發(fā)現(xiàn)的代碼,也不是在處理客戶指定的問題代碼,而是在修正自己生成的錯(cuò)誤代碼。
更糟糕的是,這樣做并無必要。這是那個(gè)代碼庫中的readme文件。

該庫中有一個(gè)名為infer.py的文件,正如視頻中Devin所做的那樣。
readme文件說明了其功能及使用方法。在右側(cè),甚至還有一個(gè)小按鈕,可以復(fù)制整條命令,粘貼至命令行窗口,然后按下回車。
博主認(rèn)為開發(fā)這個(gè)「檢測道路損壞」的代碼倉庫的人已經(jīng)盡可能地簡化了使用說明,但Devin似乎還是沒能理解。
因此,Devin不得不自己創(chuàng)建了一個(gè)混亂的項(xiàng)目。
正如Devin正在發(fā)現(xiàn)的,復(fù)雜,難以處理,很容易出現(xiàn)小錯(cuò)誤,這樣的代碼很難調(diào)試。

半小時(shí)復(fù)現(xiàn),AI卻用了6小時(shí)
接下來,博主計(jì)劃自己去復(fù)現(xiàn)Devin嘗試做的任務(wù)。
他表示,自己用了大約36分的時(shí)間,完成所做的事。

下一張幻燈片中,實(shí)際上有一個(gè)需要修復(fù)的錯(cuò)誤,在名為dataset.py的文件第33行。
問題是torch模塊缺少一個(gè)名為underscore six的屬性。
博主在谷歌上搜索了這個(gè)問題,找到了GitHub上的一個(gè)相關(guān)評論。
他按照該評論中的建議修改了代碼行,這樣確實(shí)解決了問題。
「解決這個(gè)問題總共花了我大約一分鐘七秒的時(shí)間,只需這么短的時(shí)間我就修正了錯(cuò)誤。這只是一個(gè)快速的谷歌搜索而已」。

以下是博主所做的修改的具體內(nèi)容,這是最初狀態(tài)和最后狀態(tài)之間的差異。
這是requirements.txt文件的一處修改,最開始使用的是torch 1.4.0版本,博主使用了最新版本的torch 2.2.2。
然后在右邊,這是Devin視頻中的最后一屏,左邊是我的視頻,也就是最后的輸出。
它們兩個(gè)大同小異。博主的框是黃色的,Devin是紅色的。

根據(jù)Devin官方視頻中時(shí)間,從最初2024年3月9日3:25pm開始,一直到9:41pm完成,中間經(jīng)歷了6個(gè)小時(shí)。


最后再看下,Devin完成工作的效果及其評價(jià)。
為了復(fù)制Devin的結(jié)果,博主只需要在云實(shí)例上設(shè)置合適硬件的環(huán)境,并實(shí)際運(yùn)行兩個(gè)帶有正確路徑的命令。
這些東西看起來就像Devin做了很多工作,完成了很多任務(wù)。
然而,只要你設(shè)置好環(huán)境,實(shí)際上你只需要運(yùn)行2個(gè)命令。些代碼修正全都無關(guān)緊要,因?yàn)樗鼈兌际?Devin 自生成的代碼。
在視頻的最后,研究者You表示Devin做得好。而實(shí)際上,Devin完成的任務(wù)對于AI來說的確很酷。

AI程序員,全網(wǎng)沸騰
3月初,還記得Devin發(fā)布時(shí),全網(wǎng)都在瘋轉(zhuǎn)這個(gè)AI。
在SWE-bench基準(zhǔn)測試中,它的表現(xiàn)遠(yuǎn)遠(yuǎn)超過Claude 2、Llama、GPT-4等選手,取得了13.86%的驚人成績!

它不僅能自主學(xué)習(xí)不熟悉的技術(shù),端到端地構(gòu)建和部署應(yīng)用程序,自己改bug,甚至還能訓(xùn)練和微調(diào)自己的AI模型!
網(wǎng)友紛紛恐慌,Devin會(huì)偷走我們的工作嗎?難道程序員真的不存在了?!

甚至,背后十人初創(chuàng)團(tuán)隊(duì)的勵(lì)志故事也被人挖了出來。

核心創(chuàng)始人首席執(zhí)行官Scott Wu,以及弟弟Neal Wu等人共攬收十枚IOI金牌。

也就不到一個(gè)月的時(shí)間,各種AI程序員相繼誕生。
比如,普林斯頓團(tuán)隊(duì)提出的SWE-agent,可以在真實(shí)的GitHub倉庫里修bug,還有OpenDevin,Devika開源項(xiàng)目。

不過,關(guān)于AI程序員能否解決真實(shí)問題的能力,卻是還應(yīng)該持有保留態(tài)度。
因?yàn)?,即便是借助了GPT-4 Turbo的能力,AI也并非是萬能的。






























