低秩適應(Low-Rank Adaptation,LoRA)通過可插拔的低秩矩陣更新密集神經網絡層,是當前參數高效微調范式中表現最佳的方法之一。此外,它在跨任務泛化和隱私保護方面具有顯著優勢。因此,LoRA 最近受到了廣泛關注,相關文獻的數量呈指數增長。對LoRA的當前進展進行全面綜述是必要的。本綜述從以下幾個方面分類并回顧了LoRA的進展:(1)改進LoRA在下游任務性能的變體;(2)通過混合多種LoRA插件實現跨任務泛化的方法;(3)提高LoRA計算效率的方法;(4)在聯邦學習中使用LoRA的數據隱私保護方法;(5)應用。此外,本綜述還討論了該領域的未來研究方向。 預訓練語言模型參數規模的迅速增加提升了它們的泛化能力,并帶來了新的能力。近年來,預訓練語言模型的參數規模增加了數千倍(例如,從具有3.3億參數的BERT[1]到具有5400億參數的PaLM[2])。這些具有大參數規模的預訓練語言模型被稱為大語言模型(LLMs)。然而,由于LLMs的知識邊界,它們在某些下游任務中的能力仍然有限。為了擴展知識邊界,仍然有必要在下游任務上微調LLMs。
然而,對LLM進行全參數微調(即全量微調)計算開銷極其巨大,例如,對LLaMA2-7B[3]模型進行全量微調需要大約60GB的內存,超出了普通消費級GPU的容量[4]。為了減少計算成本,提出了各種參數高效微調(PEFT)方法[5]。這些方法通過只微調少量(額外的)模型參數來使LLMs適應下游任務。從是否涉及額外參數的角度來看,PEFT方法可以分為兩類:額外參數方法和內部參數方法。額外參數方法凍結LLM的所有原始參數,并插入一組可學習的參數來優化模型輸入或模型層,如適配器調優[6]和提示調優[7]。相比之下,內部參數方法凍結LLM的大部分原始參數,只微調LLM的一小部分參數,如BitFit[8]、LISA[4]和LoRA[9]。 在無法修改模型架構的情況下,內部參數方法是理想的。在內部參數方法中,LoRA是使用最廣泛的方法,因為它在多個下游任務上可以實現與全量微調相當或更好的下游適應性能[9],且易于實施。此外,還提出了許多變體,以進一步提高LoRA在更具挑戰性的下游任務中的適應能力。
LoRA通過使用可插拔的低秩矩陣更新LLM的密集神經網絡層來實現參數效率。這些矩陣(即LoRA插件)是獨立于LLM的,可以存儲并在其他相關的下游任務中重用。此外,這些LoRA插件可以組合以實現跨任務泛化,從而促進多任務學習、領域適應和LLMs的持續學習。
隨著LoRA插件的累積,管理LoRA插件的計算成本也在增加。盡管LoRA計算效率高,但管理大量LoRA插件的計算成本不可忽視。因此,有必要進一步提高LoRA的計算效率。改進可以通過減少單個LoRA插件的計算成本和加速多個插件的可擴展服務來實現。這可以促進LoRA在現實世界中的應用,如生成即服務(GaaS)云產品。 在某些情況下,訓練數據由多個客戶端私有且無法集中。為了使用分布式訓練數據使LLMs適應,我們可以采用聯邦學習來保護每個客戶端的數據隱私。然而,聯邦學習會產生高昂的通信和計算成本。為了降低成本,LoRA是一個自然的選擇。其參數高效特性有助于降低每個客戶端的計算成本和跨客戶端共享參數的通信成本。此外,LoRA的可插拔特性有助于在聯邦學習中保留每個客戶端的參數隱私。因此,LoRA在隱私保護方面具有巨大潛力。
在本綜述中,我們對LoRA的當前進展進行了全面概述,包括:(1)提高LoRA下游適應性能的方法;(2)混合LoRA插件以實現跨任務泛化的方法;(3)提高LoRA計算效率的方法;(4)在聯邦學習中采用LoRA的方法。此外,還簡要介紹了LoRA的應用。圖1展示了LoRA相關方法的分類。本綜述旨在提供LoRA的全面背景知識、研究趨勢和技術見解。
本綜述的其余部分組織如下。第2節介紹了LoRA的背景知識,第3節介紹了旨在提高下游適應性能的LoRA變體。在第4節中,我們回顧了混合LoRA插件以實現跨任務泛化的方法。第6節介紹了LoRA驅動的聯邦學習方法。第7節報告了LoRA的應用。第8節總結了本綜述并討論了未來的研究方向。
低維固有維度假說[186]提出,過度參數化模型存在于低固有維度上,這表明我們可以通過僅更新與固有秩相關的參數來實現適當的學習性能。基于這一假說,LoRA[9]提出用低秩矩陣更新模型中的密集層。它可以同時實現參數和計算效率。在本節中,我們首先介紹LoRA的細節,然后介紹現有的聚焦于LoRA理論分析的工作。此外,我們展示了LoRA在實踐中的效率。最后,本節介紹了LoRA在微調之外的其他用例。
LoRA在參數上非常高效,因為它僅更新模型參數的一小部分,從而在不增加推理延遲的情況下減少了微調所需的內存和計算要求[187]。此外,可以通過從低秩矩陣擴展到低秩張量[188]或與克羅內克分解結合[189, 190]進一步提高參數效率。除了參數效率,LoRA也是可插拔的,因為LoRA參數在訓練后可以從模型中分離出來。LoRA的可插拔特性使其可以被多個用戶共享和重用[191]。當我們擁有多個任務的LoRA插件時,可以組合這些插件,并期望獲得適當的跨任務泛化性能[58]。此外,LoRA的低秩機制兼容其他參數高效方法,如適配器[192, 193]。 在實踐中,對于基于Transformer的LLM,密集層通常由兩種類型的權重矩陣組成:注意力模塊中的投影矩陣和前饋神經(FFN)模塊。在原始研究中,LoRA應用于注意力層的權重矩陣。后續工作表明,在FFN層中使用它可以進一步提高模型性能[194]。
盡管LoRA在某些下游任務上可以實現適當的適應性能,但在許多下游任務上(如數學推理[200-202]),LoRA與全量微調之間仍存在性能差距。為填補這一差距,許多方法被提出以進一步提高LoRA在下游任務中的適應性能。通常,現有方法從以下幾個角度改進下游適應性能: 1. 突破低秩瓶頸,參見圖2(c); 1. 自適應分配不同LoRA模塊的秩,參見圖2(d); 1. 優化LoRA的學習過程; 1. 與其他學習范式結合。
在本綜述中,我們系統地回顧了LoRA在下游適應性改進、跨任務泛化、效率提升、聯邦學習和應用等方面的最新進展。從這一綜述中,我們可以發現LoRA在參數效率、可插拔性、兼容性和實現跨任務泛化的簡便性方面具有顯著優勢,使其成為LLMs應用中最重要的技術之一。最近的進展進一步提升了LoRA的泛化能力和效率,并激發了其在更多場景中應用的潛力。以下列出了LoRA在未來將不可或缺的三個發展方向。
在生成即服務(GaaS)中,基于云的平臺為用戶提供生成性人工智能(AGI)服務。GaaS使用戶無需部署本地計算資源即可享受AGI服務。由于用戶的需求多樣化,提供各種功能的GaaS是必要的。為了實現這些各種功能,我們可以為每個功能構建一個LoRA插件。LoRA的參數效率和可插拔性可以促進高效的功能構建和執行。此外,GaaS平臺上的服務會隨時間迅速變化。為了跟上這些變化,我們可以通過組合先前的插件來初始化新的LoRA插件。LoRA的跨任務泛化能力可以促進服務更新的快速適應。
在持續預訓練中,基礎模型通過無標簽的用戶數據持續訓練,以使模型適應特定領域。通常,自監督訓練目標與預訓練相同,學習率則比預訓練小得多。持續預訓練是構建垂直領域LLMs的重要階段。然而,這在計算上非常昂貴,阻礙了垂直領域LLMs的發展,尤其是對于計算資源有限的組織。增強LoRA以進行持續預訓練并降低其計算成本是值得探索的方向。
在基于LLM的自主代理中,代理被賦予特定角色。根據角色和環境,代理會采取行動來回應用戶或其他代理的請求。這些行動可以基于自我知識或為特定領域任務設計的工具。這些請求和行動被存儲在內存中,以支持未來的請求。 在當前的代理中,角色通常通過提示來分配;然而,當角色復雜且相關數據量大時,提示可能無法全面描述角色。通過從與角色相關的數據中訓練LoRA插件來分配角色可能是更好的選擇。此外,代理的工具也可以是LoRA插件。通常,內存通過檢索增強生成(RAG)來增強代理;然而,由于輸入令牌的限制和上下文學習的缺點,基于RAG的支持可能效果不佳。相比之下,我們可以使用基于LoRA的持續學習來構建內存插件,從而解決RAG的問題。因此,值得探索LoRA驅動的代理。 總之,LoRA在生成即服務、持續預訓練和自主代理等領域展現出巨大的潛力,未來的研究將進一步挖掘和擴展LoRA的應用,使其在越來越多的實際場景中發揮重要作用。
近期,多功能大規模語言模型(LLMs)的激增在很大程度上依賴于通過偏好學習將越來越強大的基礎模型與人類意圖對齊,從而在廣泛的背景下增強LLMs的適用性和有效性。盡管已經進行了眾多相關研究,但關于如何將人類偏好引入LLMs的視角仍然有限,這可能阻礙了對人類偏好與LLMs之間關系的深入理解以及其局限性的實現。在這篇綜述中,我們從偏好中心的角度回顧了在人類偏好學習領域針對LLMs的探索進展,涵蓋了偏好反饋的來源和形式、偏好信號的建模和使用以及對齊LLMs的評估。
我們首先根據數據來源和形式對人類反饋進行分類。然后總結了人類偏好建模的技術,并比較了不同模型派別的優缺點。此外,我們根據利用人類偏好信號的目標展示了各種偏好使用方法。最后,我們總結了評估LLMs在人類意圖對齊方面的一些流行方法,并討論了我們對LLMs人類意圖對齊的展望。
大規模語言模型(LLMs)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]對人工智能(AI)產生了突破性的影響,改變了人們對AI系統理解和應用人類語言潛力的看法。這些具有大規模參數(主要超過100億)的神經網絡語言模型最初在從各種來源收集的大規模語料庫上進行了預訓練,其中相當一部分來源于互聯網[11]。通過模仿人類在文本數據中使用自然語言的方式進行預訓練,基礎LLMs獲得了強大而通用的語言技能[1, 12]。另一方面,觀察發現基礎LLMs在理解或恰當地回應多樣化的人類指令方面存在困難[13],因為預訓練中的模仿過程并未強制基礎LLMs按照人類意圖來執行指令[13, 14]。來自互聯網的預訓練語料庫中殘留的一些有毒、有偏見或事實錯誤的內容甚至會導致基礎LLMs的不當模仿,產生不理想的生成結果[15, 16, 17, 18, 19, 20]。在現實生活中的實際應用中,基礎LLMs必須進化得更加符合人類意圖,而不是模仿預訓練語料庫中可能存在噪聲的行為。
人類偏好學習[21]可以通過根據輸出結果中反映人類偏好的反饋信息優化LLMs,有效地使LLMs與人類意圖對齊,從而指定人類的意圖[22]。最近涌現的大量進化后的LLMs能夠生成適當的響應以應對各種人類指令,驗證了這一方法的有效性[2, 6, 8, 9, 13]。目前,關于人類偏好學習的綜述大多集中于狹義的人類偏好學習方法或廣義的語言模型(LM)對齊方法。關于人類偏好學習的綜述主要集中于強化學習(RL),這可能不適用于LLMs,也不包含與非RL偏好學習方法相關的見解[23, 24]。關于LM對齊[25, 26, 27, 28]以及一般AI系統對齊[22]或超越語言的大模型[29]的綜述,主要將人類偏好學習視為解決對齊問題的工具。這些綜述缺乏對偏好學習,特別是偏好建模方法的系統回顧和討論,而偏好建模方法對于捕捉人類意圖以實現LM對齊至關重要[13]。為了進一步探索更有效的偏好學習方法以實現更好的LLM對齊,我們對適用于語言模型的人類偏好學習方法進行了全面綜述,從偏好學習的角度審視LLM對齊方法。通過分析偏好學習框架內的各種對齊方法,我們勾勒出將人類偏好引入LLMs的全貌,從各個方面提供關于人類偏好學習的見解,適用于各個領域。 具體而言,如圖1所示,我們引入了人類偏好學習在LLMs中的各個方面,包括偏好反饋的來源和形式、偏好建模、偏好信號的使用以及整合人類偏好的LLMs的評估:
本綜述的其余部分組織如下。我們在第二部分開始介紹本綜述的背景,介紹人類偏好學習在LLMs中的發展歷程。然后,我們從第三部分到第七部分介紹人類偏好學習在LLMs中的各個方面,包括反饋來源(第三部分)、反饋形式(第四部分)、偏好建模(第五部分)、偏好使用(第六部分)和評估(第七部分)。最后但同樣重要的是,我們在第八部分總結了人類偏好學習,并討論了我們對未來的展望。
隨著大語言模型(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終身學習的現有挑戰、當前趨勢和未來方向,并總結了本綜述。
作為人工智能中最先進的技術之一,檢索增強生成(RAG)技術可以提供可靠且最新的外部知識,為眾多任務提供巨大便利。特別是在人工智能生成內容(AIGC)的時代,RAG在提供額外知識方面的強大檢索能力使得檢索增強生成能夠協助現有的生成型AI產出高質量的輸出。近期,大型語言模型(LLMs)在語言理解和生成方面展示了革命性的能力,但仍然面臨固有的限制,如幻覺和過時的內部知識。鑒于RAG在提供最新且有用的輔助信息方面的強大能力,檢索增強的大型語言模型已經出現,它們利用外部和權威的知識庫,而不僅僅依賴于模型的內部知識,以提高LLMs的生成質量。在這份綜述中,我們全面回顧了檢索增強大型語言模型(RA-LLMs)的現有研究,涵蓋了三個主要的技術視角:架構、訓練策略和應用。作為初步知識,我們簡要介紹了LLMs的基礎和最近的進展。然后,為了闡述RAG對LLMs的實際意義,我們按應用領域分類主流相關工作,具體詳述了每個領域的挑戰及RA-LLMs的相應能力。最后,為了提供更深入的見解,我們討論了當前的限制和未來研究的幾個有希望的方向。
作為最基本的數據挖掘技術之一,檢索旨在理解輸入查詢并從外部數據源提取相關信息[62, 132]。它在各個領域得到了廣泛的應用[8, 100, 170],例如搜索、問答和推薦系統。例如,搜索引擎(如 Google、Bing 和 Baidu)是檢索在行業中最成功的應用之一;它們可以篩選并檢索最相關的網頁或文檔以匹配用戶的查詢[19, 170],使用戶能夠有效地找到所需信息。同時,通過在外部數據庫中有效地維護數據,檢索模型可以提供可靠且及時的外部知識,從而在各種知識密集型任務中發揮至關重要的作用。由于其強大的能力,檢索技術已成功地融入到人工智能生成內容(AIGC)時代的先進生成模型中[72, 126, 155, 181]。值得注意的是,檢索模型與語言模型的整合催生了檢索增強生成(RAG)[69],它已成為生成人工智能領域最具代表性的技術之一,旨在提高文本內容的生成質量[6, 69, 72]。 為了推進生成模型并增強生成結果,RAG將信息或知識從外部數據源整合進來,作為輸入查詢或生成輸出的補充[57, 97]。具體來說,RAG首先調用檢索器從外部數據庫中搜索并提取相關文檔,然后利用這些文檔作為上下文以增強生成過程[49]。在實踐中,RAG技術在各種生成任務中的應用是可行且高效的,對檢索組件進行簡單的調整,幾乎不需要或完全不需要額外的訓練[111]。最近的研究表明,RAG不僅在開放領域問答(OpenQA)[6, 42, 103]等知識密集型任務中具有巨大潛力,而且也適用于一般語言任務[44, 57, 162]和各種下游應用[84, 155]。 近年來,預訓練基礎模型特別是大型語言模型(LLMs)的快速發展,表現出在各種任務上的卓越性能[1, 18],包括推薦系統[187]、分子發現[72]和報告生成[26]。LLMs的巨大成功技術上歸功于擁有數十億級參數的先進架構,在來自各種來源的大量訓練語料上進行預訓練。這些技術改進使得LLMs在語言理解和生成、上下文學習等方面展現出顯著的能力[186, 187]。例如,GPT-FAR通過詳細的提示教授GPT-4進行圖像標記、統計分析和多模態時尚報告生成的文本分析[26]。LLMs還在通過理解用戶對項目的偏好來實現推薦系統中的有希望的性能[146, 187]。盡管取得了成功,LLMs仍然受到固有限制的困擾[186, 187],如缺乏特定領域知識、“幻覺”問題以及更新模型所需的大量計算資源。這些問題在醫學和法律等特定領域尤為明顯。例如,最近的一項研究表明,法律幻覺普遍且令人不安,針對最先進LLMs的特定法律查詢的幻覺率在69%至88%之間[21]。此外,由于進行微調LLMs以適應特定領域或最新數據所需的大量計算資源,解決幻覺問題的挑戰變得更加艱巨,這反過來顯著阻礙了LLMs在各種實際應用中的廣泛采用。 為了解決這些限制,最近的努力旨在利用RAG增強LLMs在各種任務中的能力[6, 48, 57, 128],特別是那些對最新和可靠知識要求很高的任務,如問答(QA)、AI4Science和軟件工程。例如,Lozano等人[86]引入了一種基于動態檢索科學文獻的科學特定問答系統。MolReGPT利用RAG增強ChatGPT在分子發現中的上下文學習能力[72]。如圖1所示,基于LLM的對話系統無法很好地回答超出范圍的查詢。相比之下,借助RAG從外部數據來源檢索相關知識并將其整合到生成過程中,對話系統成功地向用戶提供了正確的答案。鑒于通過RAG推進LLMs的顯著進展,迫切需要對檢索增強大型語言模型(RA-LLM)的最新進展進行系統綜述。 這份綜述旨在通過總結RA-LLMs的代表性方法從架構、訓練和應用方面提供檢索增強大型語言模型的全面概述。更具體地說,繼第2節簡要介紹LLMs的背景知識后,我們在第3節從檢索、生成和增強的主要視角回顧現有研究,并討論了在RAG中檢索的必要性和應用頻率。然后,在第4節我們總結RA-LLMs的主要訓練技術,在第5節討論各種RA-LLMs應用。最后,在第6節,我們討論關鍵挑戰和未來探索的潛在方向。與我們的綜述同時進行的幾項相關綜述具有不同的關注點,例如,趙等人[185]專門回顧了基于多模態信息的RAG技術,趙等人[184]討論了針對AIGC的RAG。高等[37]對RAG用于LLMs進行了相對全面的概述。我們的綜述與這些綜述不同,側重于技術視角并系統地按照RA-LLMs的架構和訓練范式以及應用任務回顧模型。
檢索增強的大型語言模型(RA-LLMs)
在LLMs時代的RAG框架通常包括三個主要過程:檢索、生成和增強,以及確定是否需要檢索的機制。在本節中,我們將介紹每個組成部分涉及的重要技術。檢索根據LLMs輸入的查詢,RAG中的檢索過程旨在從外部知識源提供相關信息,這些知識源可以是開源的也可以是封閉的,如圖2所示。關鍵組件檢索器,如圖3進一步詳細說明,包括幾個程序,整體功能是衡量查詢與數據庫中文檔之間的相關性,以有效檢索信息。檢索的具體流程還取決于是否包括預檢索和后檢索過程。在本小節中,我們將介紹傳統和基于LLM的RAG檢索中涉及的主要技術,包括檢索器類型、檢索粒度、預檢索和后檢索增強以及數據庫構建。
生成生成器的設計在很大程度上依賴于下游任務。對于大多數文本生成任務,僅解碼器和編碼器-解碼器是兩種主導結構[186]。商業閉源的大型基礎模型的最近發展使得黑箱生成模型在RA-LLMs中成為主流。在這部分中,我們將簡要回顧這兩種類型的生成器的研究:可訪問參數(白箱)和不可訪問參數(黑箱)。增強描述了集成檢索和生成部分的技術過程,這是 RA-LLMs 的核心部分。在本小節中,我們介紹了三種主要的增強設計,分別在生成器的輸入、輸出和中間層進行,如圖 2 所示。
根據是否需要訓練,現有的 RAG 方法可以分為兩大類:無需訓練的方法和基于訓練的方法。無需訓練的方法通常在推理時直接利用檢索到的知識,通過將檢索到的文本插入到提示中,無需引入額外訓練,這在計算上是高效的。然而,一個潛在的挑戰是,檢索器和生成器組件沒有針對下游任務進行特別優化,這可能導致檢索知識的次優利用。為了充分利用外部知識,提出了廣泛的方法來微調檢索器和生成器,從而指導大型語言模型有效地適應和整合檢索到的信息[121, 122, 124, 128, 145, 191]。
根據訓練策略,我們將這些基于訓練的方法分為三類:1) 獨立訓練方法獨立訓練 RAG 流程中的每個組件,2) 順序訓練方法先訓練一個模塊,然后凍結訓練良好的組件來指導其他部分的調整過程,3) 聯合訓練方法同時訓練檢索器和生成器。在接下來的部分中,我們將全面回顧無需訓練、獨立訓練、順序訓練和聯合訓練方法。這些不同訓練方法的比較如圖 4 所示。
自動程序修復(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)已在自然語言處理(NLP)領域催生了重大進展,然而它們面臨著諸如幻覺錯誤和對特定領域知識需求等挑戰。為了緩解這些問題,最近的方法學已將從外部資源檢索到的信息與LLMs整合,顯著提升了它們在NLP任務中的表現。這篇綜述論文針對缺乏對檢索增強語言模型(RALMs)、包括檢索增強生成(RAG)和檢索增強理解(RAU)的全面概述,提供了它們的范式、演變、分類和應用的深入考察。文章討論了RALMs的基本組件,包括檢索器、語言模型和增強組件,以及它們的互動如何導致多樣化的模型結構和應用。RALMs在從翻譯和對話系統到知識密集型應用的廣泛任務中顯示出其實用性。綜述還包括了幾種評估RALMs的方法,強調在評估中穩健性、準確性和相關性的重要性。同時也指出了RALMs的限制,特別是在檢索質量和計算效率方面,提供了未來研究的方向。總之,這篇綜述旨在提供對RALMs的結構化洞見、其潛力以及NLP未來發展的途徑。論文還附帶了一個包含已調研工作和進一步研究資源的Github倉庫://github.com/2471023025/RALM_Survey。
自然語言處理(NLP)是計算機科學和人工智能領域內的一個重要研究方向,致力于研究使人與計算機之間能夠使用自然語言有效溝通的理論和方法學框架。作為一個多學科領域,NLP整合了語言學、計算機科學和數學,旨在實現人類語言與計算機數據之間的相互轉換。其最終目標是賦予計算機處理和“理解”自然語言的能力,從而便于執行自動翻譯、文本分類和情感分析等任務。NLP的復雜性體現在它包括的眾多步驟上,如詞匯分割、詞性標注、解析、詞干提取、命名實體識別等,這些都增加了在人工智能系統中復制人類語言理解的難度。
傳統的自然語言處理任務通常使用基于統計的算法(Hogenboom et al., 2010)(Serra et al., 2013)(Aussenac-Gilles and S?rgel, 2005)和深度學習算法,如卷積神經網絡(CNN)(Yin et al., 2017)、遞歸神經網絡(RNN)(Banerjee et al., 2019)、長短時記憶網絡(LSTM)(Yao and Guan, 2018)等。最近,隨著變壓器架構(Vaswani et al., 2017)作為自然語言處理的代表性技術的出現,其受歡迎程度顯著提高。變壓器架構作為一個突出的大語言模型(Lewis et al., 2019)(Raffel et al., 2020)在自然語言處理領域已經持續展示出優越的性能,吸引了越來越多研究者的關注,他們致力于研究其能力。
當前最流行的語言模型是GPT系列(Radford et al., 2019)(Brown et al., 2020)(Achiam et al., 2023)和Bert系列(Liu et al., 2019)(Devlin et al., 2018)(Sanh et al., 2019),這些模型已經在多種自然語言處理任務中表現出色。其中,自編碼語言模型特別擅長于自然語言理解任務,而自回歸語言模型更適合于自然語言生成任務。雖然增加參數(Touvron et al., 2023b)和模型調優(Han et al., 2023)可以提升LLMs的性能,但“幻覺”現象(Ji et al., 2023)仍然存在。此外,語言模型在有效處理知識密集型工作(Feng et al., 2023)和更新其知識的能力不足(Mousavi et al., 2024)方面的限制也一直很明顯。因此,許多研究者(Lewis et al., 2020)(Izacard and Grave, 2020b)(Khandelwal et al., 2019)采用了檢索技術來獲取外部知識,這可以幫助語言模型在多種任務中獲得更好的性能。
當前關于使用檢索增強來提升LLMs性能的綜述還很少。Zhao et al.(2023)提供了關于多模態RAG的全面概述。Zhao et al.(2024a)專注于人工智能生成內容(AIGC)領域的檢索增強生成技術的利用。這篇文章提供了最近RAG工作的全面概述,但它沒有覆蓋所有相關領域。此外,文章缺乏足夠的細節來提供整體發展的全面時間線。Gao et al.(2023)研究了對大模型的RAG的增強。這篇文章總結了一些最近的RAG工作,但它獨立地介紹了檢索器和生成器,這不利于后續工作的組件升級和互動。Li et al.(2022b)專注于文本生成。文章中的圖表較少,內容更抽象,不利于讀者的理解。
關于NLP中的檢索增強方法,僅有關于RAG的綜述只講述了部分故事。不僅與自然語言生成(NLG)相關的任務需要檢索增強技術,自然語言理解(NLU)任務也需要外部信息。迄今為止,全面綜述NLP全譜系中應用增強檢索技術的文章還很少。為了改善當前狀況,本文提出以下貢獻: (1) 本文不僅關注與RAG相關的工作,還重點強調了RALM,并與NLP的概念保持一致。與生成相關的工作與NLG對齊,而其余的工作與NLU對齊。 (2) RALM的兩個組成部分,檢索器和語言模型,都進行了詳細描述,這兩個組件的不同交互模式也首次被準確定義。 (3) 提供了RALM工作計劃的全面概述,總結了當前RALM的常見和新穎應用,并分析了相關限制。提出了這些限制的潛在解決方案,并推薦了未來研究方向。
圖1提供了RALM方法框架的總體概述。以下是本文的摘要:第2節定義RALM。第3節提供了RALM中檢索器的詳細分類和總結。第4節提供了RALM中語言模型的詳細分類和總結。第5節對RALM的特定增強進行了分類和總結。第6節是RALM檢索數據來源的分類和總結。第7節是RALM應用的總結。第8節是RALM評估和基準的總結。最后,第9節討論了現有RALM的限制和未來工作的方向。
RALMs的整合代表了NLP系統能力的重大進步。本綜述提供了對RALMs的廣泛回顧,突出了它們的架構、應用和所面臨的挑戰。通過檢索和整合外部知識,RALMs增強了語言模型,從而在包括翻譯、對話生成和知識圖譜補全等多種NLP任務中提升了性能。
盡管取得了成功,RALMs仍面臨幾個限制。值得注意的是,它們對對抗性輸入的魯棒性、檢索結果的質量、部署相關的計算成本以及應用領域多樣性的缺乏被認為是需要進一步關注的領域。為了解決這些問題,研究社區提出了幾種策略,例如改進評估方法、完善檢索技術和探索在性能與效率之間保持平衡的成本效益解決方案。 未來,RALMs的進步將依賴于增強其魯棒性、提高檢索質量和擴展其應用范圍。通過采用更復雜的技術并將RALMs與其他AI技術整合,這些模型可以被用來應對更廣泛的挑戰。在這一領域持續的研究和開發預計將帶來更具韌性、效率和多功能性的RALMs,從而推動NLP及其它領域所能達到的界限。隨著RALMs的不斷演進,它們有望賦予AI系統更深入的理解力和更接近人類的語言能力,從而在廣泛的領域中開辟新的可能性。
大型語言模型(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流程的關鍵組成部分,負責利用檢索到的信息增強生成響應的質量。這一階段包括幾個旨在產生可讀、吸引人及富有信息量的內容的子步驟。增強:生成階段的核心是增強步驟,其目標是將檢索到的信息與用戶的查詢合并,創建一個連貫且相關的響應。這包括闡述過程,向檢索內容添加額外的細節以豐富它。努力專注于通過重述和重組等方法提高輸出的質量,增加其清晰度、連貫性和風格吸引力。將來自各種來源的信息結合在一起,提供全面的視角,并進行驗證,以確保內容的準確性和相關性。定制:定制是一個可選步驟,涉及調整內容以符合用戶的特定偏好或請求的上下文。這種調整包括根據目標觀眾的需求或內容呈現的格式調整內容,并壓縮信息以簡潔地傳達內容的本質。這個過程還包括創建強調關鍵點或論點的摘要或概要,確保輸出既信息豐富又簡潔。
大型的、預訓練的基于Transformer的語言模型,如BERT,已經極大地改變了自然語言處理(NLP)領域。我們對最近的研究進行了調研,這些研究使用了大型語言模型來解決NLP任務,通過預訓練、微調、提示或文本生成方法。我們還提出了使用預訓練語言模型生成數據的方法,用于訓練增強或其他目的。最后,我們討論了局限性,并提出了未來研究的方向。
引言
近年來,大型預訓練的基于Transformer的語言模型(PLMs),如BERT (Devlin et al., 2019)和GPT (Radford et al., 2018)系列模型席卷了自然語言處理(NLP),在許多任務中實現了最先進的性能。
這些大型PLM推動了NLP的范式轉變。以分類任務p(y|x)(將文本輸入x分類為標簽y)為例:傳統統計NLP方法通常設計手工特征來表示x,然后應用機器學習模型(如SVM (Cortes and Vapnik, 1995)、邏輯回歸)來學習分類函數。深度學習模型通過深度神經網絡(LeCun et al., 2015)。注意,每個新的NLP任務都需要重新學習潛在特征表示,而且在許多情況下,訓練數據的大小限制了潛在特征表示的質量。考慮到語言的細微差別對所有NLP任務來說都是共同的,我們可以假設我們可以從一些通用任務中學習一個通用的潛在特征表示,然后在所有NLP任務中共享它。語言建模需要學習如何在給定前一個單詞的情況下預測下一個單詞,這是一項具有大量自然出現的文本的通用任務,可以預訓練這樣一個模型(因此得名預訓練語言模型)。事實上,最新的、正在進行的范式轉換從引入PLMs開始: 對于大量的NLP任務,研究人員現在來利用現有的PLMs通過對感興趣的任務進行微調,提示PLMs執行期望的任務,或者將任務重新構造為文本生成問題,并應用PLMs來解決相應的問題。這三種基于PLM的范式的進步不斷地建立了新的最先進的性能。
本文調研了最近利用PLM進行NLP的工作。我們將這些工作組織成以下三種范式:
先進行預訓練,然后進行微調(§2): 先對大量未標記語料庫進行通用預訓練,然后對感興趣的任務進行少量的任務特定微調。
基于提示的學習(§3):提示一個PLM,這樣解決NLP任務就會減少到類似于PLM的訓練前任務(如預測一個遺漏的單詞),或一個更簡單的代理任務(如文本包含)。提示通常可以更有效地利用PLM中編碼的知識,從而產生“少樣本”的方法。
NLP作為文本生成(§4): 將NLP任務重新定義為文本生成,以充分利用生成語言模型(如GPT-2 (Radford et al., 2019)和T5 (Raffel et al., 2020)中編碼的知識。
生成式PLMs也可以用于文本生成任務。我們向讀者推薦關于文本生成的優秀調研,如Li et al. (2021b) 和Yu et al. (2021b)。除非另有說明,本文主要關注非生成性任務(如分類、序列標注和結構預測),這些任務仍然涵蓋廣泛的NLP任務,包括文本的語法或語義解析、信息抽取(IE)、問答(QA)、文本蘊涵(TE)、情感分析、等等。除了這三種范式之外,還有另一種互補的方法:間接使用上述任何一種PLM范式來改善目標NLP任務的結果:
數據生成(§5): 運行PLM自動生成NLP任務的數據。生成的數據可以是銀色標記的數據,通常生成的PLM是針對任務進行微調的,或者是一些輔助數據,如反例、澄清、上下文或其他。在第一種情況下,銀色標記數據可以添加到現有的標記數據中。在第二種情況下,輔助數據以某種方式支持目標任務。
論文組織如下: 第2節提供了PLM的背景,并描述了第一種范式,即預訓練然后微調。第三節討論第二種范式,即基于提示的學習。第4節總結了第三種范式,即作為文本生成的NLP。在第5節中,我們將描述通過PLM為廣泛的NLP任務生成數據的方法。我們將在第6節討論局限性并提供未來研究的方向,并在第7節進行總結。
范式1: 先訓練,然后微調
傳統統計NLP的工作重點是在標記數據集上訓練特定任務的模型,而這種模式轉變為在一個共享的、“基本”的預訓練任務上訓練一個大型模型,然后在第二步中將其調整(“微調”)到各種任務。預訓練任務幾乎總是一種語言建模任務,它可以利用大量的未標記數據來學習有利于一系列NLP任務的表示(Rogers et al., 2020)。在本節中,我們首先提供關于預訓練的大型語言模型(PLMs)的入門知識,然后描述使用凍結或微調PLM進行NLP任務的方法。
范式2: 基于提示的學習
我們使用提示指的是在輸入或輸出中添加自然語言文本(通常是短語)的做法,以鼓勵預訓練的模型執行特定任務(Yuan et al., 2021)。使用提示符有幾個優點。提示,特別是上下文學習(例如Brown et al., 2020),可能不需要更新PLM的參數,與微調方法相比,或在2.4.4中描述的基礎上,減少了計算需求。提示還能促使新任務的制定與預訓練的目標更好地結合,從而更好地利用預訓練獲得的知識。更緊密的匹配還支持少樣本方法(Liu et al., 2021b),特別是對于具有小訓練數據集的任務;一個好的提示可以值幾百個標簽數據點(Le Scao and Rush, 2021)。最后,提示允許以一種不受監督的方式探索PLM,以評估PLM對特定任務所獲得的知識(如Petroni et al., 2019)。
下面我們討論三種基于提示的學習方法:從指令和演示中學習、基于模板的學習和從代理任務中學習。圖3顯示了這三種方法的說明。
范式3 NLP即文本生成
基于生成式Transformer的PLMs10(如GPT、BART和T5)的成功,最近激發了人們對利用生成式PLM解決各種非生成式NLP任務的興趣。這些任務包括但不限于傳統的判別任務,如分類和結構預測。例如,圖4說明了Raffel等人(2020)所描述的這種“文本到文本”方法。與傳統的NLP任務判別模型不同,這些任務被重新表述為文本生成問題,從而可以直接用生成式PLM解決。生成的輸出序列通常包括給定任務所需的標簽或其他輔助信息,從而能夠準確地重構預期的類標簽(即避免映射中的歧義),并促進生成/解碼過程(即為預測提供足夠的上下文)。
總結
在這篇文章中,我們介紹了三種使用預訓練語言模型進行自然語言處理的趨勢。我們對每一種方法都進行了深入的描述,并對其應用前景進行了總結。此外,我們還描述了使用預先訓練過的語言模型來自動生成用于提高NLP任務性能的數據。我們希望這一調研將為讀者提供關鍵的基本概念和對范式轉變的全面看法。
//cea.ceaj.org/CN/abstract/abstract39198.shtml
近年來,深度學習技術被廣泛應用于各個領域,基于深度學習的預處理模型將自然語言處理帶入一個新時代。預訓練模型的目標是如何使預訓練好的模型處于良好的初始狀態,在下游任務中達到更好的性能表現。對預訓練技術及其發展歷史進行介紹,并按照模型特點劃分為基于概率統計的傳統模型和基于深度學習的新式模型進行綜述;簡要分析傳統預訓練模型的特點及局限性,重點介紹基于深度學習的預訓練模型,并針對它們在下游任務的表現進行對比評估;梳理出具有啟發意義的新式預訓練模型,簡述這些模型的改進機制以及在下游任務中取得的性能提升;總結目前預訓練的模型所面臨的問題,并對后續發展趨勢進行展望。
盡管生成式對抗網絡(GAN)的歷史并不長,但它已被廣泛地研究和用于各種任務,包括其最初的目的,即合成樣品的生成。然而,將GAN用于具有不同神經網絡結構的不同數據類型,由于其在訓練方面的局限性,使得模型很容易出現混亂。這種臭名昭著的GAN訓練是眾所周知的,并已在許多研究中提出。因此,為了使GAN的訓練更加穩定,近年來提出了許多正則化方法。本文綜述了近年來引入的正則化方法,其中大部分是近三年來發表的。具體地說,我們關注的是那些可以被普遍使用的方法,而不管神經網絡體系結構如何。根據其運算原理將其分為若干組,并分析了各方法之間的差異。此外,為了提供使用這些方法的實際知識,我們調研了在最先進的GANs中經常使用的流行方法。此外,我們還討論了現有方法的局限性,并提出了未來的研究方向。