整理 | 屠敏
出品 | CSDN(ID:CSDNnews)
過去一年間,有 AI 愛好者使用了 ChatGPT 來創(chuàng)業(yè),也有教授將其引入課堂,還有人用 ChatGPT “打假”……事實(shí)證明,雖然許多人對(duì)新技術(shù)仍然持謹(jǐn)慎態(tài)度,但不妨礙他們?nèi)栽诓粩嘟怄i AI 的新玩法。
近日,來自布朗大學(xué)和多所中國(guó)大學(xué)的研究人員進(jìn)行了一項(xiàng)實(shí)驗(yàn),看看由 ChatGPT 3.5 模型版本支持的 AI 機(jī)器人是否可以在沒有訓(xùn)練的情況下完成軟件開發(fā)。
針對(duì)這項(xiàng)實(shí)驗(yàn),他們還發(fā)表了一篇標(biāo)題為《Communicative Agents for Software Development》(https://arxiv.org/pdf/2307.07924v3.pdf)的論文,分享了全過程,并將項(xiàng)目在 GitHub 上開源出來:https://github.com/OpenBMB/ChatDev
最終研究人員在要求虛擬的 AI 軟件公司開發(fā) 70 個(gè)不同的程序后,根據(jù)實(shí)驗(yàn)結(jié)果顯示,AI 可以在七分鐘內(nèi)開發(fā)出軟件,平均成本不到 1 美元。這意味著 OpenAI 的 ChatGPT 等人工智能聊天機(jī)器人可以以快速、經(jīng)濟(jì)高效的方式運(yùn)營(yíng)一家軟件公司,同時(shí)將人為干預(yù)降至最低。
接下來,我們不妨看看他們是怎么做的吧~
創(chuàng)建一家 AI 軟件開發(fā)公司,特設(shè)不同的角色
在論文中,研究人員透露他們創(chuàng)建了一家名為 ChatDev 的虛擬軟件開發(fā)公司。這家公司匯集了不同社會(huì)身份的代理,簡(jiǎn)單來說,就是設(shè)立了首席執(zhí)行官、專業(yè)程序員、測(cè)試工程師和藝術(shù)設(shè)計(jì)師等崗位。
根據(jù)設(shè)定,ChatDev 這家軟件公司采用了廣泛的瀑布模型,將軟件開發(fā)過程分為四個(gè)不同的階段:設(shè)計(jì)、編碼、測(cè)試和文檔。
每個(gè)階段都有一個(gè)由程序員、代碼審核員和測(cè)試工程師等組成的代理團(tuán)隊(duì)參與,以建立連續(xù)性和秩序,就像人類運(yùn)行任何常規(guī)業(yè)務(wù)一樣。
為了促進(jìn)有效溝通和協(xié)作,ChatDev 提出了一個(gè)聊天鏈(ChatChain)的架構(gòu),包括劃分每個(gè)階段和聊天級(jí)組件。在聊天鏈中,每個(gè)節(jié)點(diǎn)代表了一個(gè)特定的子任務(wù),兩個(gè)角色參與上下文,多輪討論,并提出解決方案,再進(jìn)行驗(yàn)證。
這種方法可以確保公司可以準(zhǔn)確分析客戶需求、產(chǎn)生創(chuàng)意、設(shè)計(jì)和實(shí)現(xiàn)原型系統(tǒng)、識(shí)別和解決潛在問題、解釋調(diào)試信息、創(chuàng)建吸引人的界面和生成用戶手冊(cè)。
然后,研究人員來充當(dāng)“客戶”,向這家軟件公司提交一個(gè)開發(fā)五子棋游戲的需求,看看 ChatDev 這家虛擬公司的代理人是如何通過合作聊天進(jìn)行溝通與研發(fā)的。
軟件開發(fā)四個(gè)階段:設(shè)計(jì)、編碼、測(cè)試和文檔
在整個(gè)環(huán)節(jié)中,研究人員通過向每個(gè)人工智能機(jī)器人提示描述“指定的任務(wù)和角色、通信協(xié)議、終止標(biāo)準(zhǔn)和約束”的“重要細(xì)節(jié)”來為人工智能機(jī)器人分配特定的角色,如下圖所示:
當(dāng)從人類客戶端接收到一個(gè)開發(fā)游戲的需求后,首先進(jìn)入該虛擬軟件開發(fā)公司內(nèi)部的設(shè)計(jì)階段,這個(gè)階段有三個(gè)預(yù)定義角色參與,分別是:CEO (首席執(zhí)行官)、CPO (首席產(chǎn)品官)和 CTO (首席技術(shù)官)。
然后,聊天鏈將設(shè)計(jì)階段分解為連續(xù)的小的聊天任務(wù),包括關(guān)于目標(biāo)軟件的模式 (CEO 和 CPO) 和程序設(shè)計(jì)語言 (CEO 和 CTO) 的決策。這其中涉及到三個(gè)關(guān)鍵的機(jī)制:
-
角色專業(yè)化:每個(gè)自定義角色履行其指定的功能,并有效地促進(jìn)面向任務(wù)的對(duì)話。
Memory Stream:主要維護(hù)上文聊天記錄,使自定義的角色做出明智的決定。
自我反思:當(dāng)自定義角色完成工作卻沒有達(dá)到要求時(shí),自我反思機(jī)制會(huì)生成一個(gè)“偽我”,對(duì)提議的決策進(jìn)行反思。
經(jīng)過 CEO、CPO 和 CTO 三方的商討,他們決定將五子棋游戲定位為一款桌面游戲,并采用 Python 來開發(fā)。
與此同時(shí),代理的角色還通過自我反思,進(jìn)一步細(xì)化了游戲開發(fā)的需求:
當(dāng)設(shè)計(jì)需求明確之后,接下來便進(jìn)入了編碼階段。
編碼階段涉及三個(gè)預(yù)定義的角色:CTO、程序員和美術(shù)設(shè)計(jì)師。同樣,聊天鏈將編程階段分解為連續(xù)的小的聊天任務(wù),如 CTO 提供要求和想法,程序員生成完整的代碼 ,進(jìn)而設(shè)計(jì)師設(shè)計(jì)圖形用戶界面,程序員進(jìn)行集成。
當(dāng)完成之后,即使是人類程序員,也不能保證他們?cè)诘谝淮螄L試過程中編寫的代碼總是沒有 Bug。所以這就來到了測(cè)試階段,在這里需要程序員、審查員和測(cè)試員共同參與,通過同行審查(程序員和審查員)檢查源代碼以識(shí)別潛在的問題,然后在進(jìn)行系統(tǒng)測(cè)試(程序員和測(cè)試員),使用解釋器進(jìn)行的測(cè)試來驗(yàn)證軟件的執(zhí)行,此測(cè)試主要通過黑盒測(cè)試來評(píng)估應(yīng)用程序的性能。
最終,在設(shè)計(jì)、編碼和測(cè)試階段之后,ChatDev 雇傭了四個(gè)代理 (CEO、CPO、CTO 和程序員)來生成軟件項(xiàng)目文檔。使用大型語言模型,生成了用戶手冊(cè)。
在 7 分鐘內(nèi)以不到 1 美元的成本,來完成整個(gè)軟件開發(fā)
有趣的是,AI 機(jī)器人可以在以上整個(gè)過程中相互溝通,尋求解決方案并共享重要信息,而人類從中干預(yù)得比較少。
在具體工具使用維度,研究人員使用了“gpt3.5-turbo-16k”版本的 ChatGPT ,語言的溫度參數(shù)(可以用于控制生成結(jié)果的多樣性和隨機(jī)性)設(shè)置為 0.2。隨后在編碼、審核、測(cè)試等不同階段,研究人員分別允許最多進(jìn)行 5 次的嘗試。對(duì)于基于 Python 的系統(tǒng),研究人員使用了 Python 3.8.16 作為解釋器進(jìn)行測(cè)試。
除了以上示例之外,研究人員表示,此次實(shí)驗(yàn)分析 了Chatdev 所生成的 70 款所有軟件,與此同時(shí),他們還對(duì)這些軟件進(jìn)行了統(tǒng)計(jì)分析,包括總對(duì)話次數(shù)、消耗的 token、軟件文件、圖像資產(chǎn)和版本更新。
根據(jù)分析發(fā)現(xiàn),生成的軟件通常包括 2-8 個(gè)代碼文件,平均為 4.26 個(gè)文件。ChatDev 開發(fā)的軟件通常有 39-359 行代碼,平均 131.61 行,這些數(shù)據(jù)表明ChatDev 傾向于用相對(duì)小規(guī)模的代碼生成軟件。這在一定程度上是因?yàn)槊嫦驅(qū)ο缶幊痰脑O(shè)計(jì),其通過繼承實(shí)現(xiàn)了代碼重用,減少了冗余。研究人員還注意到,當(dāng)用戶指定一個(gè)不那么具體的任務(wù)時(shí),ChatDev 生成的源代碼往往更短,平均約為 110.97 行。
在實(shí)驗(yàn)中,研究人員發(fā)現(xiàn)測(cè)試生成的軟件大約 86.66% 的軟件系統(tǒng)完美地執(zhí)行。有 13.33% 的軟件運(yùn)行失敗,失敗的因素主要有由于 API 的令牌長(zhǎng)度限制、受外部依賴問題的影響等等。
平均而言,ChatDev 每個(gè)軟件生成 17.04 個(gè)文件,軟件生產(chǎn)時(shí)間為 409.84 秒,不到 7 分鐘,制造成本為 0.2967 美元。審核員和程序員之間的相互討論有助于識(shí)別和修改了近 20 種類型的代碼漏洞,而測(cè)試人員和程序員之間的討論最終識(shí)別和解決了超過 10 種類型的潛在錯(cuò)誤。
相比之下,傳統(tǒng)的定制軟件開發(fā)周期,即使在敏捷軟件開發(fā)方法中,每個(gè)周期通常需要 2 至 4 周甚至幾個(gè)月。
展望未來
這份研究結(jié)果表明,ChatGPT 強(qiáng)大的生成式人工智能技術(shù)可以通過多種方式執(zhí)行特定的工作職能,ChatDev 也為軟件開發(fā)提供了一種新的模式,即免費(fèi)、高效和成本效益。
然而,這項(xiàng)研究并不完美:研究人員發(fā)現(xiàn)了一些局限性,例如即使他們將大模型的溫度參數(shù)(temperature parameter)設(shè)置得非常低,生成的輸出依然存在固有的隨機(jī)性。與此同時(shí),語言模型中也存在錯(cuò)誤和偏差,這些局限性可能會(huì)導(dǎo)致軟件創(chuàng)建過程中出現(xiàn)問題。
盡管如此,研究人員表示,這些發(fā)現(xiàn)“可能會(huì)對(duì)現(xiàn)實(shí)世界中的初級(jí)程序員或工程師有所幫助”。
“展望未來,進(jìn)一步的研究可以集中于完善通信協(xié)議并優(yōu)化每個(gè)聊天中的交互動(dòng)態(tài),以提高 ChatDev 的性能和有效性。此外,探索集成其他新興技術(shù),如強(qiáng)化學(xué)習(xí)和可解釋人工智能等,可以為解決挑戰(zhàn)和改進(jìn)整個(gè)軟件開發(fā)流程提供有價(jià)值的見解”,研究人員在論文中寫道。
目前 ChatDev 已在 GitHub 開源:https://github.com/OpenBMB/ChatDev,感興趣的小伙伴也不妨動(dòng)手試試看~
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。