受大型語言模型(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)上的進展塑造了人工智能智能體的新范式,即基于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且尚未經過同行評審。這種情況是可以預期的,因為該領域正在興起并且仍處于快速發展之中。
過去幾十年里,數據量激增,為依賴數據的學習型AI技術奠定了基礎。對話代理(通常稱為AI聊天機器人)在很大程度上依賴這些數據來訓練大型語言模型(LLM),并在響應用戶提示時生成新的內容(知識)。隨著OpenAI的ChatGPT的問世,基于LLM的聊天機器人在AI社區中樹立了新的標準。本文對基于LLM的聊天機器人的演變和部署進行了完整的綜述。我們首先總結了基礎聊天機器人的發展歷程,接著是LLM的演變,然后概述了當前使用中的以及開發階段的基于LLM的聊天機器人。鑒于AI聊天機器人作為生成新知識的工具,我們探討了它們在各個行業的多樣化應用。隨后,我們討論了開放性挑戰,考慮到用于訓練LLM的數據以及生成知識的濫用可能引發的諸多問題。最后,我們展望了未來,以提高它們在眾多應用中的效率和可靠性。通過梳理關鍵里程碑和當今基于LLM的聊天機器人的現狀,我們的綜述邀請讀者深入探討這個領域,反思下一代聊天機器人將如何重塑對話式AI。
近幾年,數據的指數級增長改變了數字信息的世界。2023年,全球創建、捕獲、復制和消費的數據總量約為120澤字節,預計到2024年將達到147澤字節,到2025年將超過180澤字節【1】。圖1展示了2010年至2023年數據量的增加情況,并預測了2024年和2025年的數據量。這一數據生態系統的快速擴展為人工智能(AI)領域的突破性創新鋪平了道路,促成了多種機器學習模型的發展。其中,大型語言模型(LLM)由于其在理解、生成和處理人類語言方面的卓越能力而成為一個重要的子集【2】。
在AI驅動的聊天機器人時代【15】–【17】,LLM在推動對話能力和實現類人互動方面發揮了關鍵作用【2】【7】。數據的顯著增長和計算知識的進步提高了基于LLM的聊天機器人的功能,使其在各個領域變得越來越受歡迎和廣泛采用。它們在理解和回應人類語言時所具備的前所未有的上下文相關性和準確性,以及處理大量信息流的能力,使其成為教育【18】–【20】、研究【21】–【23】、醫療保健【8】【24】【25】等諸多領域的必備工具。鑒于基于LLM的聊天機器人的巨大潛力和前景,其不斷增長的使用量和必要的優化帶來了諸多挑戰,需要進行深入的研究和評估。隨著基于LLM的聊天機器人領域的快速擴展,學者、專業人士和新手都面臨著大量的研究文獻。因此,我們的工作為應對這些不斷變化的需求提供了一份及時且完整的基于LLM的聊天機器人的綜述。
在LLM和基于LLM的聊天機器人出現之前,對話式AI面臨著諸多挑戰。早期的聊天機器人在上下文理解和領域特異性方面有限,往往提供不準確的回應。缺乏復雜的語言理解限制了它們進行類人交互的能力,導致用戶體驗顯得機械化和不連貫。在各個行業的可擴展性也存在問題,因為處理大量信息流并實時響應是個挑戰。LLM的出現徹底改變了聊天機器人,并開啟了AI驅動的交互新紀元。2023年3月,OpenAI推出了其最新的杰作GPT-4(也稱為ChatGPT Plus【29】),繼2022年11月ChatGPT 3.5首次亮相以來引發的熱議之后【30】【31】。圖2展示了自初次發布以來ChatGPT(藍色)的人氣指數,其相比于其他廣泛使用的技術(如黃色的5G、綠色的物聯網和紅色的區塊鏈)具有明顯優勢。其創新能力引發了前所未有的人氣激增,標志著AI驅動通信的新篇章。在相關發展中,谷歌于2023年2月6日宣布推出其首個基于LLM的聊天機器人BARD【32】,并于3月21日提供早期訪問【33】。此外,還有許多其他基于LLM的聊天機器人正在開發中。鑒于這些技術的深遠影響,本文綜述旨在提供關于基于LLM的聊天機器人的發展、行業應用、主要挑戰以及提高其有效性和可靠性的策略的精簡且最新的概述。我們的目標是將這些多樣化的研究整合成一篇結構合理的綜述,以便深入理解基于LLM的聊天機器人,并為讀者提供未來研究的指南。
A. 現有綜述、評論和案例研究
多篇文章回顧了基于LLM的聊天機器人的廣泛應用,突出了它們的重大影響和在各個領域所帶來的復雜挑戰。本文將討論其中的一些文章,并展示我們的綜述如何擴展和區別于它們。
【5】探討了AI和聊天機器人在學術領域的使用及其對研究和教育的倫理影響,研究了這些技術對教育評估完整性的影響及其轉變學術研究的潛力,并提出了有效解決方案以緩解教育和研究領域的倫理挑戰和可能的濫用問題。
【6】通過案例研究探討了ChatGPT如何提升在線學習。研究結果表明,學生們更傾向于使用這些代理來進行教育活動,認為其提供了更互動和更有吸引力的學習環境。Koubaa等【7】詳細審查了ChatGPT的技術創新,并在他們的綜述中開發了一種獨特的分類法,用于研究分類,探索了ChatGPT在各個領域的應用。此外,他們還強調了顯著的挑戰和未來探索的方向。【8】系統性地回顧了ChatGPT在醫療保健中的應用,重點關注教育、研究和實踐。作者概述了ChatGPT在科學寫作和個性化學習中的革命性潛力,同時批判性地分析了其優點,并承認存在的重大問題,如倫理和準確性問題。另一篇評論文章【9】評估了ChatGPT在教育中的影響,指出其在經濟學、編程、法律、醫學教育和數學等學科中的不同表現。文章突出了這一工具的潛力和挑戰,如準確性問題和抄襲,并建議更新評估方法和教育政策,以負責任地使用這些工具。【10】的作者通過虛擬和面對面的反饋進行了一項探索性調查,分析了ChatGPT在教育、醫療保健和研究中的影響。調查顯示,ChatGPT可以提高個性化學習、臨床任務和研究效率。他們還解決了主要的倫理和實際問題,建議在部署AI時要謹慎并遵循嚴格的倫理指南以應對這些挑戰。同樣,【11】對ChatGPT進行了全面分析,重點關注其演變、廣泛應用和主要挑戰。與【10】通過調查直接獲取反饋不同,【11】通過匯總現有研究的發現來評估ChatGPT的影響和挑戰,提供了更普遍的視角,而不涉及初級數據收集。進一步探討,【12】和【13】深入研究了ChatGPT的廣泛跨學科應用。【12】匯集了多個學科的見解,評估了其在市場營銷、教育和醫療保健等領域的影響,而【13】則引入了ChatGPT研究的分類法,詳細介紹了其在醫療保健、金融和環境科學等領域的應用。此外,這兩篇文章都討論了倫理考慮和實際部署方面的基本挑戰。另一篇近期文章【14】通過單一案例研究方法評估了ChatGPT和Bing Chat在化學教育中的有效性。研究分析了這些工具與模擬學生之間的廣泛互動,以提高創造力、解決問題的能力和個性化學習。研究結果顯示,兩者都是有價值的“思考代理”,但ChatGPT在提供更全面和上下文相關的回應方面明顯優于Bing Chat。
與現有工作不同,我們的綜述不僅關注具體的聊天機器人,還涵蓋了包括BARD、Bing Chat和Claude在內的各種模型。此外,我們探索了多個領域的應用,討論了各種挑戰,每個挑戰都詳細分類。表I總結了所討論文章的發現,便于對其貢獻進行比較理解。
B. 我們的貢獻
我們的綜述旨在回答以下問題:
聊天機器人如何從簡單的自動化系統發展到今天的基于LLM的變體?LLM的基礎性進步如何自LLM時代之前重新定義了聊天機器人的能力?
基于LLM的聊天機器人在不同領域的關鍵應用是什么?它們如何影響這些領域的運營動態和用戶交互?
基于LLM的聊天機器人的廣泛使用帶來了哪些挑戰?這些挑戰如何影響其性能和可靠性?
基于LLM的聊天機器人需要哪些技術改進?如何通過實施倫理指南確保其負責任的使用? 在回答這些問題時,我們提供了對聊天機器人歷史的全面概述。此外,我們討論了LLM的基礎知識,重點介紹了基于Transformers的自注意力機制和GPT模型中的創新特性,如上下文學習和鏈式思維(CoT)提示。接著,我們提供了基于LLM的聊天機器人的詳細分類,按其在教育、研究和醫療保健等領域的功能和應用進行組織。我們還承認它們在軟件工程和金融中的日益重要性。接下來,我們從技術方面探討了開放性挑戰,涵蓋了知識的時效性問題以及幻覺等問題,同時還考慮了數據透明度、偏見、隱私風險和不公平等倫理問題。然后,我們從學術濫用、過度依賴和錯誤信息傳播等角度探討了濫用問題。最后,我們討論了基于LLM的聊天機器人的未來展望,從技術改進如模型優化到遵循倫理指南和在各個領域推廣負責任的使用。我們的貢獻總結如下:
與大多數專注于特定聊天機器人或其有限方面的文章不同,我們的綜述涵蓋了多種基于LLM的模型,包括ChatGPT、BARD、Bing Chat等。
雖然大多數文章專注于單個聊天機器人在一個或多個領域的應用,而沒有詳細分類,但我們的綜述擴展到多個應用領域的各種聊天機器人。我們提供了詳細的應用分類法,結構化且深入地探索了不同聊天機器人在教育、研究、醫療保健、軟件工程和金融等領域的表現。
我們從技術、倫理和濫用角度討論了若干開放性挑戰。此外,我們圍繞知識和數據這兩個LLM的核心支柱構建了討論。這種方法展示了聊天機器人與廣泛訓練數據的交互及其后續生成新內容(知識)之間的動態關系。 綜述的其余部分安排如下:第二部分介紹了聊天機器人的基礎年、LLM的興起及基于LLM的聊天機器人的概述。第三部分重點介紹了這些聊天機器人在教育、研究和醫療保健中的應用,還涵蓋了軟件工程和金融等雜項應用。第四部分探討了這些聊天機器人固有的挑戰,第五部分探索了該領域的未來展望。最后,第六部分總結了綜述的主要發現和整體貢獻。圖3展示了我們綜述的提綱。
隨著軟件系統變得日益復雜,IT運維的人工智能(AIOps)方法已廣泛應用于軟件系統故障管理,以確保大規模分布式軟件系統的高可用性和可靠性。然而,這些方法仍面臨諸多挑戰,例如缺乏跨平臺的通用性和跨任務的靈活性。幸運的是,近年來大型語言模型(LLMs)的進展可以顯著解決這些挑戰,已經有許多方法被提出以探索這一領域。然而,目前尚無全面綜述討論基于LLM的AIOps與傳統AIOps方法之間的差異。因此,本文對LLM時代的故障管理AIOps技術進行了全面綜述。內容包括AIOps故障管理任務的詳細定義、AIOps的數據源以及用于AIOps的LLM方法。此外,該綜述還探討了AIOps子任務、適用于不同AIOps子任務的具體LLM方法,以及該領域的挑戰和未來發展方向,旨在推動其發展和應用。
如今,軟件系統變得日益復雜。這些系統通常為數以億計的用戶提供服務,即使是輕微的軟件故障也會因服務中斷或服務質量下降而導致重大損失。因此,大規模分布式軟件系統需要確保24/7不間斷服務,具備高可用性和可靠性。然而,由于其龐大的規模和復雜的操作邏輯,這些軟件系統經常會遇到難以檢測、定位和診斷的故障。一旦發生故障,分析和調試系統錯誤變得更加困難。因此,提高故障診斷效率,快速識別系統故障,定位根本原因,并及時修復它們,對于確保大規模分布式軟件系統的高可用性和可靠性至關重要。 隨著人工智能(AI)的發展,Gartner在2016年首次提出了IT運維的人工智能(AIOps)[103]。AIOps利用機器學習(ML)或深度學習(DL)算法分析來自各種操作工具和設備的大量數據,實時自動檢測和響應系統問題,從而增強了信息技術(IT)運維的能力和自動化水平。因此,AIOps故障管理(FM)已成為確保軟件系統高可用性和可靠性的主流方法。
盡管上述基于ML或DL的AIOps故障管理方法在軟件系統運維方面有了顯著的幫助,但它們仍面臨以下幾個挑戰:
需要復雜的特征提取工程:這些AIOps方法通常需要廣泛的預處理和特征工程從原始數據中提取有用信息。它們在理解和處理數據方面能力有限,特別是在處理日志和追蹤等非結構化數據時,表現相對較弱。
缺乏跨平臺通用性:傳統AIOps模型通常專門為特定的軟件系統進行調優和訓練。一旦采用不同的軟件系統,甚至對原系統進行微小的更改,模型的性能會顯著下降,即使執行相同的任務也是如此。
缺乏跨任務靈活性:由于模型知識和輸出的單一性,AIOps模型一次只能執行一個任務。例如,在根本原因分析(RCA)任務中,一些工作旨在識別問題的原因[79, 119, 141],而其他工作則集中在識別涉及的軟件組件[50, 93, 126]。在實際場景中,必須同時運行多個模型才能完成整個RCA任務。
模型適應性有限:隨著軟件系統的變化,基于深度學習的AIOps方法通常需要頻繁的模型訓練和更新以適應新的數據和環境。雖然有許多在線學習方法[1, 42, 72, 86]可用于解決這個問題,但這一過程不僅耗費時間和精力,還可能導致模型在處理突發事件時響應延遲。
自動化水平受限:當前基于深度學習的AIOps方法在自動化操作和智能決策方面表現出相對有限的能力。雖然某種程度的自動化是可實現的,但仍需要大量的人工干預和配置。特別是在自動修復方面,目前的努力主要停留在事件分診[114, 142]或解決方案推薦[78, 127, 158]。
預訓練于自然語言理解任務的大型語言模型(LLMs)為解決這些限制提供了一個有前途的途徑。(1) 由于其強大的自然語言處理能力,LLMs可以有效處理和理解非結構化數據,往往無需先前的特征提取。(2) 基于大量跨平臺數據進行訓練,LLMs具備很強的通用性和邏輯推理能力。(3) 由于輸出自然語言,LLMs提供了很大的靈活性,使其能夠同時執行多個AIOps任務,例如識別問題的原因和涉及的軟件組件。(4) 利用其預訓練,LLMs展示了強大的適應能力,并且可以通過檢索增強生成(RAG)等方法不斷吸收外部更新的知識,通常無需重新訓練。(5) 由于其強大的腳本生成能力和自動調用外部工具的能力,LLMs可以實現更高水平的自動化。
眾多文獻綜述總結了AIOps的研究。這些工作要么基于傳統的機器學習或深度學習算法,而不使用基于LLM的方法[19, 97, 107, 131],要么沒有對AIOps故障管理全過程中的所有任務進行系統總結[118]。一些綜述甚至可能沒有專門關注AIOps領域內的故障管理[23, 30, 151]。
總而言之,針對LLM時代AIOps故障管理的綜合研究是缺乏的。然而,如1.1節所示,基于LLM的方法為AIOps任務提供了顯著的優勢。在本研究中,我們提出了第一個全面的綜述,涵蓋了大型語言模型背景下AIOps故障管理的整個過程。本綜述包括AIOps故障管理任務的詳細定義、AIOps的數據源以及用于AIOps的LLM方法。此外,我們深入探討了AIOps子任務及其適用于不同AIOps子任務的具體LLM方法。此綜述旨在為研究人員提供對LLM方法在AIOps中的深入理解,促進不同方法之間的比較和對比。同時,它也為有興趣應用基于LLM的AIOps方法的用戶提供指導,幫助他們在不同應用場景中選擇合適的算法。
本綜述的結構如下:第2節介紹了必要的基礎知識,包括AIOps任務的數據源、AIOps的LLM方法及故障管理的AIOps任務。第3至第6節根據AIOps任務的具體分類,詳細描述了LLM時代四類AIOps任務的新特征和方法:數據預處理、故障感知、根本原因分析和自動修復。第7節探討了基于LLM的AIOps在故障管理中的持續挑戰和潛在的未來研究方向。第8節對本綜述進行總結。
大型語言模型(LLMs)的迅速發展為在多種應用領域利用人工智能提供了新機遇,包括網絡安全領域。隨著網絡威脅的數量和復雜性不斷增長,迫切需要能夠自動檢測漏洞、分析惡意軟件并響應攻擊的智能系統。在這項綜述中,我們對LLMs在網絡安全(LLM4Security)中的應用進行了全面的文獻回顧。通過全面收集超過30,000篇相關論文,并系統分析來自頂級安全和軟件工程領域的127篇論文,我們旨在提供一個關于LLMs如何被用于解決網絡安全領域多樣化問題的整體視角。
通過我們的分析,我們識別出幾個關鍵發現。首先,我們觀察到LLMs被應用于網絡安全的廣泛任務中,包括漏洞檢測、惡意軟件分析、網絡入侵檢測和釣魚檢測。其次,我們發現這些任務中用于訓練和評估LLMs的數據集往往在大小和多樣性上有限,這突顯了需要更全面和具有代表性的數據集的必要性。第三,我們識別出幾種將LLMs適應特定網絡安全領域的有希望的技術,如微調、遷移學習和領域特定的預訓練。最后,我們討論了LLM4Security未來研究的主要挑戰和機遇,包括需要更多可解釋和可說明的模型、解決數據隱私和安全問題的重要性,以及利用LLMs進行主動防御和威脅狩獵的潛力。
總體而言,我們的綜述提供了LLM4Security當前最先進狀態的全面概述,并識別了未來研究的幾個有希望的方向。我們相信,這項綜述中呈現的見解和發現將有助于增加LLMs在網絡安全應用方面的知識體系,并為在該領域工作的研究人員和實踐者提供寶貴的指導。
1 引言
在過去十年中,自然語言處理(NLP)的快速發展主要得益于大型語言模型(LLMs)的發展。通過利用變換器架構[205]和在大量文本數據上的訓練,像BERT[49]、GPT-3,4[147, 149]、PaLM[40]、Claude[15]和Chinchilla[78]這樣的LLMs在廣泛的NLP任務中取得了顯著的表現,包括語言理解、生成和推理。這些基礎模型學習了豐富的語言表征,可以通過最小的微調來適應下游應用,實現了如開放域問答[1]、對話系統[151, 230]和程序合成[5]等領域的突破。特別是在網絡安全這一重要領域,LLMs開始顯示出潛力。隨著網絡威脅的數量和復雜性的增長,迫切需要智能系統自動檢測漏洞、分析惡意軟件并響應攻擊[19, 35, 137]。近期的研究已經探索了LLMs在廣泛的網絡安全任務中的應用,即此后稱為LLM4Security。在軟件安全領域,LLMs已被用于從自然語言描述和源代碼中檢測漏洞,以及生成安全相關的代碼,如補丁和漏洞利用代碼。這些模型在識別易受攻擊的代碼片段和為常見漏洞類型生成有效補丁方面表現出高精度[29, 39, 64]。在代碼級分析之外,LLMs還被應用于理解和分析更高層次的安全文檔,如安全政策和隱私政策,幫助分類文件和檢測潛在違規[74, 134]。在網絡安全領域,LLMs已展示出從網絡流量數據中檢測和分類各種類型攻擊的能力,包括DDoS攻擊、端口掃描和僵尸網絡流量[9, 10, 139]。惡意軟件分析是LLMs顯示出前景的另一個關鍵領域,模型被用于基于文本分析報告和行為描述對惡意軟件家族進行分類,以及檢測惡意域名和URLs[22, 122]。LLMs還在社交工程領域被用于通過分析電子郵件內容和識別欺騙性語言模式來檢測和防御釣魚攻擊[89, 171]。此外,研究人員正在探索使用LLMs來增強安全系統本身的魯棒性和復原力,通過生成對抗性樣本來測試安全分類器的魯棒性,并模擬現實攻擊場景以用于培訓和評估[30, 178, 197]。這些多樣的應用展示了LLMs在通過處理和提取大量非結構化文本的洞見、從龐大數據集中學習模式以及生成用于測試和培訓的相關示例方面,提高網絡安全實踐的效率和效果的顯著潛力。
盡管已有幾項寶貴的努力在文獻中對LLM4Security進行了調查[42, 50, 140, 229],鑒于這一方向工作的日益增多,這些研究通常具有更加聚焦的范圍。許多現有的綜述主要集中于審查LLMs可以應用的任務類型,而沒有提供關于這些任務的其他關鍵方面的廣泛分析,如所使用的數據和領域特定技術[145, 231],如表1所示。例如,Divakaran等人[50]僅分析了LLMs在各種安全任務中的前景和挑戰,分別討論了每個任務的特點。然而,它缺乏對這些安全任務的要求與數據之間的聯系以及LLMs在領域特定技術中的應用的洞察。 為了解決這些限制并提供對LLM4Security最新研究的深入了解,我們進行了一項系統而廣泛的文獻調查。通過全面收集38,112篇相關論文并系統分析來自頂級安全和軟件工程領域的127篇論文,我們的調查旨在提供一個關于LLMs如何被用于解決網絡安全領域多樣化問題的整體視角。除了識別LLMs正在使用的任務類型外,我們還檢查了每種情況中使用的具體數據集、預處理技術和領域適應方法。這使我們能夠提供不同方法的優勢和限制的更細致分析,并識別未來研究最有前景的方向。具體來說,我們專注于回答四個關鍵研究問題(RQs):
**? RQ1:哪些LLMs被用于支持安全任務? ** **? RQ2:哪些類型的安全任務已通過基于LLM的方法得到了促進? ** **? RQ3:使用了哪些領域規范技術來適應LLMs到安全任務? ** ? RQ4:在將LLMs應用到安全任務時,數據收集和預處理有何不同?
對于每個研究問題,我們提供了對調查論文中使用的方法、數據集和評估協議的細致分析。我們識別常見主題并按不同維度對論文進行分類,以提供景觀的結構化概覽。此外,我們強調當前方法的主要挑戰和限制,以指導未來的研究彌補這些差距。我們相信我們的調查可以為在NLP、AI和網絡安全交叉領域工作的研究人員提供寶貴的資源。此項工作的貢獻總結如下: ?** 我們進行了一項全面的系統性文獻綜述(SLR),以調查LLM4Security的最新研究,提供了當前景觀的映射**。我們的搜索涵蓋了超過38,112篇論文,通過進一步基于質量和相關性的篩選,我們保留了127篇論文以供后續詳細審查。 ?** 我們制定了四個關鍵RQs**,以了解LLM在安全中的各個不同維度的應用,包括使用的LLM類型、得到促進的安全任務、領域規范技術以及數據收集和預處理的差異。 ? 我們分析了127篇選定論文在會議地點和時間上的分布,揭示了特別是在2022-2023年LLM4Security研究的迅速增長,并對主流LLMs在安全領域的使用特征進行了分類。 調查按以下框架進行。我們在第2節概述了我們的調查方法,包括搜索策略、包含/排除標準和數據提取過程。第3至6節可以找到對四個研究問題的分析和發現。第7至8節探討了我們結果的約束和意義,同時也識別了未來研究的有前景的方向。最后,第9節總結了本文。
在這項研究中,我們進行了一項系統性文獻綜述(SLR),以調查LLM4Security的最新研究。這項綜述旨在提供一個全面的景觀映射,識別LLMs如何被部署以增強網絡安全措施。根據既定的SLR指南[98, 163],我們的方法論被結構化為三個關鍵階段,如圖2所示:規劃(§2.1)、執行(§2.2, §2.3)和報告(§2.4),每個階段都被精心設計以確保對這一新興領域的研究狀態進行全面覆蓋和深入分析。
規劃 最初,我們制定了精確的研究問題,以理解LLMs如何在安全任務中被利用、所得益處及相關挑戰。隨后,我們制定了一個詳細的協議,描述了我們的搜索策略,包括具體的數據庫和關鍵詞、包含和排除標準以及數據提取。每位合作者都審查了這一協議,以增強其穩健性并與我們的研究目標保持一致。 執行 我們精心設計了文獻搜索,以確保全面性,采用了手動和自動策略,跨越多個數據庫,涵蓋了廣泛的研究。識別的每項研究都經歷了嚴格的篩選過程,最初基于標題和摘要,隨后對全文進行徹底審查,以確保符合我們預定義的標準。為了防止忽視相關論文,我們還對收集的論文進行了前向和后向滾動式引用搜索。 報告 我們通過結構化的敘述呈現我們的發現,輔以流程圖和表格等視覺輔助工具,提供了現有文獻的清晰和全面概覽。討論深入探討了我們的發現的含義,解決了LLMs革新網絡安全實踐的潛力,并識別了需要進一步調查的空白。
自動程序修復(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%。
提示 (Prompting) 已成為將大型語言模型(LLMs)適配到特定自然語言處理任務的主流范式。盡管這種方法為LLMs的上下文學習開啟了大門,但它帶來了模型推理的額外計算負擔和人力努力的手工設計提示,特別是在使用冗長和復雜的提示來指導和控制LLMs行為時。結果,LLM領域見證了高效提示方法的顯著增長。在本文中,我們提供了這些方法的全面綜述。從高層次來看,高效提示方法大致可以分為兩種途徑:具有高效計算的提示和具有高效設計的提示。前者涉及各種壓縮提示的方式,后者采用自動提示優化的技術。我們介紹了提示的基本概念,回顧了高效提示的進展,并突出了未來研究方向。
大型語言模型(LLMs)已顯著推進了各種自然語言處理(NLP)任務的最新進展,例如對話、機器翻譯和摘要生成(Brown et al., 2020; Touvron et al., 2023; Bubeck et al., 2023)。提示是人機交互的一個重要媒介,用于向LLMs明確傳達清晰的任務描述,然后通過類比學習生成用戶期望的響應。提示的內容在不同上下文中會有所變化,特別是包含指令、問題、帶有特定輸出格式的多重演示,以及額外要求,如復雜的推理過程和角色扮演命令。在本文中,“提示”一詞指的是用戶輸入給LLMs的內容。
然而,隨著LLMs的上下文學習(ICL)能力變得更強(Dong et al., 2022),為不同特定任務設計的提示傾向于多樣化和詳細化。超長的自然語言提示逐漸引發了兩個問題:1) 對LLM本身而言,上下文窗口是有限的,影響其處理過度冗長上下文的潛力;2) 對LLM用戶而言,它要求使用大量的計算資源來訓練開源模型,或者承擔調用閉源模型接口的高成本。從這個角度來看,LLM的使用成本在學術研究和商業部署場景中都相當巨大。顯然,性能出色的LLM不能被廣泛使用是一種遺憾。雖然模型結構有許多相關改進,如高效注意力機制(參見Xiao & Zhu, 2023; Wan et al., 2023的相關工作),可以有效減輕推理成本,在本文中,我們更側重于高效提示方法,以節省不必要的財務開銷。
考慮到財務和人力資源,效率可以從三個角度得到改善:1) 推理加速,2) 內存消耗下降,和3) 自動設計良好的提示。前兩個目標可以通過提示壓縮實現,而第三個目標可以基于提示工程而非手工設計,通過自動提示優化實現。據我們所知,文獻中關于高效提示方法的全面整合存在顯著差距。
在這篇綜述中,我們從第2節的提示背景介紹開始。隨后,我們從計算(第3節)和設計(第4節)的角度審查現有的高效提示方法。前者將提示壓縮組織為三個類別:知識蒸餾(第3.1節)、編碼(第3.2節)和過濾(第3.3節)。后者探討基于傳統梯度下降(第4.1節)和智能進化算法(第4.2節)的自動提示優化。特別地,我們將高效提示抽象為一個多目標優化問題,并從理論角度展望未來方向(第5節)。最后,我們在第6節總結了全文。此外,我們還包括了一個方便參考的開源項目列表A.2和高效提示方法的類型圖A.3。
總述
**提示范式 **
提示的出現與預訓練語言模型(PLMs)的演進和大型語言模型(LLMs)的進步密切相關。PLM演進 PLM范式的演化軌跡已從有效性轉向效率。自從Transformer(Vaswani et al., 2017)被提出以來,它已成為廣泛PLMs的基礎架構。Transformer內部的自監督學習機制已被證明在解決長序列問題上有效。為分別解決基本的自然語言理解(NLU)和自然語言生成(NLG)任務,主流PLMs逐漸演化成BERT(Devlin et al., 2019)和GPT(Radford et al., 2018)系列模型。有許多優化策略,如探索編碼方法(Su et al., 2021)、改進自監督學習機制(Roy et al., 2021)和精煉模型結構(Li et al., 2021),以實現PLMs在解決特定任務上的高效表現。NLP范式轉變 NLP訓練范式經歷了兩次關鍵轉變(Liu et al., 2023b),從“完全監督學習”演化為“預訓練與微調”,最終演化為“預訓練、提示和預測”(如圖1所示)。在這篇綜述中,我們將專注于目前最廣泛采用的提示范式,深入探討其最近的發展。值得注意的是,GPT-3(Brown et al., 2020)在引入硬提示方面發揮了開創性作用,使人類能夠使用自然語言與語言模型交互。這一突破得益于大規模參數,它使GPT-3具備了深入理解自然語言的能力,從而允許它利用復雜的硬提示進行少量樣本學習,無需微調。LLM進展 在GPT-3開創LLM時代之后,ChatGPT作為塑造當前主流范式“LLM + 提示”的重要里程碑而脫穎而出。其NLU和NLG能力的完美整合吸引了整個人工智能社區的關注。隨著規模法則(Wei et al., 2022a)展示了顯著的新興能力(例如,指令跟隨、上下文學習和復雜推理),研究人員持續探索提示的性能邊界,無論是開源還是閉源的LLMs。例如,像思維鏈(CoT)(Wei et al., 2022b)這樣的復雜提示通過大聲思考,增強了LLMs的潛在推理能力。隨著提示范式逐漸穩固其地位,LLM仍然面臨著由于其大規模參數而導致的計算和人力資源挑戰。因此,有效的提示方法以節約資源引起了廣泛興趣。
提示類型
本質上,提示的主要目標是實現有效的少量樣本學習,而不是不必要的全參數微調所消耗的資源。提示表達可以分為兩種主要類型,如圖2所示:離散的自然語言提示(稱為硬提示)和連續的可學習向量(稱為軟提示)。2.2.1 硬提示 硬提示特別適用于生成性語言模型,尤其是GPT系列模型的一個顯著例子。關注硬提示的原因有兩個方面。從積極的角度來看,由于大量的預訓練數據集成到LLMs中,人類可以通過母語輕松地與世界知識壓縮器(即LLM)交互,最終獲得有用的響應。從消極的角度來看,由于當前LLMs廣泛采用閉源性質,使得其參數權重不可訪問,用戶別無選擇,只能通過API調用與LLMs使用硬提示。盡管如此,LLM強大的指令跟隨能力為硬提示的發展奠定了堅實的基礎,而自然語言作為無縫人機交互的媒介指日可待。重要的是要強調硬提示之間的多樣性。最初,硬提示包括類似于Cloze任務設計的簡潔任務指令。然而,隨著LLMs的理解能力不斷提高,硬提示已演化為包含更廣泛元素的數組,最常見的包括演示和思維鏈,如圖3所示。當前NLP社區對硬提示的日益興趣,甚至是解鎖LLMs全部潛力的教程,表明了對人模型對齊導致人工通用智能(AGI)的渴望。2.2.2 軟提示 在提示相關研究的早期階段,軟提示以適配器(Houlsby et al., 2019)、前綴(Li & Liang, 2021)甚至是無法解釋的向量的形式出現。許多研究(Lester et al., 2021; Liu et al., 2022)探討了軟提示在通過探索不同嵌入位置來增強高效訓練的好處。標準方法涉及凍結原始模型參數,僅訓練軟提示以實現完整參數微調的效果。Ding et al.(2022)的工作中有更詳細的介紹。鑒于可學習向量可以與神經網絡參數一起更新,軟提示顯然更有利于LLMs有效理解提示。需要注意的是,本文討論的軟提示僅僅是LLMs的硬提示的向量表示,如圖2所示,而不是從零開始開發的抽象向量。一些努力涉及將較長的硬提示壓縮成顯著更短的軟提示(參見第3.1節和第3.2節以獲取詳細見解)。
挑戰
鑒于硬提示已被廣泛認可并應用于各種下游任務。設計的提示更加詳細以提高任務準確性,因此導致更長且更復雜的提示。在這篇綜述中,我們從效率的角度提出了硬提示面臨的兩個關鍵挑戰:長度問題 提示的長度通常取決于特定任務,演示越多,性能越好。例如,思維鏈(CoT)提示顯著增強了LLMs的邏輯推理能力,導致出現了各種基于CoT的方法。像Self-Ask(Press et al., 2022)和最少到最多提示(Zhou et al., 2022a)幫助LLMs將復雜問題分解為更簡單的子問題以進行逐步回答。Wang et al.(2022)采樣了多樣化的推理路徑,而Wang et al.(2023b)指導LLMs生成正確的PS(計劃和解決方案),然后選擇最終答案。然而,使用這種復雜提示的優勢伴隨著更高的財務負擔,以及LLMs的信息感知能力降低。難以設計的提示 由于自然語言的離散性質,早期可用的硬提示通常是手工設計的,然后通過反復試錯獲得。手工制作的提示模板嚴重依賴于經驗知識,并涉及明顯的人為主觀性。但是,人類解決問題的方法與神經網絡之間存在差異,換句話說,LLMs的可解釋性仍然是持續探索的話題,目前尚無公認的理論指導。因此,針對LLMs的提示設計面臨許多挑戰,包括LLMs對自然語言提示格式的高敏感性、語義相似提示的大性能差距、提示復雜性與任務難度之間的關聯,以及提示的模型和任務特定屬性。因此,面對不同模型和不同任務,手動設計高質量提示既耗時又費力。總之,提示有效地緩解了應用于下游任務時的參數冗余問題,從而節省了財務資源。然而,在LLMs時代,提示長度的增加帶來了更大的內存需求、更慢的推理速度和更高的勞動強度等挑戰,這偏離了提示的原始目的。因此,這篇綜述深入探討了當前在LLMs中使用的高效提示方法。
使用高效計算的提示
隨著大型語言模型(LLMs)規模的不斷擴大,“使用高效計算的提示”概念應運而生,旨在減輕長提示對開源和閉源LLMs帶來的經濟負擔。已觀察到,壓縮的提示可以被LLMs有效重構,并減少生成文本的長度(Jiang et al., 2023a)。在本節中,我們提供了與提示壓縮相關研究的見解,將其分類為文本到向量級別和文本到文本級別的方法。提示壓縮的主要目的是從原始提示中提取必要信息,以便LLMs能夠保持與原始提示相當的性能水平。
使用高效設計的提示
“使用高效設計的提示”概念是為了應對提示內容的日益復雜性而引入的。隨著耗時且勞力密集的手工設計提示方法逐漸退出歷史舞臺,以及梯度基礎的提示微調方法不再適用于閉源LLMs,基于提示工程(PE)的自動優化逐漸成為焦點。具體來說,本文提出的“離散”提示優化涉及在給定的搜索空間內找到最佳的“自然語言”提示,以最大化任務準確性。基于LLMs的強大通用能力,自動提示優化顯示出了有希望的進展,其工作流程大致如圖4所示。我們將從傳統數學優化和智能算法優化的視角深入探討這個問題,因此將本節分為基于梯度的方法和基于進化的方法。
結論
在這項工作中,我們總結了用于LLMs的高效提示方法,目的是提高LLM的效率和性能。我們回顧了具有高度認可的現有相關工作,揭示了各類別內部的固有聯系,并從理論角度深度抽象這些方法。最后,我們為LLM實踐者提供了一個開源項目清單A.2,以便在科學研究和商業部署中快速參考,以及一個類型學圖A.3,以概覽高效提示領域。
大型語言模型(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的多智能體的潛力。
隨著大型語言模型(LLMs)在編寫類似人類的文本方面不斷進步,它們傾向于“幻覺”——生成看似事實卻無根據的內容的傾向仍然是一個關鍵挑戰。幻覺問題可以說是將這些強大的LLMs安全部署到影響人們生活的實際生產系統中的最大障礙。向LLMs在實際設置中廣泛采用的旅程嚴重依賴于解決和緩解幻覺。與專注于有限任務的傳統AI系統不同,LLMs在訓練期間已經接觸了大量的在線文本數據。雖然這使它們能夠展現出令人印象深刻的語言流利度,但這也意味著它們能夠從訓練數據中的偏見中推斷出信息,誤解模糊的提示,或修改信息以表面上與輸入對齊。當我們依賴語言生成能力進行敏感應用時,這變得極其令人擔憂,例如總結醫療記錄、客戶支持對話、財務分析報告和提供錯誤的法律建議。小錯誤可能導致傷害,揭示了LLMs盡管在自我學習方面取得了進步,但實際上缺乏真正的理解。本文提出了一項對超過三十二種旨在緩解LLMs中幻覺的技術的全面綜述。其中值得注意的是檢索增強生成(RAG)(Lewis et al., 2021)、知識檢索(Varshney et al., 2023)、CoNLI(Lei et al., 2023)和CoVe(Dhuliawala et al., 2023)。此外,我們引入了一種詳細的分類法,根據各種參數對這些方法進行分類,如數據集利用、常見任務、反饋機制和檢索器類型。這種分類有助于區分專門設計用于解決LLMs中幻覺問題的多種方法。此外,我們分析了這些技術固有的挑戰和限制,為未來在LLMs領域解決幻覺和相關現象的研究提供了堅實的基礎。
1 引言 大型語言模型(LLMs)中的幻覺涉及到在多個主題上創造事實上錯誤的信息。鑒于LLMs的廣泛領域覆蓋,它們的應用橫跨眾多學術和專業領域。這些包括但不限于學術研究、編程、創意寫作、技術咨詢以及技能獲取的促進。因此,LLMs已成為我們日常生活中不可或缺的組成部分,在提供準確可靠信息方面扮演著關鍵角色。然而,LLMs的一個根本問題是它們傾向于產生關于現實世界主題的錯誤或捏造細節。這種提供錯誤數據的傾向,通常被稱為幻覺,為該領域的研究人員提出了重大挑戰。這導致了像GPT-4等先進模型可能生成不準確或完全沒有根據的引用(Rawte et al., 2023)的情況。這一問題是由于訓練階段的模式生成技術和缺乏實時互聯網更新,從而導致信息輸出中的差異(Ray,2023)。 在當代計算語言學中,緩解幻覺是一個關鍵焦點。研究人員提出了各種策略,包括反饋機制、外部信息檢索和語言模型生成早期細化,來應對這一挑戰。本文通過整合和組織這些不同技術為一個全面的分類法而具有重要意義。本文對于LLMs幻覺領域的貢獻有三方面:
引入了一個系統的分類法,旨在對LLMs的幻覺緩解技術進行分類,包括視覺語言模型(VLMs)。
綜合了這些緩解技術的基本特征,從而指導該領域未來更有結構性的研究努力。
對這些技術固有的局限性和挑戰進行了討論,并提出了潛在的解決方案和未來研究的方向建議。
隨著ChatGPT的成功普及,基于Transformer的大型語言模型(LLMs)為通往人工通用智能(AGI)鋪平了一條革命性的道路,并已在諸多領域中得到應用,比如作為知識庫、人機界面和動態代理。然而,一個普遍的限制存在:許多當前的LLMs,由于資源的限制,主要是在較短的文本上進行預訓練的,這使得它們在處理更長上下文的提示時效果不佳,而這種情況在現實世界中是常見的。在本文中,我們提供了一份綜述,專注于基于Transformer的LLMs模型架構的進步,以優化從預訓練到推理的所有階段的長上下文處理能力。首先,我們描述并分析了當前基于Transformer模型處理長上下文輸入和輸出的問題。然后,我們主要提供了一個全面的分類,以解決這些問題的Transformer升級架構的領域。之后,我們提供了對長上下文LLMs廣泛使用的評估必需品的調查,包括數據集、度量標準和基線模型,以及一些驚人的優化工具包,如庫、系統和編譯器,以提高LLMs在不同階段的效率和效果。最后,我們進一步討論了這一領域的主要挑戰和未來研究的潛在途徑。此外,我們建立了一個存儲庫,在 //github.com/Strivin0311/long-llms-learning 處實時更新相關文獻。
近年來,借助深度學習技術[93],特別是基于Transformer的模型(如BERT [45]、GPT [134, 135, 17]及其變體[97, 105, 137])的興起,自然語言處理(NLP)已經取得了顯著進步,使機器能夠理解和生成人類語言[170, 98],從而在自然語言理解(NLU)的眾多任務中引起了革命,例如情感分析[206],自然語言生成(NLG)如文檔摘要[51],以及其他領域如計算機視覺[81]和自動駕駛[67]。此外,在ChatGPT [121]、PaLM [36]、GPT4 [123, 122]等的推動下,基于Transformer的大型語言模型(LLMs),其規模擴大到1B~100B參數以激發新能力[183],已顯示出通向人工通用智能(AGI)[18]的新興路線,并迅速被應用于眾多人機交互應用中,如聊天機器人[146, 95]、編程助手[184, 196]和教育導師[1, 117]。 Transformer是一個精密的深度神經網絡模型,它結合了許多偉大的先前設計[8, 65, 7],并包含多種新穎的組件,最初是為了解決機器翻譯中的序列到序列語言建模問題[175]。當代的LLMs大多基于Transformer架構的基礎上,采用其全部或部分模塊[45, 134, 137]。在這些組件中,基于Transformer的LLMs主要因其核心設計良好的注意力機制而成功,該機制捕獲整個輸入中每對標記之間的全局依賴性,使模型能夠處理具有復雜關系的序列。雖然注意力機制提供了顯著的性能,但其與輸入序列長度成二次方的時間和空間復雜度導致了顯著的計算資源瓶頸,這不僅限制了訓練期間允許的輸入文本長度,而且由于生成標記增加時的效率不足和昂貴的緩存內存消耗,也限制了提示的有效上下文窗口。對于推理來說更糟糕的是,當LLMs面對比訓練中的序列更長的序列時,也會因為輸入長度的普遍化機制設計不良而性能下降。
然而,隨著LLMs在需要長上下文理解[193, 87]和生成[106, 68]的各種應用中深入人心,對能夠有效和高效地理解和生成極長序列的長上下文LLMs的需求變得越來越必不可少和迫切。因此,研究人員投入了大量努力來增強Transformer架構,以解決LLMs中的長上下文問題,包括對注意力效率的優化(第3節)、通過額外內存機制擴展上下文窗口(第4節)、通過外推位置嵌入實現有效的長度泛化(第5節)、上下文預/后處理(第6節),以及其他雜項方法(第7節),如特定的預訓練目標、專家混合、量化、并行等。
這段文字是關于長上下文語言模型(LLMs)領域的一篇綜述。它提到了長上下文LLMs是一個非常熱門且發展迅速的研究領域,其中一些現有的綜述文獻匯總了相關文獻工作。這些綜述中,有的提供了關于長文檔摘要的概述,但沒有深入探討長文本建模的內在技術。其他綜述主要集中在提高長文本場景下Transformer的計算效率上。還有的綜述強調LLMs在處理長序列時面臨的挑戰,討論的方法主要與高效的Transformer相關。最近的一項工作更接近于這篇綜述的研究,介紹了長文本建模和Transformer應用的方法,涵蓋了預處理技術、部分高效的Transformer和長文檔的特殊特性。然而,目前還缺乏全面的研究來回顧文獻,探索從操作角度改進Transformer架構,以打破上下文長度的限制,實現更復雜、可擴展的基于Transformer的LLMs。
這篇綜述的目標是全面回顧文獻中關于擴大現有基于Transformer的LLMs有效上下文窗口長度的架構演變。主要貢獻包括:
建立了一個全面的分類法,將Transformer架構分解為五部分,并探討在每個階段(包括預訓練、微調、推理和預/后處理)增強長上下文LLMs的現有方法。
探索廣泛使用的評估需求,包括數據集、度量標準和特別評估LLMs長上下文能力的基線,以及一些流行的優化工具包,以提高LLMs在訓練和推理過程中的效率和效果。
確定改造Transformer結構以處理廣泛上下文的關鍵挑戰,并提出相應的未來方向以推動前沿。
考慮到這個領域的極速發展,構建了一個收集該特定領域相關文獻的倉庫,并將持續更新,幫助讀者跟上最新進展。
綜述的組織結構如下:第2節概述了長上下文LLMs,包括語言建模的目標和階段、基于Transformer的LLMs的關鍵組成部分、LLMs處理長上下文的結構限制分析以及現有努力提升Transformer架構的分類。接下來的五個部分(第3、4、5、6、7節)主要深入討論分類中的每一部分方法。第8節總結了長上下文能力評估的必要條件,并收集了一些流行的優化工具包,以提高LLMs在訓練和推理過程中的效果和效率。第9節探討了關鍵挑戰及其帶來的潛在機遇,并從現有突破中得出洞見。最后,第10節以對這個領域全景的總體結論以及這項研究的動機結束了這篇綜述。
總述
在本節中,我們首先從基礎語言模型目標、典型模型階段到變換器(Transformer)基礎的僅解碼器大型語言模型(LLMs)中關鍵的架構模塊進行初步介紹(見圖1 (a))。隨后,我們對于當LLMs遇到廣泛上下文窗口時的架構限制進行了簡要分析(見2.2節)。最后,我們提出了一個全面的方法學分類(見2.3節),旨在通過架構創新提高LLMs的長上下文處理能力(見圖1 (b))。此分類將作為接下來的五個部分——第3、4、5、6、7節的指導方針。
基于2.1節所提出的基礎見解和2.2節討論的限制,有多種途徑可以探索,以提升變換器(Transformer)結構,賦予大型語言模型(LLMs)更強的長上下文處理能力。例如,通過減少訓練期間的注意力復雜性、設計高效的記憶機制、增強長度外推能力,正如[129]所概述的那樣,模型在短序列上進行訓練,但在推理時測試更長的序列。因此,在本文中,我們提供了對最近旨在改善LLMs長上下文能力的方法學進展的全面回顧,并將它們組織成統一的分類法,如圖1 (b)所示。具體來說,這些方法被分為以下五個主要類別: ? 高效注意力(第3節):這些方法側重于實施計算需求降低的高效注意力機制,甚至實現線性復雜性。通過這樣做,它們在預訓練階段直接增加了Lmax,從而擴展了LLMs在推理期間有效上下文長度邊界。 第一類方法致力于優化注意力機制,特別是關注那些使變換器(Transformer)模塊成為計算瓶頸的核心操作(見公式4)。這種方法在推理過程中通過直接增加預訓練階段的超參數Lmax,使大型語言模型(LLMs)的有效上下文長度邊界得以擴展。我們進一步將這些方法分為五種不同的策略,每種都有特定的焦點:局部注意力(第3.1節)、分層注意力(第3.2節)、稀疏注意力(第3.3節)、近似注意力(第3.4節)和IO-感知注意力(第3.5節)。
? 長期記憶(第4節):為了解決上下文工作記憶的限制,一些方法旨在設計明確的記憶機制,以彌補LLMs中高效和有效的長期記憶的缺乏。 由于在上下文工作記憶中的作用,Transformer架構通常難以捕捉長期依賴性,正如第2.2節所強調的。研究人員探索了兩個主要途徑來應對這一挑戰,同時不損害全注意力的優勢。首先,受到RNNs的啟發,一些研究者將遞歸機制引入到注意力中,通過將內部記憶緩存整合進注意力層。這種方法使模型能夠在更長的序列上維護和檢索信息,彌補了內建長期記憶的固有缺乏。其次,另一種方法涉及利用現有模型作為外部知識庫的接口,如特定文檔或數據集。在推理過程中,模型可以從這些知識庫中讀取信息以豐富其上下文輸入,并且可以根據用戶的響應向它們寫入信息以刷新其長期記憶。通過以這種方式整合外部知識,模型獲得了訪問更廣泛上下文的能力,從而有效提升其處理長期依賴性的能力。
? 外推性位置編碼(第5節):最近的努力旨在通過改進現有位置編碼方案的外推性能力,提高LLMs的長度泛化能力。 認識到需要將推理長度的邊界推向超出Lmax的范圍,研究社區在這方面做出了顯著努力。值得注意的是,根據[5],他們已經確定,在偶數任務的長度泛化中失敗的主要原因是分心因素。然而,通過像scratchpad提示[120]這樣的方法,這些問題可以被大幅度減輕。盡管如此,在本節中,我們的重點仍然在于當前位置編碼(PEs)在更普遍場景中長度泛化中不可否認的作用。
? 上下文處理(第6節):除了提升特定低級變換器模塊的方法外,一些方法涉及將現成的LLMs與額外的上下文預/后處理相結合。這些方法確保每次調用時提供給LLMs的輸入始終滿足最大長度要求,并通過引入多次調用開銷來打破上下文窗口限制。 早前討論的許多方法論提出了圍繞Transformer架構中的注意力模塊的復雜設計,包括高效的注意力核心(第3節)、長期記憶機制(第4節)和外推性位置編碼(PEs)(第5節)。相比之下,還存在一些更簡單、更直接的方法,將預訓練的大型語言模型(LLMs)視為黑盒或灰盒模型。這些方法通過多次調用模型來解決處理超出模型長度限制的長上下文輸入的挑戰,確保每次調用時提供給LLM的實際輸入不超過Lmax。盡管這些方法沒有顯式地增強LLMs處理長上下文的固有能力,但它們利用LLMs顯著的在上下文中的學習能力來解決這個問題,盡管代價是增加了計算量和可能減少了答案的準確性。 ? 其他(第7節):這一部分探索了各種不完全符合前四個類別的通用且有價值的方法,為在LLMs中提高長上下文能力提供了更廣泛的視角。
結論
在這篇綜述中,我們全面地導航了基于Transformer的大型語言模型(LLMs)的架構進步領域,以增強在各個發展階段處理廣泛上下文窗口的能力,采用了一個全面的分類法,將這些針對Transformer中不同模塊設計的方法論進行分類。然后,我們探討了長文本任務特有的評估必要性以及一些集成了多種工具的優化工具包,用以增強LLMs的效率和有效性。我們進一步確定了關鍵挑戰及其對應的未來方向。此外,我們的存儲庫確保讀者能夠及時了解這一動態領域的最新研究。隨著LLMs的快速發展,我們真誠地希望我們的綜述能成為研究人員的寶貴資源,幫助他們利用LLMs的力量構建強大的長上下文LLMs,最終推動走向通用人工智能(AGI)時代的追求。