最近在大型語言模型(LLMs)上的進展塑造了人工智能智能體的新范式,即基于LLM的智能體。與獨立的LLMs相比,基于LLM的智能體通過增強LLMs感知和利用外部資源和工具的能力,極大地擴展了LLMs的多功能性和專業性。到目前為止,基于LLM的智能體已經在軟件工程(SE)領域得到了應用,并顯示出顯著的效果。多個智能體之間的協同作用以及與人類互動相結合,為解決復雜的現實世界中的SE問題帶來了更大的希望。在此工作中,我們提出了一個關于用于SE的基于LLM智能體的全面系統的綜述。我們收集了106篇論文,并從兩個角度對它們進行了分類,即SE視角和智能體視角。此外,我們還討論了該關鍵領域中存在的開放性挑戰和未來的研究方向。本綜述的資料庫位于//github.com/FudanSELab/Agent4SE-Paper-List。 大型語言模型(LLMs)[1] 已經取得了顯著的進步,并展示了類似人類智能的潛力。近年來,LLMs 在軟件工程(SE)中得到了廣泛的應用。如最近的綜述所示[2],[3],LLMs 已經被采用并在各種軟件開發和維護任務中顯示出有希望的表現,例如程序生成[4]–[8],軟件測試[9]–[11]和調試[12]–[17]以及程序改進[18]–[20]。人工智能智能體是能夠自主感知并對其周圍環境采取行動以達成特定目標的人工實體[21]。智能體的概念已經發展了很長時間(例如,早期的智能體是基于符號邏輯或強化學習構建的[22]–[25])。最近,LLMs 的顯著進步進一步形成了一種新的AI智能體范式,即基于LLM的智能體,這種智能體利用LLMs作為中心控制單元。不同于獨立的LLMs,基于LLM的智能體通過賦予LLMs感知和利用外部資源和工具的能力來擴展其多功能性和專業性,這使得它們可以通過多個智能體之間的協作或涉及人類互動來應對更復雜的真實世界目標。在此工作中,我們提出了一個關于用于SE的基于LLM智能體的全面系統的綜述。我們收集了106篇論文,并從兩個角度對它們進行了分類,即SE視角和智能體視角。此外,我們還討論了該領域中的開放性挑戰和未來的研究方向。從SE的角度來看,我們分析了基于LLM的智能體如何應用于不同的軟件開發和改進活動,包括單個任務(例如需求工程、代碼生成、靜態代碼檢查、測試和調試)以及軟件開發和改進的端到端過程。從這個角度來看,我們提供了基于LLM的智能體如何處理SE任務的整體概覽。從智能體的角度來看,我們專注于設計用于SE的基于LLM智能體的組件。具體而言,我們分析了這些智能體的關鍵組件,包括規劃、記憶、感知和行動。除了基本的智能體構建外,我們還分析了多智能體系統,包括它們的角色、協作機制以及人機協作。從這個角度來看,我們總結了當應用于SE領域時,基于LLM智能體的不同組件的特點。總之,本綜述做出了以下貢獻:
背景與初步介紹
2.1 基于LLM智能體的基本框架 基于LLM的智能體通常由四個關鍵組件組成:規劃、記憶、感知和行動[21]。規劃和記憶是LLM控制的大腦的關鍵部分,它們通過感知和行動組件與環境進行交互以實現特定目標。圖2展示了基于LLM的智能體的基本框架。 規劃:規劃組件將復雜任務分解為多個子任務,并安排這些子任務以達到最終目標。具體來說,智能體可以(i)通過不同的推理策略生成一個無需調整的計劃,或者(ii)根據外部反饋(如環境反饋或人工反饋)調整已生成的計劃。 記憶:記憶組件記錄智能體執行過程中產生的歷史思想、動作和環境觀察[21][26][27]。基于累積的記憶,智能體可以回顧和利用之前的記錄和經驗,從而更有效地處理復雜任務。記憶管理(即如何表示記憶)和利用(即如何讀寫或檢索記憶)至關重要,這直接影響到智能體系統的效率和效果。 感知:感知組件接收來自環境的信息,這有助于更好的規劃。具體來說,智能體可以感知多模態輸入,例如文本輸入、視覺輸入和聽覺輸入。 行動:基于大腦做出的規劃和決策,行動組件執行具體的行動以與環境互動并影響環境。行動的一個重要機制是控制和利用外部工具,這可以通過訪問更多的外部資源來擴展LLMs的固有能力,并將行動空間擴展到不僅僅是文本交互之外。 2.2 高級的基于LLM的智能體系統 多智能體系統:雖然單個智能體系統可以專門解決某一特定任務,但使多個智能體之間進行協作(即多智能體系統)可以進一步解決與不同知識領域相關的更復雜任務。特別地,在一個多智能體系統中,每個智能體都有一個獨特的角色和相關專業知識,使其負責不同的任務;此外,智能體之間可以相互溝通,并隨著任務的推進共享進度/信息。通常情況下,智能體可以協作(即通過處理不同的子任務來實現最終目標)或競爭(即在同一任務上工作同時進行對抗性的辯論)的方式工作。 人機協調:智能體系統可以進一步結合人類的指令,并在人類指導下繼續執行任務。這種人機協調范式有助于更好地與人類偏好對齊并使用人類的專業知識。具體來說,在人機交互期間,人類不僅可以向智能體提供任務要求和對當前任務狀態的反饋,還可以與智能體合作共同實現目標。 2.3 相關綜述 一般領域的基于LLM的智能體已經被廣泛討論和綜述過[21][26][28]–[32]。與這些綜述不同,本文綜述側重于專門為軟件工程領域設計和應用的基于LLM的智能體。在軟件工程領域,已有幾項關于LLMs在軟件工程中的通用應用的綜述或文獻回顧[2][3][10][32][33]。與這些綜述不同的是,本文綜述特別關注智能體的視角,并且對于基于LLM的智能體在軟件工程中的應用更加全面。此外,He等人[34]提出了一篇關于多智能體系統在軟件工程中潛在應用和新興挑戰的展望文章。不同于這份展望文章,本文的工作重點是對現有智能體系統(包括單個智能體和多智能體系統)進行全面綜述。總的來說,據我們所知,這是第一篇專門針對軟件工程領域基于LLM智能體文獻的綜述。 綜述方法論
3.1 綜述范圍 我們將注意力集中在那些應用基于LLM的智能體來處理SE任務的論文上。以下是術語的具體定義: SE任務:遵循之前關于LLMs在SE中的應用綜述[2][3],我們關注整個軟件生命周期中的所有SE任務,包括需求工程、軟件設計、代碼生成、軟件質量保證(即靜態檢查和測試)以及軟件改進。 基于LLM的智能體:一個獨立的LLM可以作為一個簡單的“智能體”工作,因為它可以接受文本輸入并產生文本輸出,這使得LLMs和基于LLM的智能體之間沒有明確界限。然而,這可能會導致過于寬泛的范圍,并與現有的關于LLMs在SE中的應用綜述[2][3]有大量重疊。基于廣泛接受的關于AI智能體的共識,智能體的關鍵特征在于它們能夠自主且迭代地從動態環境中感知反饋并對其采取行動[21]。為了確保從智能體的角度進行更集中的討論,此綜述重點關注不僅將LLMs作為其“大腦”的核心部分,而且還具有迭代與環境互動、實時接收反饋并采取行動能力的基于LLM的智能體。 更具體地說,我們在論文收集過程中應用了以下納入和排除標準: 納入標準:如果一篇論文滿足以下任何一項標準,則將其納入我們的綜述:(i) 論文提出了一種技術、框架或工具,用于使用基于LLM的智能體解決特定的SE任務;(ii) 論文展示了一種一般的技術、框架或工具,前提是其評估至少包括一個SE任務;(iii) 論文展示了一項對特定SE任務上基于LLM的智能體進行評估的經驗研究。 排除標準:如果一篇論文滿足以下任何一項標準,則將其排除在我們的綜述之外:(i) 論文不涉及任何SE任務;(ii) 論文僅在討論或未來工作的上下文中討論基于LLM的智能體,而未將其整合為主要方法的一部分;(iii) 論文僅使用獨立的LLM來處理文本輸入并生成文本輸出,而沒有任何與環境的迭代互動。 3.2 論文收集 我們的論文收集過程包含兩個步驟:關鍵詞搜索和滾雪球法。 3.2.1 關鍵詞搜索 我們遵循軟件工程綜述中的既定實踐[35]-[39],使用DBLP數據庫[40]進行論文收集。近期的研究[39]表明,從其他主要出版物數據庫收集的論文通常是DBLP中論文的子集,DBLP涵蓋了超過7百萬份計算機科學領域的學術會議(超過6,500個)和期刊(1,850個)的出版物[41]。DBLP還包括arXiv[42],這是一個廣泛采用的開放獲取存儲庫。我們采用一種在軟件工程綜述中廣泛采用的試錯法來確定搜索關鍵詞。最初,所有作者,特別是那些在LLM和SE領域有相關研究經驗和出版物的作者,聚在一起建議與我們的范圍相關的論文,從而得到一個初步的相關論文集合。隨后,前兩位作者審閱這些論文的標題、摘要和引言以識別額外的關鍵詞。然后,我們進行頭腦風暴會議以擴展和細化我們的搜索字符串,納入相關術語、同義詞和變體。這一過程使我們能夠迭代地改進我們的搜索關鍵詞列表。 最終的關鍵詞包括 ("agent" OR "llm" OR "language model") AND ("api" OR "bug" OR "code" OR "coding" OR "debug" OR "defect" OR "deploy" OR "evolution" OR "fault" OR "fix" OR "maintenance" OR "program" OR "refactor" OR "repair" OR "requirement" OR "software" OR "test" OR "verification" OR "vulnerab")。 基于這些關鍵詞,我們在2024年7月1日在DBLP上進行了57次搜索,并獲得了10,362條結果。表1顯示了通過關鍵詞搜索收集的論文統計數據。前兩位作者手動審查每篇論文,以過濾掉不在本次綜述范圍內的論文。結果,我們通過這一過程確定了67篇相關的論文。 3.2.2 滾雪球法 為了提高我們綜述的全面性,我們采用了滾雪球法來識別那些過渡相關的論文并擴展我們的論文收集[35]。具體來說,在2024年7月1日至7月10日期間,我們進行了前后滾雪球法。后向滾雪球法涉及檢查每篇收集論文中的參考文獻,以識別我們范圍內的相關論文;而前向滾雪球法則使用谷歌學術來查找引用這些收集論文的相關論文。這一迭代過程一直持續到不再發現新的相關論文為止。在這個過程中,我們又檢索到了另外39篇論文。 3.3 收集論文的統計 如表1所示,我們總共收集了106篇論文用于這次綜述。圖3展示了截至2024年7月10日隨時間累積發表的論文數量。我們觀察到該領域研究興趣的持續增長,突顯了此次綜述的必要性和相關性。此外,圖4顯示了論文發表場所的分布情況,涵蓋了諸如軟件工程、人工智能和人機交互等不同的研究社區。特別是,大多數論文來自arXiv且尚未經過同行評審。這種情況是可以預期的,因為該領域正在興起并且仍處于快速發展之中。
Transformer模型在各類人工智能領域取得了顯著進展,包括自然語言處理、計算機視覺和音頻處理。這一成功自然引起了學術界和工業界研究人員的廣泛關注。因此,許多Transformer變體(通常稱為X-former)被開發用于這些領域。然而,針對這些特定模態轉換的全面而系統的審查仍然缺乏。模態轉換涉及將數據從一種表示形式轉化為另一種形式,模仿人類整合和解釋感官信息的方式。本文對應用于文本、視覺和語音等主要模態的基于Transformer模型進行了全面回顧,討論了它們的架構、轉換方法和應用。通過綜合模態轉換領域的文獻,這篇綜述旨在強調Transformer在推動AI驅動的內容生成和理解中的多樣性和可擴展性。
人工智能(AI)受人類感知能力的啟發,例如視覺、聽覺和閱讀,并試圖復制這些能力。通常,模態與特定的傳感器相關聯,形成一個獨特的通信通道,如視力、語音和書面語言。人類在感官感知中具有一種基本過程,能夠通過整合來自多個感官模態的數據,在動態和不受約束的情況下高效地與世界互動。每個模態作為信息的獨立來源,具有其獨特的統計特征。例如,一張描繪“大象在水中嬉戲”的照片通過無數像素傳遞視覺信息,而類似的文字描述則使用不同的詞語來傳達這一場景。同樣,聲音可以通過頻譜圖或語音特征來傳達相同的事件。數據轉換AI系統必須接收來自特定模態的輸入,處理、理解并以不同的模態再現其內容,模仿人類的感知方式。模態轉換(MC)是一種廣泛的方法,用于構建能夠從一種表示模態中提取并轉換信息到另一種模態的人工智能模型。
基于Transformer的(TB)技術通過利用其先進的注意力機制,準確地表示和轉換各種形式的輸入,極大地改變了數據從一種模態轉換到另一種模態的過程。這些模型在將文本轉換為語音、語音轉換為文本、語音轉換為圖像、圖像轉換為文本,甚至跨模態翻譯(如從文本生成圖像)等任務中表現出色。Transformer通過捕捉各種數據模態間的復雜依賴關系和上下文交互,促進了順暢且高度精確的轉換。由于其適應性和可擴展性,它們在擴展自然語言處理、計算機視覺和多模態數據集成的應用中起到了關鍵作用,推動了AI驅動的內容生產和理解的進步。
? 相關綜述:許多綜述已經探討了基于Transformer(TB)模型在文本處理、計算機視覺和語音處理領域的應用。這些綜述通常回顧了專注于單一模態的研究論文,處理輸入數據以生成特定應用所需的輸出。同時,還有一些關于數據融合的綜述,旨在整合來自不同模態的數據。這些論文通常回顧了各種類型的融合模型和輸入類型,如文本、視覺和語音。例如,Davis等人關于使用Transformer進行多模態學習的綜述探討了多種模態協同使用的情況,展示了在需要從多種數據源中獲得全面理解的任務中所取得的顯著改進。總的來說,目前還沒有一篇綜述全面回顧不同模態(文本、視覺和語音)間的數據轉換相關的文獻。
?** 論文貢獻**:在本文中,我們對用于數據模態轉換的基于Transformer的模型進行了全面回顧。我們重點關注三個主要模態:文本、視覺和語音。對于每個Transformer模型,輸入可以是這些模態中的任何一種,而輸出可以是相同或不同的模態。例如,給定文本輸入,輸出可以是翻譯后的文本(機器翻譯)、圖像(故事可視化)或語音。同樣,對于視覺和語音輸入,輸出也可以轉換為其他任一模態。我們系統地回顧了所有使用基于Transformer模型進行模態轉換的相關文獻(見圖1)。
?** 范圍**:我們的綜述限制在2017年至2024年間發表的論文,因為Transformer技術是Vaswani等人在2017年提出的,相對較新。聚焦于這一時期使我們能夠包含與模態表示和轉換相關的最新和最相關的Transformer進展。引用分析顯示,從2017年到2024年,共有95種方法,其中在2020年至2024年間的興趣達到了高峰。本綜述旨在通過整合這些領域中最先進的Transformer模型,為研究人員和實踐者提供服務。 本綜述的其余部分結構如下:第二部分匯集了所有關于TB模型的相關綜述。第三部分介紹了Transformer的架構和關鍵組件。第四、五、六部分分別回顧了以文本、視覺和語音為輸入的TB模型,其輸出可以是這三種模態中的任何一種。第七部分討論了Transformer的其他可能引起研究人員興趣的方面,并總結了本文的內容。
受大型語言模型(LLM)快速發展的啟發,LLM代理已發展到能夠執行復雜任務的階段。LLM代理現在廣泛應用于各個領域,處理大量數據以與人類互動并執行任務。LLM代理的廣泛應用展示了其顯著的商業價值;然而,這也暴露了其安全和隱私漏洞。在當前階段,非常需要對LLM代理的安全和隱私進行全面研究。本次調查旨在全面概述LLM代理面臨的新出現的隱私和安全問題。我們首先介紹LLM代理的基本知識,然后對威脅進行分類和分析。接著,我們討論這些威脅對人類、環境和其他代理的影響。隨后,我們回顧現有的防御策略,最后探討未來的發展趨勢。此外,調查結合了多樣的案例研究,以便更易于理解。通過強調這些關鍵的安全和隱私問題,本次調查旨在激發未來研究,以增強LLM代理的安全性和隱私性,從而在未來應用中提高其可靠性和可信度。
受到大型語言模型(LLM)快速發展的啟發,LLM智能體已經發展到能夠執行復雜任務的階段。LLM智能體基于GPT-4 [67]、Claude 3 [6] 和Llama 3 [5] 等大型語言模型,利用其所訓練的海量文本數據執行各種任務,從自然語言理解和生成到更復雜的決策制定、問題解決以及以人類方式與用戶互動等[95]。LLM智能體在眾多應用中都能見到,包括虛擬助手、客戶服務機器人和教育工具,因為它們能夠以高級水平理解和生成人類語言[22, 99, 115]。LLM智能體的重要性在于其能夠通過自動化需要人類理解和互動的任務,轉變各個行業。它們能夠提高生產力、改善用戶體驗并提供個性化的幫助。此外,它們從海量數據中學習的能力使得它們能夠不斷改進和適應新任務,成為在快速發展的技術環境中的多功能工具[107]。
為了直觀地展示LLM智能體如何整合到實際場景中,可以參考圖1所示的例子。此圖展示了一個像素化的虛擬城鎮來模擬LLM智能體應用。該城鎮包括現實生活中的聚集場所,如商店、辦公室、餐館、博物館和公園。每個LLM智能體充當獨立的居民,扮演各種角色并執行不同的功能,行為與社區中的真實人類非常相似。這些智能體可以手動控制以與特定角色互動并完成任務,或自主運行,按照自己的計劃行事并通過在虛擬社區中的互動獲取新知識。
LLM智能體的部署由于其在各個領域的廣泛應用,導致其用戶基礎廣泛且具有高商業價值。鑒于LLM智能體仍處于早期階段,其顯著的商業和應用價值使其成為攻擊者的有吸引力的目標。然而,由于LLM智能體建立在LLM之上,它們容易受到針對LLM的攻擊。例如,越獄攻擊可以繞過LLM的安全和審查功能,生成有爭議的回應。這種威脅被LLM智能體繼承,使得攻擊者能夠采用各種方法對智能體執行越獄攻擊。然而,與靜態LLM不同,LLM智能體具有動態能力,其即時響應可以影響未來的決策和行動,從而帶來更廣泛的風險。此外,LLM智能體的獨特功能,例如在任務執行過程中思考和利用工具的能力,使其容易受到針對智能體的特定攻擊。例如,當LLM智能體使用外部工具時,攻擊者可以操縱這些工具的功能以泄露用戶隱私或執行惡意代碼。根據智能體的應用領域,此類攻擊可能對物理安全、金融安全或整體系統完整性構成嚴重威脅。
本文將LLM智能體面臨的安全威脅分為繼承自LLM的攻擊和特定于智能體的獨特威脅。繼承自LLM的威脅可以進一步分為技術漏洞和故意的惡意攻擊。技術漏洞包括幻覺、災難性遺忘和誤解等問題[107],這些問題源于初始模型的創建并受到模型結構的影響。這些漏洞可能導致用戶在長時間使用LLM智能體時觀察到錯誤輸出,影響用戶信任和決策過程。此外,技術漏洞還可能為惡意攻擊提供機會。目前,針對LLM的惡意攻擊包括數據盜竊和響應篡改,例如數據提取攻擊和一系列調優的指令攻擊[119]。
針對LLM智能體的特定威脅,我們受到了LLM智能體工作流程的啟發,該流程包括智能體的思考、行動和感知[40]。這些威脅可以分為知識中毒、功能操縱和輸出操縱。知識中毒涉及污染LLM智能體的訓練數據和知識庫,導致創建者故意加入惡意數據。這可以輕易地通過有害信息欺騙用戶,甚至引導他們走向惡意行為。輸出操縱干擾智能體的思考和感知階段的內容,影響最終輸出。這可以導致用戶接收到經過精心設計的偏見或欺騙信息,從而誤導他們。功能操縱利用LLM智能體使用的接口和工具執行未經授權的操作,如第三方數據盜竊或執行惡意代碼。
LLM智能體的研究仍處于初期階段。當前的研究主要集中在針對LLM的攻擊上,而缺乏全面討論智能體特定的安全和隱私問題的綜述,這些問題呈現出更復雜的場景。進行本次調查的動機是提供LLM智能體相關隱私和安全問題的全面概述,幫助研究人員理解和緩解相關威脅。
本次調查旨在:
本文的結構如下:第二部分將深入探討LLM智能體的基本方面,包括其定義、結構和能力。第三部分將識別并分類LLM智能體面臨的新興威脅,討論從基礎LLM繼承的威脅和特定于智能體的獨特威脅,并為每個類別提供詳細的示例和場景。第四部分將詳細說明這些威脅的現實世界影響,探討這些威脅如何影響用戶、環境和其他智能體,突出未減輕風險的潛在后果。第五部分將回顧現有的緩解策略和解決方案,以應對上述威脅。第六部分將討論當前研究的空白并提出未來的趨勢。第七部分將總結全文。
大語言模型(LLMs)與知識表示學習(KRL)的整合,標志著人工智能領域的重要進展,增強了捕捉和利用復雜知識結構的能力。這種協同作用利用了LLMs的高級語言和語境理解能力,以提升KRL的準確性、適應性和效能,從而擴展其應用和潛力。盡管有越來越多的研究集中在將LLMs嵌入到知識表示領域,但關于這些增強模型基本組件和過程的徹底審查明顯缺乏。我們的綜述通過基于三種不同的Transformer架構對這些模型進行分類,并分析來自各種KRL下游任務的實驗數據,以評估每種方法的優勢和劣勢。最后,我們確定并探討了這一新興但尚未深入探討的領域的潛在未來研究方向,提出了持續進展的路徑。
介紹
大語言模型(LLMs)(例如,BERT [18],LLaMA [59]),代表了一個不斷增長模型大小的方向,這些模型在更大的語料庫上進行預訓練,已經展示出在解決自然語言處理(NLP)任務中的強大能力,包括問答 [99],文本生成 [100] 和文檔理解 [101]。關于模型大小,沒有明確和靜態的閾值。早期的LLMs(例如BERT,RoBERTa)采用了編碼器架構,并展示了在文本表示學習和自然語言理解方面的能力。近年來,更多的關注點轉向了更大的編碼器-解碼器 [102] 或僅解碼器 [103] 架構。隨著模型大小的增加,這些LLMs還展示了推理能力甚至更高級的新興能力 [104],展示出對人工通用智能(AGI)的強大潛力。
這個拐點,隨著LLMs的到來,標志著從顯式知識表示向重新關注顯式知識和參數化知識混合表示的范式轉變。作為顯式知識表示的一種流行方法,知識圖譜(KGs)現在被廣泛研究,用于與基于Transformer的LLMs結合,包括預訓練的掩蔽語言模型(PLMs)如BERT和RoBERTa,以及更近期的生成式LLMs如GPT系列和LLaMA。一些工作利用LLMs來增強知識圖譜表示學習。在這篇綜述中,考慮到三個方向,即基于編碼器的方法、基于編碼器-解碼器的方法和基于解碼器的方法。我們對從顯式知識表示向重新關注顯式知識和參數化知識混合表示的轉變有了更深入的理解。
Cao等人 [22] 和Biswas等人 [40] 討論了知識圖譜表示學習的最新進展,但他們對與大型模型整合相關的方面處理不足。Pan等人 [42] 和Pan等人 [43] 探討了知識圖譜與大型模型的結合,特別是LLM4KG和KG4LLM;然而,他們在表示學習方面的覆蓋有限。因此,目前還沒有專門概述知識圖譜表示學習領域最新發展的綜述文章。
貢獻 本綜述的顯著貢獻總結如下:
組織結構 本綜述的結構如下:
大型語言模型(LLMs)在各種與代碼相關的任務中取得了顯著進展,特別是在從自然語言描述生成源代碼的代碼生成任務中,這些模型被稱為代碼LLMs。由于其在軟件開發中的實際意義(例如GitHub Copilot),這個新興領域吸引了學術研究人員和行業專業人士的廣泛關注。盡管從自然語言處理(NLP)或軟件工程(SE)或兩者的角度,研究人員對各種代碼任務的LLMs進行了積極探索,但目前缺乏一篇專門針對代碼生成LLM的全面且最新的文獻綜述。在本綜述中,我們旨在彌補這一空白,通過提供一篇系統的文獻綜述,為研究人員調查代碼生成LLM的最新進展提供有價值的參考。我們引入了一個分類法,對代碼生成LLM的最新發展進行分類和討論,涵蓋數據整理、最新進展、性能評估和實際應用等方面。此外,我們還提供了代碼生成LLM發展的歷史概覽,并使用廣泛認可的HumanEval和MBPP基準進行經驗比較,以突出代碼生成LLM能力的逐步提升。我們識別了學術界與實際開發之間的關鍵挑戰和有前景的機會。此外,我們建立了一個專門的資源網站(//codellm.github.io),以持續記錄和傳播該領域的最新進展。
引言
大型語言模型(LLMs),例如ChatGPT[171]的出現,深刻改變了自動化代碼相關任務的格局[45],包括代碼補全[78, 152, 233, 244]、代碼翻譯[48, 121, 211]和代碼修復[109, 170, 176]。LLMs一個特別有趣的應用是代碼生成,這項任務涉及從自然語言描述中生成源代碼。盡管各研究對其定義有所不同[47, 191, 204, 232],但在本綜述中,我們采用一致的定義,將代碼生成定義為自然語言到代碼(NL2Code)任務[15, 16, 264]。這一領域因其在學術界和工業界都引起了廣泛興趣,開發了如GitHub Copilot[45]、CodeGeeX[275]和Amazon CodeWhisperer等工具,這些工具利用先進的代碼LLMs來促進軟件開發。 最初對代碼生成的研究主要利用啟發式規則或專家系統,例如基于概率文法的框架[9, 57, 113]和專門的語言模型[59, 74, 106]。這些早期技術通常較為僵化且難以擴展。然而,基于Transformer的大型語言模型的引入改變了這一范式,使其成為首選方法,因其具備更高的能力和靈活性。LLMs的一個顯著特點是其跟隨指令的能力[51, 164, 173, 238, 250],即使是新手程序員也可以通過簡單表達需求來編寫代碼。這一新興能力使編程變得更加大眾化,使更廣泛的受眾能夠接觸編程[264]。在代碼生成任務中的LLMs表現出顯著改進,如HumanEval排行榜所示,從PaLM 8B[49]的3.6%到LDB[279]的95.1%在Pass@1指標上的提升。由此可見,HumanEval基準[45]已成為評估LLMs代碼能力的事實標準[45]。
為了提供全面的時間演變概覽,我們展示了LLMs用于代碼生成的發展概覽,如圖1所示。代碼生成LLMs的格局由一系列模型組成,其中一些模型如ChatGPT[173]、GPT4[5]、LLaMA[217, 218]和Claude 3[13]用于通用應用,而其他如StarCoder[132, 151]、Code LLaMA[196]、DeepSeek-Coder[79]和Code Gemma[54]則專門針對代碼任務。代碼生成與最新LLM進展的融合尤為關鍵,特別是當編程語言可以被視為多語言自然語言的不同方言時[15, 275]。這些模型不僅符合軟件工程(SE)的要求,還推動了LLMs向實際生產的進步[271]。
盡管近期的綜述從自然語言處理(NLP)、軟件工程(SE)或兩者結合的視角對代碼LLMs進行了探討[91, 264, 271, 278],它們通常涵蓋了廣泛的代碼相關任務。仍然缺乏專門回顧代碼生成高級主題的文獻,如精細數據整理、指令調優、與反饋對齊、提示技術、自主編碼代理的發展、檢索增強代碼生成、LLM作為代碼生成的評審等。一個相關的重要研究[15, 264]也集中在文本到代碼生成(NL2Code)的LLMs上,但主要考察了2020年至2022年發布的模型。因此,這一顯著的時間差距導致了缺乏考慮最新進展的最新文獻綜述,包括如CodeQwen[215]、WizardCoder[154]和PPOCoder[204]等模型,以及前述高級主題的全面探索。
鑒于需要一個專門且最新的文獻綜述,本綜述旨在填補這一空白。我們提供了一篇系統綜述,為研究人員快速探索代碼生成LLMs的最新進展提供了基礎性參考。我們引入了一個分類法,對最近的進展進行分類和審視,涵蓋數據整理[154, 231, 240]、高級主題[42, 47, 94, 125, 146, 152, 164, 166, 177, 205, 266]、評估方法[45, 85, 111, 284]和實際應用[45, 275]。這一分類法與代碼生成LLM的完整生命周期相一致。此外,我們指出了關鍵挑戰并識別了橋接研究與實際應用之間的有前景機會。因此,本綜述使NLP和SE研究人員能夠全面了解代碼生成LLM,突出前沿方向和當前的障礙與前景。 綜述的其余部分按照我們在圖3中概述的分類法結構組織。在第2節中,我們介紹了LLM與Transformer架構的基礎知識,并制定了代碼生成LLM的任務。接下來在第3節中,我們提出了一種分類法,對代碼生成LLMs的完整過程進行分類。在第4節中,我們在該分類框架內深入探討代碼生成LLMs的具體細節。在第5節中,我們強調了橋接研究與實際應用差距的關鍵挑戰和有前景的機會,并在第6節總結本工作。
分類
近期大型語言模型(LLMs)開發的激增導致大量這些模型通過持續預訓練或微調被重新用于代碼生成任務。這一趨勢在開源模型領域尤為明顯。例如,Meta AI最初公開了LLaMA [217]模型,隨后發布了專為代碼生成設計的Code LLaMA [196]。類似地,DeepSeeker開發并發布了DeepSeek LLM [25],隨后擴展為專門用于代碼生成的變體DeepSeek Coder [79]。Qwen團隊基于其原始的Qwen [19]模型開發并發布了Code Qwen [215]。微軟則推出了WizardLM [250],并正在探索其面向編程的對應模型WizardCoder [154]。谷歌也加入了這一行列,發布了Gemma [214],隨后發布了Code Gemma [54]。除了簡單地將通用LLMs適用于代碼相關任務外,還出現了大量專門為代碼生成設計的模型。值得注意的例子包括StarCoder [132]、OctoCoder [164]和CodeGen [169]。這些模型強調了以代碼生成為重點開發的LLMs的趨勢。 認識到這些發展的重要性,我們提出了一種分類法,對代碼生成LLMs的最新進展進行分類和評估。此分類法如圖3所示,作為研究人員快速熟悉該動態領域最新技術的全面參考。 在接下來的章節中,我們將對與代碼生成相關的每個類別進行深入分析。這將包括問題的定義、要解決的挑戰以及對最突出的模型及其性能評估的比較。
大型語言模型(LLMs)與Transformer架構在多個領域引發了革命性變革,其在代碼生成中的應用尤為顯著。這些模型遵循一個全面的過程,從代碼數據的整理和合成開始,然后是包括預訓練和微調在內的結構化訓練方法,并使用復雜的提示工程技術。最近的進展包括集成了庫級和檢索增強的代碼生成,以及自主編碼代理的發展。此外,評估LLMs的編碼能力已成為該研究領域的重要組成部分。 在接下來的章節中,我們將詳細探討這些與代碼生成相關的LLMs各個方面。第4.1節將介紹在LLMs開發的各個階段中使用的數據整理和處理策略。第4.2節將討論旨在緩解高質量數據稀缺性的數據合成方法。第4.3節將概述用于代碼生成的LLMs的流行模型架構。第4.4節將探討全參數微調和參數高效微調的技術,這些技術對于將LLMs調整為代碼生成任務至關重要。第4.5節將通過強化學習和利用反饋的力量,闡述提升代碼質量的方法。第4.6節將深入研究通過策略性使用提示來最大化LLMs的編碼能力。第4.7和4.8節將分別詳細說明庫級和檢索增強代碼生成的創新方法。此外,第4.9節將討論自主編碼代理這一令人興奮的領域。最后,第4.11節將提供一些利用LLMs進行代碼生成的實際應用見解,展示這些復雜模型的現實世界影響。通過這一全面探索,我們旨在強調LLMs在自動化代碼生成領域的意義和潛力。 結論
在本綜述中,我們提供了一篇系統的文獻綜述,為研究代碼生成LLMs最新進展的研究人員提供了寶貴的參考。我們詳細介紹和分析了數據整理、最新進展、性能評估和實際應用。此外,我們還展示了近年來代碼生成LLMs演變的歷史概覽,并使用廣泛認可的HumanEval和MBPP基準進行經驗比較,以突出代碼生成LLMs能力的漸進提升。我們還識別了學術界與實際開發之間的關鍵挑戰和有前景的機會,以供未來研究。此外,我們建立了一個專門的資源網站,以持續記錄和傳播該領域的最新進展。我們希望本綜述能夠為代碼生成LLMs提供一個全面而系統的概覽,促進其蓬勃發展。我們樂觀地相信,LLMs最終將改變編碼的各個方面,自動編寫安全、有用、準確、可信且可控的代碼,如同專業程序員一樣,甚至解決當前人類無法解決的編碼問題。
在過去的一年中,多模態大型語言模型(MLLMs)在視覺問答、視覺理解和推理等任務中表現出色。然而,龐大的模型規模和高昂的訓練與推理成本阻礙了MLLMs在學術界和工業界的廣泛應用。因此,研究高效且輕量級的MLLMs具有巨大的潛力,特別是在邊緣計算場景中。在這篇綜述中,我們對當前高效MLLMs的研究現狀進行了全面而系統的回顧。具體來說,我們總結了代表性高效MLLMs的時間線、高效結構和策略的研究現狀以及應用。最后,我們討論了當前高效MLLM研究的局限性和未來有前景的研究方向。更多詳情請參考我們的GitHub倉庫://github.com/lijiannuist/Efficient-Multimodal-LLMs-Survey。
大規模預訓練作為人工智能(AI)領域的一種領先方法,使得像大型語言模型和多模態模型這樣的通用模型在許多任務中超越了專門的深度學習模型。大型語言模型(LLM)的卓越能力激發了將它們與其他基于模態的模型結合起來以增強多模態能力的努力。這一概念得到了OpenAI的GPT-4V[1]和Google的Gemini[2]等專有模型顯著成功的進一步支持。因此,多模態大型語言模型(MLLMs)應運而生,包括mPLUG-Owl系列[3, 4]、InternVL[5]、EMU[6]、LLaVA[7]、InstructBLIP[8]、MiniGPT-v2[9]和MiniGPT-4[10]。這些模型通過有效利用每種模態的預訓練知識,繞過了從頭開始訓練的計算成本。MLLMs繼承了LLM的認知能力,展示了許多顯著特性,如強大的語言生成和遷移學習能力。此外,通過與其他基于模態的模型建立強大的表示連接和對齊,MLLMs能夠處理來自多種模態的輸入,顯著拓寬了它們的應用范圍。 MLLMs的成功主要歸因于規模定律:隨著數據、計算能力或模型規模等資源的增加,AI模型的性能會提高。然而,可擴展性伴隨著高資源需求,這阻礙了大型模型的發展和部署。例如,MiniGPT-v2的訓練需要基于NVIDIA A100 GPU計算出的總計超過800個GPU小時[9]。這對主要企業外的研究人員來說是一個巨大的費用負擔。除了訓練之外,推理也是MLLMs資源消耗的主要部分。考慮一個典型場景,模型輸入包括一個尺寸為336 × 336像素的圖像和一個長度為40個tokens的文本提示,使用LLaVA-1.5和Vicuna-13B LLM骨干進行推理需要18.2T的FLOPS和41.6G的內存使用量。大規模模型的資源密集型特性也引發了關于民主化和隱私保護的擔憂,因為當前主流的MLLMs,如GPT-4V和Gemini,由少數幾家主導企業控制,并在云端運行。如上述實驗所示,即使是開源的MLLMs,對計算資源的高要求也使得在邊緣設備上運行它們變得具有挑戰性。這進一步加劇了確保公平訪問和保護用戶隱私的挑戰。
鑒于這些挑戰,高效MLLMs的研究受到了越來越多的關注。這些努力的主要目標是減少MLLMs的資源消耗,擴大其適用性,同時盡量減少性能下降。高效MLLMs的研究始于用輕量級替代品替換大型語言模型,并進行典型的視覺指令微調。隨后,研究進一步通過以下方式增強了能力并擴展了用例:(1)引入更輕量的架構,注重效率,旨在減少參數數量或計算復雜度[25, 13, 18];(2)開發了更專業的組件,聚焦于高級架構的效率優化或賦予特定屬性,如局部性[19, 17, 12];(3)支持資源敏感任務,一些工作采用視覺token壓縮來提高效率,使MLLM的能力能夠轉移到資源密集型任務中,如高分辨率圖像和視頻理解[35, 39, 14, 40]。
在本綜述中,我們旨在呈現快速發展的高效MLLMs領域的最新進展,如圖2所示。我們將文獻組織成六個主要類別,涵蓋高效MLLMs的各個方面,包括架構、高效視覺、高效LLMs、訓練、數據和基準測試以及應用。Architecture 關注通過高效技術開發的MLLM框架,以降低計算成本。該架構由多個基于模態的基礎模型組成,具有不同于單模態模型的特征,從而促進了新技術的發展。
Efficient Vision 探討優化高效視覺特征提取策略,強調在保持準確性的同時提高效率的方法。它解決了集成高質量視覺數據以實現有效跨模態理解的問題。
Efficient LLMs 探索提高語言模型計算效率和可擴展性的策略。它研究了模型復雜性與性能之間的權衡,并提出了平衡這些競爭因素的有前景途徑。
Training 調查了對高效MLLMs開發至關重要的訓練方法的現狀。它解決了與預訓練階段、指令微調階段及整體訓練策略相關的挑戰,以實現最先進的結果。
Data and Benchmarks 評估用于多模態語言模型評估的數據集和基準測試的效率。它評估了數據集規模、復雜性和計算成本之間的權衡,同時倡導開發優先考慮效率和與現實世界應用相關性的基準測試。
Application 研究高效MLLMs在各個領域的實際影響,強調性能和計算成本之間的平衡。通過解決諸如高分辨率圖像理解和醫療問答等資源密集型任務,本節強調了高效MLLMs在拓寬其應用范圍和解決現實問題方面的潛力。
總之,這篇綜述深入探討了這些研究工作,探索了多種使MLLMs更具資源效率的策略。我們回顧了高效MLLMs的發展歷史,提供了高效MLLMs策略的分類法,并全面比較了現有高效MLLMs的性能。通過這一探索,我們希望提供對當前最先進技術的全面理解,從而揭示這一新興領域的復雜細微之處。此外,這篇綜述還充當了路線圖,突出了未來研究的潛在途徑,促進了對高效MLLMs領域挑戰和機遇的更深入理解。除了這篇綜述,我們還建立了一個GitHub倉庫,收錄了綜述中提到的論文,并按照相同的分類法進行整理,地址為:
按照標準的MLLM框架,高效MLLMs可以分為三個主要模塊:視覺編碼器g,負責接收和處理視覺輸入;預訓練語言模型,管理接收到的多模態信號并進行推理;視覺-語言投影器P,作為連接兩種模態的橋梁。為了提高通用MLLMs的效率,主要的優化在于處理高分辨率圖像、壓縮視覺令牌、實施高效結構以及使用緊湊的語言模型等策略。圖3展示了架構圖。表1概述了高效MLLMs的總結,包括基礎LLM、視覺編碼器、圖像分辨率和用于連接視覺和語言的投影器。這些高效MLLMs包括:MobileVLM[20]、LLaVA-Phi[21]、Imp-v1[22]、TinyLLaVA[23]、Bunny[24]、Gemini Nano-2[2]、MobileVLMv2[17]、MoE-LLaVA-3.6B[25]、Cobra[13]、Mini-Gemini[26]、Vary-toy[27]、TinyGPT-V[28]、SPHINX-Tiny[14]、ALLaVA[29]、MM1-3B[30]、LLaVA-Gemma[31]、Mipha-3B[32]、VLMamba[18]、MiniCPM-V2.0[70]、DeepSeek-VL[34]、KarmaVLM[71]、moondream2[72]。在本節中,我們將按順序全面概述這三個模塊以及其他高效組件。
Vision Transformer (ViT) [94] 架構在計算機視覺應用中獲得了顯著的關注并被廣泛使用。然而,隨著ViT模型規模的增長,可訓練參數和操作數量也隨之增加,影響了它們的部署和性能。此外,自注意力機制的計算和內存成本隨著圖像分辨率的增加呈二次增長。參考論文[95],本綜述旨在探索可用于高效MLLMs的最有效的視覺編碼方法。
自動程序修復(APR)試圖修補軟件缺陷并減少手動調試的工作。最近,隨著大型語言模型(LLMs)的進步,提出了越來越多的APR技術,顯著地促進了軟件開發和維護,并展示了卓越的性能。然而,由于基于LLM的APR領域的持續探索,研究人員很難理解當前的成就、挑戰以及潛在的機會。本項工作提供了第一個系統的文獻綜述,總結了2020年至2024年間LLMs在APR中的應用。我們分析了127篇關于LLMs、APR及其整合視角的相關論文。首先,我們分類了現有的流行LLMs,這些模型被應用于支持APR,并概述了三種部署策略。此外,我們詳細描述了一些從LLMs受益的特定修復場景,例如,語義錯誤和安全漏洞。進一步地,我們討論了幾個將LLMs整合到APR研究中的關鍵方面,例如,輸入形式和開放科學。最后,我們強調了仍需研究的一系列挑戰和未來研究的潛在指南。總體而言,我們的論文為APR社區提供了一個系統的研究概覽,幫助研究者全面理解成就并推動未來的研究。我們的工具在GitHub倉庫公開可用://github.com/iSEngLab/AwesomeLLM4APR。
軟件缺陷被公認為不可避免且具有破壞性,為全球用戶帶來安全問題,并每年造成數十億美元的經濟損失【11, 156】。對開發者而言,手動修復檢測到的軟件缺陷既非小事也耗時【13】。自動程序修復(APR)在軟件開發和維護中扮演著至關重要的角色,旨在無需人工干預下修復軟件缺陷。自2009年基礎工作GenProg【80, 155】以來,過去幾十年中APR已被廣泛研究【43, 105】,研究者們提出了多種APR技術,包括基于啟發式的【64, 80, 98, 177】、基于約束的【31, 99, 169, 171】以及基于模式的【76, 91, 92】。最近,受到深度學習(DL)進步的啟發,越來越多基于學習的APR技術被提出,這些技術利用神經網絡模型自動學習修復缺陷的模式【18, 66, 84, 85, 96, 142, 174, 175, 199, 200】。得益于DL模型從大量代碼庫中學習隱藏修復模式的強大能力,基于學習的APR在過去幾年中取得了顯著的表現【182】,吸引了學術界和工業界的廣泛關注【69, 70, 73】。 最近,大型語言模型(LLMs)已成功應用于廣泛的源代碼相關任務【147, 184】,如代碼生成【82, 148, 150, 201】、代碼總結【132, 133, 146】和測試生成【4, 24, 57, 108, 128】。得益于龐大的模型參數和廣闊的訓練數據,LLMs展示了令人印象深刻的性能,并從根本上改變了軟件工程(SE)社區的研究范式。在APR領域,從先驅研究開始,例如TFix【7】、CIRCLE【176】和AlphaRepair【163】,社區已經見證了利用LLMs的修復研究的爆炸性增長,已經取得了相當的優勢,并進一步顯示了未來研究的重大潛力。然而,LLMs在APR中的整合是一個相當復雜的任務,使得有興趣的研究者難以理解現有工作。例如,現有基于LLM的APR研究涵蓋了不同的研究視角(例如,經驗性【162】、技術性【163】和基準研究【187】)、修復階段(例如,補丁生成【186】和正確性評估【183】)、修復場景(例如,靜態警告【69】和語法錯誤【70】)、模型架構(例如,僅編碼器【185】和僅解碼器【100】)以及模型使用范式(例如,微調【176】、少量樣本【108】和零樣本【186】)。盡管該領域的探索仍在進行中,目前的文獻中缺乏關于LLMs在APR中應用的詳盡和系統的綜述,這使得研究人員難以理解現有工作的多樣化設計選擇和進行后續研究。 本文。為了彌補這一差距,我們的工作提供了第一個系統的文獻綜述,關于迅速出現的基于LLM的APR研究的部署。基于此,社區可以全面了解現有基于LLM的APR技術的優勢、劣勢和空白。我們討論了在最先進的APR研究中廣泛采用的LLMs是哪些,以及它們如何被整合到修復工作流中。我們收集了127篇相關論文,并從LLMs、APR和整合視角進行了系統分析。通過我們的分析,我們揭示了當前的挑戰,并指出了基于LLM的APR研究可能的未來方向。總體來說,這項工作為LLM基于APR社區正在進行的進展提供了一個徹底的概覽,幫助研究者在這個迅速發展的領域中導航,并推動創新實踐。 貢獻。總結來說,本工作做出了以下貢獻: * 調查方法論。我們進行了第一個系統的文獻綜述,涵蓋了127篇高質量的APR論文,這些論文利用近期的LLMs應對2020年至2024年4月的修復挑戰。 * 趨勢分析。我們就發布趨勢、出版地點分布和貢獻類型對選定的APR研究進行了詳細分析。 * LLMs視角。我們總結了46種用于支持程序修復的LLMs,并提供了APR領域不同LLM類別的典型使用和趨勢的概述。 * APR視角。我們描述了LLMs應用的常見修復場景,涵蓋了18種錯誤類型,如安全漏洞和編程問題。 * 整合視角。我們討論了一些關鍵因素,包括數據集、輸入表現形式和開放科學,這些因素影響LLMs整合到APR中的性能。 * 挑戰與機遇。我們總結了在APR領域應用LLMs的一些關鍵挑戰,并指出了未來基于LLM的APR研究的一些潛在指南。
論文組織。第2節介紹了關于APR和LLMs的一些基本概念。然后,根據上述貢獻,第3節列出了我們的研究問題(RQs)和收集與我們工作相關論文的研究方法。第4節調查了基于LLM的APR研究的趨勢和分布。第5節總結了現有APR研究所使用的LLMs。第6節闡述了LLMs應用的主要修復場景,并對每項工作進行了簡要描述。第7節討論了LLMs與APR整合過程中的一些關鍵因素,包括數據集、輸入表現形式、補丁正確性和開放科學。第8節討論了一些挑戰和實用指南。第9節得出結論。 我們試圖通過總結相關研究并進一步提供后續研究的指南,提供近期LLMs在APR應用的全面概覽。為了實現這一點,這個系統的文獻綜述回答了以下研究問題(RQs): * RQ1:利用LLMs的APR研究的趨勢是什么?
(1) LLMs在修復軟件缺陷方面顯示出蓬勃的發展趨勢,從2020年到2024年間共有127篇論文。 (2) 在APR中使用LLMs的會議論文數量顯著超過期刊論文,其中ICSE和TOSEM分別是最受歡迎的會議和期刊場所。 (3) 基于LLM的APR論文發表在不同的研究領域,包括軟件工程(SE)、人工智能(AI)和安全性。 (4) 有18種編程語言已被基于LLM的APR應用,其中Java、Python、C和C++是最常被目標的。 (5) LLMs已被應用于一些代表性較低的編程語言,如Verilog和Rust。 (6) 收集的大多數研究主要集中于引入新技術和進行實證研究,而有兩篇論文執行了用戶研究,以了解從業者對利用各種LLMs解決修復缺陷任務的態度和經驗。 * RQ2:哪些受歡迎的LLMs已被應用于支持APR?
(1) 我們總結了46種不同的LLMs,這些模型已被用于修復缺陷,并且可以根據模型架構分為三類,即僅編碼器、編碼器-解碼器和僅解碼器。 (2) 僅解碼器的LLMs是最常使用的模型架構,其中四種最受歡迎的LLMs均為僅解碼器模型。 (3) ChatGPT、GPT-4、CodeT5和Codex是現有基于LLM的APR研究中最受歡迎的LLMs,分別被使用了37次、25次、23次和21次。 (4) 我們總結了三種典型的利用LLMs中封裝的廣泛知識來處理特定程序修復任務的方法,即微調、少量樣本和零樣本。 * RQ3:哪些修復場景已由LLMs促進?
總體來看,我們觀察到LLMs已在文獻中的廣泛修復場景中得到應用,涉及18種錯誤類型。在一些由傳統APR主導的常見場景中,例如語義錯誤,研究者繼續投入大量努力研究LLMs的應用。此外,由于LLMs從所有可能的互聯網數據中學到的通用知識,基于LLM的APR已擴展到一些以前未探索的罕見場景,如硬件缺陷和Web UI。 * RQ4:哪些關鍵因素有助于LLMs在APR中的整合?
(1) 我們總結了78種不同的數據集,這些數據集被用來基準測試LLMs在修復缺陷中的應用。 (2) 在基于LLM的APR中,Defects4J、QuixBugs、BFP、CVEfixes和Big-Vul是最常使用的。 (3) 我們將所有收集的論文中的輸入形式分類為五組:原始修復輸入、提示輸入、掩碼輸入、對話式輸入和結構感知輸入。 (4) 提示輸入是在應用LLMs進行程序修復時最常用的形式,這表明設計有效的提示對于利用LLMs的自然語言處理能力尤為重要。 (5) 我們總結了一些利用LLMs預測補丁正確性的研究。 (6) 所有收集的論文中有62.99%已經開源了其工具,而在頂級SE出版物中,這一比例增加到了86.84%。
多任務學習(MTL)是一種學習范式,有效地利用任務特定和共享信息同時解決多個相關任務。與單任務學習(STL)相比,MTL提供了一系列優勢,增強了訓練過程和推理效率。MTL的主要優點包括流線型模型架構、性能提升和跨領域泛化能力。在過去二十年中,MTL已廣泛被認為是在包括計算機視覺、自然語言處理、推薦系統、疾病預測與診斷及機器人技術等多個領域中,一種靈活有效的方法。本綜述全面概述了MTL的演變,涵蓋了從傳統方法到深度學習乃至最新趨勢的預訓練基礎模型的技術層面。我們的綜述有條不紊地將MTL技術分類為五個關鍵領域:正則化、關系學習、特征傳播、優化和預訓練。這種分類不僅按時間順序概述了MTL的發展,還深入探討了每個類別內的各種專門策略。此外,綜述揭示了MTL如何從處理固定任務集合轉變為不受任務或模態限制的更靈活方法。它探討了任務可提示和任務不可知訓練的概念,以及零樣本學習的能力,這些都釋放了這一歷史上備受推崇的學習范式的未開發潛力。總的來說,我們希望這份綜述能為研究社區提供自1997年以來MTL進展的全面概覽,直至2023年。我們討論了當前挑戰,并展望未來的可能性,從廣泛的角度揭示了MTL研究的機遇和潛在途徑。這個項目可以在 //github.com/junfish/AwesomeMultitask-Learning 公開獲取。
在介紹中,我們希望在回顧多任務學習(MTL)的方法論之前回答以下五個研究問題(RQs): * RQ1:多任務學習的概念和定義是什么?(見§ 1.1) * RQ2:多任務學習如何從其他學習范式中區分出來?(見§ 1.2) * RQ3:在學習場景中使用多任務學習的動機是什么?(見§ 1.3) * RQ4:多任務學習的有效性依賴于哪些基本原理?(見§ 1.4) * RQ5:我們的綜述與以往的研究有何不同?(見§ 1.5)
在§ 1.1中,我們逐步介紹多任務學習(MTL),從廣義上開始,最終給出一個正式定義。隨后,§ 1.2探討了MTL在機器學習(ML)領域中的定位,與轉移學習(TL)、少樣本學習(FSL)、終身學習、多視圖學習(MVL)等相關范式進行比較。§ 1.3深入探討了采用MTL的動機,從明顯和微妙的角度提供見解,同時也討論了MTL如何惠及相關任務。在§ 1.4中,我們更深入地探討了支撐MTL的基本機制和理論,具體包括:1) 正則化,2) 歸納偏見,以及3) 特征共享,為理解其基本原理提供了解釋。最后,§ 1.5回顧了關于MTL的現有綜述,強調我們綜述的獨特貢獻,并為本文的其余部分制定了一個結構化的路線圖。我們綜述的結構在圖2中描述。在深入本綜述之前,讀者可以快速參考表1,了解與數據集、機構和新提出的方法無關的首字母縮寫詞列表,而數學符號概述則提供在表3和表6中。
在過去幾十年中,MTL的日益流行在圖3中得到了明顯體現,該圖顯示了與關鍵詞搜索“allintitle: 'multitask learning' OR 'multi-task learning'”相關的論文數量的趨勢,數據來源于谷歌學術。正如其名稱所示,MTL是ML的一個子領域,在此多個任務被共同學習。通過這種方式,我們希望利用這些相關任務之間的有用信息,并打破傳統的各任務獨立執行的做法。在單任務學習(STL)中,手頭任務的特定數據是支撐學習者的唯一來源。然而,MTL可以方便地轉移從其他任務學到的額外知識。MTL的本質在于通過結合數據資源和共享知識,利用任務之間的共識和補充信息。這揭示了一種更好的學習范式,可以減少內存負擔和數據消耗,并提高訓練速度和測試性能。例如,同時學習圖像中的單眼深度估計(測量到相機的距離)(Eigen等,2014年)和語義分割(為每個像素值分配一個類別標簽)(傅克勝和梅玉,1981年)是有益的,因為這兩個任務都需要感知有意義的對象。隨著實驗和理論分析持續驗證其有前途的結果,MTL已變得越來越普遍。例如,使用面部ID解鎖iPhone是一個典型但不易察覺的MTL應用,涉及同時定位用戶的面部和識別用戶。通常,當我們在優化階段嘗試處理兩個或更多的目標時,就會發生多任務處理。 因此,即使在執行帶有正則化的STL時,MTL也無處不在于ML中。這可以理解為有一個目標任務和一個額外的人為任務,例如通過?2正則化器學習受限模型或通過?1正則化器學習簡約模型。這些假設偏好可以作為歸納偏見,增強歸納學習者(Caruna, 1993)。在MTL的早期探索中(R. Caruana, 1997),所涉及任務提供的額外信息被視為其他任務的特定領域歸納偏見。由于從其他任務收集訓練信號比從模型設計或人類專業知識獲得歸納偏見更實際,因此我們可以通過這種MTL范式增強任何ML模型。 動機和好處: MTL可以從以下五個具有不同好處的角度受到激勵:認知/社會心理學、數據增強、學習效率、現實世界場景和學習理論。
從心理學角度看,人類天生具有適應新問題和環境的靈活性,因為人類學習過程可以將一種經驗中的知識轉移到另一種經驗中(Council等,2000)。因此,MTL的靈感來自于模擬這一過程,賦予模型多任務處理的潛力。巧合的是,這種知識轉移也發生在組織之間(Argote等,2000)。已證明,具有更有效知識轉移的組織更具生產力,并且更有可能生存下來。這些在其他領域的轉移或互惠的先前成功鼓勵了ML中任務的聯合學習(R. Caruana, 1997)。
在大數據時代之前,現實世界的問題通常由小型但高維的數據集表示(樣本數 < 特征數)。這種數據瓶頸迫使早期方法學習一個稀疏結構的模型,總是導致對數據不足問題的簡約解決方案。然而,MTL的出現是為了聚合來自不同領域或任務的標記數據,以擴大訓練數據集,對抗過擬合。
追求效率和效果也是動機之一。MTL可以將來自不同來源的數據聚合在一起,多任務的聯合訓練過程可以節省計算和存儲資源。此外,性能提升的潛力使其在研究社區中廣受歡迎。簡而言之,可以從多源數據中學習任何任務的通用表征,并在學習成本和性能方面惠及所有任務。
由于大多數現實世界問題自然是多模態或多任務的,MTL被提出來補救STL只單獨模擬部分問題而達到的次優。例如,預測阿爾茨海默病(AD)生物標志物對輕度認知障礙(MCI)風險和臨床診斷的進展同時基于多模態數據,如計算機斷層掃描(CT)、磁共振成像(MRI)和正電子發射斷層掃描(PET)(H. Chen等,2022;Jie等,2015;Kwak等,2018)。自動駕駛是另一個例子,也涉及多個子任務來計算最終預測(Chowdhuri等,2019;Z. Yang等,2018),包括識別周圍物體、根據交通條件調整最快路線、效率與安全之間的平衡等。
從學習理論的角度看,已證明無偏學習是不可能的(Mitchell,1980),因此我們可以通過使用相關任務的額外訓練信號來激發MTL。通常,MTL是通過多任務協助實現歸納轉移的方式之一,它可以提高學習速度和泛化能力。具體來說,在多任務聯合訓練過程中,某些任務可以從其他相關任務獲得歸納偏見,這些較強的歸納偏見(與通用正則化器相比,例如?2)能夠實現知識轉移,并在固定訓練數據集上產生更多的泛化能力。換句話說,與任務相關的偏見使學習者更傾向于可以解釋多個任務的假設,并防止特定任務過擬合。
機制與解釋。 在本節中,我們將探討三個關鍵機制——正則化、歸納偏見和特征共享——這些機制揭示了MTL如何操作以在多個任務中實現性能增強。
正則化。在MTL中,總損失函數是針對每個任務的多個損失項的組合。相關任務充當正則化器的角色,增強了跨任務的泛化能力。MTL模型的假設空間因同時處理多個任務而被限制在更狹窄的范圍內。因此,對假設空間這種約束減少了模型復雜性,減輕了過擬合的風險。
歸納偏見。共訓練任務的訓練信號由于它們共享的領域信息而充當相互歸納偏見。這些偏見在訓練期間促進跨任務知識轉移,引導模型偏好與任務相關的概念而不是任務本身。因此,這擴展了模型的視野,超越單一任務,增強了其對未見分布(OOD)數據的泛化能力。
特征共享。MTL可以在相關任務之間實現特征共享。一種方法涉及選擇重疊特征并最大化其在所有任務中的利用率。這被稱為“竊聽”(Ruder,2017),考慮到某些特征可能對特定任務不可用,但可以由相關任務學習的特征替代。另一種方式是將不同任務提取的所有特征合并在一起;這些特征可以通過線性組合或非線性轉換在任務之間整體使用。
總的來說,通過正則化、歸納轉移和特征共享,MTL可以是提升ML模型在多個任務上性能的一種高效且有效的方式。 貢獻與亮點。
現有綜述。Ruder (2017) 的研究是MTL的先鋒綜述,提供了MTL的廣泛概述,并專注于2015年到2017年深度神經網絡的進展。Thung和Wee (2018) 從輸入輸出變體的分類學角度回顧了MTL方法,主要集中在2016年之前的傳統MTL。這兩篇綜述可以相輔相成。Vafaeikia等人 (2020) 是一份不完整的綜述,簡要回顧了近期的深度MTL方法,特別關注于選擇輔助任務以增強學習性能。Crawshaw (2020) 從應用的角度介紹了2020年之前的成熟和先進的MTL方法。Vandenhende等人 (2021) 提供了在密集預測任務中深度MTL的全面綜述,這些任務生成像素級預測,如在語義分割和單眼深度估計中。Y. Zhang和Yang (2021) 首先從基于特征和基于參數的方法的分類學提供了MTL模型的全面概述,但對深度學習(DL)方法的包含有限。值得注意的是,所有這些綜述都忽略了過去三到四年MTL的發展,即大型PFMs(預訓練基礎模型)時代(Bommasani等,2021;C. Zhou等,2023),以GPT系列模型為代表(Brown等,2020;OpenAI,2023;Radford等,2018,2019)。
路線圖。本綜述采用了一個組織良好的結構,區別于其前輩們,展示了MTL從傳統方法到DL以及由PFMs引入的創新范式轉變的演變之旅,如圖1所示。在§ 2.1中,我們提供了傳統MTL技術的全面總結,包括特征選擇、特征轉換、分解、低秩因子化、先驗共享和任務聚類。接下來,§ 2.2致力于探索深度MTL方法的關鍵維度,包括特征融合、級聯、知識蒸餾、跨任務注意力、標量化、多目標優化(MOO)、對抗訓練、專家混合(MoE)、基于圖的方法和NAS。§ 2.3介紹了PFMs的最新進展,分類基于任務可泛化微調、任務可提示工程以及任務不可知統一。此外,我們在§ 3中提供了MTL的雜項方面的簡潔概述。§ 4提供了寶貴的資源和工具,以增強研究人員和實踐者與MTL的互動。我們的討論和未來方向在§ 5中呈現,隨后是我們在§ 6中的結論。這篇綜述的目標是三重的:1) 為新來者提供MTL的全面理解;2) 作為工程實踐者的工具箱或手冊;3) 通過提供對MTL未來方向和潛力的洞察,激發專家的靈感。
游戲智能體的發展在推進向人工通用智能(AGI)的道路上扮演著至關重要的角色。大型語言模型(LLMs)及其多模態對應物(MLLMs)的進展為在復雜的電腦游戲環境中賦予游戲智能體類似人類的決策能力提供了前所未有的機會。本文從一個全面的視角對基于LLM的游戲智能體進行了綜述。首先,我們介紹了基于LLM游戲智能體的概念架構,圍繞六個基本功能組件:感知、記憶、思考、角色扮演、行動和學習。其次,我們調研了文獻中記錄的現有代表性的基于LLM游戲智能體,這些智能體在方法論和跨六大游戲類型的適應性靈活性方面進行了探討,包括冒險、溝通、競爭、合作、模擬以及制作與探索游戲。最后,我們展望了這一新興領域未來研究和發展的方向。維護并可訪問的相關論文精選列表位于://github.com/git-disl/awesome-LLM-game-agent-papers。
智能在代理與環境的互動中以及作為感覺運動活動的結果而出現。 ——體現認知假說 [1] 大型語言模型(LLMs),如ChatGPT [2]所示,代表了自然語言理解(NLU)和生成性人工智能(Gen-AI)中的一個重要里程碑。通過在包含數百億參數的大量多樣化網絡來源上進行生成性訓練,LLMs展示了從龐大文本語料庫中概括知識的驚人能力,并以接近人類水平的NLU表現展示對話智能。多模態LLMs(MLLMs),如GPT-4V [3]和Gemini [4]的出現,標志著另一個里程碑,使LLMs能夠感知和理解視覺輸入。我們推測,LLM技術的成功為追求類人人工通用智能(AGI)提供了前所未有的機會:以前認為僅限于人類的認知能力,如推理、規劃和反思,以及自我控制、自我理解和自我改進的程度,現在通過適當提示集成了內置認知智能的LLMs來實現。
我們將基于LLM的智能體(LLMA)定義為一個智能實體,它使用LLMs1作為執行類人決策過程的核心組件 [5]。盡管LLMAs能夠進行類似人類的認知處理,但現有LLMAs與類人AGI之間的區別是顯而易見的:當前的LLMAs依賴于解碼和概括來自預訓練數據的預先存在的知識 [6],而AGI能夠通過在現實世界中的實驗和經驗發現和學習新知識 [7; 8]。受到人類嬰兒智力發展過程的啟發,體現認知假說 [1] 假設智能體的智能源于觀察和與其環境的互動,即,將智能體植入一個集成了物理、社會和語言經驗的世界對于促進有利于發展類人智能的條件至關重要。
數字游戲被認為是培養AI智能體的理想環境,因為它們具有復雜性、多樣性、可控性、安全性和可復制性。從經典的國際象棋和撲克游戲 [9; 10; 11] 到現代視頻游戲如Atari游戲 [12]、星際爭霸II [13]、Minecraft [14] 和DOTA II [15],長期以來一直是推進AI研究的工具。與基于傳統強化學習(RL)的智能體 [10; 16; 17; 18] 不同,這些智能體通過行為級策略學習做出決策,目標是最大化預期獎勵,構建能夠運用認知能力獲得游戲玩法基本洞察力的基于LLM的游戲智能體(LLMGAs)可能更貼近AGI的追求。 先前關于LLMs [19; 20; 21] 或LLMAs [22; 23; 24] 的綜述論文主要關注審查行業和學術研究團隊開發的現有LLMs,以及LLMAs的一般應用,較少關注游戲代理領域。同時期的綜述論文 [25; 26] 顯著強調了游戲開發,并涵蓋了有限數量的LLMGAs出版物。為了彌補這一差距,本文試圖對LLMGAs的最新發展進行全面和系統的綜述。具體而言,本綜述分為三個相輔相成的部分:首先,我們提供了一個統一的參考框架,在其中我們描述了構建LLMGAs所需的基本模塊,涵蓋六個核心功能組件:感知、記憶、思考、角色扮演、行動和學習。其次,我們介紹了一個將現有文獻分類為六個游戲類別的分類法,包括冒險、競爭、合作、模擬和制作與探索。對于每個類別,我們描述了技術挑戰、支持的游戲環境,以及常用的優化策略。在第三部分和最后一部分,我們設想LLMGAs未來進步的不同方向。
總之,這篇綜述論文作為對LLMGAs文獻的全面回顧,提供了六個游戲類別的分類,以增強理解并促進各種LLMGAs的開發和評估。它旨在促進這一新興研究領域的進步,并激發LLMGAs的研究和開發中的進一步創新。鑒于這是一個新興且蓬勃發展的研究領域,這篇綜述論文將持續更新,以跟蹤最新研究。維護并可訪問的相關文獻精選列表位于
統一的LLMGAs架構
圖1提供了LLMGAs的概念架構,包括六個基本功能組件及其工作流程:對于每個游戲步驟,感知模塊捕獲游戲狀態信息,為智能體理解其當前環境提供必要的數據。思考模塊處理感知到的信息,基于推理、規劃和反思生成思考,以便做出明智的決策。記憶作為一個外部存儲,過去的經驗、知識和精心挑選的技能被保留,并可以為將來使用而檢索。角色扮演模塊使智能體能夠在游戲中模擬特定角色,展示與每個角色的特征和目標一致的可信行為。行動模塊將生成的文本決策轉換為可執行的動作,允許智能體有效地與游戲元素互動和操縱。學習模塊通過在游戲環境中積累的經驗和互動,不斷改善智能體的認知和游戲技能。
大型語言模型(LLMs)在廣泛的任務中取得了顯著的成功。由于LLMs令人印象深刻的規劃和推理能力,它們被用作自動執行許多任務的自主智能體。最近,基于將一個LLM作為單一規劃或決策智能體的發展,基于LLM的多智能體系統在復雜問題解決和世界模擬方面取得了相當的進展。為了向社區提供這一動態領域的概覽,我們呈現這篇綜述,以提供關于基于LLM的多智能體系統的基本方面及挑戰的深入討論。我們的目標是讓讀者對以下問題獲得實質性的見解:基于LLM的多智能體模擬哪些領域和環境?這些智能體如何被描述,它們如何通信?什么機制有助于智能體能力的增長?對于那些有興趣深入研究這一領域的人,我們還總結了常用的數據集或基準,以便他們方便地訪問。為了讓研究人員了解最新的研究,我們維護一個開源的GitHub倉庫,致力于概述基于LLM的多智能體系統的研究。
1 引言
最近,大型語言模型(LLMs)展現出了達到與人類相當的推理和規劃能力的顯著潛力。這種能力完全符合人類對能夠感知周圍環境、做出決策并作出響應的自主智能體的期待[Xi等,2023;Wooldridge和Jennings,1995;Russell和Norvig,2009;Guo等,2023;Liang等,2023]。因此,基于LLM的智能體已被研究和快速發展,以理解和生成類似人類的指令,促進在廣泛的上下文中進行復雜的互動和決策[Yao等,2023;Shinn等,2023;Li等,2023d]。及時的綜述文章系統地總結了基于LLM的智能體的進展,如在文獻[Xi等,2023;Wang等,2023b]中所見。
基于單個LLM智能體的啟發性能力,已提出基于LLM的多智能體,以利用多個智能體的集體智能和專業化輪廓及技能。與使用單一LLM驅動的智能體的系統相比,多智能體系統通過1) 將LLMs專業化為具有不同能力的各種不同智能體,以及2) 使這些多樣化的智能體之間進行互動,有效地模擬復雜的現實世界環境,提供了先進的能力。在這一背景下,多個自主智能體協作參與規劃、討論和決策,反映了人類團隊工作在解決問題任務中的合作本質。這種方法利用了LLMs的溝通能力,借助它們生成文本進行交流和對文本輸入的響應能力。此外,它利用了LLMs在各個領域的廣泛知識和專門化特定任務的潛力。最近的研究已經展示了使用基于LLM的多智能體解決各種任務的有希望的結果,如軟件開發[Hong等,2023; Qian等,2023]、多機器人系統[Mandi等,2023; Zhang等,2023c]、社會模擬[Park等,2023; Park等,2022]、政策模擬[Xiao等,2023; Hua等,2023]以及游戲模擬[Xu等,2023c; Wang等,2023c]。由于這個領域的跨學科研究性質,它吸引了來自社會科學、心理學和政策研究等不同背景的研究者,研究論文的數量正在迅速增加,如圖1所示(受[Gao等,2023b]設計的啟發),從而擴大了基于LLM的多智能體研究的影響。盡管如此,早期的工作是獨立進行的,導致缺乏系統回顧以總結它們,建立這個領域的全面藍圖,并檢查未來的研究挑戰。這強調了我們工作的重要性,并作為呈現這篇綜述論文的動機,致力于基于LLM的多智能體系統的研究。
我們期望我們的綜述能對LLMs的研究和開發以及利用LLMs進行的更廣泛的跨學科研究做出重大貢獻。讀者將獲得關于基于LLM的多智能體(LLM-MA)系統的全面概覽,把握基于LLMs建立多智能體系統所涉及的基本概念,并捕捉到這一動態領域中最新的研究趨勢和應用。我們認識到這個領域正處于初級階段,并且隨著新方法和應用的迅速發展。為了提供一種持續的資源來補充我們的綜述論文,我們維護了一個開源的GitHub倉庫。我們希望我們的綜述能激發進一步的探索和創新,以及在廣泛的研究領域中的應用。
為了幫助來自不同背景的個人理解LLM-MA技術,并補充現有的綜述通過解決未解決的問題,我們以以下方式組織了我們的綜述論文。在第2節中闡述背景知識后,我們提出了一個關鍵問題:LLM-MA系統如何與協作任務解決環境對齊?為了回答這個問題,我們在第3節提出了一個全面的框架,用于定位、區分和連接LLM-MA系統的各個方面。我們通過討論: 1)智能體-環境界面,詳細說明智能體如何與任務環境互動; 2)智能體輪廓,解釋一個智能體如何被LLM描述以以特定方式行為; 3)智能體通信,考察智能體如何交換信息和協作;以及 4)智能體能力獲取,探索智能體如何發展其解決問題的能力。
關于LLM-MA研究的另一個視角是它們的應用。在第4節,我們將當前應用分為兩個主要流:用于問題解決的多智能體和用于世界模擬的多智能體。為了指導個人識別合適的工具和資源,我們在第5節提出了用于研究LLM-MA的開源實現框架,以及可用的數據集和基準。基于前面的總結,我們在第6節開放了對未來研究挑戰和機會的討論。結論在第7節中總結。
解析LLM-MA系統:界面、輪廓、通信和能力
在本節中,我們深入探討LLM-MA系統的復雜性,其中多個自主智能體參與類似于人類群體動力學的協作活動,應對問題解決場景。我們要解決的一個關鍵問題是,這些LLM-MA系統如何與它們的操作環境以及它們旨在實現的集體目標對齊。為了闡明這一點,我們在圖2中展示了這些系統的通用架構。我們的分析解剖了這些系統的操作框架,重點關注四個關鍵方面:智能體-環境界面、智能體輪廓、智能體通信和智能體能力獲取。
應用
LLM-MA系統已在廣泛的應用中被使用。我們在表1中總結了兩類應用:問題解決和世界模擬。我們將在下面詳細闡述這些應用。請注意,這是一個快速發展的研究領域,幾乎每天都有新應用出現。我們維護一個開源倉庫來報告最新的工作。
使用LLM-MA進行問題解決的主要動機是利用具有專門專業知識的智能體的集體能力。這些智能體,每個都作為個體行動,協作以有效地解決復雜問題,例如軟件開發、具體化智能體、科學實驗和科學辯論。 LLM-MA的另一個主流應用場景是世界模擬。這一領域的研究正在迅速增長,涵蓋了包括社會科學、游戲、心理學、經濟學、政策制定等在內的多種領域。在世界模擬中使用LLM-MA的關鍵原因在于它們出色的角色扮演能力,這對于現實地描繪模擬世界中的各種角色和觀點至關重要。世界模擬項目的環境通常被設計來反映被模擬的特定場景,智能體以各種輪廓設計以匹配這一背景。與專注于智能體合作的問題解決系統不同,世界模擬系統涉及多種智能體管理和通信方法,反映了現實世界交互的復雜性和多樣性。
結論
基于LLM的多智能體展現了激勵人心的集體智能,并迅速在研究者中獲得了越來越多的興趣。在這篇綜述中,我們首先系統回顧了LLM-MA系統的發展,通過從不同方面定位、區分和連接它們,涉及智能體-環境界面、LLMs對智能體的描述、管理智能體通信的策略以及能力獲取的范式。我們還總結了LLM-MA在問題解決和世界模擬中的應用。通過突出常用的數據集和基準,并討論挑戰和未來機會,我們希望這篇綜述能成為各個研究領域的研究者們的有用資源,激發未來的研究去探索基于LLM的多智能體的潛力。
人工智能(AI)的歷史見證了高質量數據對各種深度學習模型的重大影響,例如ImageNet對于AlexNet和ResNet。最近,AI社區的關注點已從設計更復雜的神經結構(即模型為中心的方法)轉移到了數據為中心的方法,這種方法重點在于更好地處理數據以增強神經模型的能力。圖學習,操作于無處不在的拓撲數據上,也在深度學習時代中起到了重要作用**。在這次綜述中,我們從數據為中心的角度全面回顧了圖學習方法,并旨在回答兩個關鍵問題**:(1)何時修改圖數據以及(2)如何修改圖數據以發掘各種圖模型的潛力。因此,我們提出了一個基于圖學習流程中的階段的新分類法,并強調了圖數據中不同數據結構的處理方法,即拓撲、特征和標簽。此外,我們分析了嵌入在圖數據中的一些潛在問題,并討論了如何以數據為中心的方式解決它們。最后,我們為數據為中心的圖學習提供了一些建議的未來方向。
最近在非歐幾里得領域的進展引起了人工智能(AI)社區的大量關注。圖,作為典型的非歐幾里得數據,在現實世界中無處不在,并已在許多領域中得到廣泛應用,例如推薦、安全、生物信息學等。在過去的十年中,由于圖模型的創新,圖相關研究得到了推動,從圖核心[1][2]到圖嵌入[3][4],再到最新的圖神經網絡(GNNs)[5][6]。相反,關于圖數據的固有方面的研究較少,包括質量、多樣性、安全性等。 通常,AI的革命始終是由大量高質量數據的可用性引發的,隨后是強大的模型。一個顯著的例子是ImageNet[7]的成功,它為深度卷積神經網絡的發展做出了重要貢獻,例如AlexNet[8]和ResNet[9]。隨著數據的重要性得到越來越多的認可,最近,AI社區的關注點從以模型為中心的方法轉移到了以數據為中心的方法[10][11]。
新興的以數據為中心的AI強調產生適當的數據以提高給定模型的性能。“如何處理圖數據以發揮圖模型的全部潛力?”一個了解情況的答案可以幫助我們理解圖數據與圖模型之間的關系。然而,與圖像和表格數據等歐幾里得數據不同,圖的不規則性為以數據為中心的圖學習提出了幾個問題:首先,在什么時候我們應該修改圖數據以使圖模型受益?數據修改可能會在圖學習的不同階段發生。例如,我們可以在訓練之前啟發式地擾動邊,而在訓練期間我們也可以從節點表示中估計新的圖結構。其次,我們應該修改圖數據的哪一部分?圖數據涉及各種結構,包括邊、節點、特性和標簽,每一個都在圖表示學習中起到了重要作用。第三,如何防止圖模型受到有問題的圖數據的影響?由于手工定義的關系和特性,圖數據可能不可避免地引入噪聲和偏見,這使得模型變得不可靠。 本綜述系統地調研和分類了從數據中心的角度存在的圖學習方法。具體地說,為了回答第一個問題,我們將圖學習過程分為四個階段:準備、預處理、訓練和推斷,如圖1所示。我們討論了每個階段對圖數據的重要性。接下來,我們進一步從結構的角度對現有方法進行分類,以解決第二個問題。具體來說,我們考慮如何處理圖數據的拓撲、特征和標簽。最后,我們分析了現有圖數據中的潛在問題,包括脆弱性、不公平性、選擇偏見和異質性。并進一步討論如何從數據為中心的方式解決這些問題。
本文的貢獻可以總結如下:
? 新的分類法。我們按圖學習流程中的各個階段對現有的數據中心圖學習方法進行分類,包括預處理、訓練和推理。對于每個階段,我們都介紹了其在數據中心圖學習中的目標和重要性。 ? 多角度觀察。我們強調如何處理圖數據中的不同數據結構,包括拓撲、特征和標簽,以發揮給定圖模型的潛力。 ? 全面的討論。我們分析了有問題的圖數據對圖模型的潛在影響,并討論了如何以數據為中心的方式緩解這些問題。此外,我們提出了四個可能的數據中心圖學習的未來方向,這可能有助于這個領域的發展。 組織. 本調查的其余部分組織如下:第2節概述了數據中心圖學習的背景,并描述了如何手動處理圖數據。第3-5節分別介紹了預處理、訓練和推理階段的數據中心圖學習方法。第6節介紹了圖數據的潛在問題,并討論了如何處理這些問題。最后,第7節對本文進行了總結,并提出了一些有前途的未來方向。
2. 預處理階段
在本節中,我們將討論圖數據預處理階段的數據中心方法。具體來說,我們將現有的方法分為兩類:基于修改的方法和基于分布的方法。第一類旨在通過修改圖數據實例來提高圖模型的性能。第二類則著重于幫助圖模型捕捉數據集的分布,同時保持圖實例不變。此外,我們還考慮了不同的數據結構,包括拓撲、特征和標簽。相關方法列示在表1中。
圖的簡化 (Graph Reduction)
隨著圖的規模的增大,其計算所消耗的時間和空間也會增加。因此,如何在不失去太多有用信息的前提下減少圖的節點或邊成為了一個有價值的問題。圖的簡化可以加速模型的訓練,減少過擬合,并允許在更簡單的硬件條件下對模型進行訓練。圖的簡化可以分為兩大類:邊的簡化和節點的簡化。邊的簡化指的是圖的稀疏化,而節點的簡化包括圖的粗糙化和圖的凝縮。
圖的增強 (Graph Augmentation)
在深度學習中,數據增強被認為是非常重要的。由于圖數據的稀缺性和稀疏性相當嚴重,因此一個好的增強方法的重要性更為明顯。與其他數據形式相比,直接操作圖結構的圖增強是最具特色的圖數據增強類型。在這里,我們將介紹一些脫離訓練的啟發式方法。它們可能很簡單,但證明是非常有效和受歡迎的。 特征增強 (Feature Augmentation)
通過創建或修改節點特征,特征增強可以使后續模型避免過擬合并提高其性能。 對于已經有特征的圖,我們可以做一些直觀的調整來加強它們,例如特征損壞 [143]-[145],特征洗牌,特征掩碼 [66], [87], [146],特征添加,特征重寫 [147], [148],特征傳播,特征混合 [149]等 [15]。 對于最初沒有特征的節點,有適當生成特征的方法。為了獲取結構信息,Perozzi 提出了基于 word2vec [150] 的 deepwalk [3],它從每個節點開始,多次隨機走動,最后使用所有路徑為節點通過 word2vec [150]c 生成節點嵌入。接著,node2vec [4] 來自 deepwalk [3],它為節點添加了一個隨機行走的概率。另一條與隨機行走無關的線是 SDNE [151]。他們通過編碼器-解碼器架構得到圖的結構。具體來說,他們將鄰接矩陣的每一列作為初始節點嵌入,這是編碼器的輸入。并計算模型在初始嵌入和解碼嵌入之間的損失。 在非標記圖中,特征增強是通過無監督學習實現的。例如,GREET [211] 將原始圖分割成兩個子圖,一個包含同質邊,另一個包含異質邊,然后通過兩個單獨的 GNN 得到子圖嵌入,再連接這些子圖嵌入來獲取節點特征。 總的來說,特征增強是多種多樣和任意的,特殊的特征增強可以根據特定問題的需要進行定制。 位置編碼 (Position Encoding)
眾所周知,信息傳遞神經網絡 (MPNNs) 的表達能力受到1-Weisfeiler-Lehman (WL) 測試的限制,不能區分同構圖 [212]。為了打破這個限制,一個受歡迎的方法是用一些位置信息來增強節點特征,這被稱為位置編碼。在本節中,我們將介紹兩種類型的位置編碼:絕對方法和相對方法。 標簽混合 (Label Mixing)
標簽混合旨在將帶有標簽或嵌入的兩個不同實例混合為一個新的實例,并使用這些混合的實例來訓練模型。這樣得到的模型更具泛化性,不容易過擬合。 Mixup 在圖分類和節點分類任務中都扮演著重要的角色。一方面,面對圖分類任務,我們可以采用各種方法來增強模型。一種方法 [174] 涉及混合多個預先存在的圖嵌入。或者,我們可以隨機選擇一個子圖,并用另一個圖中的相應子圖替代它,同時保留原始圖的嵌入,使模型更好地集中于數據的相關方面 [175], [176]。另一方面,一些工作 [177] 提議將鄰近節點的標簽或嵌入進行混合,用于節點分類任務。 圖的課程學習 (Graph Curriculum Learning) 課程學習 (CL) [215] 是一種模仿人類學習過程的訓練策略,主張模型從簡單樣本開始學習,然后逐漸過渡到復雜樣本。這種策略可以幫助模型更快地收斂,并提高模型的泛化能力。圖的課程學習 (Graph CL) [216] 是一種基于圖的課程學習方法,主要用于圖神經網絡的訓練和優化。大多數 CL 方法有兩個重要功能,難度測量器和訓練調度器。難度測量器可以評估訓練數據的難度,以給予學習優先權,而訓練調度器決定如何從簡單到困難地進行學習。根據這兩者是否自動設計,CL 方法可以分為兩類,即預定義的 CL 和自動的 CL。在本節中,我們將介紹預定義的 Graph CL。 圖采樣 (Graph Sampling) 圖采樣方法使用不同的策略對節點進行采樣,并在計算節點的表示時僅聚合部分節點的信息,這加速了模型的收斂并減少了內存開銷。在這部分中,我們將討論啟發式采樣方法,這些方法可以進一步劃分為兩個類別:隨機采樣和重要性采樣。 圖生成 (Graph Generation) 在現實世界中,某些圖數據集對于圖模型來說太小,無法有效地理解其分布。圖生成器 [219], [220] 可以通過生成額外的圖數據來幫助緩解這個問題。圖生成的方法可以分為兩種類型:自回歸 (autoregressive) 和一次性生成 (one-shot)。 3. 訓練階段 (TRAINING STAGE)
在本節中,我們介紹了訓練階段的圖數據修改方法,其中數據修改模塊和信息傳遞模塊合作以提高性能。具體而言,我們介紹了三種模型-數據協同的訓練范式,包括聯合訓練 (joint training)、自訓練 (self training) 和雙層訓練 (bi-level training)。相關方法可以在表格 1 (Table 1) 中查看。 4. 推斷階段 (INFERENCE STAGE)
推斷階段是指使用預訓練的圖模型進行下游任務的階段。在這個階段,我們重新定義下游任務為一個統一的模板,以與我們的預訓練模型對齊。這有助于彌合我們的預文本任務與下游任務之間的差距,實現高質量的知識轉移和多任務適應。此外,推斷數據是指在預訓練模型的推斷階段使用的圖數據。從數據中心的角度看,調整推斷數據作為提示可以幫助在不改變模型參數的情況下獲得期望的目標。在本節中,我們討論了在圖的背景下逐漸受到歡迎的提示學習方法。為了詳細說明,我們將現有的圖提示方法分為兩類:預提示 (pre-prompt) 和后提示 (post-prompt),這取決于任務特定的提示是在信息傳遞模塊之前還是之后操作,如圖 1 (Figure 1) 所示。 結論 (CONCLUSION)
在這篇綜述中,我們對數據中心的圖學習進行了全面的回顧。我們從兩個角度對現有方法進行分類:一個是學習階段,包括預處理、訓練和推斷;另一個是數據結構,包括拓撲、特征和標簽。通過這兩個視角,我們仔細解釋了何時修改圖數據以及如何修改圖數據,以釋放圖模型的潛力。此外,我們還介紹了圖數據的一些潛在問題,并討論了如何用數據中心的方法解決它們。最后,我們提出了該領域的幾個有前景的未來方向。總的來說,我們相信數據中心的人工智能是通向一般人工智能的可行路徑,并且數據中心的圖學習將在圖數據挖掘中發揮重要作用。