ChatDev讓軟件開發像聊天一樣簡單

不會寫程式也能開發出自己的軟體!如何用大型語言模型(LLM)來做軟件開發!這聽起來好像是來自未來的科幻小說,但這已經變成了現實。

首先簡單介紹一下甚麼是大型語言模型(LLM)?想像一下,你有一個超級聰明的朋友,不僅能回答你所有問題,還能寫作文、寫程式碼,甚至寫歌詞!大型語言模型就是這樣一個虛擬“朋友”。它是一個由大量文本數據訓練出來的AI模型,可以理解和生成自然語言。

那麼CHATDEV又是怎麼一回事呢?簡單來說,它是一個使用大型語言模型來進行軟件開發的框架。就像你和朋友們在群聊中分配誰帶零食、誰帶飲料一樣,CHATDEV裡面有各種角色,比如CEO、程式設計師和美工設計師,它們會協作完成不同的任務。(圖1)
圖1: ChatDev的各項部門與角色的示意圖

聽起來好抽象對吧,但是它有什麼用?
-- 一站式解決方案:從設計到編碼,再到測試和文檔生成,CHATDEV全都搞定了!(圖2)
-- 省時省力:不需要你去找各種不同的工具或學習一堆專業術語。
-- 效果驚人:根據研究,使用CHATDEV的軟件開發速度快、成本低,而且品質也不錯。
圖2: 展示了CHATDEV的架構,主要分為「階段層級」和「聊天層級」兩部分。階段層級:使用瀑布模型將軟件開發過程分解為四個順序階段,比如設計、編碼、測試和文檔生成。聊天層級:每個階段又進一步被分解為多個「原子聊天」。這些原子聊天涉及兩個角色(比如CEO和程式設計師)之間針對特定子任務的角色扮演和協作溝通。

通過這種方式,CHATDEV不僅結構化了開發流程,還促進了角色之間的有效溝通和協作。每一個「原子聊天」都遵循一種指令-執行的交流方式,以完成特定的子任務。我們可以看看實際使用的案例: 開發一個基本五子棋遊戲。(圖3)
圖3: 自動開發五子棋遊戲的過程

以上運用LLM去建立多個角色進行自動開發軟體聽起來很完美,但還是存在一些缺點,我們將一項複雜的任務拆解成透過多個代理人(LLM)進行交互產生更多子任務,但是目前LLM偶爾會存在幻覺或偏見,如果完全沒有人類的介入有可能無法達到百分百的目標,所以我們應該也跟著AI一起學習AI(程式設計),才能夠相輔相成打造出下一款爆紅的APP或遊戲!

P.S.特別感謝 #ChatGPT 潤飾此篇文章。


撰文:許楷翊


參考文獻:
Qian, C., Cong, X., Yang, C., Chen, W., Su, Y., Xu, J., ... & Sun, M. (2023). Communicative agents for software development. arXiv preprint arXiv:2307.07924.

留言