近年來,我們見證了大型語言模型(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未來發展的路線圖。
表格數據作為各個領域中廣泛存在的數據類型,由于其異質性和復雜的結構關系,帶來了獨特的挑戰。在表格數據分析中實現高預測性能和魯棒性,對眾多應用具有重要意義。受自然語言處理領域近期進展的影響,特別是Transformer架構的影響,表格數據建模的新方法不斷涌現。早期技術集中在從頭開始訓練Transformers,但往往遇到可擴展性問題。隨后,利用預訓練語言模型(如BERT)的方法得到了發展,這些方法需要較少的數據,并且表現出更好的性能。最近,隨著大型語言模型(如GPT和LLaMA)的出現,這一領域發生了進一步的革命,使得僅需最少微調便可實現更先進和多樣的應用。
盡管人們對此領域的興趣日益增長,但關于表格數據語言建模技術的全面綜述仍然缺乏。本文填補了這一空白,系統回顧了表格數據語言建模的發展,內容包括:(1) 不同表格數據結構和數據類型的分類;(2) 模型訓練中使用的關鍵數據集和評估任務的回顧;(3) 建模技術的總結,包括廣泛采用的數據處理方法、流行架構和訓練目標;(4) 從傳統的預訓練/預訓練語言模型到大型語言模型的演變;(5) 識別表格數據分析中語言建模的持續挑戰和潛在的未來研究方向。與本綜述相關的GitHub頁面可訪問://github.com/lanxiang1017/Language-Modeling-on-Tabular-Data-Survey.git。 關鍵詞: 語言建模, 表格數據, 預訓練語言模型, 大型語言模型
表格數據由具有一致特征集的行組成,是現實世界中最常見的數據類型之一,廣泛應用于不同領域[1, 2]。在某些關鍵領域[3-5],實現高預測性能和魯棒性可以帶來顯著的利益。然而,由于表格數據的復雜結構,進行有效分析具有一定挑戰性。例如,表格數據中的一個樣本可以是表格中的單行(1D表格數據),也可以是一組表格中的完整表格(2D表格數據)。此外,表格數據通常具有廣泛的異質特性[6],如數值型、分類型和文本元素等多種數據類型。同時,表格中的列與行之間往往存在復雜的關系。 在過去的幾十年中,自然語言處理(NLP)領域的語言建模取得了顯著的進展,特別是Transformer架構的出現。在表格建模的背景下,早期研究主要集中于使用NLP技術處理表格數據,如嵌入機制、預訓練方法和架構修改。這些工作主要涉及從頭開始為表格數據預訓練基于Transformer的模型,這需要大量的數據,在某些領域(如醫療[7, 8])中可能不切實際。雖然這些方法在某些場景中有效,但往往面臨可擴展性和效率方面的挑戰。同時,一些研究者利用預訓練語言模型(PLMs)(如BERT [9])對表格數據進行建模。這些基于PLM的模型需要較少的訓練數據,同時提供了更優越的預測性能。這表明,在特定任務的表格數據集上調整和重用預訓練語言模型的有效性[10]。
最近,大型語言模型(LLMs)的出現進一步改變了這一領域的格局。諸如GPT [11]和LLaMA [12]等模型展示了卓越的能力,在多種任務中實現了最先進的結果,且僅需少量微調。這些模型在少樣本和零樣本學習場景中表現出色,能夠在幾乎無需額外訓練數據的情況下執行復雜任務。這一發展為在表格數據中利用LLMs進行更高級和多樣化的應用開辟了新的途徑[13]。這一從從頭訓練模型或使用PLMs到采用LLMs的演變,標志著表格數據語言建模中的一個重大范式轉變。
盡管對從表格數據中提取廣泛知識的興趣日益濃厚,但研究社區中缺乏一個全面的綜述,能夠清晰地整理現有的表格數據語言建模方法,概述技術趨勢,識別挑戰,并提出未來的研究方向。為填補這一空白,本文通過對表格數據語言建模的系統回顧,提供了一次全面的綜述。本文旨在在這一范式轉變的關鍵時刻,對表格數據語言建模的發展進行全面的總結和分類,展示這一前景廣闊的研究領域的全貌。 總而言之,本綜述的主要貢獻有三點。首先,本文首次將表格數據分類為1D和2D數據格式。與現有綜述只關注用于傳統任務(如推理和數據生成)的1D表格數據[14, 15]或專注于更復雜任務(如信息檢索和表格理解)的2D表格數據[16, 17]不同,本文首次對兩種類型的表格數據的任務和數據集進行系統回顧。其次,本文回顧了表格數據語言建模技術的最新進展,并提供了詳盡的分類。第三,本文強調了表格數據語言建模中的各種研究挑戰和潛在的探索方向。
本文的結構如圖2所示。首先,我們在第2節介紹了表格數據的基礎,提供了四個主要部分的全面概述:數據結構(第2.1節)、數據類型(第2.2節)、下游任務(第2.3節)和數據集(第2.4節)。我們解釋了最近研究關注的兩種主要表格數據結構:1D和2D表格數據。同時,我們討論了表格領域中的不同數據類型。接下來,我們詳細描述了八大主要下游任務:表格問答(第2.3.1節)、表格檢索(第2.3.2節)、表格語義解析(第2.3.3節)、表格元數據預測(第2.3.4節)、表格內容填充(第2.3.5節)、表格預測(第2.3.6節)、表格事實核查(第2.3.7節)和表格生成(第2.3.8節)。隨后,我們概述了一些常用的數據集及其關鍵特性,這些數據集與不同的下游任務相關聯。
接下來,我們呈現了對近期研究的分類,總結了表格數據語言建模技術,并將其分為三個關鍵領域:輸入處理(第3.1節)、中間模塊(第3.2節)和訓練目標(第3.3節)。具體而言,輸入處理專注于將原始表格數據轉換為適合語言模型的格式。我們進一步將輸入處理技術分為具體的子類別:數據檢索(第3.1.1節)、表格序列化(第3.1.2節)和上下文整合(第3.1.3節)。在中間模塊中,我們討論了兩個組成部分:位置編碼(第3.2.1節)和注意力機制(第3.2.2節),這些組件經過修改以在表格領域中實現更好的預測性能。此外,我們討論了訓練目標,它在幫助語言模型學習語義信息方面起著關鍵作用。 隨后,我們分析了語言模型在表格領域的演變(第4節)。首先,我們描述了早期從頭預訓練和使用PLM的適應性及其優勢,特別是Transformer的引入(第4.1節)。然后,我們回顧了LLMs在表格數據建模中的最新進展,并強調了它們與以往方法的不同之處(第4.2節)。 最后,我們在第5節中指出了表格數據語言建模中的若干挑戰和未來的機遇,并在第6節總結了本文的內容。
大型語言模型(LLMs)在各個領域展示了卓越的能力,吸引了學術界和工業界的廣泛關注。盡管它們表現出色,但LLMs的巨大規模和計算需求對實際部署帶來了相當大的挑戰,特別是在資源有限的環境中。壓縮語言模型同時保持其精度的努力已成為研究的重點。在各種方法中,知識蒸餾已成為一種有效的技術,可以在不大幅降低性能的情況下提高推理速度。本文從方法、評估和應用三個方面進行了詳細的調查,探討了專門為LLMs量身定制的知識蒸餾技術。具體來說,我們將方法分為白盒KD和黑盒KD,以更好地說明它們的差異。此外,我們還探討了不同蒸餾方法之間的評估任務和蒸餾效果,并提出了未來研究的方向。通過深入理解最新進展和實際應用,這項調查為研究人員提供了寶貴的資源,為該領域的持續進步鋪平了道路。
** 簡介**
大型語言模型(LLMs)[2, 17, 130, 146, 166] 的出現顯著提高了各種生成任務中的文本生成質量,成為人工智能領域一個關鍵且廣受討論的話題。與之前的模型相比,這些模型對未見數據的泛化能力更強。此外,它們還展示了小型模型所不具備的能力,如多步推理[47, 69, 83] 和指令執行[103, 144, 154]。LLMs的成功通常歸因于訓練數據的增加和模型參數數量的增加(例如,具有1750億參數的GPT-3[12])。然而,參數規模的擴展帶來了顯著的缺點,尤其是在高推理成本和大量內存需求方面,使得實際部署變得具有挑戰性。例如,GPT-3需要大約350GB的模型存儲(float16),并且推理至少需要5個每個80GB內存的A100 GPU,這對碳排放的影響顯著。為了解決這些挑戰,模型壓縮[30, 40] 已成為一種可行的解決方案。模型壓縮旨在將大型、資源密集型模型轉化為適合在受限移動設備上存儲的更緊湊版本。這一過程可能涉及優化以減少延遲以實現更快的執行,或在最小延遲和模型性能之間取得平衡。因此,在現實場景中應用這些高容量模型的一個關鍵目標是壓縮它們,減少參數數量,同時保持最大性能。
隨著減少計算資源需求的必要性日益重要,知識蒸餾(Knowledge Distillation, KD)[43] 作為一種有前景的技術出現。KD是一種機器學習方法,專注于通過從大型復雜模型向更小、更高效的模型傳遞知識來壓縮和加速模型。這種技術經常被用來將存儲在大型深度神經網絡模型中的知識濃縮到更小的模型中,從而減少計算資源需求并提高推理速度而不會大幅犧牲性能。從根本上講,知識蒸餾利用大型模型在大量數據集上獲得的廣泛知識來指導較小模型的訓練。這些知識通常包括輸出概率分布、中間層表示和大型模型的損失函數。在訓練過程中,較小的模型不僅要匹配原始數據標簽,還要模仿較大模型的行為。對于像GPT-4[2]這樣只能通過API訪問的高級模型,生成的指令和解釋可以幫助訓練學生模型[54]。隨著知識蒸餾的最新進展,許多研究綜合了各種蒸餾技術的最新進展。具體來說,Gou等[37] 對知識蒸餾進行了廣泛的綜述,涉及六個關鍵方面:知識類別、訓練方案、師生架構、蒸餾算法、性能比較和應用。同樣,Wang等[141] 詳細總結了與視覺任務相關的知識蒸餾技術的研究進展和技術細節。Alkhulaifi等[4] 介紹了一種創新的度量標準,稱為蒸餾度量標準,他們用它來評估不同的知識壓縮方法。此外,Hu等[48] 探討了跨多個蒸餾目標的各種師生架構,提出了不同的知識表示及其相應的優化目標,并系統地概述了師生架構,結合了代表性的學習算法和有效的蒸餾方案。
現有關于知識蒸餾的綜述為模型壓縮奠定了重要基礎并提供了寶貴的見解[13, 51, 64]。然而,LLMs的出現給KD帶來了若干新挑戰:1)大型語言模型設計并非僅用于單一任務如文本生成,而是廣泛應用于各種任務和未見數據,包括新興能力。因此,評估壓縮LLMs的泛化能力需要仔細和全面的評估。2)現有綜述僅是對現有工作的總結,未提供將KD技術應用于壓縮和部署LLMs的具體示例。這種案例研究可以幫助讀者為不同規模的LLMs選擇最佳的KD方案。
為應對這些挑戰,已經開發出各種專為LLMs設計的知識蒸餾算法。本文旨在提供這些方法的全面而有見地的指南。我們的調查的總體分類框架如圖1所示,從方法、評估和應用三個方面審視LLMs的蒸餾算法。為了清楚解釋這些方法,我們將其分為白盒KD和黑盒KD。白盒KD包括兩種不同類型:基于Logits的方法[43],在Logits層面傳遞知識,以及基于Hint的方法[109],通過中間特征傳遞知識。黑盒KD涉及一種基于API的方法,其中僅能訪問教師模型的輸出。此類別通常包括三種方法:上下文學習[52]、鏈式思維[69] 和指令執行[144]。此外,我們同時評估了上述兩種蒸餾算法在魯棒性基準上的有效性[94, 128, 138]。最后,我們討論了不同蒸餾方法之間的關系和應用場景,并提出了未來研究方向。
本文其余部分安排如下:第2節簡要回顧了知識蒸餾方法的定義。接下來,第3節深入探討了LLMs領域的蒸餾和評估方法。第4節展示了應用場景,第5節總結了知識蒸餾的挑戰并探討了未來研究方向。最后,第6節對本文進行了總結。
隨著大語言模型(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終身學習的現有挑戰、當前趨勢和未來方向,并總結了本綜述。
人類通過多種感官,如視覺、嗅覺、聽覺和觸覺來感知世界。同樣,多模態大型語言模型(MLLMs)通過整合和處理包括文本、視覺、音頻、視頻和3D環境在內的多種模態數據,增強了傳統大型語言模型的能力。數據在這些模型的發展和優化中起到了關鍵作用。在這篇綜述中,我們從數據中心視角全面回顧了MLLMs的相關文獻。具體而言,我們探討了在MLLMs預訓練和適應階段準備多模態數據的方法。此外,我們還分析了數據集的評估方法,并回顧了評估MLLMs的基準測試。我們的綜述還概述了未來潛在的研究方向。本研究旨在為研究人員提供關于MLLMs數據驅動方面的詳細理解,促進該領域的進一步探索和創新。
近年來,我們見證了大型語言模型(LLMs)和多模態大型語言模型(MLLMs)的快速發展[280, 324]。諸如GPT-4 [208]、Flamingo [4]、BLIP2 [151]和X-InstructBLIP [212]等MLLMs整合了多模態信息,展示了令人印象深刻的理解和生成能力。這些模型在傳統的多模態任務中取得了競爭性表現,如視覺識別[320]、視頻理解[258, 289]、語音識別[200]和3D理解[89, 100]。此外,它們卓越的語言理解能力使其在文本豐富的任務中表現出色,如問答[104]、多輪對話和邏輯推理[156, 296]。
大多數現有的MLLMs主要關注修改模型架構以探索多模態信息的使用[121, 178, 246, 286, 287, 304]。盡管模型的有效性至關重要,數據也顯著影響了MLLMs的成功。例如,Hoffmann等人[99]展示了為了擴展模型,有必要增加訓練數據的規模。除了數據數量外,數據質量同樣重要。先前的研究[251]表明,精心策劃的數據集可以使較小的模型達到與較大模型相當的性能。然而,關于MLLMs數據策劃和利用的綜合研究仍然缺乏。因此,本研究旨在從數據中心視角提供對MLLMs的全面理解。
與優先考慮架構增強而依賴固定數據集的模型中心方法相比,數據中心視角強調對數據集的迭代改進以提高性能。在數據中心MLLMs的范圍內,我們關注利用數據模態的異質性、增強數據結構、增加數據數量和提高數據質量以改進MLLMs [316]。我們的討論從不同階段的MLLMs數據中心視角回答了三個關鍵問題:
Q1:如何收集、選擇和管理MLLMs的數據?大量的數據需求和多模態數據的異質性在收集、選擇和有效管理模型訓練數據方面帶來了挑戰。MLLMs的不同訓練階段也導致了不同的數據類型需求。
Q2:數據如何影響MLLMs的性能?理解數據特性與MLLMs性能之間的關系對于優化數據集和增強模型能力至關重要。
Q3:如何評估MLLMs的數據?有必要開發全面的評估基準,以評估MLLMs在各種任務中的性能和魯棒性。 本綜述與現有綜述的區別。在模型中心視角下,已有若干綜述聚焦于LLMs [93, 203, 324]和MLLMs [280, 318],但缺乏對數據中心方面的深入分析。最近,一些綜述開始關注LLMs的數據準備,如數據管理方法[274]、數據選擇方法[5]和LLM數據集的綜合綜述[174]。然而,這些綜述主要集中于僅文本LLMs的數據管理和選擇方法,沒有對MLLMs的數據處理管道進行徹底分析。盡管Zhang等人[318]總結了MLLMs的數據集,但未能提供對這些數據集的全面分析。與我們最相關的工作是數據中心人工智能(DCAI)[109, 111, 220, 279, 316],它也關注AI研究的數據中心視角,但未具體分析LLMs和MLLMs。
隨著MLLMs的快速增長以及數據在這個大型模型時代越來越重要的角色,我們認為提供一個全面的MLLMs數據中心方法綜述是至關重要的。本綜述旨在從數據中心視角全面回顧MLLMs的進展文獻,并討論該領域的開放問題或未來方向。
貢獻。在這篇綜述中,我們從數據中心視角回顧了MLLMs的進展文獻。我們為研究人員和開發者提供了對MLLMs數據方面最新發展的總體和全面的理解。本綜述的主要貢獻總結如下:
本文的其余部分安排如下:第2節介紹LLMs和MLLMs的預備知識,并討論從數據中心視角分析它們的動機。第3至第5節總結了MLLMs訓練數據的收集、處理和選擇的主要階段。第6節總結了MLLMs的評估方法和現有的評估數據集。第7節討論了開放問題并強調了該領域的若干未來研究方向。最后,我們在第8節對本綜述進行了總結。我們的Github倉庫可以在//github.com/beccabai/Data-centric_multimodal_LLM找到。
大型語言模型(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的更廣框架內的位置,對問題和任務進行了分類。雖然這一領域在社區中的興趣廣泛且日益增長,但我們也注意到幾個缺失的基石,包括算法多樣性以及對大模型行為(如知識遺忘、轉移和獲取)的基本理解。通過全面而詳細的方法,我們希望這篇綜述能激勵更多從業者探索持續學習技術,最終有助于構建健壯和自我進化的人工智能系統。
智能規劃又叫自動規劃,主要研究在復雜環境下,如何通過自動化的方式生成可行的行動序列,以實現從初始狀態到達目標狀態。大語言模型是指使用大量文本數據訓練的深度學習生成式模型,可以生成自然語言文本或理解語言文本的含義。當前圍繞如何讓大語言模型在強大的常識性知識基礎上獲得生成式智能規劃能力已然成為當下研究的熱潮。本文從大語言模型的視角入手,首先對智能規劃的定義和發展進行概述、簡要介紹了傳統智能規劃的方法;其次基于大語言智能體與智能規劃的緊密關系,介紹了大語言模型的架構和典型的大模型智能體;再次重點圍繞大模型的智能規劃,梳理了規劃語言學習、思維鏈推理、反饋優化和流程自動化共4類規劃方法;最后結合當前的挑戰與困難,介紹大模型進行智能規劃的前沿研究展望。
基于Transformer的大型語言模型取得了巨大成功。然而,在推理過程中產生的顯著內存和計算成本,使得在資源受限的設備上部署大型模型變得具有挑戰性。在本文中,我們從算法角度調查了大型語言模型的壓縮和高效推理方法。就分類而言,類似于較小的模型,大型語言模型的壓縮和加速算法仍可以分為量化、剪枝、蒸餾、緊湊架構設計、動態網絡。然而,與較小模型相比,大型語言模型有兩個突出的特點:(1)大多數壓縮算法在壓縮后需要進行微調甚至重新訓練模型。大型模型最顯著的方面是與模型微調或訓練相關的非常高成本。因此,許多針對大型模型的算法,如量化和剪枝,開始探索無需調整的算法。(2)大型模型強調的是通用性和泛化能力,而不是在單一任務上的性能。因此,許多算法,如知識蒸餾,關注于如何在壓縮后保持其通用性和泛化能力。由于這兩個特點在早期的大型模型中并不十分明顯,我們進一步將大型語言模型區分為中等模型和“真正”的大型模型。此外,我們還提供了一些成熟框架的介紹,這些框架可以支持大型模型的高效推理,支持基本的壓縮或加速算法,極大地便利了用戶的模型部署。
大型語言模型(LLMs)已成為人工智能領域中一個重要且受歡迎的話題。與以往的語言模型相比,LLMs(例如ChatGPT、LLaMA、Claude)對未見數據顯示出了更強的泛化能力。此外,它們甚至展現出了較小模型所不具備的能力(即,突現能力),如多步驟推理和指令跟隨能力。這些進展展示了LLMs的巨大潛力。然而,在推理過程中的高昂內存和計算預算也阻礙了LLMs的部署。例如,一個帶有float32權重的10B模型消耗37GB內存,更不用說隨著序列長度增加,推理內存成本會以平方速度進一步增加。為了在資源受限的設備上,甚至是移動設備上部署模型,許多LLMs采用模型壓縮方法,如量化,以減少推理內存和計算成本。深度學習模型的模型壓縮是一個比LLMs出現得早得多的領域。它假設我們已經有了一個預定義的(甚至是預訓練的)模型。模型壓縮致力于減少模型在推理過程中的內存和計算成本,以便模型可以在各種資源受限的設備上運行。從算法上講,常見的模型壓縮方法包括:
許多之前的模型壓縮方法經常需要在壓縮后對模型進行微調。然而,由于微調LLMs的巨大預算,研究人員不得不探索免微調或至少更高效的微調方法。
與處理單一任務(如神經機器翻譯)不同,大型語言模型強調跨各種任務和未見數據的通用性和泛化能力,甚至是突現能力。因此,壓縮后的大型語言模型需要更仔細地驗證其通用性和泛化能力。 面對這些挑戰,提出了許多專門針對LLMs的壓縮方法。在本文中,我們將對這些方法進行全面綜述。為了更好地展示這些方法,我們進一步將參數約為十億或更少的語言模型,如BERT、GPT2,稱為中等模型,盡管它們通常被視為大型語言模型。參數超過十億的模型,如LLaMA、Claude、ChatGPT等,保持大型語言模型的名稱。原因是中等模型受上述兩個挑戰的影響較小,即中等模型相對容易進行微調,展示較少的突現能力。結果,許多針對中等模型的壓縮方法仍與較小模型的方法相似。 以下各節的組織如下:第2節將介紹一些初步知識。然后,我們將在第3、4、5、6、7、8節分別討論剪枝、知識蒸餾、量化、緊湊架構設計和動態網絡。
量化
量化是指將輸入值(在一個大的(通常是連續的)集合中)映射到輸出值(在一個小的(通常是有限的)集合中)的過程(例如,見圖2)。量化是減少內存成本和提高LLMs推理速度的最直接方法,特別是在支持低位數據類型(如INT4)快速操作的硬件上。值得注意的是,量化在神經網絡訓練和推理中都取得了令人印象深刻的成功,而本綜述的焦點僅在推理部分。量化方法相比其他壓縮方法(如剪枝和蒸餾)有幾個優勢。1)高壓縮比:將LLMs中的權重從32位浮點數量化為4位整數,可以將模型大小大幅壓縮至大約1/8,這對于內存受限的過程(如LLMs推理)至關重要。2)低成本:許多量化方法不需要重新訓練整個LLMs,使其對于計算資源有限的研究人員更加可行。3)高靈活性:量化與大多數其他壓縮方法兼容,為進一步提高性能引入了異常的機會。為了幫助讀者更好地理解量化方法,我們首先在3.1小節介紹標準量化方法和一些基本概念。然后,在3.2節,我們將簡要總結LLMs出現之前一些針對中等大小語言模型(如BERT,GPT2等)的最重要工作。3.3節和3.4節涵蓋了專注于LLMs推理的量化方法的最新進展。考慮到重新訓練擁有數十億參數的模型的困難,我們根據技術是否需要重新訓練,將LLMs量化方法分為兩部分。不需要重新訓練的方法(即,訓練后量化,PTQ)在3.3節討論,而需要重新訓練的方法(即,量化感知訓練,QAT)在3.4節討論。最后,在3.5節,我們討論了一些展現未來研究潛力但在前面章節中未覆蓋的高級話題。
剪枝
作為一種常規技術,用于壓縮和加速神經網絡,剪枝通過消除模型中非必需的權重或結構,同時保持網絡性能幾乎等同于它們原始狀態。盡管剪枝在卷積神經網絡(CNNs)中顯示出顯著結果,但與量化和蒸餾等其他壓縮技術相比,其對于LLMs的有效性較不穩健。剪枝效果減弱的原因來自于微調過程。由于模型參數數量龐大,微調的高成本使得實現剪枝的全部效果變得更加困難。然而,剪枝是壓縮模型的關鍵技術,需要進一步探索以增強和完善其在LLMs中取得改進結果的有效性。在接下來的部分,我們將在4.1節提供剪枝方法和基本概念的概覽。隨后,在4.2節,我們將詳細闡述為中等大小語言模型(即,參數達到數十億的模型)量身定制的剪枝技術,鑒于它們與LLMs的結構相似性。4.3節將深入探討專門為LLMs設計的剪枝方法論。最后,在4.4節,我們將介紹一些輔助技術,這些技術雖然不是剪枝方法,但與剪枝相關,用于改進LLMs的剪枝結果,并討論LLMs剪枝領域未來進步的挑戰。
知識蒸餾知識蒸餾(KD)是一種常用的模型壓縮和加速技術。具體實施過程包括將復雜教師模型獲得的知識轉移到一個更簡單的學生模型中,從而實現教師模型知識的更簡潔高效的表示。在5.1節中,我們將介紹知識蒸餾的一些基本概念,并提供知識蒸餾方法的簡要分類。然后我們將在5.2節總結使用中等大小語言模型(具有大約10億參數的語言模型)的各種知識蒸餾方法,并根據蒸餾發生在預訓練階段、微調階段還是兩者都有進行分類。最后,我們將在5.3節提供大型語言模型(具有超過10億參數的語言模型)知識蒸餾的詳細概述,將它們分類為黑盒蒸餾和白盒蒸餾。
緊湊架構設計是一種追求效率和簡化的設計哲學,其目標是通過優化網絡結構和算法,在減少計算資源和內存使用的同時,實現模型效率的顯著提升。具體而言,它可以分為微觀和宏觀兩個研究層次。本節將重點優化注意力計算和Transformer架構設計。由于Transformer層目前是LLM的主要組成部分,并且對于大型和中等大小模型來說沒有區別,因此我們在這里不會特別按模型大小分類方法。
動態網絡
擴大語言模型的規模已被證明是提升其在自然語言處理(NLP)任務上性能的有效方法。然而,擴展帶來的大量計算成本和內存需求構成了LLMs進步的主要挑戰。為了解決這些問題,同時仍然利用規模增加的好處,動態神經網絡(DyNNs)只針對每個輸入處理網絡的一個子集,使整個模型在資源受限的環境下更加靈活和高效地滿足計算需求。在NLP領域和LLMs領域,當前對DyNNs的研究主要包括以下三種方法:提前退出、級聯推理和專家混合(MoE)。提前退出旨在動態地在深度神經網絡(DNNs)的早期層次終止推理過程,從而減少計算成本并提高響應時間。直覺是,對于不太復雜的詞匯,往往可以在網絡的較早層次中準確完成預測。這些方法通常在網絡內部集成了一系列內部分類器,這些分類器在推理過程中提供提前退出的信號。已經提出了各種退出標準。這一系列工作主要關注并應用于小型或中型語言模型,如Bert。并且準確度可能不足以支持一般LLMs在更復雜和現實的場景中的應用。級聯推理利用不同大小的一系列語言模型處理不同復雜度級別的請求。Tabi提出了一個具有多級推理模型和基于概率的調度器的推理系統,以確定輸入查詢的處理策略,并平衡準確度和效率。FrugalGPT學會適應性地分類來自不同數據集和任務的查詢,并將它們引導至合適的LLMs API組合。EcoAssistant和另一個研究利用查詢緩存引用歷史數據以加快響應速度,并使用LLMs的層級結構來處理那些不匹配的新查詢。Mixture-of-Thoughts考慮了來自較弱LLMs的答案一致性作為問題難度的指標,以決定是否利用更強大的LLMs。一般來說,這一系列工作最近才出現,并顯示出發展更高效LLM系統的有希望的方向。與上述兩種方法相比,MoE的研究有著橫跨多個機器學習領域(包括NLP)的廣泛歷史。MoE通過多個子網絡水平擴展前饋網絡(FFN),其中只有一個或少數幾個會在單次前向傳播中被激活。它被廣泛地整合到今天的LLMs架構中,以提供高效而強大的服務。因此,在本節的剩余部分,我們將深入探討MoE的領域。7.1節首先介紹MoE的基本概念,接著是對將MoE整合到LLMs中的當代研究的廣泛綜述,包括算法和架構設計、訓練策略和實際應用。7.2節提供了一些代表性研究的簡要回顧,這些研究將MoE與之前討論的模型壓縮和加速技術集成在一起,突出了其在開發更全面和成本效益更高的LLM系統中的潛力。
隨著基于Transformer的模型的快速發展,出現了各種模型。由于不同的應用場景,它們在延遲、吞吐量、內存等方面有著額外的需求,這使得我們難以部署模型。在本節中,我們介紹了一些最近開發的針對LLM的推理加速框架,這些框架有效地提高了不同場景下模型的效率,如表6所示。我們根據通用性將框架分為通用框架和專用框架。這里還有一些特定于訓練的加速框架[351]、[352]、[353]、[354]、[355]、[356]、[357],由于本文關注于推理,我們不會具體討論它們。如果您想要部署訓練好的模型以快速獲得高效推理,可以參考這些框架[358]、[359]、[360]、[361]、[362]、[363]。
結論
在本文中,我們從算法角度對大型語言模型的壓縮和高效推理進行了全面調查,包括量化、剪枝、蒸餾、緊湊架構設計、動態網絡。此外,我們還介紹了一些為大型語言模型量身定制的流行壓縮和加速框架。然而,正如我們在引言中提到的,與較小模型相比,大型模型的壓縮和加速面臨更多挑戰。盡管現有算法已經做出了重大努力來應對這些挑戰,但許多算法仍然依賴于為壓縮小型模型而設計的框架,壓縮大型模型的挑戰依然存在。未來,需要進一步探索,以開發更高效、更有效的壓縮算法,同時確保大型模型的通用性和泛化能力。
本文提供了一個關于大型語言模型(LLMs)在軟件工程(SE)中應用的新興領域的調查。它還提出了將LLMs應用于軟件工程師面臨的技術問題的開放性研究挑戰。LLMs的新興屬性帶來了創新性和創造力,其應用覆蓋了軟件工程活動的全譜,包括編碼、設計、需求、修復、重構、性能提升、文檔和分析。然而,這些同樣的新興屬性也帶來了重大的技術挑戰;我們需要能夠可靠地剔除錯誤的解決方案,如幻覺。我們的調查揭示了混合技術(傳統的SE與LLMs相結合)在開發和部署可靠、高效和有效的基于LLM的SE中的關鍵作用。本文調查了基于LLM的SE的最近發展、進展和實證結果;即大型語言模型(LLMs)在軟件工程(SE)應用的應用。我們使用這次調查來突出這個迅速發展但尚屬初級階段的研究文獻中的空白。基于文獻中的空白和技術機會,我們還確定了軟件工程研究社區的開放問題和挑戰。盡管對這樣一個迅速擴張的領域的任何調查都既不能渴望也不能聲稱是全面的,但我們希望這次調查能為這個令人興奮的新軟件工程子學科——基于LLM的軟件工程提供一個有用且相對完整的早期概述。盡管該領域的科學和技術結構仍在形成中,但我們已經可以識別出趨勢、對未來研究的有益方向以及需要解決的重要技術挑戰。特別是,我們已經能夠辨別出與軟件工程內的現有趨勢和既定方法及子學科的重要連接(和共鳴)。盡管總的來說,我們找到了很多樂觀的理由,但仍然存在重要的技術挑戰,這些挑戰很可能在未來幾年內影響研究議程。許多作者都從科學和軼事的角度指出,LLMs普遍存在幻覺問題[1],而且它對基于LLM的SE也帶來了特定的問題[2]。與人類智慧一樣,幻覺意味著LLM可以產生虛構的輸出。在軟件工程的背景下,這意味著創造的工程制品可能是錯誤的,但看起來是合理的;LLMs可能引入錯誤。然而,與LLMs的許多其他應用不同,軟件工程師通常有可自動化的真實依據(軟件執行),大部分軟件工程制品都可以基于此進行評估。此外,軟件工程研究社區已經花了很多時間開發自動化和半自動化技術,以檢查人類可能產生的錯誤結果。這意味著,對于這個學科和研究社區,當面對像幻覺這樣的問題所帶來的挑戰時,有大量的經驗和專業知識可以借鑒。
顯然,自動化測試技術 [3]–[5] 將在確保正確性中發揮核心作用,就像它們已經為人工設計的制品所做的那樣。在生成全新的功能和系統時,由于缺乏可自動化的oracle [6](一種自動技術,用于確定給定輸入刺激的輸出行為是否正確),自動測試數據生成受到限制。考慮到LLMs的幻覺傾向,Oracle問題仍然非常相關,對它的解決方案將變得更加有影響力。但是,一些SE應用關心現有軟件系統的適應、改進和開發,對于這些應用,有一個現成的可自動化的oracle:原始系統的功能行為。在本文中,我們稱其為“自動回歸Oracle”,這種方法已在遺傳改進領域得到證明是有益的 [7]。自動回歸Oracle簡單地使用軟件系統的現有版本作為參考,以對任何后續的適應和更改的輸出進行基準測試。當然,有“烘焙”功能錯誤的風險,因為自動回歸Oracle無法檢測系統應該做什么,只能捕捉它當前做什么。因此,自動回歸Oracle只能測試功能退化,所以它最適合于需要保持現有功能的用例。例如,對于性能優化和語義保持不變的重構。LLM的輸入將成為越來越多研究的焦點,我們可以預期關于prompt工程和prompt優化文獻的迅速發展 [8]。在這次調查中,我們突出了關于軟件工程的幾個特定方面的prompt工程的現有工作和開放挑戰。LLM的輸出不僅可以限于代碼,還可以包括其他軟件工程制品,如需求、測試用例、設計圖和文檔。總的來說,LLM的基于語言的特性使其能夠生成任何語言定義的軟件工程制品。我們通常認為軟件工程制品是LLM的主要輸出,但它不是唯一的輸出。與主要輸出一起提供的解釋也是LLM的重要輸出。我們的調查突出了需要進行更多的研究的需求,不僅要優化prompt工程(專注于LLM的輸入),還要優化與主要輸出一起提供的解釋的工作。LLMs本質上是非確定性的:相同的prompt在不同的推斷執行中產生不同的答案(除非溫度設為零,這在多次執行中經常被發現是次優的)[9]。此外,無論溫度設置如何,prompt的微妙變化都可能導致非常不同的輸出[9]。除了激勵‘prompt工程’和輸出處理,這種非確定性行為為基于LLM的軟件工程的科學評估帶來了挑戰:如果每次我們運行整個工程過程時結果都會變化,我們如何確定所提議的技術是否超越了現有的技術?這是一個在經驗軟件工程[10]和基于搜索的軟件工程(SBSE)[11]的背景下已經被深入研究的問題。特別是,SBSE與基于LLM的軟件工程有很多相似之處,在存在嘈雜、非確定性和不完整的結果[12]、[13]的情況下實現穩健的科學評估都與之有關。因此,已經有一個成熟的軟件工程文獻專門研究適用于基于LLM的科學評估所需的穩健的科學評估技術。例如,參數和非參數的推斷統計技術現在經常被用來在SBSE學科中提供在高度非確定性算法存在的情況下的穩健的科學結論。為了找出與LLM相關的計算機科學論文,我們過濾了出版物,將其細分為以下子類別:人工智能 (cs.AI)、機器學習 (cs.LG)、神經和進化計算 (cs.NE)、軟件工程 (cs.SE) 和編程語言 (cs.PL)。我們使用查詢“Large Language Model”、“LLM”和“GPT”在標題或摘要中進行篩選(我們手動排除了重載縮寫,例如將GPT誤認為是通用規劃工具),結果是L列。最后,我們使用相同的查詢來識別基于LLM的軟件工程論文,這些論文位于軟件工程 (cs.SE) 和編程語言 (cs.PL) 類別中。這些查詢本質上是近似的,因此我們只局限于基于總體趨勢得出的結論,而這些總體趨勢有強有力的證據支持,而不是觀察到的數字的具體細節。盡管如此,我們報告了觀察到的原始數字,以支持其他人的復制。
圖2展示了arXiv上發布的計算機科學論文數量(|A|,以藍色表示)和LLM相關論文的數量(|L|,以橙色表示)的增長。特別是與軟件工程和LLM相關的論文以綠色表示(|L ∩ S|)。考慮到總體發表量的快速增長,我們為縱軸使用了對數刻度。不出所料,我們看到了計算機科學出版物數量的整體增長。同時,鑒于LLM最近受到的關注增多,LLM相關論文數量的指數增長也相對不足為奇。或許更有趣的是LLM在軟件工程應用中的快速采納,如圖中的綠色所示。為了更詳細地檢查這一趨勢,我們在圖3中畫出了LLM出版物(L)與所有計算機科學出版物(A)的比例(以藍色表示),以及基于LLM的軟件工程出版物(L ∩ S)與所有LLM出版物的比例(以橙色表示)。如圖所示,自2019年以來,基于LLM的軟件工程論文的比例已經急劇上升。目前,所有關于LLM的論文中已有超過10%與基于LLM的軟件工程有關。由于這一增長,我們可以預期將有更多其他的基于LLM的軟件工程調查。文獻的快速擴展使得進一步的全面軟件工程研究不太可能適應單篇論文的空間限制,但我們可以預期會有許多關于感興趣的子領域的全面調查,以及針對系統評審中的主要文獻提出具體研究問題的系統文獻回顧(SLRs)。例如,Hou等人[14]提供了一個出色的最新SLR,涵蓋了2017年至2023年的229篇研究論文,報告了所處理的軟件工程任務、數據收集和預處理技術,以及優化LLM性能的策略(例如提示工程)。本文的其余部分按照主要的頂級軟件開發活動和研究領域進行組織。圖1顯示了軟件開發活動、研究領域和我們論文結構之間的映射。
隨著大型語言模型(LLM)發展的日益普及,吸引了大量關注,各種應用領域的模型不斷涌現。然而,將大型語言模型與語義技術相結合以進行推理和推斷仍然是一項具有挑戰性的任務。本文分析了當前在基礎LLM方面的進展,如ChatGPT,如何與專用預訓練模型,如REBEL,進行比較,以實現實體和關系的聯合提取。為了評估這種方法,我們使用與可持續性相關的文本作為案例,進行了多個實驗。我們創建了從原始文本自動生成知識圖譜的流程,并發現使用先進的LLM模型可以提高從非結構化文本創建這些圖譜的過程的準確性。此外,我們還探討了使用基礎LLM模型進行自動本體創建的潛力,從而生成更相關且準確的知識圖譜。本節描述了本研究中使用的方法,包括數據收集過程以及用于分析收集到的數據的實體-關系提取算法。
**A. 數據收集過程 **為了對實體-關系提取的兩種方法進行實驗性比較,我們從網絡上收集了有關可持續性主題的新聞數據。為此,我們使用了News API [21]系統。News API是一個HTTP REST API,用于從網絡上搜索和檢索實時文章。它提供了通過指定以下選項在網絡上發布的文章中進行搜索的功能:關鍵詞或短語、發布日期、來源域名和語言。通過使用News API,我們收集了2023-02-15至2023-03-19關于可持續性主題的94篇新聞文章。收集到的文本包含各種字數,從50個到超過4200個不等。由于輸入到語言模型中的令牌數量受到限制,因此需要進行額外的預處理步驟來處理包含大量單詞的文本。
**B. 關系提取方法 **關系提取是自然語言處理(NLP)中的一項基本任務,旨在識別句子或文檔中實體之間的語義關系。這項任務具有挑戰性,因為它需要理解實體出現的上下文以及它們之間存在的關系類型。在本小節中,我們將介紹如何利用REBEL和ChatGPT進行關系提取任務。1) REBEL:我們首先嘗試使用REBEL從非結構化新聞文章中提取關系。為了讓REBEL能夠使用提供的文本,需要使用相應的分詞器功能對其進行分詞。分詞是將原始文本分割成稱為令牌的較小單位的過程。令牌可以是單詞、字符或子詞。模型對令牌的限制為512個令牌,這意味著在將較長的收集到的文章發送到模型進行三元組提取之前,需要對其進行預處理。為了解決這個限制,我們將原始文本進行分詞,并將令牌劃分為256個令牌的批次。這些批次分別由REBEL模型處理,然后合并結果以提取較長文本的關系。還向提取的關系添加元數據,引用生成關系的令牌批次。采用這種方法,由于令牌批次可能在句子的中間開始或結束,某些關系可能無法準確提取。然而,這種情況發生的次數微乎其微。因此,我們將其處理留給未來的工作。實體-關系提取過程完成后,提取的信息存儲在三元組結構中。為了進一步規范提取的實體,我們執行實體鏈接[22]。實體鏈接是指將原始文本中提到的實體與知識庫中相應實體進行識別和關聯的過程。實體鏈接過程不屬于REBEL模型的一部分,它是用于優化提取關系的額外后處理步驟。在本研究中,我們使用DBpedia作為知識庫,并認為如果兩個實體具有相同的DBpedia URL,則它們是相同的。這方法不適用于DBpedia上不存在的實體。
//cea.ceaj.org/CN/abstract/abstract39198.shtml
近年來,深度學習技術被廣泛應用于各個領域,基于深度學習的預處理模型將自然語言處理帶入一個新時代。預訓練模型的目標是如何使預訓練好的模型處于良好的初始狀態,在下游任務中達到更好的性能表現。對預訓練技術及其發展歷史進行介紹,并按照模型特點劃分為基于概率統計的傳統模型和基于深度學習的新式模型進行綜述;簡要分析傳統預訓練模型的特點及局限性,重點介紹基于深度學習的預訓練模型,并針對它們在下游任務的表現進行對比評估;梳理出具有啟發意義的新式預訓練模型,簡述這些模型的改進機制以及在下游任務中取得的性能提升;總結目前預訓練的模型所面臨的問題,并對后續發展趨勢進行展望。