隨著軟件系統變得日益復雜,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)在許多不同的自然語言處理(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時運用了最佳判斷。
大型語言模型(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終身學習的現有挑戰、當前趨勢和未來方向,并總結了本綜述。
自動程序修復(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系統更深入的理解力和更接近人類的語言能力,從而在廣泛的領域中開辟新的可能性。
提示 (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,以概覽高效提示領域。
數據可視化以圖表形式在數據分析中發揮著關鍵作用,提供關鍵洞察并輔助做出知情決策。隨著近年來大型基礎模型的興起,自動圖表理解取得了顯著進展。基礎模型,如生成預訓練變換器(Generative Pre-trained Transformers, GPT),已經革新了多種自然語言處理(NLP)任務,并越來越多地應用于圖表理解任務中。這篇綜述文章提供了這些基礎模型背景下圖表理解最近發展、挑戰和未來方向的全面概覽。文章從背景部分開始,定義圖表理解,概述問題表述,并討論研究圖表理解任務至關重要的基本構建塊,包括視覺編碼器、圖表到表格的翻譯、OCR模塊、文本編碼器和文本解碼器。在任務和數據集部分,我們探討了圖表理解內的各種任務,包括圖表問答、圖表字幕制作、圖表到表格轉換、圖表事實核查和圖表字幕事實錯誤校正。我們討論了評價指標和圖表及文本輸入的來源。然后檢視了建模策略,包括分類基礎和生成基礎的方法,以及增強圖表理解性能的工具增強技術。此外,我們討論了每項任務的最新性能并探討如何提升性能。在一個專門的部分中,我們討論了挑戰和未來方向,強調了諸如特定領域圖表、以及關于真實性、覆蓋范圍、相關性、穩健性、公平性和數據偏見的評價標準等問題。我們還深入探討了這些多模態基礎模型的組成部分,包括調整LM主干的必要性、多階段訓練過程的有效性,以及合成數據的潛在充分性。探索了與用戶或其他系統交互的代理導向設置。最后,我們討論了如自然圖像理解、表格理解和文檔理解等相關任務,提供了對視覺和文本數據理解更廣闊景觀的洞察。這篇綜述文章為自然語言處理、計算機視覺和數據分析領域的研究人員和實踐者提供了一個全面的資源,為利用大型基礎模型進行圖表理解的未來研究提供了寶貴的見解和方向。本文提及的研究以及新興的研究將持續更新于: //github.com/khuangaf/Awesome-Chart-Understanding。
在信息交流中圖表理解的重要性:在我們當代的多媒體信息世界里,數據的體量和復雜性持續膨脹,圖表在促進事實信息的連貫且富有洞察力的交流、傳達見解和做出決策中的角色至關重要。跨越學術界、科學研究、數字媒體和商業領域,圖表作為將原始數據轉換成可理解的視覺敘事的不可或缺的工具。它們能夠以簡潔直觀的格式封裝復雜的數據集,使決策者能夠迅速把握關鍵見解,輔助知情推理和戰略規劃。認識到圖表在現代信息傳播中的關鍵作用,計算社區持續對自動圖表理解表現出興趣,如自動圖表理解的大量研究所證明。特別是,關于圖表問答、圖表字幕制作、圖表到表格轉換、圖表事實核查和圖表字幕事實錯誤校正的工作奠定了探索圖表理解技術中圖表語義復雜性的基礎框架。
在大型基礎模型時代的圖表理解挑戰與機遇:傳統的圖表理解工作聚焦于微調方法,通常在領域可移植性和推理魯棒性方面遇到限制。令人興奮的是,大視覺-語言基礎模型(例如,GPT-4V、LLaVA)的出現引發了在自動推理能力上的范式轉變,催化了包括通過基于文本的提示實現強零/少次推理能力在內的各種多媒體認知任務的前所未有的進步。但在這一變革性創新的景觀中,圖表理解領域仍舊深陷固有的復雜性和巨大挑戰。圖表因其多面向的視覺表現和細膩的語義呈現出一系列獨特的障礙。從條形圖、折線圖到餅圖和散點圖,每種圖表類型都采用獨特的視覺語法來傳達數據關系,需要超越簡單的像素級模式識別的復雜解釋機制。圖表作為揭示如新興趨勢、挑戰假設的異常值和變量間可能不會從僅僅是表格形式的原始數據立即顯現的關系的深刻見解的渠道。它們使得可以進行跨數據點的比較分析,為簡潔地并置不同實體或時間段提供一個視覺平臺。此外,從簡單的數字關系到復雜的多維實體,底層數據集的內在多樣性為圖表理解任務增加了另一層復雜性。盡管面臨這些挑戰,自動圖表理解位于機遇與影響的交匯處,提供了一扇解鎖埋藏在視覺敘事像素中的可行動見解的大門。通過利用大型基礎模型的能力,圖表理解展示了在彌合原始視覺數據與有意義見解之間的差距方面的提升潛力,從而使技術可擴展地用于易于訪問的應用和增強人類認知。
盡管已有數項研究綜述了圖表理解研究的領域,但這些綜述往往在全面性或特定性上表現出一定的缺口。一些綜述沒有涵蓋在圖表理解研究中使用的現代數據集,以及最新的建模方法,如涉及預訓練的視覺-語言模型和大型基礎模型。相反,其他綜述主要集中在可視化方面(即數據轉換為圖表的過程),因此忽視了圖表解釋的細膩任務。本綜述旨在彌合這些缺口。我們首先在第2節定義自動圖表理解和問題表述的基本構建塊。我們討論了圖表理解的多面性,包括從解釋圖表視覺到分析底層數據的任務,以及概述了圖表理解的結構性建模組件,如視覺編碼器、OCR模塊、文本解碼器及其在將原始圖表圖像和文本查詢轉換為有意義見解中的角色。然后,在第3節,我們檢查了推動圖表理解研究的數據集和模型評估指標。本節分析了這些數據集的來源、多樣性和局限性,提供了對當前圖表理解數據景觀的見解。它還回顧了各種評估指標,強調了魯棒且細膩的評估方法的必要性。有了這些特征的見解,我們進一步提供了自動圖表理解的流行建模策略。第4節深入探討了圖表理解中的多樣化建模策略,包括從自然圖像理解、視覺-語言預訓練和基礎模型,如大型語言模型(LLMs)和大型視覺-語言模型(LVLMs)的調整。特別是,我們強調了視覺編碼器和文本解碼器在模型有效性上的選擇影響,并討論了工具增強在圖表理解中的作用。我們通過展示不同圖表理解任務上的最新性能以及我們如何改進它們來結束這一部分。最后,第5節討論了圖表理解中的挑戰和未來方向。我們強調了特定領域圖表的重要性、對全面評估指標的需求,以及對增強模型魯棒性和多功能性的敵對設置的潛力。我們還在第6節討論了圖表理解如何位于與自然圖像理解、表格理解和文檔理解相關工作的交匯處。本綜述文章通過確定未來研究的關鍵領域結束,如為復雜圖表開發模型、完善評估指標和多樣化數據集。我們不僅提供了對圖表理解當前狀態的深入概覽,而且為這一激動人心的數據可視化與機器學習交叉領域的未來進展奠定了基礎。
表格推理旨在根據提供的表格以及可選的表格文本描述,按照用戶需求生成相應的問題答案,有效提高獲取信息的效率。近來,使用大型語言模型(LLMs)已成為表格推理的主流方法,因為它不僅顯著降低了注釋成本,還超過了以往方法的性能。然而,現有研究仍然缺乏基于LLM的表格推理工作的總結。由于現有研究的缺乏,哪些技術可以在LLMs時代提高表格推理性能、LLMs為何在表格推理上表現出色、以及如何在未來增強表格推理能力的問題,仍然大部分未被探索。這一差距顯著限制了研究進展。為了回答上述問題并推進LLMs下的表格推理研究,我們呈現了這篇綜述,以分析現有研究,激發未來的工作。在這篇論文中,我們分析了在LLM時代用于提高表格推理性能的主流技術,以及LLMs相比于LLMs之前的模型在解決表格推理問題時的優勢。我們從現有方法的改進和實際應用的擴展兩個方向提供研究指導,以激發未來的研究。
大型語言模型(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的多智能體的潛力。