日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

人類可以通過合作的方式解決復雜問題,這種模式同樣適用于 AI 領域。

「一個人的能力有限,一支團隊的力量無限」,這一句話在現實世界的軟件開發中體現的淋漓盡致。對于復雜的任務,人們通過團隊合作策略來解決。但在 AI 世界中,這樣的模式是否也適用呢?

北京大學李戈教授團隊提出了一種全新的 self-collaboration(自合作)模式。它允許多個大模型模型扮演不同的角色,組成了一個無需人類參與的軟件開發團隊,通過大模型間的合作和交互,自主完成整個軟件開發流程,甚至包括一些復雜的代碼生成任務。

論文鏈接:https://arxiv.org/pdf/2304.07590.pdf

盡管大型語言模型 (簡稱為:大模型) 在代碼生成方面已經展示出了驚人的能力,但是在處理復雜任務上仍然存在挑戰。在現實中的軟件開發過程中,人們通常通過協同團隊工作的策略來解決復雜的任務,這種策略能夠顯著地控制開發的復雜性并提高軟件的質量。

受此啟發,研究者提出了一個使用大模型進行代碼生成的 self-collaboration 框架。具體來說,通過角色指令,1) 多個大型語言模型扮演不同的 "專家" 角色,每個模型負責處理復雜任務中的特定子任務;2) 規定合作和交互的方式,使不同的角色形成一個虛擬團隊,幫助彼此完成工作,最終無需人為干預就能共同完成代碼生成任務。

為了有效地組織和管理這個虛擬團隊,研究者巧妙地將軟件開發方法論中的瀑布模型融入到了框架中,組建了一個由三個 ChatGPT 角色(即分析師、程序員和測試員)組成的基礎團隊,實施軟件開發過程中的分析、編碼和測試階段。

實驗結果表明,與直接利用大模型代碼生成相比,self-collaboration 代碼生成的性能大幅提升,甚至讓 GPT-3.5 超越了 GPT-4。此外,研究者還展示了 self-collaboration 能使大模型有效地處理更復雜的實際代碼項目,而這些項目往往是直接代碼生成難以解決的。

圖1:用于代碼生成的 Self-collaboration 框架及其實例。

此項研究開創了一種新的使用人工智能語言模型進行軟件開發的路徑,將人工智能與軟件開發過程的各個階段緊密結合,既提高了開發效率,也保證了軟件的質量。通過利用 ChatGPT 等 LLMs 的潛力,可以為模型間合作和交互提供更強大的支持,從而促進虛擬團隊在處理復雜軟件開發任務方面的成功。這種 self-collaboration 框架為自動代碼生成提供了一種新的、更高效的方法,有助于推動軟件開發領域的創新和進步。此外,這項工作還可以作為未來研究各個領域的自我合作方法以及開發更先進、更專業的虛擬團隊來處理更復雜任務的基礎。

下面具體介紹一下 Self-collaboration 框架以及在該框架基礎上按照軟件開發方法論組建虛擬團隊的實例。

Self-collaboration 框架

給定需求 x,利用大模型執行 Self-collaboration 以生成輸出 y。該任務定義為

。Self-collaboration 框架由兩部分組成:分工和合作。

在分工部分,研究者運用先驗知識將復雜任務分解為一系列階段

并構建一些不同的角色

,這些角色基于大模型和角色指令。每個階段

由一個或多個角色

負責。

眾所周知,大模型對上下文非常敏感,因為它們在訓練時,被要求根據前面的文字預測后續文字。因此,一種廣泛使用的方式是通過指令或提示來控制大模型的生成。研究者采用特定類型的指令為大模型分配身份和職責,被稱為角色指令。具體來說,研究者要求大模型扮演與其職責緊密相關的特定角色并且傳達這個角色應該執行的詳細任務。

使用角色指令的優勢在于它們僅需要在交互開始時被提供一次。在隨后的交互中,傳達的只是意圖,而不是指令和意圖的組合。因此,角色指令提升了后續溝通合作的整體效率和清晰度。

在合作部分,研究者關注于促進在 self-collaboration 框架內承擔不同角色的大模型之間的有效交互。每個大模型在其指定角色指令的指導下,通過履行其分配的職責為整體任務做出貢獻。隨著階段的進展,大模型與其他大模型交流他們的輸出,交互信息并輸出 y 。

利用角色指令,可以有效控制大模型的輸出格式。結合語言模型的基礎方面,這可以初步建立大模型之間的通信。

合作部分可以形式化為:

其中

是階段

的輸出,

表示

前提階段的輸出,

表示

對應的角色。請注意,如果階段

之間的關系不是線性關系,self-collaboration 框架可以并行化。計算

被視為合作,其中角色

與每個前面階段的角色合作生成

。輸出 y 隨著階段

的進展迭代更新:

其中 f 是一個更新函數。為了促進有效合作,研究者建立了一個共享黑板,每個角色從中獲取所需的信息以完成各自的任務

。算法 1 給出了 self-collaboration 框架的完整算法。

實例化

研究者將軟件工程方法論中的經典瀑布模型引入到自協作框架中,使代碼生成的團隊協作更加高效。具體來說,研究者設計了一個由分析、編碼和測試三個階段組成的簡化瀑布模型,作為自協作代碼生成的實例。該實例的工作流程遵循瀑布模型從一個階段流向下一階段,如果發現問題,則返回上一階段進行細化。因此,研究者建立了一個基本團隊,包括分析師、編碼員和測試員,負責分析、編碼和測試階段,如圖 1(右)所示。這三個不同的角色被分配以下任務:

分析師:分析師的目標是制定高層次的 plan 并專注于指導程序員編寫程序,而不是深入研究實現細節。給定需求 x,分析師將 x 分解為幾個易于解決的子任務,以方便程序員直接實施,并制定概述實施主要步驟的 plan。

程序員:作為該團隊的核心角色,程序員將在整個開發過程中接收來自分析師的 plan 或來自測試人員的測試報告。因此,研究者通過角色說明將兩項主要職責分配給程序員:1. 編寫滿足指定要求的代碼,遵守分析師提供的 plan。2. 修復或細化代碼,考慮到測試人員反饋的測試報告反饋。編碼器角色指令的詳細信息如圖 2 所示。

測試員:測試員獲取程序員編寫的代碼,然后記錄包含各個方面(例如功能性、可讀性和可維護性)的測試報告。研究者提倡模型模擬測試過程并生成測試報告,而不是生成測試用例然后通過執行手動測試代碼,從而促進交互并避免額外的工作。

研究者為該實例制定了角色指令來扮演這三個角色。編碼器角色指令的示例如圖 2 所示。在本例中,角色指令不僅包括角色描述(角色及其職責),還包括團隊描述和用戶需求,它們將共同初始化 ChatGPT 代理,從而設置 ChatGPT 的行為。該實例僅在階段

為 coding 時更新輸出

,并且此開發過程在測試人員確認

滿足要求時結束。

實驗結果

研究者將 self-collaboration 代碼生成與各種最先進(SOTA)方法進行比較,實驗結果表明,self-collaboration 框架顯著提高了基礎大模型的性能。值得注意的是,即使是一個簡單的三人團隊(包括分析師、程序員和測試員),基于 ChatGPT (GPT-3.5) 的 self-collaboration 代碼生成在四個代碼生成基準測試中也取得了最佳性能,甚至超過了 GPT-4。考慮到基礎大模型本身的差距,將 self-collaboration 框架應用于更強大的模型,例如 GPT-4,將產生更好的結果。

研究者進一步研究了僅使用自然語言描述的代碼生成,這種設置更貼近實際的軟件開發。在此設置下,研究者比較了由 self-collaboration 框架實例化的初等團隊中每個 ChatGPT 角色的表現,如表 2 所示。實驗結果表明,與僅使用程序員角色相比,無論是二位角色還是三位角色組建的團隊,性能都有顯著提高。

研究者還研究了在不同模型大小下大模型的自合作能力。研究者評估了 self-collaboration 方法在處理復雜任務時的有效性,特別是那些對直接代碼生成具有挑戰性的任務。對于此類任務,研究者采用 self-collaboration 策略作為解決方案。如圖 6 所示,隨著模型規模的擴大,大模型的 coding 能力通常呈現出增加的趨勢,而自合作能力在 7B 參數量左右開始顯現出來,隨后不斷提升。實驗結果表明自合作有助于激發大模型的潛在智能。

此外,研究者展示了一個 self-collaboration 代碼生成示例,如圖 4 所示。在這份測試報告中,測試員指出所實現的代碼可能會導致從列表中刪除重復元素,從而可能導致某些邊緣測試用例失敗。因此,建議從實現的代碼中刪除行 “lst = list (set (lst))”。程序員隨后根據測試報告中的反饋刪除了 “lst = list (set (lst))” 行。在最后一次交互中,測試員確認修改后的代碼已經通過所有測試,滿足要求,至此代碼生成過程結束。

研究者還將 self-collaboration 框架應用于更復雜的實際代碼項目的兩個例子,分別是游戲開發和網頁制作,如圖 5 和圖 9 所示。self-collaboration 可以生產完整的游戲邏輯和令人滿意的游戲界面,對于天氣預報網頁的開發,也可以正確調用外部天氣接口,實現所有功能。而直接代碼生成則并沒有覆蓋所有要求的功能并且存在 bug,效果不佳。

總之,self-collaboration 框架在代碼生成任務中表現出顯著的性能提升,與單一角色相比,多角色團隊能夠更有效地處理各種問題和挑戰。這種方法為自然語言處理和代碼生成領域提供了新的研究方向,值得進一步探討和優化。未來的工作可能包括對更多角色和更強大模型的探索,以及將 self-collaboration 框架應用于其他自然語言處理任務。

結論

在該工作中,研究者提出了一種 self-collaboration 框架,其目的是通過合作和交互方法來增強大模型的問題解決能力。具體而言,研究者探索了 ChatGPT 在促進基于團隊的代碼生成和合作方面的軟件開發過程中的潛力。為此,研究者組建了一個由三個不同的 ChatGPT 角色組成的初等團隊,目的是全面解決代碼生成任務。為了評估 self-collaboration 框架的有效性和泛化性能,研究者針對各種代碼生成基準進行了廣泛實驗。實驗結果提供了大量證據支持 self-collaboration 框架的有效性和普適性。研究者認為,讓模型能夠組建自己的團隊并合作完成復雜的任務是實現 AGI 的關鍵一步。未來該項研究技術也將直接應用于aiXcoder(一款基于代碼大模型的智能化軟件開發系統)的產品中。

分享到:
標簽:ChatGPT
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定