算法設計(AD)在各個領域的高效問題解決中至關重要。大型語言模型(LLM)的出現顯著提升了該領域的自動化和創新,提供了新的視角和優越的解決方案。在過去的三年中,LLM在算法設計(LLM4AD)中的應用取得了顯著進展,應用領域廣泛,包括優化、機器學習、數學推理和科學探索。鑒于該領域的快速發展和應用范圍的擴展,進行系統性的綜述已成為必要。本論文對LLM4AD領域的研究工作進行了系統性綜述。首先,我們概述并總結了現有研究成果。接著,我們從四個維度——LLM的作用、搜索技術、提示策略和應用領域——對現有研究進行了系統分類和評審。此外,我們討論了各個領域的成就與挑戰,以及LLM4AD在應對這些挑戰方面的能力。最后,我們探討了當前的局限性,并提出了若干開放性問題和未來研究的潛在方向。
附加關鍵詞和短語:算法設計、大型語言模型、學習優化、優化、啟發式方法、超啟發式方法、進化計算。
1 引言
算法在解決工業、經濟、醫療和技術等多個領域的各種問題中發揮著關鍵作用[32, 82]。傳統的手工算法設計方法需要大量的專家知識和時間,過程繁瑣且耗時。因此,越來越多的研究者關注將學習和計算智能技術整合到算法開發過程中,以簡化并優化算法的設計[12, 154]。近年來,大型語言模型(LLMs)作為生成式人工智能的重大突破,因其龐大的模型規模、海量的訓練數據及其在數學推理[5]、代碼生成[80]和科學發現[163]等多個研究領域中的出色表現而備受矚目。
在過去三年中,將大型語言模型應用于算法設計(LLM4AD)逐漸成為一個新興的研究領域,有望徹底改變算法的構思、優化和實施方式。LLM的強大性能和適應性在提高和轉變算法設計過程方面展現出了巨大的潛力,包括啟發式生成[98]、代碼優化[109],甚至為特定問題定制新算法的創建[54]。這種方法不僅減少了設計階段所需的人力,還提升了解決方案的創造性和效率[98, 139]。
盡管LLM4AD備受關注,但這一新興領域內的系統綜述仍然稀缺。現有文獻主要關注LLM在特定算法上下文中的單一應用,缺乏對方法、應用、挑戰和未來方向的系統概覽。已有的綜述主要集中在LLM用于特定優化主題[66, 72, 177],或LLM在電子設計自動化[205]、規劃[129]、軟件工程[69]、推薦系統[176]和智能代理[165]等特定問題上的應用。本論文旨在彌補這一空白,提供對LLM在算法設計領域的系統性綜述,探索其應用、討論關鍵挑戰,并提出未來的研究方向。通過整合這些見解,本文將加深對LLM在算法設計中潛力的理解,并為該領域進一步創新奠定基礎。
本論文的貢獻如下:
LLM4AD的系統性綜述:我們對最近三年內發表的180余篇研究論文進行了系統綜述,不僅匯總了該領域的現狀,還對研究成果進行了分類,深入分析了方法、結果和算法設計的進展。該綜述可為新入門的研究人員和尋求最新進展的資深專家提供寶貴的資源。
多維分類法的開發:我們引入了一個多維分類法,將LLM4AD的研究工作和功能分為四個不同的維度:1) LLM在算法設計中的角色,包括作為優化器、預測器、信息提取器和設計者,闡明了LLM在算法設計中的具體貢獻;2) 搜索方法,分析了LLM在算法設計中用于導航和優化搜索空間的各種方法;3) 提示方法,探討了多樣化的提示策略;4) 應用領域,確定了LLM在解決復雜算法問題時所應用的關鍵領域和行業。此分類法不僅澄清了LLM4AD的研究現狀,還有助于識別未來研究的空白和機會。
關于局限性和未來方向的討論:我們不僅對現有文獻進行總結,還深入分析了LLM用于算法設計研究中的局限性,討論了可擴展性、可解釋性、高成本和安全性等挑戰。此外,我們提出了若干潛在的未來研究方向,以應對這些限制,包括開發特定領域的LLM、探索多模態LLM、實現與人類專家交互的系統、使用LLM進行算法評估、理解LLM行為、推動完全自動化的算法設計,以及為LLM在算法設計中的系統評估建立基準標準。這些討論旨在激發新的研究方法,推動該領域的進一步發展。
2 方法和分類法
2.1 綜述范圍
本文旨在對算法設計的大型語言模型(LLM4AD)這一新興領域的現有研究工作進行系統性綜述和分類。我們進一步明確了本文綜述的范圍如下:
我們不打算涵蓋所有關于LLM和算法的文獻。具體而言,我們排除了其他分支的工作,如針對LLM優化的算法(例如提示工程算法[141])和LLM訓練算法[1]。
“大型語言模型”指的是具有足夠規模,以實現各種任務的強大零樣本性能的語言模型,包括語言理解、代碼生成和數學推理等。這些模型通常采用變換器架構并以自回歸的方式運行[204]。
我們排除了使用較小模型進行算法設計的研究,例如傳統模型算法和機器學習輔助算法[12]。盡管“大型”模型的定義存在挑戰,但目前大多數前沿的LLM包含超過十億個參數[119, 204]。
僅具備視覺處理功能的其他大型模型不在我們的考慮范圍內,但包含語言處理功能的多模態LLM屬于我們的范圍。
在此背景下,算法指的是一組設計用于解決問題的數學指令或規則,特別是在計算機上執行時[32]。該廣義定義涵蓋了傳統數學算法[5]、大多數啟發式方法[113, 117]以及某些可以解釋為算法的智能體或策略[179]。
2.2 統計
我們介紹了論文收集和篩選的詳細流程,分為四個階段:
第一階段:數據提取和收集:我們通過Google Scholar、Web of Science和Scopus收集相關論文。我們的搜索邏輯是標題必須包含以下兩個組中的至少一個詞的組合:“LLM”、“LLMs”、“Large Language Model”、“Large Language Models”和“Algorithm”、“Heuristic”、“Search”、“Optimization”、“Optimizer”、“Design”、“Function”(例如,LLM和優化、LLMs和算法)。作為一個快速發展的研究領域,大多數關于LLM4AD的論文以Arxiv等預印本形式在線發表,因此從Google Scholar收集的論文數量顯著多于Web of Science和Scopus(超過800篇)。去重后,截至2024年7月1日,我們最終收集了850篇論文。
第二階段:摘要篩選:我們首先檢查每篇論文的標題和摘要,以高效排除無關的論文。排除標準包括非英語論文、非算法設計領域及不使用大型語言模型的論文。篩選后,剩余260篇論文。
第三階段:全文篩選:在此階段,我們仔細閱讀每篇論文的全文,剔除未包含相關內容的論文。篩選后,剩余160篇論文。
第四階段:補充:為了避免遺漏重要研究,我們根據領域內的相關知識手動搜索相關文獻。整合額外的論文后,最終收集了180余篇。
我們將首先概述LLM4AD的論文列表,并呈現一個分類法來系統地審視進展。除了整理好的論文列表外,本綜述還包含一些在2024年7月1日之后發布的出版物,統計數據將根據需要更新。 2.3 概述
圖2a展示了按月劃分的論文發表趨勢。圖中顯示了與LLM4AD相關的研究活動顯著增加,尤其是大多數研究集中在過去一年內進行。這表明LLM4AD是一個新興領域,隨著不同領域學者逐漸意識到其巨大的潛力,未來研究成果的數量將顯著增加。值得注意的是,作為快速擴展的領域,大部分研究首先以Arxiv預印本的形式發表,其中許多隨后被頂級會議(如ICML和NeurIPS)接收。 圖2c和圖2b展示了主要貢獻機構及其所屬國家在LLM4AD領域的研究分布。美國位居首位,中國緊隨其后,兩國的論文數量占總數的50%。接下來的八個國家(包括新加坡、加拿大和日本)共同貢獻了總出版量的三分之一。主要參與該領域研究的機構包括著名大學如清華大學、南洋理工大學、多倫多大學,以及大型企業如華為、微軟和谷歌。此分布表明了該研究主題的廣泛關注及其在實際應用中的巨大潛力。 在圖3中,我們基于所有被審查論文的標題和摘要生成了詞云,其中每個詞至少出現五次。該詞云展示了前80個關鍵詞,分為四個顏色編碼的集群,分別為“語言”、“GPT”、“搜索與優化”和“科學發現”。幾個關鍵字如“演化”、“策略”、“優化器”和“智能體”也被重點標出。
最近在大型語言模型(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且尚未經過同行評審。這種情況是可以預期的,因為該領域正在興起并且仍處于快速發展之中。
大型語言模型(LLMs)在許多不同的自然語言處理(NLP)任務中表現出色。提示工程在提升LLMs已有能力的基礎上,實現顯著性能提升方面發揮了關鍵作用。提示工程需要撰寫稱為提示的自然語言指令,以結構化方式引導LLMs挖掘知識。與之前的最新技術(SoTA)模型不同,提示工程不需要根據特定NLP任務進行廣泛的參數重新訓練或微調,而是完全依賴于LLMs的內嵌知識。此外,LLM愛好者可以通過基本的自然語言對話交流或提示工程,智能地提取LLMs的知識,使更多沒有深厚數學和機器學習背景的人也能嘗試使用LLMs。隨著提示工程在過去兩年中越來越受歡迎,研究人員提出了許多圍繞提示設計的工程技術,以提高從LLMs提取信息的準確性。在本文中,我們總結了不同的提示技術,并根據它們所應用的不同NLP任務進行分類。我們進一步細化地展示了這些提示策略在不同數據集上的性能,討論了所使用的相應LLMs,提供了一個分類圖,并探討了特定數據集可能的最新技術。總的來說,我們閱讀并總結了44篇研究論文,涵蓋了39種不同的提示方法,涉及29個不同的NLP任務,其中大多數論文在過去兩年內發表。
人工智能隨著大型語言模型(LLMs)的引入顯著進步。LLMs在包含數百萬和數十億個標記的大規模文本語料庫上進行訓練。研究表明,隨著模型參數數量的增加,機器學習模型的性能會提高,這也正是LLMs的情況。Chang等人(2023)的研究表明,LLMs在廣泛的NLP任務上取得了前所未有的性能,因此引起了學術界和包括醫學、法律、金融等在內的各個行業的廣泛關注。目前對LLMs的研究階段側重于通過提示(prompts)來提升其推理能力,而不僅僅是下一個標記的預測,這開啟了圍繞提示工程的新研究領域。
提示工程是指創建自然語言指令或提示,以有組織地從LLMs中提取知識的過程。與早期的傳統模型相比,提示工程僅依賴于LLMs的內嵌知識,而不需要根據基礎的NLP任務進行廣泛的參數重新訓練或微調。理解模型參數中所嵌入的現實世界知識超出了人類的能力,因此這個新的提示工程領域引起了大家的關注,因為它允許研究人員與LLMs之間進行自然語言交流,以實現基礎NLP任務的目標。
在這項工作中,我們列舉了幾種提示策略,并根據它們所應用的不同NLP任務進行分類。我們提供了一個分類圖,列出了在各種數據集上嘗試的提示技術,討論了所使用的LLMs,并列出了每個數據集的潛在最新技術(SoTA)方法。作為本次調查的一部分,我們總共審查并分析了44篇研究論文,其中大部分發表在過去兩年,涵蓋了39種提示技術,應用于29個不同的NLP任務。此前關于提示工程的系統性綜述并不多見。Sahoo等人(2024)調查了基于其應用的29篇提示技術論文。這是一種非常廣泛的分類,因為單一應用可以包含眾多NLP任務。例如,他們討論的一個應用是推理和邏輯,它可以包含大量NLP任務,如常識推理、數學問題解決、多跳推理等。這與我們的方法不同,我們根據NLP任務對提示策略進行更細致的分類。Edemacu和Wu(2024)提供了關于隱私保護提示方法的概述,因此側重于提示工程的一個相對較小的子領域。Chen等人(2023)將提示策略的討論限制在9-10種方法,并且沒有基于NLP任務對其進行分類。
本文的其余部分安排如下。第二節討論各種提示工程技術,第三節重點介紹不同的NLP任務。第三節的各個子部分討論了在給定NLP任務上應用的不同提示策略及其相應的結果。第四節總結全文。
在本節中,我們簡要討論了不同的提示方法,以及它們在發表時如何改進現有的性能。需要注意的是,大多數以下提示策略都在兩種不同的變體或設置下進行了實驗,這兩種變體包括零樣本和少樣本。有些提示技術可能本質上只存在于零樣本或少樣本變體中,不可能存在其他變體。
在零樣本設置中(Radford等,2019),沒有涉及訓練數據,通過提示指令要求LLM執行任務,完全依賴于其在預訓練階段學習的內嵌知識。另一方面,在少樣本變體中(Brown等,2020),提供少量訓練數據點以及基于任務的提示指令,以便更好地理解任務。各種提示工程工作的結果顯示,少樣本變體有助于提高性能,但這需要仔細準備少樣本數據點,因為LLM可能對精心編制的少樣本數據點表現出無法解釋的偏見。
不同的研究論文在將數據集分類為NLP任務時使用了不同的標準,這在不同的研究中有所不同。在本節中,我們嘗試標準化這些分類方法,通過定義不同的NLP任務并將不同的數據集歸入這些任務來構建一個結構。我們還討論了用于這些任務的各種提示方法。圖1展示了這種分類的一個示意圖。需要注意的是,一個數據集可能同時屬于不同的NLP任務,但這會導致復雜的結構化分析糾纏,不利于分析提示技術在各個NLP任務中的表現。因此,在我們的工作中,我們確保每個數據集只屬于一個與之最強相關的NLP任務。
以下各小節分別定義了不同的NLP任務、相應的數據集以及應用于這些數據集的各種提示策略。它們還包含每個數據集的潛在最新技術(SoTA)提示技術。提示方法的性能因使用的LLM而異。因此,我們還列出了在給定數據集上與提示策略一起使用的LLM列表。對于SoTA,我們只提及了提示方法的名稱,因為在許多情況下,特定的LLM尚未與給定的提示方法進行實驗,因此不清楚它是否能達到SoTA性能。因此,如果列表中的任何LLM與提示策略一起用于實驗,并在給定數據集中取得了最佳性能,我們將其指定為SoTA,而不論用于該技術的確切LLM是什么。另一個需要強調的點是,在許多研究中,作者使用了同一數據集的不同版本進行實驗,使得不同提示技術的絕對比較變得困難。基于我們的理解,我們考慮了上述所有因素,并在選擇每個數據集的SoTA時運用了最佳判斷。
近年來,我們見證了大型語言模型(LLM)的快速發展。基于強大的LLM,多模態LLM(MLLM)將模態從文本擴展到更廣泛的領域,因其廣泛的應用場景而引起廣泛關注。由于LLM和MLLM依賴大量的模型參數和數據來實現突現能力,數據的重要性正受到越來越廣泛的關注和認可。追蹤和分析最近針對MLLM的數據導向工作,我們發現模型和數據的發展并不是兩條獨立的路徑,而是相互關聯的。一方面,更大量和更高質量的數據有助于MLLM的更好表現;另一方面,MLLM可以促進數據的發展。多模態數據和MLLM的共同發展需要明確以下幾點:1)在MLLM的哪個發展階段可以采用哪些以數據為中心的方法來增強哪些能力,2)通過利用哪些能力和扮演哪些角色,模型可以對多模態數據作出貢獻。為了促進MLLM社區的數據-模型共同發展,我們系統地回顧了現有與MLLM相關的工作,從數據-模型共同發展的視角進行分析。本調查相關的一個定期維護的項目可以在 //github.com/modelscope/data-juicer/blob/main/docs/awesome llm data.md 訪問。
近年來,大型語言模型(LLM)在廣泛的任務中展示了令人印象深刻的性能,并且相關技術取得了顯著的進展。由于人類的感官不僅限于文本模態,多模態LLM(MLLM)逐漸進入視野,例如能夠處理超越文本模態輸入或輸出的Gemini-1.5 [1] 和 Sora [2],以及能夠在輸入和輸出之間進行多模態交互的GPT-4o [3] 和 NExT-GPT [4]。在過去兩年中,MLLM受到廣泛關注。正如圖1所示,自2023年初以來,與MLLM相關的研究正在以越來越快的速度涌現。 MLLM的卓越性能源于LLM在參數數量擴大帶來的解決一系列任務的突現能力[5]。許多研究表明,擴大模型規模需要更加海量的數據來補充[6], [7], [8],例如擴展法則[9], [10]。具體而言,研究表明,多模態模型需要指數級更多的數據才能在下游任務中實現線性零樣本改進[11]。鑒于此,一系列工作將重點從僅僅關注模型架構和訓練技術轉移到數據中心方法,專注于高質量數據的策劃[12], [13], [14], [15], [16], [17],以提供進一步釋放大型模型潛力的數據基礎。從圖1可以看出,在現有關注MLLM的論文中,與數據中心方法密切相關的論文也表現出強勁的增長趨勢,并占據了重要的部分。 隨著與MLLM相關的大量技術工作不斷涌現,一些針對MLLM的綜述也逐漸出現[18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31], [32], [33], [34]。這些綜述主要從模型中心的角度進行,而數據的重要性需要進一步強調。一項最近的綜述將數據中心的視角從單模態擴展到多模態,重點關注現有的數據中心方法,并根據所提出的數據管道階段進行組織[35]。實際上,數據和模型的發展是交織在一起的,而不是分開的。更大數量和更高質量的數據提高了模型性能,而從高質量數據中受益的良好訓練的模型可以進一步改進數據。這減少了人工成本,擴大了數據量,并通過使用需要標注的分割掩碼進行訓練的Segment Anything模型(SAM)[36]的訓練成功展示了這一點。隨著SAM在訓練中的熟練程度提高,它逐漸取代人在標注任務中的角色,從而形成一個改進模型和數據集的循環。這樣的漸進和良性循環促進了MLLM的發展,即受益于高質量數據集的MLLM可以幫助改進訓練數據,反過來進一步增強MLLM。 數據-模型共同發展范式很有前途,但尚未得到充分研究。根據我們的調查,目前還缺乏從數據-模型共同發展視角對MLLM的綜述。現有綜述尚未建立數據中心方法與MLLM能力之間的關系,也沒有清晰闡明MLLM的能力如何幫助構建數據集。實現MLLM數據-模型共同發展的關鍵在于闡明哪些數據方法可以增強每種特定的MLLM能力,以及了解模型可以扮演的角色,以改進多模態數據。因此,本綜述旨在通過綜合回顧回答以下研究問題,推進MLLM的數據-模型共同發展: * RQ1:在MLLM的生命周期中,哪些數據中心方法可以在哪個階段用于增強哪些MLLM能力? * RQ2:模型可以扮演哪些角色以促進不同的數據中心方法,并在每種情況下利用模型的哪些特定能力?
為了回答這兩個關鍵研究問題,我們首先提出一個基于MLLM數據-模型共同發展范式的新分類法。我們將先前的努力分為兩個主要類型:數據對模型的貢獻和模型對數據的互惠貢獻,建立其在MLLM能力中的深層連接。隨后,我們從數據-模型共同發展的視角對現有MLLM工作進行全面審查,揭示了推進數據-模型共同發展范式的巨大潛力,主要歸因于缺乏對數據和模型之間協同作用的專注。基于獲得的見解,我們描繪了若干進步的未來方向,以更好地利用數據和模型之間的互補,從基礎設施到各種自我增強程度的數據-模型共同發展。該綜述的主要貢獻有三點: * MLLM開發的新視角:我們提出了一種新分類法,強調多模態數據與MLLM之間的協同作用,旨在理解和挖掘數據和模型開發的互惠優勢。該分類法系統地基于開發MLLM所需的數據相關技術的層次結構進行組織,為研究人員和開發人員提供了推進MLLM的清晰視角。 * 從數據-模型共同發展視角對MLLM的最新綜述:我們系統地回顧了快速增長的MLLM工作,闡明1)哪些MLLM能力可以通過特定的數據中心方法增強,2)經過良好訓練的模型的能力如何反過來支持數據中心方法。據我們所知,這是第一篇從數據-模型共同發展視角對MLLM進行綜述的論文。 * MLLM未來的路線圖:我們提供了一個進步組織的路線圖,涵蓋若干先進和有前途的子方向,重點關注數據和MLLM之間的內部互動。通過這項工作,我們希望為學術研究人員和工業從業者在MLLM不斷發展的領域提供靈感和指導。
組織結構。本文余下部分的組織如下。第二節提供了背景,包括背景知識、分類法以及與現有相關綜述的定性比較。第三節介紹了擴展MLLM的數據中心方法。第四節總結了提高MLLM可用性的數據中心方法。第五節描述了模型直接幫助策劃MLLM數據集的能力。第六節整理了模型作為數據科學家輔助策劃MLLM數據集的應用。第七節列出了一些公開的MLLM數據集,并標明模型在數據策劃中的參與。第八節討論了MLLM未來發展的路線圖。
隨著大語言模型(LLM)在各個領域的應用不斷擴大,它們適應數據、任務和用戶偏好的持續變化的能力變得至關重要。使用靜態數據集的傳統訓練方法不足以應對現實世界信息的動態特性。終身學習或持續學習通過使LLM能夠在其運行生命周期內持續學習和適應,整合新知識,同時保留先前學習的信息并防止災難性遺忘來解決這一問題。我們的綜述探討了終身學習的現狀,根據新知識的整合方式將策略分為兩類:內在知識,LLM通過完全或部分訓練將新知識吸收到其參數中;外部知識,通過將新知識作為外部資源(如維基百科或API)引入而不更新模型參數。我們的綜述的主要貢獻包括:(1)引入了一種新穎的分類法,將終身學習的大量文獻劃分為12種情景;(2)識別了所有終身學習情景中的常見技術,并將現有文獻分類到不同的技術組中;(3)強調了在LLM之前時代較少探索的模型擴展和數據選擇等新興技術。資源可在//github.com/qianlima-lab/awesome-lifelong-learningmethods-for-llm找到。
隨著大語言模型(LLM)在各個領域的應用不斷擴大,這些模型適應數據、任務和用戶偏好持續變化的能力變得至關重要。傳統的訓練方法依賴靜態數據集來訓練LLM,越來越無法應對現實世界信息的動態特性。終身學習(也稱為持續學習、增量學習),或LLM在其運行生命周期內持續和自適應學習的能力,解決了這一挑戰,通過整合新知識,同時保留先前學習的信息,從而防止災難性遺忘。圖1提供了終身學習的示意圖。 本綜述深入探討了終身學習的復雜領域,根據新知識的整合方式將策略分為兩大類:內在知識和外部知識。每個類別包含不同的方法,旨在增強LLM在各種情境下的適應性和有效性。圖2展示了LLM終身學習方法的分類。 內在知識類通過完全或部分訓練將新知識吸收到LLM的參數中,包括持續預訓練和持續微調等策略。例如,在工業應用中,常采用持續垂直領域預訓練,公司經常使用金融等領域的特定數據重新訓練其LLM。盡管這提高了特定領域的性能,但也有可能削弱模型的廣泛知識基礎,說明了在專業適應性和通用知識保留之間保持平衡的挑戰。持續微調涵蓋了特定情境的方法,如文本分類、命名實體識別、關系抽取和機器翻譯等,以及任務無關的方法,如指令微調、對齊和知識編輯。此外,在持續對齊中使用了人類反饋的強化學習,以確保LLM遵守人類價值觀,如安全和禮貌,突顯了所謂的“對齊稅”,即過于專注于特定價值觀可能會導致模型的通用能力下降。
外部知識類通過將新知識作為外部資源(如維基百科或API)引入,而不更新模型參數,包括基于檢索和工具的終身學習,利用外部數據源和計算工具來擴展模型的能力。基于檢索的策略,如檢索增強生成,通過提供上下文相關、準確和最新的外部數據庫(如維基百科)信息來增強文本生成,確保模型輸出隨時間保持相關性。同時,工具學習類借鑒人類工具使用的類比,模型學習使用外部計算工具,從而無需直接修改其核心知識庫,拓寬了其問題解決能力。
通過對這些組及其各自類別的詳細檢查,本文旨在強調將終身學習能力整合到LLM中,從而增強其在實際應用中的適應性、可靠性和整體性能。通過解決與終身學習相關的挑戰并探索該領域的創新,本綜述旨在為開發更強大和多功能的LLM做出貢獻,使其能夠在不斷變化的數字環境中蓬勃發展。
本綜述與現有綜述的差異。近年來,終身學習已成為一個越來越受歡迎的研究主題。大量綜述探討了神經網絡的終身學習。大多數現有綜述主要集中在卷積神經網絡(CNN)的終身學習,探討了CNN的各種終身學習情景,包括圖像分類、分割、目標檢測、自動系統、機器人和智慧城市。此外,一些綜述探討了圖神經網絡的終身學習。然而,只有少量文獻關注語言模型的終身學習。Biesialska等是關于自然語言處理(NLP)中終身學習的早期綜述,但他們只關注詞和句子表示、語言建模、問答、文本分類和機器翻譯。Ke等關注終身學習情景,包括情感分類、命名實體識別和摘要。他們還討論了知識轉移和任務間類分離的技術。Zhang等提供了關于將LLM與不斷變化的世界知識對齊的技術的全面回顧,包括持續預訓練、知識編輯和檢索增強生成。Wu等從持續預訓練、持續指令微調和持續對齊三個方面重新審視了終身學習。Shi等從垂直方向(或垂直持續學習)和水平方向(或水平持續學習)兩個方向研究了LLM的終身學習。Jovanovic等回顧了幾種實時學習范式,包括持續學習、元學習、參數高效學習和專家混合學習。雖然最近的綜述收集了終身學習的最新文獻,但它們沒有涵蓋持續文本分類、持續命名實體識別、持續關系抽取和持續機器翻譯等情景,并且對持續對齊、持續知識編輯、基于工具的終身學習和基于檢索的終身學習的討論較少。據我們所知,我們是第一個提供對LLM終身學習方法從12種情景進行徹底和系統檢查的綜述。
本綜述的貢獻。我們的綜述的主要貢獻包括:
-** 常見技術**:我們在所有終身學習情景中識別了常見技術,并將現有文獻分類到每個情景內的各種技術組中。
本綜述的組織結構如下。第二節介紹問題的形成、評價指標、常見技術、基準和數據集。第三節、第四節和第五節檢查了持續預訓練、持續微調和基于外部知識的終身學習的現有技術。第六節討論了LLM終身學習的現有挑戰、當前趨勢和未來方向,并總結了本綜述。
大型語言模型(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%。
大型語言模型(LLMs)在靜態、預先收集的通用數據集上的訓練取得的最近成功,已經引發了眾多研究方向和應用。其中一個方向解決了將預訓練的LLMs整合到動態數據分布、任務結構和用戶偏好中的非平凡挑戰。這個問題的主要挑戰在于平衡模型適應性和知識保存。為特定需求量身定制的預訓練LLMs經常在之前的知識領域經歷顯著的性能退化——這一現象被稱為“災難性遺忘”。雖然在持續學習(CL)社區進行了廣泛研究,但在LLMs領域呈現出新的表現形式。在這篇綜述中,我們提供了一個關于大型語言模型在持續學習背景下當前研究進展的全面概覽和詳細討論。除了介紹初步知識外,這篇綜述被分為四個主要部分:我們首先描述了持續學習LLMs的概覽,包括兩個連續性方向:垂直連續性(或垂直持續學習),即從一般到特定能力的持續適應;和水平連續性(或水平持續學習),即跨時間和領域的持續適應(第3節)。在垂直連續性之后,我們總結了在現代CL背景下學習LLMs的三個階段:持續預訓練(CPT)、領域適應性預訓練(DAP)和持續微調(CFT)(第4節)。然后我們提供了LLMs的持續學習評估協議的概覽,以及當前可用的數據來源(第5節)。最后,我們討論了有關LLMs持續學習的引人深思的問題(第6節)。這篇綜述揭示了持續預訓練、適應和微調大型語言模型這一相對未受到足夠研究的領域,表明需要社區更多的關注。需要立即關注的關鍵領域包括開發實用且易于訪問的評估基準,以及專門設計的方法論,以對抗遺忘和在不斷演變的LLM學習范式中啟用知識轉移。在這項綜述中檢查的完整論文列表可在//github.com/Wang-ML-Lab/llm-continual-learning-survey找到。
近期大型語言模型(LLMs)的進步顯示了實現人工普遍智能(AGI)的巨大潛力。研究人員觀察到,隨著參數規模的增加,多步驟推理、小樣本上下文學習和指令跟隨等復雜能力有所提高。LLMs的發展具有重大影響和革命性,促使機器學習從業者重新考慮傳統的計算范式,用于處理一些曾經具有挑戰性的人類水平任務,如問答、機器翻譯和對話系統。然而,LLMs通常在包含通用領域的靜態、預先收集的數據集上進行訓練,導致性能隨時間逐漸降低,并且在不同內容領域之間也會降低。此外,單一的預訓練大模型無法滿足每個用戶的需求,需要進一步的微調。盡管重新收集預訓練數據和根據額外的具體需求重新訓練模型是一種潛在的解決方案,但這種方法在現實世界場景中代價高昂且不切實際。為了有效地適應LLMs到下游任務,同時盡量減少對以前知識領域的性能退化,研究者采用了持續學習的方法,也稱為終身學習或增量學習。持續學習受到人類大腦中觀察到的增量學習模式的啟發,涉及按順序在一系列任務上訓練機器學習模型,期望在所有任務中保持性能。在訓練過程中,模型對以前的數據有限或無法訪問,這在保留過去知識時構成了一個挑戰,因為在當前任務學習時,來自未見過的以前數據的優化約束是不存在的。這一挑戰,被稱為災難性遺忘,自持續學習研究開始以來一直是研究的中心焦點。多年來,研究者探索了各種技術來減輕機器學習模型中的遺忘,這些技術包括基于重放的方法、參數規范化和模型架構擴展。這些技術共同顯著推進了在不同任務、模型架構和學習范式中實現零遺忘的持續學習目標。在順序訓練和適應LLMs的背景下,CL的重要性也正在發生自身的語義轉變。為了更好地突出這一持續的轉變,在這篇綜述中,我們提供了一個關于LLMs在CL背景下當前研究進展的全面概覽和詳細討論。對于持續學習LLMs的總體情況,我們將其分為兩個需要由從業者解決的連續性方向(第3節):
在圖1中,繼垂直連續性之后,我們勾畫了現代CL中LLM學習的三個關鍵階段:持續預訓練(CPT)、領域適應性預訓練(DAP)和持續微調(CFT)(第4節)。在CPT中,現有研究主要調查三種類型的分布式轉變:時間、內容層次和語言層次。每種都呈現出獨特的焦點和挑戰。在DAP中,雖然它主要被視為為下游任務準備LLMs的過程,但頻繁地使用CL評估和技術。然而,這些技術的多樣性明顯不足,考慮到傳統CL社區的成熟度。在CFT中,我們關注的是學習LLMs的新興領域,涵蓋持續指令調整(CIT)、持續模型精煉(CMR)、持續模型對齊(CMA)和持續多模態LLMs(CMLLMs)等主題。接下來,我們呈現了一系列公開可用的評估協議和基準(第5節)。我們總結我們的綜述,討論了LLMs持續學習的最新出現的特性,傳統增量學習類型和LLMs持續學習中的記憶約束的角色變化,以及這個主題的潛在研究方向(第6節)。總結而言,本文提供了一份詳盡的現有持續學習研究LLMs的綜述,顯著區別于相關主題的現有文獻。我們的綜述突出了持續開發LLMs的研究領域,特別是在持續預訓練(CPT)和領域適應性預訓練(DAP)領域的研究。我們強調需要社區更多的關注,迫切需要包括開發實用、易于訪問且廣為認可的評估基準。此外,需要定制方法來解決在新興的大型語言模型學習范式中的遺忘問題。我們希望這篇綜述能提供一個系統而新穎的持續學習視角,在迅速變化的LLMs領域中,幫助持續學習社區為開發更有效、可靠和可持續的LLMs做出貢獻。
組織結構
本文的其余部分安排如下。我們首先在第2節介紹大型語言模型和持續學習的背景和初步知識。然后我們在第3節展示了大型語言模型的現代持續學習概覽。從垂直角度來看,它可以大致分為三個階段的LLMs持續訓練,我們將在第4節逐一介紹每個階段。在4.3節中,將介紹持續微調LLMs的獨特方面,包括持續指令調整(4.3.3節)、持續模型精煉(4.3.4節)、持續模型對齊(4.3.5節)和持續多模態大型語言模型(4.3.6節)。在第5節中,我們提供了公開可用的LLMs持續學習評估協議和基準的全面介紹。最后,在第6節中,我們討論了在大型語言模型時代持續學習的角色,包括大規模持續LLMs的新興能力(6.1節)、三種類型的持續學習(6.2節)、LLMs持續學習中的記憶角色(6.3節)以及未來的研究方向(6.4節)。 持續學習與大型語言模型相遇:概覽****大型語言模型(LLMs)在多個維度上都非常龐大,包括模型參數的大小、預訓練數據集、計算資源、項目團隊和開發周期。LLMs的巨大規模為開發團隊帶來了顯著的挑戰,特別是在快速變化的環境中保持更新。舉例來說,2023年,用戶發布的新推文的平均每日流量超過5億,即使是在這么大量數據的“小”子集上進行訓練也是不可承受的。在考慮到它們對下游應用的連鎖影響時,有效且可靠地適應LLMs變得更為關鍵。下游用戶通常缺乏收集和存儲大規模數據、維護大規模硬件系統以及自行訓練LLMs的專業知識。《可回收調整》是首個明確概述現代LLM生產流水線供應商-消費者結構的先導研究。在供應商側,模型在一系列大規模未標記數據集上持續進行預訓練。每次預訓練模型發布后,消費者需要利用更新、更強大的上游模型以獲得更好的下游性能。為了提高下游消費者微調的效率,他們最初對持續預訓練的LLMs進行了幾項關鍵觀察,聚焦于模式連接性和功能相似性。此外,他們提出在上游預訓練LLM進行重大更新后,復用過時的微調組件。基于《可回收調整》引入的概念框架,我們在本綜述中提出了一個包含各種研究的現代生產流水線的全面框架,涉及持續LLM預訓練、適應和部署,如圖1所示。我們的框架與現有研究的不同之處在于融入了兩個連續性方向:垂直連續性和水平連續性。
結論
在這項工作中,我們提供了一份關于持續LLMs的綜述,從持續學習的角度總結了它們在訓練和部署方面的最新進展。我們根據它們在我們提出的現代分層持續學習LLMs的更廣框架內的位置,對問題和任務進行了分類。雖然這一領域在社區中的興趣廣泛且日益增長,但我們也注意到幾個缺失的基石,包括算法多樣性以及對大模型行為(如知識遺忘、轉移和獲取)的基本理解。通過全面而詳細的方法,我們希望這篇綜述能激勵更多從業者探索持續學習技術,最終有助于構建健壯和自我進化的人工智能系統。
檢索增強型生成(Retrieval-Augmented Generation, RAG) 將檢索方法與深度學習的進展結合起來,旨在解決大型語言模型(LLMs)的靜態限制,通過動態整合最新的外部信息。這種方法主要關注文本領域,提供了一個成本效益高的解決方案,用以改進LLMs生成的可能正確但實際錯誤的回答,從而通過使用真實世界數據提高其輸出的準確性和可靠性。隨著RAG在復雜性上的增長,并融入多個可能影響其性能的概念,本文將RAG范式組織為四個類別:預檢索(pre-retrieval)、檢索(retrieval)、后檢索(post-retrieval)和生成(generation),從檢索的視角提供了詳細的觀點。文中概述了RAG的發展,并通過分析重要研究討論了該領域的進展。此外,本文還介紹了對RAG的評估方法,討論了所面臨的挑戰,并提出了未來的研究方向。通過提供一個有組織的框架和分類,該研究旨在整合現有關于RAG的研究,闡明其技術基礎,并強調其擴展LLMs的適應性和應用潛力。
//www.zhuanzhi.ai/paper/64e819fddc014c8a615b8e9beb7c5deb
ChatGPT的出現因其交互能力和廣泛的應用而顯著影響了學術界和工業界,已成為領先的人工智能工具(Laskar等人,2023年;Jahan等人,2023年;Huang與Huang,2024年)。ChatGPT的核心是大型語言模型(LLM)GPT-4,正如(OpenAI等人,2023年)所詳述,它在其前身的基礎上進行了多項增強,展示了在各種自然語言處理(NLP)任務中的卓越能力(Laskar等人,2020年)。盡管有這些進步,LLMs的采用突顯了幾個關鍵問題,主要是由于它們依賴于大量數據集。這種依賴限制了它們在訓練后納入新信息的能力,導致三個主要挑戰。首先,側重于廣泛和通用數據以最大化可訪問性和適用性,結果在專業領域的性能不佳。其次,網絡數據的快速創建,加上數據注釋和模型訓練所需的大量資源,阻礙了LLMs的更新能力。第三,LLMs易于生成令人信服但不準確的回答,這種情況被稱為“幻覺”,可能會誤導用戶。 解決這些挑戰對于LLMs在各個領域的有效利用至關重要。一個有前景的解決方案是整合檢索增強型生成(Retrieval-Augmented Generation,RAG)技術,該技術通過在回應查詢時獲取外部數據來補充模型,從而確保輸出更準確、更及時。圖1演示了RAG如何使ChatGPT能夠提供超出其初始訓練數據的精確答案。自從Lewis等人(Lewis等人,2020b)在2020年引入RAG技術以來,特別是受到ChatGPT成功的影響,RAG技術已經取得了重大進展。然而,在文獻中關于RAG機制的徹底分析以及后續研究所取得的進展方面存在明顯的差距。此外,該領域的研究重點多樣,對類似方法使用的術語含糊其辭,導致混淆。本文旨在通過提供RAG的結構化概述、分類各種方法,并對這一研究領域提供深入理解,以闡明這些方面。本綜述主要關注RAG的文本應用,反映了當前這一領域研究工作的重點. RAG結合檢索方法和先進的深度學習來解決兩個主要問題:有效檢索相關信息和生成準確的回應。RAG的工作流程在第2節中概述,將方法分類為預檢索、檢索、后檢索和生成階段。從第3節到第6節,對這些階段內的技術進行了深入分析。第7節提供了所審查研究的總結,以及使用的檢索器和生成器。第8節詳述了RAG的評估方法。第9節探討未來研究方向,專注于基于文本的研究,并擴展到圖像和多模態數據的考慮。結論在第10節提出。 本文的貢獻有三個方面:本文為理解RAG領域提供了一個全面的框架,確定了改進的領域和未來研究的挑戰。它對RAG的核心技術進行了詳細分析,考察了它們在解決檢索和生成問題上的優勢。此外,它介紹了RAG研究中使用的評估方法,突出了當前的挑戰,并提出了未來研究的有希望的方向。 2 RAG框架
幻覺問題主要歸因于LLMs無法獲取最新信息的問題。這一限制源自模型依賴其訓練數據集。RAG通過利用檢索模型補充LLM的訓練數據與外部來源的當前信息,提出了解決這一問題的方案,從而使生成的回答更準確。RAG提供了一個成本效率更高的選擇,相比通常需要的大量訓練和微調過程而言。它允許通過傳統的檢索方法或預訓練的語言模型(LMs),動態地合并新鮮信息,無需直接將這些新數據整合到LLM中。這一特性使RAG具有靈活性和可擴展性,便于在不同的LLM上針對各種目的進行應用。通過RAG檢索的信息來自實際的人類編寫的數據,這不僅簡化了生成過程,還提高了生成回答的可靠性。圖2展示了統一的RAG框架以及基本工作流程和范式。 Khandelwal等人的研究(Khandelwal等人,2020年)表明,從訓練數據集本身獲取相關信息可以顯著提高LLM的性能,凸顯了RAG的有效性。隨著時間的推移,RAG已從提供補充信息的手段發展成為使檢索和生成組件之間進行多次交互的工具。這涉及進行多輪檢索以提煉檢索信息的準確性,并迭代提高生成輸出的質量。如LangChain1和LlamaIndex2等平臺已將RAG方法模塊化,增強了其適應性并擴展了應用范圍。盡管這些平臺采用多種方法解決RAG的不同方面——從多次搜索迭代到迭代生成——它們保持對基本RAG工作流程的遵守。這種一致性對于理解它們的操作和指明進一步發展的機會至關重要。
2.1 基本RAG工作流程RAG的基本工作流程從創建一個包含外部資源的索引開始。這個索引是基于特定查詢通過檢索模型檢索相關信息的基礎。最終步驟涉及一個生成模型,該模型將檢索到的信息與查詢結合,以產生所需的輸出。 2.1.1 索引高效的檢索始于全面的索引,其中數據準備是關鍵。這一階段涉及文本規范化過程,如分詞、詞干提取和停用詞移除,以增強文本的索引適用性(Manning等人,2008年)。然后,文本段落被組織成句子或段落,以便進行更有針對性的搜索,允許精確定位包含相關關鍵詞的段落。深度學習的整合通過使用預訓練的語言模型為文本生成語義向量表示,徹底革新了索引技術。這些向量被存儲,使從龐大的數據集中快速且精確地檢索成為可能,顯著提高了檢索效率。
2.1.2 檢索傳統的檢索方法,如BM25算法(Hancock-Beaulieu等人,1996年),側重于文檔排名的術語頻率和存在性,但通常忽視了查詢的語義信息。當前策略利用像BERT(Devlin等人,2019年)這樣的預訓練語言模型,更有效地捕捉查詢的語義本質。這些模型通過考慮同義詞和短語結構,提高搜索精度,通過檢測語義相似性來精細化文檔排名。這通常是通過測量文檔和查詢之間的向量距離實現的,將傳統檢索指標與語義理解結合,以產生既相關又符合用戶意圖的搜索結果。
2.1.3 生成生成階段的任務是產生既與查詢相關又反映檢索文檔中信息的文本。常用方法包括將查詢與檢索信息連接起來,然后輸入到一個LLM中進行文本生成(Li等人,2022年)。盡管確保生成文本的一致性和準確性面臨挑戰,但在嚴格遵循源材料和注入輸出創造性之間找到平衡也是必要的。生成的文本應準確傳達檢索文檔的信息并與查詢意圖一致,同時也提供引入未在檢索數據中明確包含的新見解或視角的靈活性。 2.2 RAG范式RAG范式在領域內組織研究,提供一個簡單而強大的框架以增強LLM的性能。RAG的核心是其搜索機制,對生成高質量結果至關重要。因此,從檢索角度看,這一范式被結構化為四個主要階段:預檢索、檢索、后檢索和生成。單跳和多跳檢索方法,包括迭代檢索-生成周期,遵循這四個階段的結構。圖3是RAG核心技術的分類樹。
2.2.1 預檢索檢索增強生成的預檢索階段為成功的數據和查詢準備奠定基礎,確保信息檢索的效率。這一階段包括準備有效數據訪問的必要任務。索引:過程從索引開始,建立一個有組織的系統,以實現信息的快速和準確檢索。索引的具體性取決于任務和數據類型。例如,針對問答系統,句子級索引有助于精確定位答案,而文檔級索引更適合于總結文檔以理解其主要概念和思想。查詢操作:索引后,進行查詢操作以更好地匹配索引數據。這涉及查詢重構(Jansen等人,2009年;Yu等人,2020年),它重寫查詢以更緊密地符合用戶意圖;查詢擴展(Huang等人,2013年),通過同義詞或相關術語擴展查詢以捕獲更相關的結果;以及查詢規范化,解決拼寫或術語上的差異以實現一致的查詢匹配。數據修改:數據修改在提高檢索效率方面也至關重要。這一步包括預處理技術,如移除無關或冗余信息以提高結果質量,并通過如元數據等附加信息豐富數據,以增強檢索內容的相關性和多樣性(Bevilacqua等人,2022a)。
2.2.2 檢索搜索與排名:檢索階段是搜索與排名的結合。它專注于從數據集中選擇和優先考慮文檔,以提高生成模型輸出的質量。這一階段使用搜索算法來導航索引數據,查找與用戶查詢匹配的文檔。識別相關文檔后,開始對這些文檔進行初步排名,按其與查詢的相關性進行排序。
2.2.3 后檢索后檢索階段旨在完善最初檢索的文檔,提高文本生成的質量。這一階段包括重新排序和過濾,每項都旨在優化文檔選擇以完成最終的生成任務。重新排序:在重新排序步驟中,之前檢索的文檔被重新評估、評分并重新組織。其目標是更準確地突出與查詢最相關的文檔,并降低不太相關文檔的重要性。這一步涉及結合額外的度量和外部知識源以提高精確性。在這種情況下,可以有效地使用精確度更高但效率較低的預訓練模型,因為可用的候選文檔集有限(Huang和Hu,2009年)。過濾:過濾旨在移除未達到特定質量或相關性標準的文檔。這可以通過幾種方法完成,例如設定最低相關性分數閾值以排除低于某一相關性級別的文檔。此外,使用用戶或先前相關性評估的反饋有助于調整過濾過程,確保只保留用于文本生成的最相關文檔(Khattab和Zaharia,2020年;Huang和Huang,2023年)。
2.2.4 生成生成階段是RAG流程的關鍵組成部分,負責利用檢索到的信息增強生成響應的質量。這一階段包括幾個旨在產生可讀、吸引人及富有信息量的內容的子步驟。增強:生成階段的核心是增強步驟,其目標是將檢索到的信息與用戶的查詢合并,創建一個連貫且相關的響應。這包括闡述過程,向檢索內容添加額外的細節以豐富它。努力專注于通過重述和重組等方法提高輸出的質量,增加其清晰度、連貫性和風格吸引力。將來自各種來源的信息結合在一起,提供全面的視角,并進行驗證,以確保內容的準確性和相關性。定制:定制是一個可選步驟,涉及調整內容以符合用戶的特定偏好或請求的上下文。這種調整包括根據目標觀眾的需求或內容呈現的格式調整內容,并壓縮信息以簡潔地傳達內容的本質。這個過程還包括創建強調關鍵點或論點的摘要或概要,確保輸出既信息豐富又簡潔。
高效的分子建模和設計對于新分子的發現和探索至關重要,深度學習方法的引入已經徹底改革了這一領域。特別是,大型語言模型(LLMs)提供了一種全新的方法來從自然語言處理(NLP)的角度解決科學問題,引入了一種稱為科學語言建模(SLM)的研究范式。然而,仍有兩個關鍵問題:如何量化模型與數據模態之間的匹配度以及如何識別模型的知識學習偏好。為了應對這些挑戰,我們提出了一個多模態基準,命名為ChEBI-20-MM,并進行了1263次實驗來評估模型與數據模態和知識獲取的兼容性。通過模態轉換概率矩陣,我們提供了關于任務最適合的模態的見解。此外,我們引入了一種統計上可解釋的方法,通過局部特征過濾發現特定上下文的知識映射。我們的先驅性分析提供了對學習機制的探索,并為推進分子科學中的SLM鋪平了道路。 Transformers[8]以其強大的文本編碼和生成能力提供了優勢。這些模型可以通過最小的任務特定調整進行微調,使它們在分子建模和設計中更加多才多藝和高效。此外,自從ChatGPT[9]和GPT-4[10]的出現以來,大型語言模型(LLMs)已成為尤其在分子科學中的一種突破性趨勢。LLMs憑借其在處理和生成類人文本的先進能力,提出了一個理解和設計分子結構的新范式。它們吸收和分析大量文本數據的能力可以提供前所未有的洞察,克服了傳統AI方法的一些限制。這種新能力結合了準確性和新穎性,以改善結果,被稱為化學知識。其有效性取決于輸入數據、模型架構和訓練策略等因素。然而,對這一能力的當前綜述和基準評估并不全面。 分子科學中現有的綜述,如分子生成綜述[11],通常缺乏全面的模型比較,并且任務范圍有限。知識驅動的綜述[12]對分子學習進行了分類,但缺少詳細的方法比較和數據集討論。而最近的基準測試,如測試ChatGPT的[13],涵蓋了八個化學任務,每個任務都提供了獨特的化學洞察。Mol-Instructions[14]提供了一個用于微調的數據集,包含各種分子和蛋白質指令,增強了LLMs中的生物分子理解。然而,這些綜述和基準測試缺乏多模態內容,也沒有充分探索模型的化學知識。 總結來說,本研究全面回顧了Transformers和LLMs在分子建模與設計中的應用。我們將六個常見的分子任務分類為三個不同的目標:描述、嵌入和生成,如圖1所生動描繪。此外,我們建立了一個統一的多模態基準ChEBI-20-MM,并進行實驗評估數據模態、模型架構和不同任務類型的兼容性,考察它們對任務性能的影響。此外,我們的端到端可視化方法展示了嵌入化學知識的建模洞察的發現。總體來說,我們的主要貢獻包括: ? 本工作分析了LLMs在分子建模中的應用,分類現有模型,并提出了一個多模態基準(ChEBI-20-MM)進行性能評估,支持1263次實驗。 ? 我們分析了模態轉換概率矩陣,并確定了不同數據模態和模型架構之間的最佳匹配。 ? 我們引入了一種統計上可解釋的方法,通過局部特征過濾展示了知識獲取。 本文的其余部分如下組織。第2節介紹相關定義和背景。然后,我們探討分子建模和設計中的六個關鍵任務。第3節展示了我們的基準測試和洞察。第4節討論了關鍵結果和限制,第5節總結了我們的貢獻和未來研究方向。