聲明:本文來自微信公眾號“新智元”(ID:AI_era),作者:新智元,授權轉載發布。
【新智元導讀】全球首個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上傳,或者放在S3bucket里。那輸出結果的訪問方式又是怎樣的呢?
這些都是你必須了解的問題。
總而言之,博主稱,這也是我之前視頻里提到的,軟件開發者的工作中最難的、最關鍵的、最耗時的一部分:
主要是與客戶、領導及其他利益相關者的溝通。
這些都是 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文件的一處修改,最開始使用的是torch1.4.0版本,博主使用了最新版本的torch2.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基準測試中,它的表現遠遠超過Claude2、Llama、GPT-4等選手,取得了13.86%的驚人成績!
它不僅能自主學習不熟悉的技術,端到端地構建和部署應用程序,自己改bug,甚至還能訓練和微調自己的AI模型!
網友紛紛恐慌,Devin會偷走我們的工作嗎?難道程序員真的不存在了?!
甚至,背后十人初創團隊的勵志故事也被人挖了出來。
核心創始人首席執行官Scott Wu,以及弟弟Neal Wu等人共攬收十枚IOI金牌。
也就不到一個月的時間,各種AI程序員相繼誕生。
比如,普林斯頓團隊提出的SWE-agent,可以在真實的GitHub倉庫里修bug,還有OpenDevin,Devika開源項目。
不過,關于AI程序員能否解決真實問題的能力,卻是還應該持有保留態度。
因為,即便是借助了GPT-4Turbo的能力,AI也并非是萬能的。
參考資料:
https://x.com/0interestrates/status/1779268441226256500
https://www.reddit.com/r/programming/comments/1c1g0fn/debunking_devin_first_ai_software_engineer_upwork/