大型語言模型(LLMs)在理解和生成接近人類交流的文本方面展現出了非凡的能力。然而,它們的一個主要局限性在于訓練過程中顯著的計算需求,這源于它們廣泛的參數化。這一挑戰進一步被世界的動態性所加劇,需要頻繁更新LLMs以糾正過時的信息或整合新知識,從而確保它們的持續相關性。值得注意的是,許多應用要求在訓練后持續調整模型以解決缺陷或不良行為。對于即時模型修改的高效輕量級方法,人們越來越感興趣。為此,近年來知識編輯技術在LLMs領域蓬勃發展,旨在有效地修改LLMs在特定領域內的行為,同時保持對各種輸入的整體性能。在本文中,我們首先定義了知識編輯問題,然后提供了對前沿方法的全面調研。從教育和認知研究理論[1-3]中汲取靈感,我們提出了一個統一的分類標準,將知識編輯方法分為三組:依賴外部知識、將知識融入模型和編輯內在知識。此外,我們引入了一個新的基準測試,KnowEdit,用于對代表性知識編輯方法進行全面的實證評估。另外,我們提供了對知識位置的深入分析,這可以提供對LLMs內在知識結構的更深層次理解。最初作為高效引導LLMs的手段構想,我們希望從知識編輯研究中獲得的洞見能夠闡明LLMs的底層知識機制。為了促進未來的研究,我們發布了一個開源框架,EasyEdit1,將使從業者能夠高效靈活地實施LLMs的知識編輯。最后,我們討論了知識編輯的幾個潛在應用,并概述了其廣泛而深遠的影響。
知識是人類智能和文明的基本組成部分[4]。其系統結構賦予了我們通過符號手段來表示有形實體或勾畫原則,從而提供了促進復雜行為或任務表達的能力[5-7]。在我們的生活中,我們人類不斷積累了豐富的知識財富,并學會在不同背景下靈活應用它。對知識的性質以及我們獲取、保留和解釋它的過程的持續探索,一直吸引著科學家們,這不僅是一項技術追求,還是通向反映人類認知、交流和智能復雜性的旅程[8-12]。 近年來,大型語言模型(LLM)如GPT-4[13]在自然語言處理(NLP)方面展現出了卓越的能力,可以保留大量知識,可能超過了人類能力[14-30]。這一成就可以歸因于LLMs處理和壓縮大量數據的方式[31-34],潛在地形成了更簡潔、連貫和可解釋的底層生成過程模型,實質上創建了一種“世界模型”[35-37]。例如,戴等人[38]提出了知識神經元(KN)論,提出語言模型的功能類似于鍵值記憶。在這里,核心區域的多層感知器(MLP)權重[39]可能在從訓練語料庫中提取事實方面起到關鍵作用,暗示了LLMs內部知識存儲的更結構化和可檢索形式[40, 41]。
更深入的洞察來自LLMs理解和操作復雜戰略環境的能力,李等人[42]已經證明,針對象棋等棋盤游戲進行下一個標記預測的Transformer模型發展出了游戲狀態的明確表示。帕特爾和帕夫利克[43]揭示了LLMs可以跟蹤給定上下文中的主題的布爾狀態,并學習反映感知、符號概念的表示[35, 44-46]。這種雙重能力表明LLMs可以充當廣泛的知識庫[47-58],不僅存儲大量信息,還以可能反映人類認知過程的方式進行結構化。 然而,LLMs存在一些限制,如事實錯誤、可能生成有害內容和由于訓練截止日期而過時的知識[59-61]。為了解決這個問題,近年來見證了為LLMs專門定制的知識編輯技術的發展潮,這些技術允許對模型進行經濟有效的事后修改[67-69]。這項技術側重于特定領域的調整,而不會影響整體性能,并有助于了解LLMs如何表示和處理信息,這對于確保人工智能(AI)應用的公平性和安全性至關重要[70-74]。
本文首次嘗試全面研究LLMs的知識編輯發展和最新進展。我們首先介紹了Transformer的架構、LLMs中的知識存儲機制(§2.1)以及相關技術,包括參數有效微調、知識增強、繼續學習和機器遺忘(§2.2)。然后,我們介紹了初步內容(§3.1),正式描述了知識編輯問題(§3.2),并提出了一個新的分類法(§3.3),以基于教育和認知研究理論[1-3]提供關于知識編輯方法的統一視角。具體而言,我們將LLMs的知識編輯分類為:使用外部知識(§3.3.1)、將知識融入模型(§3.3.2)和編輯內在知識(§3.3.3)的方法。我們的分類標準總結如下:
? 使用外部知識。這種方法類似于人類認知過程中的識別階段,需要在相關上下文中暴露給新知識,就像人們首次接觸新信息一樣。例如,提供說明模型的事實更新的句子,以進行知識的初始識別。
? 將知識融入模型。這種方法密切類似于人類認知過程中的關聯階段,在其中形成了新知識與模型中現有知識之間的聯系。方法將輸出或中間輸出與學到的知識表示組合或替代。
?** 編輯內在知識**。這種知識編輯方法類似于人類認知過程中的掌握階段。它涉及將知識完全整合到其參數中,通過修改LLMs的權重并可靠地利用它們。
這篇論文隨后進行了廣泛而全面的實驗,涉及了12個自然語言處理(NLP)數據集。這些數據集經過精心設計,用于評估性能(§4)、可用性和底層機制,同時進行了深入的分析(§5),等等其他方面。我們研究的關鍵見解總結如下:
? 性能。我們構建了一個名為KnowEdit的新基準,并報告了針對LLMs的最新知識編輯方法的實證結果,提供了公平比較,展示了它們在知識插入、修改和刪除設置中的整體性能。 ? 可用性。我們闡述了知識編輯對一般任務和多任務知識編輯的影響,這意味著當代知識編輯方法在執行事實更新時對模型的認知能力和在不同知識領域之間的適應性幾乎沒有干擾。 ?** 機制**。我們觀察到在編輯后的LLMs中,存在一個或多個列的明顯關注點在值層中。此外,我們發現知識定位過程(例如,因果分析)傾向于僅針對與所討論實體相關的區域,而不是整個事實背景,這表明LLMs可能是通過回憶從預訓練語料庫中記憶的信息或通過多步推理過程來得出答案。此外,我們深入探討了知識編輯對LLMs可能導致意外后果的可能性,這是一個需要仔細考慮的方面。
最后,我們深入探討了知識編輯的多方面應用,從各種角度(§6)考察其潛力,包括高效的機器學習、人工智能生成內容(AIGC)、可信人工智能和人機交互(個性化代理)。此外,我們的討論還涵蓋了知識編輯技術的更廣泛影響,特別關注能源消耗和可解釋性等方面(§7)。這篇論文旨在成為LLMs領域進一步研究的催化劑,強調效率和創新。為了支持和鼓勵未來的研究,我們將使我們的工具、代碼、數據拆分和訓練模型檢查點公開可訪問。
大模型知識編輯
知識編輯對LLMs的初步內容 通過對各種數據集的大量訓練,LLMs積累了豐富的事實和常識信息,使這些模型成為虛擬知識存儲庫[47, 141]。這個豐富的知識庫已經在各種下游任務中得到有效利用,如許多研究所證明的那樣[142]。此外,王等人[143]已經展示了LLMs在自主構建高質量知識圖的潛力,無需人類監督。盡管LLMs在其當前狀態下作為新興知識庫表現出了潛力,但它們也存在一定的局限性。這些不足在實際應用中常表現為輸出的不準確或錯誤。理想的知識庫不僅應存儲大量信息,還應允許進行高效和有針對性的更新,以糾正這些錯誤并提高其準確性。認識到這一差距,我們的論文引入了知識編輯的概念,旨在實現對LLMs的快速和精確修改,使它們能夠生成更準確和相關的輸出。通過實施對LLMs的知識編輯,我們旨在提高LLMs的效用,使它們更接近成為普遍可靠和適應性強的知識存儲庫的理想目標。這一進展有望解決LLMs目前的缺陷,并釋放它們作為動態和準確知識庫的全部潛力,以供應用使用。
知識編輯的最初目標是修改LLM中的特定知識k,以提高LLM的一致性和性能,而不需要對整個模型進行精細調整。這種知識可以涉及許多領域和類型,例如事實[77]、常識[144]、情感[145]等等。知識編輯具有挑戰性,因為LLMs中的知識具有分布和糾纏的特性。
LLMs的發展已經達到了一個階段,其能力與人類的認知過程非常相似,特別是在學習和獲取知識方面。從人類學習過程中汲取靈感,我們可以類比地將這些概念應用到LLMs的編輯過程中,正如圖2所示。教育和認知研究[1-3]將人類的知識獲取劃分為三個明確的階段:識別、關聯和掌握。這些階段為概念化LLMs中的知識編輯方法提供了一個框架,我們在表2中列出了它們。
? 識別階段:在識別階段,模型需要在相關背景下接觸新知識,就像人們首次遇到新信息一樣(§3.3.1)。例如,提供描述事實更新的句子作為模型演示可以初步識別需要編輯的知識。
? 關聯階段:在關聯階段,新知識與模型中現有知識之間建立聯系(§3.3.2),類似于人類將新思想與先前概念相關聯。方法會將輸出或中間輸出h與已學知識表示hknow結合或替代。
? 掌握階段:掌握階段涉及模型完全掌握其參數中的知識并可靠利用它(§3.3.3),類似于人類的深層掌握。這種方法直接改變了模型的權重?W,模型可以處理問題,無需任何外部幫助或合并。
實驗結果
主要來說,SERAC在知識插入和修改任務中表現良好。它的編輯成功率優于其他編輯方法,且可移植性相對較好,因為新的反事實模型可以有效地學習編輯后的知識。與此同時,在不改變原始模型參數的情況下,SERAC除了ZsRE之外,在局部性能方面表現良好。然而,由于反事實模型通常比原始模型小,其生成能力不是很強,在WikiDatacounterfact、ZsRE和Convsent等任務中,我們可以發現SERAC的流暢性較其他編輯方法如MEND更低。與此同時,在ICE任務中,我們可以發現編輯成功率并不太好,這可能歸因于知識沖突問題。同時,IKE提出將演示文稿連接在一起作為提示,但它們需要較長的輸入長度,并限制了模型進行下游任務。 對于修改模型參數的方法,我們可以發現MEND在不同指標下在這些任務中表現良好。它的編輯成功率和可移植性良好,表現出良好的局部性和流暢性。然而,對于ROME和MEMIT,盡管編輯成功率更好,但它們的局部性不如MEND和其他類型的編輯方法。同時,它的可移植性令人不滿。對于局部微調方法FT-L,其編輯成功率不如ROME或MEMIT,但局部性和可移植性更好。此外,似乎FT-L在處理插入任務時更好,因為其在WikiDatarecent任務中的編輯成功率和可移植性優于ZsRE和WikiDatacounterfact。對于WikiBio任務,當前方法可以適當減輕幻覺并保持良好的流暢性。至于Convsent任務,我們可以發現當前方法不能很好地改變模型的情感,因為編輯成功率低于65%。SERAC,它可以完美地處理小型LMs [145],在7B模型上表現不佳。考慮到其在其他任務中在事實級別編輯方面的出色表現,MEND對這些任務的流暢性也較低。至于知識刪除任務Sanitation,旨在從LLMs中刪除知識,我們可以發現當前的知識編輯方法不能適當地處理這項任務。我們可以發現ROME可以避免模型提供目標知識,因為它的準確率達到了90%。但是,它會破壞模型對無關知識的性能,因為其局部性僅為55.61%。其他編輯方法也不能刪除與給定知識相關的模型。
我們還展示了在WikiDatarecent和WikiDatacounterfact的子指標中的平均性能結果,如我們在圖3中的先前評估部分中討論的那樣。在這里,我們可以發現MEND在推理集下表現更好,而AdaLoRA表現出良好的邏輯概括性能。
大型語言模型(LLMs)自從2022年11月ChatGPT發布以來,因其在廣泛的自然語言任務上的強大表現而受到了大量關注。LLMs通過在海量文本數據上訓練數十億模型參數獲得了通用語言理解和生成的能力,正如擴展定律[1]、[2]所預測的。盡管LLMs的研究領域非常新近,但它正在多個不同的方向上迅速發展。在本文中,我們回顧了一些最突出的LLMs,包括三個受歡迎的LLM家族(GPT, LLaMA, PaLM),并討論了它們的特點、貢獻和限制。我們還概述了構建和增強LLMs的技術。接著,我們調研了為LLM訓練、微調和評估準備的流行數據集,回顧了廣泛使用的LLM評估指標,并比較了幾種受歡迎的LLMs在一組代表性基準測試上的性能。最后,我們通過討論開放性挑戰和未來研究方向來結束本文。
//www.zhuanzhi.ai/paper/6211cbd80a246ae8e282d1b2ebf0ab23
1. 引言
大型語言模型(LLMs)自ChatGPT于2022年11月發布以來,因其在廣泛的自然語言任務上的強大表現而吸引了大量關注。LLMs通過在大量文本數據上訓練數十億參數來獲得通用語言理解和生成能力,這與擴展定律的預測相符。雖然LLMs的研究領域非常新,但它在許多不同方面迅速發展。在本文中,我們回顧了一些最突出的LLMs,包括三個受歡迎的LLM家族(GPT, LLaMA, PaLM),并討論了它們的特點、貢獻和限制。我們還概述了用于構建和增強LLMs的技術。然后,我們調查了為LLM訓練、微調和評估準備的流行數據集,回顧了廣泛使用的LLM評估指標,并比較了幾種受歡迎的LLMs在一組代表性基準測試上的性能。最后,我們通過討論開放性挑戰和未來研究方向來結束本文。
LLMs是基于神經網絡的大規模預訓練統計語言模型。LLMs的成功是數十年語言模型研究和開發積累的結果,可以分為四個波浪,這些波浪有不同的起點和速度:統計語言模型、神經語言模型、預訓練語言模型和LLMs。
統計語言模型(SLMs)將文本視為單詞序列,并估計文本的概率為其單詞概率的乘積。SLMs的主要形式是馬爾可夫鏈模型,即n-gram模型,它計算一個詞的概率,條件是其前n-1個詞。由于單詞概率是根據從文本語料庫收集的單詞和n-gram計數估計的,模型需要通過使用平滑處理數據稀疏性(即,為未見單詞或n-gram分配零概率)。 早期的神經語言模型(NLMs)通過將單詞映射到低維連續向量(嵌入向量)并使用神經網絡基于其前序單詞的嵌入向量聚合來預測下一個單詞,來處理數據稀疏性。NLMs學習的嵌入向量定義了一個隱藏空間,其中向量之間的語義相似性可以通過它們的距離輕松計算。 預訓練語言模型(PLMs)與早期NLMs不同,它們是任務不可知的。PLMs的訓練和推理遵循預訓練和微調范式,其中基于循環神經網絡或變換器的語言模型在Web規模的未標記文本語料庫上進行預訓練,然后使用少量(標記的)特定任務數據進行微調。 大型語言模型(LLMs)主要指基于變換器的神經語言模型,包含數十億到數千億參數,預訓練于大量文本數據。與PLMs相比,LLMs不僅在模型大小上要大得多,而且在語言理解和生成能力上也更強,更重要的是,它們展示了在小規模語言模型中不存在的新興能力。這些新興能力包括在推理時從提示中給出的少量示例學習新任務的上下文內學習、在不使用明確示例的情況下遵循新類型任務指令的指令跟隨,以及通過將復雜任務分解為中間推理步驟來解決復雜任務的多步驟推理。 通過高級使用和增強技術,LLMs可以部署為所謂的AI代理:感知環境、做出決策并采取行動的人工實體。以前的研究集中在為特定任務和領域開發代理。LLMs展示的新興能力使基于LLMs構建通用AI代理成為可能。盡管LLMs被訓練以在靜態設置中產生響應,但AI代理需要采取行動與動態環境互動。因此,基于LLM的代理通常需要增強LLMs,例如,從外部知識庫獲取更新的信息,驗證系統操作是否產生預期結果,以及應對事情不如預期進行時的情況等。我們將在第四節詳細討論基于LLM的代理。 本文的其余部分,第二節介紹LLMs的最新進展,重點是三個LLM家族(GPT,LLaMA和PaLM)及其他代表性模型。第三節討論了如何構建LLMs。第四節討論了如何使用LLMs,并為現實世界的應用增強LLMs。第五節和第六節回顧了評估LLMs的流行數據集和基準,總結了報告的LLM評估結果。最后,第七節通過總結挑戰和未來研究方向來結束本文。
II. 大型語言模型在這一部分,我們首先回顧早期的預訓練神經語言模型,因為它們是LLMs的基礎,然后我們將討論三個LLMs家族:GPT、LlaMA和PaLM。表I提供了這些模型及其特性的概覽。
大型語言模型(LLMs)主要指基于變換器的預訓練語言模型(PLMs),包含數十億到數百億的參數。與上述的PLMs相比,LLMs不僅在模型大小上要大得多,而且還展示了更強的語言理解和生成能力以及在小規模模型中不存在的新興能力。下面,我們將回顧三個LLM家族:GPT、LLaMA和PaLM,如圖8所示。
如何構建LLMs?
在本節中,我們首先回顧用于LLMs的流行架構,然后討論從數據準備、標記化,到預訓練、指令調整和對齊等一系列數據和建模技術。 一旦選擇了模型架構,訓練LLM涉及的主要步驟包括:數據準備(收集、清洗、去重等)、標記化、模型預訓練(以自監督學習的方式)、指令調整和對齊。我們將在下面的各個小節中解釋每一個步驟。這些步驟也在圖25中示意。
如何使用和增強LLMs?
一旦LLMs被訓練好,我們就可以使用它們為各種任務生成所需的輸出。LLMs可以通過基本的提示直接使用。然而,為了充分發揮它們的潛力或解決某些缺陷,我們需要通過一些外部手段來增強模型。在本節中,我們首先簡要概述LLMs的主要缺點,更深入地探討了幻覺問題。然后,我們描述了如何通過提示和一些增強方法不僅解決這些限制,還可以增強LLMs的能力,甚至將LLM轉變為具有與外部世界交互能力的全功能AI代理。
評估不同的LLMs也可以從不同的角度進行。例如,參數數量大幅減少的LLM與參數數量更多的LLM并不完全可比。從這個角度出發,我們也將LLMs分為四類:小型(等于或少于10億參數)、中型(在10億到100億之間)、大型(在100億到1000億之間)和超大型(超過1000億)。我們使用的另一種LLM分類是它們的主要用途。我們認為每個LLM要么是:基礎模型(預訓練的語言模型,沒有指令微調和聊天微調)、指令模型(只有指令微調的預訓練語言模型)、聊天模型(有指令和聊天微調的預訓練語言模型)。除了所有描述的分類之外,還需要另一個分類來區分原始模型和調整過的模型。原始模型是那些作為基礎模型或微調模型發布的。調整過的模型是那些抓住原始模型并用不同的數據集或甚至不同的訓練方法進行調整的模型。同樣值得注意的是,原始模型通常是基礎模型,已經在特定數據集上進行了微調,甚至是不同的方法。模型權重的可用性,不論許可如何,是我們分類中的另一個類別。權重公開可用(即使通過請求)的模型被標記為公共模型,而其他的則被標記為私有模型。表III展示了本文余下部分使用的所有這些定義和縮寫。圖43直觀地說明了這些。
結論
本文對過去幾年發展的LLMs進行了綜述。我們首先提供了早期預訓練語言模型(例如,BERT)的概覽,然后回顧了三個受歡迎的LLM家族(GPT、LLaMA、PaLM)和其他代表性LLMs。接著,我們調研了構建、增強和使用LLMs的方法和技術。我們回顧了流行的LLM數據集和基準,并比較了一組杰出模型在公共基準上的性能。最后,我們提出了開放性挑戰和未來研究方向。
大型語言模型(LLMs)的出現代表了自然語言處理(NLP)領域的一個顯著突破,為文本理解和生成方面的顯著進展做出了貢獻。然而,在這些進展中,值得注意的是,LLMs在上下文長度外推方面常常面臨限制。理解并擴展LLMs的上下文長度對于提高它們在各種NLP應用中的性能至關重要。在這份調查報告中,我們深入探討了為什么它是重要的多方面因素以及卓越技術可能為NLP應用帶來的潛在變革。我們研究了與擴展上下文長度相關的固有挑戰,并對研究人員采用的現有策略進行了有組織的概述。此外,我們討論了評估上下文擴展技術的復雜性,并強調了研究人員在該領域面臨的未解之謎。此外,我們探討了研究社區是否就評估標準達成共識,并確定了需要進一步協商的領域。這份全面的調查旨在為研究人員提供有價值的資源,引導他們了解上下文長度擴展技術的細微之處,并促進對這一不斷發展領域未來進展的討論。
大型語言模型(LLMs)的成功案例隨處可見,隨著現代LLMs的出現,它們顯著推動了眾多自然語言處理(NLP)挑戰的發展,達到了前所未有的高度。科學努力的自然進展是朝著新的和具有挑戰性的領域前進。在雄心勃勃的倡議中,一個值得注意的努力是擴展LLMs的可理解性以包括非常長的上下文。OpenAI提出了128頁上下文可理解性的概念,而Anthropic最近提出了超過200頁的更長上下文。然而,這些商業發布和公告中存在顯著的科學嚴謹不足。在這個背景下,引發了幾個問題:(a) 有哪些應用需要理解如此擴展的上下文?(b) 當LLMs理解更長的上下文時,我們如何有效地衡量應用程序的改進性能?(c) 雖然注意力機制在NLP中得到了廣泛研究,但是否需要設計一種專門針對更長上下文的新型注意力形式?
采用旨在處理長上下文的高級技術有望重塑語言模型的格局。改進的長上下文管理方法可以提高模型性能,從而實現更準確和細致入微的語言理解。這些進步有望增強模型捕捉長距離依賴性的能力,從而提高其在各種語言任務中的整體有效性,如:(接下來列舉具體的任務)。
? 文檔摘要:改進長上下文處理有助于更加連貫和簡明地進行文檔摘要,捕捉擴展文本段落中的關鍵信息,并提高生成摘要的質量。全面理解整個文檔,同時識別關鍵詞和主題,需要熟練管理廣泛的上下文范圍。在這種情況下使用較短的窗口將限制生成能力,可能導致關鍵細節的忽視。此外,使用較長的上下文窗口有助于減少歧義,因為它妨礙了沒有對文檔的復雜性進行全面把握的情況下利用微妙信息。這反過來使LLM能夠以更高的洞察力和準確性進行摘要過程的導航。
? 問答系統:考慮長上下文的能力提高了模型對復雜的問答關系的理解,從而產生更準確和上下文相關的回答。此外,LLMs在處理問答任務方面表現出更高的熟練度,因為解決代詞的共指問題與上下文實體密切相關。此外,在面對多輪對話時,擴展上下文窗口在促進連續對話中話題一致性跟蹤方面發揮了關鍵作用。
? 語言翻譯:在更大文本段落中改進上下文保留增強了模型提供準確翻譯的能力,特別是在上下文微妙性起關鍵作用的情況下。多義詞匯在翻譯領域(Falkum和Vicente,2015)中構成了重要障礙,而擴展上下文窗口是在上下文中定位這種詞匯的明顯輔助。此外,在面對技術術語時,LLMs在擁有擴展的輸入范圍時表現出更高的效能,尤其是在容納特定領域上下文微妙性方面。
? 指代消解:高級處理長上下文有助于解決擴展文本跨度內對實體的引用,從而提高了指代消解的準確性。指代消解過程涉及建立代詞與其對應的先行詞之間的聯系。LLMs中上下文窗口的擴展有助于更全面地評估信息,因此通過包括遠程引用和上下文相關的詳細信息來協助精確的代詞解析。
? 對話型人工智能:通過長上下文模型促進對擴展對話的更好跟蹤和理解,可以在對話型人工智能系統中產生更具上下文適應性的回應。擴展上下文窗口在為LLMs定位幽默、諷刺或微妙表達在對話環境中的作用方面起到關鍵作用。這對于生成符合正在進行的對話中的語氣和風格微妙之處的回應至關重要。
盡管持續的研究工作,仍然缺乏一份全面的涵蓋了用于外推上下文長度的技術范圍的概述。此外,LLMs的不斷發展已經引入了用于外推上下文長度的創新方面,這給現有的擴展方法帶來了挑戰,并強調了需要全面、多樣化的外推方法的必要性。 本文標志著LLMs上下文長度擴展技術的第一次全面調查。如圖1所示,我們深入研究了在微調期間可以實現的上下文長度擴展的現有工作。隨后,我們探討了LLMs上下文長度外推的潛在未來挑戰。 當代技術 已經引入了多種方法來增強LLMs的上下文能力。為了進行系統分類和增強清晰度,我們提出了一個分類法,如圖1所示。該分類法劃分為兩個主要類別:插值和外推技術。插值包括從不同的來源或上下文中融合信息以提高預測精度。這種技術適用于混合來自不同文本段落或包含不同上下文長度的不同模型的信息。相反,外推涉及對觀察數據的范圍之外的值進行預測,旨在擴展模型的理解能力超出其規定的訓練上下文長度。然后,還有用于進一步分類的零樣本(Rashid等人,2021)和微調技術。分類法中的其他小節將在隨后的部分中討論。
位置技術
與絕對位置嵌入不同,相對位置嵌入是基于鍵(keys)和查詢(queries)之間的差異制定的(Shaw等人,2018)。相對位置嵌入的一種普遍變體在Transformer-XL中引入(Dai等人,2019b;Yang等人,2019)。計算鍵和查詢之間的注意力得分已經改變,以集成與相對位置對應的可訓練嵌入。與絕對位置嵌入相比,配備相對位置嵌入的Transformer展示了能夠推廣到超出訓練中遇到的長度的序列的能力,表現出了外推的熟練性(Press等人,2021b)。與位置編碼相關的一個重復約束是無法擴展到訓練期間觀察到的上下文窗口之外。已經進行了一些工作來克服這些限制。
外推在這次探索中,我們將其分類并深入探討了兩種主要策略:外推和插值。外推技術旨在擴展模型對超出其最初觀察到的長度的序列的理解,采用創新策略來捕捉在擴展范圍內的依賴關系。另一方面,插值技術集中于改進模型在觀察范圍內平滑擴展對上下文的理解能力,從而提高了在最初遇到的上下文長度內的序列性能。以下部分詳細介紹了每個類別內的技術,提供了有關應對LLMs上下文長度動態特性所采用的多種方法的見解。
插值在上下文長度外推的背景下,插值技術專注于對模型進行微調或優化,以有效處理在訓練期間遇到的上下文長度范圍內的序列。重點是改進模型平滑擴展其對觀察范圍內上下文的理解能力,從而提高其在最初遇到的上下文長度內序列的性能。這些技術有助于更加微妙和改進的上下文理解,確保模型在訓練期間接觸到的上下文長度內表現最佳。
總結而言,本文全面審查了擴展LLMs上下文長度的多種技術和方法。所提供的分類法將這些方法分為兩種廣泛的策略 - 外推和插值。外推技術旨在擴展模型處理超出其最初訓練上下文長度的序列的能力。這包括利用專門組件,如位置編碼、注意機制和記憶增強來實現即時泛化的零樣本方法。還探討了微調策略,以使模型適應在預訓練期間未遇到的更長上下文。插值技術專注于優化模型,以在觀察訓練長度內平滑擴展上下文理解。專門的注意機制和提示壓縮有助于高效處理長上下文。微調插值適應模型以在序列開始超過訓練長度時實現優雅過渡。本調查提供了有關技術的多樣性的見解,涵蓋提示工程、注意機制、位置編碼和記憶增強等領域。它突出了模型體系結構和訓練方法的創新,旨在解決上下文長度的限制。廣泛的經驗分析證實了這些多樣化技術在基準測試和下游任務上的有效性。通過提供結構化分類法和對現有文獻的綜述,本文有助于更清晰地理解LLMs上下文長度擴展領域的不斷演變。討論確定了有前景的研究方向,強調了繼續努力開發能夠處理廣泛上下文信息的模型的重要性。隨著對長篇文本生成和對大型語料庫進行推理的興趣不斷增加,改進的上下文處理將在未來幾年繼續是一個活躍的研究領域。
大型基礎模型,包括大型語言模型(LLMs)、視覺轉換器(ViTs)、擴散以及基于LLM的多模態模型,正在徹底改變整個機器學習生命周期,從訓練到部署。然而,這些模型在多功能性和性能上的顯著進步,卻以硬件資源的巨大成本為代價。為了以可擴展且環境可持續的方式支持這些大型模型的發展,開發資源高效的策略已成為重點。本綜述深入探討了此類研究的關鍵重要性,考察了算法和系統層面的方面。它提供了對現有文獻的全面分析和寶貴見解,涵蓋了從前沿模型架構和訓練/服務算法到實際系統設計和實現的廣泛主題。此綜述的目標是提供對當前方法如何應對大型基礎模型所帶來的資源挑戰的全面理解,并可能激發此領域未來的突破。
//www.zhuanzhi.ai/paper/92a73bb1c3daa8cff7f79eaa9c9c5053
在人工智能(AI)這一快速發展的領域中,一場范式轉變正在進行中。我們正在見證從專門化、碎片化的深度學習模型向通用、一體適用的基礎模型的過渡。這些先進的AI系統能夠在開放世界的背景下操作,與開放詞匯和圖像像素進行交互,應對未見的AI任務,即零樣本能力。這些模型的例子包括:(1)大型語言模型(LLMs),如GPTs [39],能夠以提示的形式處理幾乎所有NLP任務;(2)視覺變換器模型(ViTs),如掩蔽自編碼器 [133],能夠處理各種下游視覺任務;(3)潛在擴散模型(LDMs),如穩定擴散 [310],能夠用任意基于文本的提示生成高質量圖像;(4)多模態模型,如CLIP [296]和ImageBind [116],將不同模態數據映射到同一潛在空間,并廣泛用作跨模態任務(如圖像檢索/搜索和視覺問題回答)的支撐。這種靈活性和通用性標志著AI早期時代的顯著轉變,為AI與世界交互設定了新的標準。 這些基礎模型的成功深深植根于它們的可擴展性:與前代模型不同,這些模型的準確性和泛化能力可以隨著更多數據或參數的增加而持續擴展,而無需改變底層簡單的算法和架構。一個令人印象深刻的證據是擴展定律 [166]:它描述了基于變換器的模型性能如何可以預測地隨模型規模和數據量的增加而改善;直到今天,這一定律依然成立。這種可擴展性不僅是模型大小的問題;它還擴展到它們處理日益復雜任務的能力,使它們成為走向人工通用智能(AGI)之路的基石。
然而,可擴展性的代價是巨大的資源需求。基礎模型的本質是對訓練和部署的資源極度饑渴。這些資源不僅包括計算處理器,如GPU和TPU,還包括內存、能源和網絡帶寬。例如,LLaMa-2-70B的預訓練需要1.7×百萬GPU小時,并消耗2.5×1012焦耳的能量。估計的總排放量是291噸二氧化碳當量。超出訓練階段,數據處理、實驗和推理階段的電力消耗相當甚至更多,據Meta AI [388]稱。最近的一項分析 [77]揭示,為了滿足當前AI能力和采用的持續趨勢,英偉達需要在2027年前每年交付150萬AI服務器單元。這些服務器滿負荷運行將至少消耗85.4太瓦時的電力——超過許多國家,如新西蘭和奧地利,一整年的用電量,如圖1所示。隨著基礎模型在規模和復雜性上的持續增長,它們的資源需求通常呈指數級增長,這在它們的發展和部署中構成了重大挑戰。 大型基礎模型巨大的資源足跡也阻礙了其民主化。截至2023年底,只有少數主要參與者有能力訓練和部署最先進的基礎模型,從而對公眾擁有強大的控制權,有可能以他們偏好的方式操縱公眾。與許多輕量級DNN不同,這些模型是在云端而非設備上提供服務的 [403, 440];這使得數據隱私保護幾乎不可能。盡管最近,智能手機廠商一直在吹噓在本地運行大型基礎模型,一些先驅引擎也被開發出來用于設備上的LLMs [114, 11, 10],但展示的模型限于相對較小的規模(例如<10B),且尚未在現實世界中部署。 因此,大量研究致力于提高這些基礎模型的效率。這些努力涵蓋了從優化算法到系統級創新的廣泛方法,專注于在不損害性能的情況下減少這些模型的資源足跡。本綜述旨在深入探討這些研究工作,探索使基礎模型更高效的多樣化策略。我們將審視算法效率、系統優化、數據管理技術的進步,以及開發較少資源密集的新型架構。綜述還涵蓋了從云到邊緣和設備的范圍,大型基礎模型在這些領域也獲得了巨大關注。通過這一探索,我們旨在提供對基礎模型領域中資源高效算法和系統的當前狀態和未來方向的全面理解。 范圍和理念。本綜述的范圍主要由以下幾個方面定義。(i) 我們只調查算法和系統創新;我們排除了大量在硬件設計方面的工作,這同樣重要,但已被很好地總結 [174]。(ii) 本綜述中的資源定義主要限于物理資源,包括計算、內存、存儲、帶寬等;我們排除了可以被視為資源的訓練數據(標簽)和隱私。(iii) 我們主要調查在頂級計算機科學會議上發表的論文,即CSRankings包含的論文。我們還手動挑選了arXiv上相關且可能產生高影響的論文。(iv) 我們主要調查2020年之后發表的論文,因為AI的創新正在快速進行,舊知識和方法經常被推翻。 盡管如此,我們計劃將來擴展本綜述的范圍;我們也將積極維護和更新它。 組織。圖2展示了本綜述的組織結構。 全開源。本綜述的所有材料都可在以下網址免費獲取: https:github.com/UbiquitousLearning/Efficient_Foundation_Model_Survey
模型架構是資源高效的大型基礎模型(FMs)的核心,包括注意力機制、解碼器及其替代方案。主要目標是降低計算和內存開銷。圖8直觀地展示了這種資源高效架構的分類,考慮到了大型基礎模型的標準核心模塊和傳統分類。資源高效架構由高效注意力機制、動態神經網絡、特定于擴散的優化和特定于視覺變換器(ViT)的優化構成。
本節重點介紹在算法層面上的資源高效大型基礎模型(FMs)技術。與傳統的深度神經網絡(DNNs)相比,大型基礎模型表現出新的特征,如其龐大的參數集和自回歸推理。這種差異導致了大量資源高效算法的出現,這些算法根據基礎模型的生命周期進行分類:預訓練、微調、服務算法以及模型壓縮,如圖11所示。
本綜述為資源高效的大型基礎模型的最新文獻提供了全面、系統的概覽。我們首先介紹了流行基礎模型的初步背景和成本分析,包括大型、視覺和多模態模型。然后我們深入探討了模型架構、算法和系統設計,以實現更高效的大型基礎模型生命周期。未來,這一領域的研究將繼續(甚至更加)重要,因為擴展定律保證了更強大的AI與越來越大的模型的光明未來。這種研究也高度跨學科,涉及多個計算機科學社區,如機器學習、NLP/CV/語音、網絡、云計算、邊緣計算等。
資源高效的大型基礎模型研究機會極大,尤其值得關注的是: (1)云-邊緣混合部署。為了實現無處不在、隱私保護、高可用性的通用智能,許多基礎模型最終將沉入靠近用戶的設備 [406, 403, 404, 441]。已經進行了初步努力,將LLaMA-7B帶到智能手機和個人電腦上。關鍵應用包括個人助手/代理 [219, 383]、多模態信息檢索 [198] 等。未來,基礎模型在設備上運行的規模和速度將成為硬件供應商商業模式中的關鍵競爭力。 (2)利用模型稀疏性。隨著模型變大,對于給定任務的模型激活比率會變小。最近的文獻 [244] 發現,即使是密集訓練的非MoE模型也表現出運行時激活稀疏性,可以利用這一點來減少推理時間和內存占用。我們認為,利用模型和激活稀疏性將是實現可持續模型規模擴展的有前景的方向。可能會出現比MoE更高效的稀疏架構。 (3)大型基礎模型作為一種服務。在云端和設備上,大型基礎模型正在統一DNN生態系統 [427]。最終,它將成為像今天的Web和數據庫一樣的通用服務。一方面,它為高度硬件-算法協同設計和優化提供了機會;同時,它也在系統和基礎設施設計方面提出了新的挑戰,如調度、負載均衡和安全性&隔離。 (4)作為整體系統優化的代理。未來,尤其是LLMs將作為建立代理的關鍵構建塊 [219, 383]。其效率不應被視為獨立的LLM服務;相反,算法和系統設計需要適應特定的代理工作流。例如,一個代理系統可能需要多個基礎模型協同工作,在這個過程中存在內在的邏輯依賴性。在這個過程中,選擇適合每個任務的適當基礎模型,并在給定的硬件資源集上調度它們以最大化代理性能的設計空間是巨大的。 (5)實用的隱私保護FM。隨著用戶數據上傳到云端進行FM處理的數量持續增加,隱私問題的嚴重性相應升級。現有方法包括聯邦學習、同態加密和解糾纏學習。盡管在理論上是健全的,但這些方法仍然面臨顯著的性能挑戰,阻礙了它們的大規模野外部署。一個有前景的方向涉及為大型FMs專門設計的創新隱私保護技術的開發,或現有方法的改進,以有效地平衡隱私與性能。 (6)理解擴展定律。擴展定律推動了大型FMs的成功,同時它似乎也是輕量級FMs的一個基本限制 - 小規模模型不太可能比更大的模型具有更高級別的智能。理解擴展定律背后的機制和理論將有助于解釋(并希望打破)這一限制。同時,設計具有更好甚至最優擴展性能的新型模型架構將是一個值得廣泛研究的方向。
大型語言模型(LLMs)的快速發展已成為轉型各個領域、重塑人工通用智能領域風貌的驅動力。然而,這些模型不斷增長的計算和存儲需求提出了重大挑戰,阻礙了學術研究和實際應用的進展。為了解決這些問題,已經開發了包括算法和硬件解決方案在內的多種方法,以提高LLMs的效率。本綜述提供了一份全面回顧,專注于旨在提升LLM效率的算法進步。與通常僅關注特定領域,如訓練或模型壓縮的其他綜述不同,本文審視了對LLMs端到端算法發展至關重要的多方面效率維度。具體而言,它涵蓋了與效率相關的各種主題,包括規模定律、數據利用、架構創新、訓練和微調策略,以及推理技術。本文旨在為研究人員和實踐者提供一個寶貴的資源,為這一關鍵研究領域的未來創新奠定基礎。
//github.com/tding1/Efficient-LLM-Survey
大型語言模型(LLMs)[28, 111, 236, 302, 329],以其數十甚至數百億參數的龐大規模[13, 24, 54]為特征,在人工智能領域已成為一個核心焦點。這些模型,如ChatGPT [1]和Claude [2]的應用所示,已在各種通用任務中展現出令人印象深刻的能力,例如文本摘要[303]、翻譯[100]、問答[219],甚至基礎編程[34],這在很大程度上歸功于它們在自然語言理解方面的專長。雖然驅動它們卓越性能的確切機制仍是一個謎[341],但普遍認為它們的大規模賦予了它們新出現的能力[280],這在小型模型中未被觀察到,并被視為實現人工通用智能(AGI)[5, 25]的關鍵步驟。盡管LLMs的大規模對于它們的能力至關重要(見圖1),但它們也存在顯著的缺點:由于高計算成本和內存要求[267, 295, 339, 342],它們的部署受到嚴重限制。訓練這些模型所需的資源是巨大的,這在資源分配和模型設計方面造成了挑戰。例如,探索不同架構或策略的成本變得過高[329]。此外,它們的大規模使它們不適合資源受限的環境,如邊緣設備,從而縮小了應用范圍[7]。這種計算負擔也將LLMs的發展限制在資源豐富的大公司[24, 196, 210]。許多關鍵細節,如數據收集管道和訓練方法,仍然是專有的,這阻礙了學術研究并為小公司帶來挑戰。此外,訓練這些模型的環境影響不容忽視,引發了關于碳排放和倫理考慮的擔憂[268, 270, 285]。因此,提高LLMs的效率正受到越來越多的重視。出于對更高效LLMs的迫切需求,本綜述旨在提供對該主題的全面和最新理解。
在本文中,“效率”定義為在不影響模型性能的情況下優化計算和內存資源。采用整體方法,我們探索了對LLMs端到端發展至關重要的多個效率維度。這些維度涵蓋了數據利用、架構設計、訓練和微調策略以及推理技術,基本上涵蓋了從算法和軟件角度的模型開發整個流程。盡管已有一些綜述專注于LLMs效率的特定方面,如數據[316]、訓練[241, 333, 342]、微調[323]或推理[295, 339],但它們通常無法提供全面視圖。其他作品,如[267],已為自然語言處理(NLP)的各種效率方面提供了寶貴的見解,但LLM領域的快速發展要求進行更新和全面的回顧。與此相反,我們的論文旨在提供關鍵方法論和技術的更全面和當前的概述,這些方法論和技術有助于高效LLMs的發展。為了提供對LLM效率多方面的全面理解,本綜述的其余部分從算法角度組織如下:
? 第2節背景介紹了LLMs的核心概念,并概述了評估其效率相關的評價指標。 ? 第3節預算效率考察了像規模定律這樣的預測方法在優化給定資源約束下LLMs性能的作用。 ? 第4節數據效率關注于優化數據利用的技術,從而在不影響性能的情況下減少資源消耗。 ? 第5節 架構效率回顧了創新的架構設計,提供了對架構如何影響效率的詳細考察。 ? 第6節 訓練和微調效率討論了從頭開始高效訓練LLMs和針對特定下游任務微調預訓練模型的策略。 ? 第7節 推理效率探索了旨在加速推理速度和減少內存占用的模型壓縮技術領域。 ? 第8節 結論總結了本綜述的主要發現,并討論了它們對高效LLM發展的更廣泛影響。LLM效率的這些不同維度的概念性概述在圖2中呈現。
預算效率:縮放定律
大型語言模型(LLM)的性能受到各種因素的顯著影響,包括訓練數據、模型大小、體系結構、計算資源和訓練方法本身。訓練LLM需要大量的資源,使得用于優化這些因素的傳統試錯方法既不切實際又耗費資源。因此,在訓練之前預測LLM的表現不僅是有益的,而且通常是必要的。這種預測方法可以更有效地規劃和分配資源。例如,考慮一個計算資源有限的場景:我們如何最優地平衡模型大小和訓練數據,以實現最小的目標函數值? 事先回答這些問題可以顯著提高LLM訓練過程的效率和效果。最近對大型語言模型(LLM)性能預測的研究主要集中在理解尺度規律。這條規律描述了LLM性能如何受到模型架構、神經模型大小、訓練計算能力和可用數據等因素的影響。標度律的概念根植于預測模型泛化的統計力學方法中,有著悠久的歷史,可以追溯到20世紀90年代初[11,18,95,235]。最近,在現代深度學習模型的背景下,其相關性被重新激發[10,26,101 - 103,106,124,188,221,248,260,262]。本節將深入研究應用于LLM的縮放律的最新進展和見解,強調這些模型在不同條件下的演變和表現。
數據效率
大規模模型對數據無止境的需求極大地推動了數據收集和準備行業的發展。然而,這種對大量數據集的依賴,往往是多年積累的,為模型訓練帶來了巨大的挑戰。這不僅包括訓練時間延長,而且由于大量耗電和需要更大的數據存儲容量而導致成本上升。因此,找到在訓練和驗證階段更有效地使用數據的方法是至關重要的。在本節中,我們將深入探討提高數據效率的策略和考慮因素,解決如何最大限度地利用數據,同時降低相關成本和資源需求。 架構效率
最近,Transformer家族[269]已經成為語言建模的主要架構,因為它比RNN等遞歸方法具有很強的并行性[185]。然而,其巨大的計算成本使得整體架構在處理和處理長輸入時效率低下。特別是,Transformer架構中的一個關鍵操作是注意力機制。它通常需要關于序列長度的二次復雜度來進行計算,因此在處理長文本輸入時非常慢[99]。減少注意力操作所需的計算[261]成為提高架構效率的直接解決方案,對訓練和推理階段都有好處。為此,研究人員正在探索更有效的注意力[51,59,61]以及不同類型的位置編碼[48,49,127,159,201,207,224,250]的解決方案,或利用模型內固有的稀疏性來避免在稀疏建模的前向計算期間激活所有參數[72,243]。此外,最近的一些工作直接用替代架構取代了注意力機制,將無注意力方法[62,199,205,254]引入到fold中。在本節中,我們將介紹這四個主要方向及其最新進展。 訓練微調效率
LLM訓練和調優技術的發展必須解決數據和模型規模不斷增加所帶來的挑戰。本節深入探討了對LLM的可擴展訓練和調優都至關重要的效率方面,強調了重點關注的關鍵領域。記憶效率。大型transformer模型的參數數量快速增長,每兩年增加約410倍,對內存提出了重大挑戰。這種增長超過了GPU內存的擴展,在同一時期內,GPU內存僅增長了5倍(從16GB到80GB)。訓練過程中的實際內存消耗遠遠超過原始參數數量,包括模型狀態(參數、梯度、優化器狀態)以及剩余狀態(中間激活、臨時緩沖區、內存碎片)。考慮到這些約束,單個GPU設置不足以處理整個模型,需要分布式訓練方法,如張量并行(TP)和流水線并行(PP),以有效地進行內存管理。 計算效率。雖然分布式訓練提供了加快大型模型訓練的潛在好處,但它也引入了影響可擴展性的復雜性。一個值得注意的觀察是,在多GPU訓練中,每個GPU的FLOPs數量減少,與單GPU設置相比。這種減少源于在有效利用日益增多的計算資源方面所面臨的挑戰。因此,在訓練過程中,可擴展性成為提高計算效率的關鍵元素,尤其是在多GPU環境中。通信效率。這方面涉及到在訓練過程中不同設備或層之間的參數和梯度交換。技術如全規約(all-reduce)被用于在數據并行訓練的反向傳播結束時跨所有設備同步梯度。目標是在如廣播、規約、全規約和全集合等集體操作期間盡量減少通信數據的體積。簡而言之,訓練和調優LLM是一個復雜的挑戰,需要全面的方法。考慮所有這些效率方面的綜合策略對于有效和可擴展的LLM訓練和調優至關重要。后續部分將提供這些方面的詳細探討。 推斷效率
大型語言模型(LLM)中龐大的參數數量為在云服務和資源有限的設備上部署帶來了重大挑戰,導致推理支持的維護成本很高。因此,加速推理已成為工業界和學術界共同關注的迫切問題。一種常見的方法是構建緊湊的模型,使整個模型達到具有競爭力的性能,這些方法大致可以分為四類:剪枝、知識蒸餾、量化和低秩分解。剪枝技術專注于識別和消除深度神經網絡(DNN)操作符中的冗余,從而創建更精簡的版本。知識蒸餾涉及將見解從更大、更復雜的"教師"模型轉移到更小、更有效的"學生"模型,幫助在簡化模型中保持高性能。量化通過使用更少的比特在llm中表示浮點數來減少計算負荷和存儲需求。低秩分解通過低秩矩陣逼近LLMs中的權重矩陣,進一步節約計算資源。值得注意的是,其中一些方法需要專門的計算庫和硬件來實現實際的資源節省和加速。 結論
總而言之,大型語言模型(LLM)的發展標志著人工通用智能領域的一個重要里程碑,在各個領域帶來了變革性的變化。然而,這些模型的快速擴展在計算需求和內存需求方面帶來了重大挑戰,為學術研究和實際部署創造了障礙。本綜述對旨在提高llm效率的算法創新進行了全面的概述,捕捉了主要截至2023年9月的研究進展。現有的綜述往往側重于孤立的方面,如訓練或模型壓縮,本文超越了這些調查的范圍,深入研究了效率的多個維度,這些對LLM的整體算法開發至關重要。它已經跨越了一系列與效率相關的主題,包括縮放規律、數據利用、架構設計,以及訓練、調優和推理策略。這里提出的見解和分析旨在為該領域的研究人員和從業人員提供有價值的總結。通過奠定現有知識和方法的堅實基礎,為LLM效率這一關鍵研究領域未來的突破和持續創新奠定了基礎。
自從OpenAI開發的強大AI聊天機器人ChatGPT推出以來,大型語言模型(LLMs)在學術界和工業界均取得了顯著進步,為許多領域帶來了根本性的工程范式轉變。雖然LLMs強大,但正確利用其力量也至關重要,其中“提示”扮演著核心角色。然而,蓬勃發展的LLMs本身,包括像ChatGPT這樣的優秀API,也有幾個固有的局限性:1)訓練數據的時間滯后性,以及2)缺乏執行外部動作的物理能力。最近,我們觀察到了使用基于提示的工具來更好地利用LLMs的下游任務的趨勢,但由于這一領域的快速發展,系統性的文獻和標準化術語仍然缺乏。因此,在這項工作中,我們綜述了相關的提示工具,并推廣了“提示框架”(PF)的概念,即用于管理、簡化和促進與大型語言模型交互的框架。我們將PF的生命周期定義為一個分層結構,從下到上依次為**:數據層級、基礎層級、執行層級和服務層級**。我們還系統地描述了新興PF領域的整體格局,并討論了潛在的未來研究和挑戰。為了持續跟蹤這一領域的發展,我們維護了一個存儲庫//github.com/lxx0628/Prompting-Framework-Survey,這可以成為該領域學術界和工業界的有用資源共享平臺。
自從引起廣泛社會關注的ChatGPT發布以來,大型語言模型(LLMs)的研究在學術界和工業界已全面展開,產生了許多令人驚嘆的產品,如PaLM [27]、GPT-4 [82]和LLaMA [108, 109]。這些LLMs在對話、文本翻譯和情感分析[2, 11, 25, 54]等方面顯示出接近甚至超越人類水平的卓越能力,可能會為許多領域帶來根本性的變革[18, 30, 38, 61, 65, 76, 123, 137]。語言模型的發展到目前的繁榮狀態經歷了一系列演變過程:全監督學習 → NLP的深度學習 → “預訓練,微調” → “預訓練,提示,預測”[60, 135]。最初,語言模型(LMs)應用了全監督學習范式,其中特定任務的模型僅在目標任務數據集上訓練,嚴重依賴特征工程[53, 80, 98]。隨后,隨著深度學習的興起,出現了NLP的神經網絡,實現了特征學習和模型訓練的集成,即設計用于自動學習數據特征的網絡架構[7, 8, 29, 72]。后來,隨著LMs的需求增加并適應越來越多的NLP任務,“預訓練,微調”范式被引入。在此范式中,具有固定架構的模型經過預訓練來預測觀察到的文本數據的概率。然后引入額外的參數,并使用特定于任務的目標函數對模型進行微調,以將預訓練的LM適應于各種下游任務[55, 100, 111, 128]。然后是LLMs的時代,趨勢轉向下游任務主動適應預訓練模型。“預訓練,提示,預測”的范式成為主流,提示成功地賦予LLMs輕松應對各種復雜和多樣化任務的能力。通過提供一套合適的提示,一個完全基于上下文預測訓練的單一語言模型可以被用來解決各種任務[13, 95]。因此,提示的質量和適當性在任務解決中越來越起到關鍵作用[51, 120, 136]。學術界和工業界對與提示相關的研究都表現出日益增長的關注和興趣。
眾多研究表明,使用合適的方法發揮LLMs的潛力是必要的[116, 120, 129, 136]。2023年3月,OpenAI正式推出了一個重大創新,稱為ChatGPT插件,它使ChatGPT能夠使用外部工具,反映了增強LLMs與外部世界交互能力的日益增長的需求。當類比于人類時,LLMs可以被視為智能系統的大腦,負責感知指令并生成和控制一系列動作。因此,通過將它們固有的知識和能力與搜索引擎、計算工具、視覺模型等外部工具結合,LLMs可以執行廣泛的現實世界任務,包括實時數據檢索、基于瀏覽器的信息檢索、數據庫訪問、精確的數學計算、復雜的語言生成和圖像分析,從而在教育、醫療保健、社交媒體、金融和自然科學等多個領域展示其潛力[64, 68, 78, 93]。因此,開發促進交互過程優化和簡化的工具變得至關重要。在本文中,我們將這些前瞻性工具統稱為一個新穎的概念:“提示框架”(PF)。
自Harrison Chase于2022年10月發布開源項目LangChain [20]以來,它已在GitHub上吸引了超過60,000名支持者,成為迄今為止最受歡迎的提示框架之一。LangChain是一個通過可組合性構建帶有LLMs的應用程序的框架。除了LangChain外,我們的調查還涵蓋了各種最先進的提示框架,包括1) 可以被認為是LLMs的操作系統的Semantic Kernel [112]、LlamaIndex [59]和OpenDAN [83],以及2) LLMs的輸出限制器,如Guidance [69]、TypeChat [70]、NeMo-Guardrails [79],和3) 與LLMs交互的語言,如LMQL [10]、gpt-jargon [14]、SudoLang [40]。在提到提示框架時,由于該領域發展迅速,難以追蹤并了解分布在GitHub、預印本論文、Twitter以及頂級會議/期刊上的眾多方法,這帶來了一個顯著的挑戰。此外,具有不同重點的眾多提示框架方法的豐富性使得系統性地分類和比較它們變得具有挑戰性,阻礙了為特定需求選擇最合適產品的過程。因此,目前缺乏但迫切需要系統性的文獻和標準化術語來介紹和比較這些對于更好利用LLMs能力至關重要的工具。
在這份綜述中,我們介紹了‘提示框架’的概念,并對現有的提示框架進行了全面和系統的調查。我們為它們提供分類、比較分析和評估標準,評估它們的適用性和局限性,并為其有效利用于實際LLM啟用的任務提供實用建議。此外,我們還討論了一些超出提示框架范圍但與提示相關的有用工具包。我們還為未來的研究提出了建議。簡而言之,我們作出了以下主要貢獻:
? 我們介紹了在學術界和工業界引起關注的提示框架概念,并提供了系統化和標準化的定義和術語。 ? 我們將現有的提示框架分為3類,進行了全面的比較,探討了它們在不同維度的優勢和局限性,并提供了實用建議。基于研究發現,我們展示了提示框架的未來方向,并廣泛探索了其在更多領域的潛在發展和挑戰。 ?** 我們進行了廣泛的研究,超出了提示框架的范圍,包括與LLMs的提示和提示框架的任務執行相關的作品和工具**。我們將它們匯集在我們的GitHub存儲庫中,以便研究人員訪問和探索進一步的研究。 文章的其余部分安排如下。
第2部分介紹了提示框架的背景知識,包括LLMs的特性和提示框架的必要性。第3部分描述了調查,包括方法論和結果。第4部分提供了提示框架的系統性定義和分類。第6部分展示了各種提示框架在不同維度上的比較和挑戰。第5部分回顧了與LLMs相關但超出提示框架范圍的基于提示的工作。第7部分展示了提示框架的未來方向以及在更多領域的潛在發展和挑戰。
總述
在本節中,我們提供了對我們調查過程的全面描述。LLMs及相關技術領域目前正在經歷一個前所未有的快速發展階段。因此,相關研究和成就的景觀以其分散的性質為特征。許多貢獻尚未在傳統學術期刊或會議上正式發表。相反,它們通常在像arXiv這樣的平臺上找到,或作為GitHub上可用的開源工具包。一些值得注意的發展主要存在于Twitter、GitHub和Discord等平臺上的在線社區中,缺乏正式文檔。此外,該領域缺乏全面的綜述文獻,導致建立的學術術語和官方定義的稀缺。
我們對提示框架的探索始于對LangChain的深入調研,該框架被認為是該領域最有影響力的框架之一。我們首先深入研究LangChain的官方描述,該描述強調了“通過可組合性用大型語言模型(LLMs)構建應用程序”的概念。我們研究的主要階段旨在建立對這些框架的術語和概念的基礎性理解。我們仔細調研并分析了諸如“框架”、“工具”、“代理”、“大型模型”、“提示”和“工具包”等術語。這些關鍵詞被深思熟慮地選擇,以確保全面的視角,使我們能夠包括廣泛的相關材料和資源。
在我們對全面調研的追求中,我們在不同平臺上進行了多輪關鍵詞搜索。這包括在GitHub等著名存儲庫和arXiv等學術數據庫上進行徹底的搜索。此外,我們擴展了我們的探索范圍,以涵蓋人工智能(AI)和自然語言處理(NLP)領域內的知名會議和期刊。這些額外的搜索確保我們不僅捕捉到最新的發展,而且還能訪問具有重要性的學術和研究導向的材料。在整個研究過程中,我們的重點是識別、收集和分析相關材料。總的來說,我們積累了大量的作品,包括GitHub上可用的49個開源項目和大量的學術論文。這種方法論的方法和對資源的嚴格調研是我們對提示框架研究的基石,促進了全面和全方位的探索。
隨后,我們的調查深入進行了對49項作品的細致和系統性評估。這項全面的評估始于對它們的技術文檔進行詳盡的調研,在此過程中,我們仔細調研了每項作品的概念基礎、功能實現和關鍵代碼段。我們著手進行深入探索,配置并實際使用這些工具進行科學和方法論的分析,評估它們的性能、效率和適用性。具體來說,我們進行了廣泛的測試和研究,包括運行技術文檔中提供的所有測試用例,并手動創建更多詳細的測試用例,以更好地反映現實世界的要求。遵循軟件測試的基本程序,我們首先進行每個框架內各個模塊的單元測試。隨后,我們進行模塊的性能測試,這些模塊根據要求和標準在復雜的應用程序中組裝起來,從而完成集成測試。最后,我們進行全面的系統測試,以驗證和評估這些任務中聲稱的能力,同時也組織與用戶體驗相關的方面。 最后,這種多方位的調研使我們能夠識別每項作品的優點和局限性,為我們提供了對它們的能力和與我們調查的總體目標的相關性的細致理解。經過這種嚴格的評估,我們審慎地選擇了約30項作品,這些作品不僅符合提示框架的概念先決條件,而且在該領域中脫穎而出。這些選定的作品被選入我們的調查中,以確保全面和具有代表性地描繪不斷涌現且不斷發展的提示框架景觀,這在很大程度上塑造了個人與LLMs之間的互動。
隨著ChatGPT的成功普及,基于Transformer的大型語言模型(LLMs)為通往人工通用智能(AGI)鋪平了一條革命性的道路,并已在諸多領域中得到應用,比如作為知識庫、人機界面和動態代理。然而,一個普遍的限制存在:許多當前的LLMs,由于資源的限制,主要是在較短的文本上進行預訓練的,這使得它們在處理更長上下文的提示時效果不佳,而這種情況在現實世界中是常見的。在本文中,我們提供了一份綜述,專注于基于Transformer的LLMs模型架構的進步,以優化從預訓練到推理的所有階段的長上下文處理能力。首先,我們描述并分析了當前基于Transformer模型處理長上下文輸入和輸出的問題。然后,我們主要提供了一個全面的分類,以解決這些問題的Transformer升級架構的領域。之后,我們提供了對長上下文LLMs廣泛使用的評估必需品的調查,包括數據集、度量標準和基線模型,以及一些驚人的優化工具包,如庫、系統和編譯器,以提高LLMs在不同階段的效率和效果。最后,我們進一步討論了這一領域的主要挑戰和未來研究的潛在途徑。此外,我們建立了一個存儲庫,在 //github.com/Strivin0311/long-llms-learning 處實時更新相關文獻。
近年來,借助深度學習技術[93],特別是基于Transformer的模型(如BERT [45]、GPT [134, 135, 17]及其變體[97, 105, 137])的興起,自然語言處理(NLP)已經取得了顯著進步,使機器能夠理解和生成人類語言[170, 98],從而在自然語言理解(NLU)的眾多任務中引起了革命,例如情感分析[206],自然語言生成(NLG)如文檔摘要[51],以及其他領域如計算機視覺[81]和自動駕駛[67]。此外,在ChatGPT [121]、PaLM [36]、GPT4 [123, 122]等的推動下,基于Transformer的大型語言模型(LLMs),其規模擴大到1B~100B參數以激發新能力[183],已顯示出通向人工通用智能(AGI)[18]的新興路線,并迅速被應用于眾多人機交互應用中,如聊天機器人[146, 95]、編程助手[184, 196]和教育導師[1, 117]。 Transformer是一個精密的深度神經網絡模型,它結合了許多偉大的先前設計[8, 65, 7],并包含多種新穎的組件,最初是為了解決機器翻譯中的序列到序列語言建模問題[175]。當代的LLMs大多基于Transformer架構的基礎上,采用其全部或部分模塊[45, 134, 137]。在這些組件中,基于Transformer的LLMs主要因其核心設計良好的注意力機制而成功,該機制捕獲整個輸入中每對標記之間的全局依賴性,使模型能夠處理具有復雜關系的序列。雖然注意力機制提供了顯著的性能,但其與輸入序列長度成二次方的時間和空間復雜度導致了顯著的計算資源瓶頸,這不僅限制了訓練期間允許的輸入文本長度,而且由于生成標記增加時的效率不足和昂貴的緩存內存消耗,也限制了提示的有效上下文窗口。對于推理來說更糟糕的是,當LLMs面對比訓練中的序列更長的序列時,也會因為輸入長度的普遍化機制設計不良而性能下降。
然而,隨著LLMs在需要長上下文理解[193, 87]和生成[106, 68]的各種應用中深入人心,對能夠有效和高效地理解和生成極長序列的長上下文LLMs的需求變得越來越必不可少和迫切。因此,研究人員投入了大量努力來增強Transformer架構,以解決LLMs中的長上下文問題,包括對注意力效率的優化(第3節)、通過額外內存機制擴展上下文窗口(第4節)、通過外推位置嵌入實現有效的長度泛化(第5節)、上下文預/后處理(第6節),以及其他雜項方法(第7節),如特定的預訓練目標、專家混合、量化、并行等。
這段文字是關于長上下文語言模型(LLMs)領域的一篇綜述。它提到了長上下文LLMs是一個非常熱門且發展迅速的研究領域,其中一些現有的綜述文獻匯總了相關文獻工作。這些綜述中,有的提供了關于長文檔摘要的概述,但沒有深入探討長文本建模的內在技術。其他綜述主要集中在提高長文本場景下Transformer的計算效率上。還有的綜述強調LLMs在處理長序列時面臨的挑戰,討論的方法主要與高效的Transformer相關。最近的一項工作更接近于這篇綜述的研究,介紹了長文本建模和Transformer應用的方法,涵蓋了預處理技術、部分高效的Transformer和長文檔的特殊特性。然而,目前還缺乏全面的研究來回顧文獻,探索從操作角度改進Transformer架構,以打破上下文長度的限制,實現更復雜、可擴展的基于Transformer的LLMs。
這篇綜述的目標是全面回顧文獻中關于擴大現有基于Transformer的LLMs有效上下文窗口長度的架構演變。主要貢獻包括:
建立了一個全面的分類法,將Transformer架構分解為五部分,并探討在每個階段(包括預訓練、微調、推理和預/后處理)增強長上下文LLMs的現有方法。
探索廣泛使用的評估需求,包括數據集、度量標準和特別評估LLMs長上下文能力的基線,以及一些流行的優化工具包,以提高LLMs在訓練和推理過程中的效率和效果。
確定改造Transformer結構以處理廣泛上下文的關鍵挑戰,并提出相應的未來方向以推動前沿。
考慮到這個領域的極速發展,構建了一個收集該特定領域相關文獻的倉庫,并將持續更新,幫助讀者跟上最新進展。
綜述的組織結構如下:第2節概述了長上下文LLMs,包括語言建模的目標和階段、基于Transformer的LLMs的關鍵組成部分、LLMs處理長上下文的結構限制分析以及現有努力提升Transformer架構的分類。接下來的五個部分(第3、4、5、6、7節)主要深入討論分類中的每一部分方法。第8節總結了長上下文能力評估的必要條件,并收集了一些流行的優化工具包,以提高LLMs在訓練和推理過程中的效果和效率。第9節探討了關鍵挑戰及其帶來的潛在機遇,并從現有突破中得出洞見。最后,第10節以對這個領域全景的總體結論以及這項研究的動機結束了這篇綜述。
總述
在本節中,我們首先從基礎語言模型目標、典型模型階段到變換器(Transformer)基礎的僅解碼器大型語言模型(LLMs)中關鍵的架構模塊進行初步介紹(見圖1 (a))。隨后,我們對于當LLMs遇到廣泛上下文窗口時的架構限制進行了簡要分析(見2.2節)。最后,我們提出了一個全面的方法學分類(見2.3節),旨在通過架構創新提高LLMs的長上下文處理能力(見圖1 (b))。此分類將作為接下來的五個部分——第3、4、5、6、7節的指導方針。
基于2.1節所提出的基礎見解和2.2節討論的限制,有多種途徑可以探索,以提升變換器(Transformer)結構,賦予大型語言模型(LLMs)更強的長上下文處理能力。例如,通過減少訓練期間的注意力復雜性、設計高效的記憶機制、增強長度外推能力,正如[129]所概述的那樣,模型在短序列上進行訓練,但在推理時測試更長的序列。因此,在本文中,我們提供了對最近旨在改善LLMs長上下文能力的方法學進展的全面回顧,并將它們組織成統一的分類法,如圖1 (b)所示。具體來說,這些方法被分為以下五個主要類別: ? 高效注意力(第3節):這些方法側重于實施計算需求降低的高效注意力機制,甚至實現線性復雜性。通過這樣做,它們在預訓練階段直接增加了Lmax,從而擴展了LLMs在推理期間有效上下文長度邊界。 第一類方法致力于優化注意力機制,特別是關注那些使變換器(Transformer)模塊成為計算瓶頸的核心操作(見公式4)。這種方法在推理過程中通過直接增加預訓練階段的超參數Lmax,使大型語言模型(LLMs)的有效上下文長度邊界得以擴展。我們進一步將這些方法分為五種不同的策略,每種都有特定的焦點:局部注意力(第3.1節)、分層注意力(第3.2節)、稀疏注意力(第3.3節)、近似注意力(第3.4節)和IO-感知注意力(第3.5節)。
? 長期記憶(第4節):為了解決上下文工作記憶的限制,一些方法旨在設計明確的記憶機制,以彌補LLMs中高效和有效的長期記憶的缺乏。 由于在上下文工作記憶中的作用,Transformer架構通常難以捕捉長期依賴性,正如第2.2節所強調的。研究人員探索了兩個主要途徑來應對這一挑戰,同時不損害全注意力的優勢。首先,受到RNNs的啟發,一些研究者將遞歸機制引入到注意力中,通過將內部記憶緩存整合進注意力層。這種方法使模型能夠在更長的序列上維護和檢索信息,彌補了內建長期記憶的固有缺乏。其次,另一種方法涉及利用現有模型作為外部知識庫的接口,如特定文檔或數據集。在推理過程中,模型可以從這些知識庫中讀取信息以豐富其上下文輸入,并且可以根據用戶的響應向它們寫入信息以刷新其長期記憶。通過以這種方式整合外部知識,模型獲得了訪問更廣泛上下文的能力,從而有效提升其處理長期依賴性的能力。
? 外推性位置編碼(第5節):最近的努力旨在通過改進現有位置編碼方案的外推性能力,提高LLMs的長度泛化能力。 認識到需要將推理長度的邊界推向超出Lmax的范圍,研究社區在這方面做出了顯著努力。值得注意的是,根據[5],他們已經確定,在偶數任務的長度泛化中失敗的主要原因是分心因素。然而,通過像scratchpad提示[120]這樣的方法,這些問題可以被大幅度減輕。盡管如此,在本節中,我們的重點仍然在于當前位置編碼(PEs)在更普遍場景中長度泛化中不可否認的作用。
? 上下文處理(第6節):除了提升特定低級變換器模塊的方法外,一些方法涉及將現成的LLMs與額外的上下文預/后處理相結合。這些方法確保每次調用時提供給LLMs的輸入始終滿足最大長度要求,并通過引入多次調用開銷來打破上下文窗口限制。 早前討論的許多方法論提出了圍繞Transformer架構中的注意力模塊的復雜設計,包括高效的注意力核心(第3節)、長期記憶機制(第4節)和外推性位置編碼(PEs)(第5節)。相比之下,還存在一些更簡單、更直接的方法,將預訓練的大型語言模型(LLMs)視為黑盒或灰盒模型。這些方法通過多次調用模型來解決處理超出模型長度限制的長上下文輸入的挑戰,確保每次調用時提供給LLM的實際輸入不超過Lmax。盡管這些方法沒有顯式地增強LLMs處理長上下文的固有能力,但它們利用LLMs顯著的在上下文中的學習能力來解決這個問題,盡管代價是增加了計算量和可能減少了答案的準確性。 ? 其他(第7節):這一部分探索了各種不完全符合前四個類別的通用且有價值的方法,為在LLMs中提高長上下文能力提供了更廣泛的視角。
結論
在這篇綜述中,我們全面地導航了基于Transformer的大型語言模型(LLMs)的架構進步領域,以增強在各個發展階段處理廣泛上下文窗口的能力,采用了一個全面的分類法,將這些針對Transformer中不同模塊設計的方法論進行分類。然后,我們探討了長文本任務特有的評估必要性以及一些集成了多種工具的優化工具包,用以增強LLMs的效率和有效性。我們進一步確定了關鍵挑戰及其對應的未來方向。此外,我們的存儲庫確保讀者能夠及時了解這一動態領域的最新研究。隨著LLMs的快速發展,我們真誠地希望我們的綜述能成為研究人員的寶貴資源,幫助他們利用LLMs的力量構建強大的長上下文LLMs,最終推動走向通用人工智能(AGI)時代的追求。
大型語言模型(LLMs)在各種自然語言任務上展現出卓越的性能,但它們容易受到過時數據和領域特定限制的影響。為了解決這些挑戰,研究人員主要采用了兩種策略:知識編輯和檢索增強,通過整合來自不同方面的外部信息來增強LLMs。然而,目前仍然缺乏一個全面的綜述。在本文中,我們提出一項回顧,討論知識與大型語言模型整合的趨勢,包括方法的分類、基準和應用。此外,我們對不同方法進行了深入分析,并指出了未來的潛在研究方向。我們希望這篇綜述能為社區提供快速訪問和對這一研究領域的全面概覽,旨在激發未來的研究努力。
大型語言模型(LLMs)已經展示了在其參數中編碼現實世界知識的令人印象深刻的能力,以及解決各種自然語言處理任務的顯著能力(Brown等,2020年;Hoffmann等,2022年;Zeng等,2022年;Chowdhery等,2022年;Touvron等,2023年;Zhao等,2023b年)。然而,它們在知識密集型任務上仍面臨嚴峻挑戰(Petroni等,2021年),這些任務需要大量的現實世界知識。最近的研究表明,LLMs難以學習長尾知識(Kandpal等,2023年;Mallen等,2023年),無法及時更新其參數以捕捉變化的世界(De Cao等,2021年;Kasai等,2022年)(例如,ChatGPT 1的參數只包含2021年9月之前的信息,對最新的世界知識完全不知情),并且受到幻覺的困擾(Zhang等,2023a;Rawte等,2023年;Huang等,2023a年)。為了緩解這些問題,人們越來越關注通過知識編輯或檢索增強來整合知識和大型語言模型。知識編輯(De Cao等,2021年;Sinitsin等,2020年)旨在使用一種有效的方法修改LLMs中過時的知識,該方法僅更新部分模型參數。檢索增強(Mallen等,2023年;Shi等,2023年;Trivedi等,2023年)采用現成的檢索模型從外部語料庫中獲取相關文檔,以幫助大型語言模型并保持其參數不變。已有許多工作提出整合知識和大型語言模型,專注于上述兩個方面。然而,這些努力仍然相對零散,缺乏全面和系統的綜述。
為了填補這一空白,本文提出了我們的綜述的具體組織,重點關注知識編輯和檢索增強,如圖1所示。我們首先系統地介紹了根據模型處理結構的知識編輯方法(§2),包括輸入編輯(§2.1),模型編輯(§2.2)以及評估知識編輯(§2.3),涵蓋了代表性方法和通用基準。此外,我們對檢索增強進行了詳細討論(§3),包括檢索判斷(§3.1),文檔檢索(§3.2),文檔利用(§3.3),知識沖突(§3.4)和基準(§3.5)。然后,我們總結了一些知識與大型語言模型整合的前沿應用(§4),例如新版Bing 2。最后,為了激發該領域的進一步研究,我們提供了對未來調查方向的洞見(§5)。
2 知識編輯
知識編輯是一種新興方法,通過整合新知識來糾正大型語言模型(LLMs)中的不準確性和更新過時信息。在這一部分,我們深入研究了關于知識編輯的當前工作,特別關注LLMs處理結構在不同方法中的應用。如圖2所示,我們將它們分為三類:輸入編輯(§2.1),模型編輯(§2.2),和評估知識編輯(§2.3)。
2.1 輸入編輯許多大型模型龐大的參數規模和“黑盒”形式常常阻礙它們進行常規的微調,以獲取新知識,例如ChatGPT、Bard3。因此,將知識注入LLMs最直接的方法涉及編輯輸入(Zheng等,2023;Luo等,2023),這既節省成本又減少資源需求。輸入編輯有兩個方面:包括外部信息以增強提示,以及基于反饋編輯提示。調整輸入不僅提供了一種直觀、易理解的新知識過程描述,而且保證了原始模型知識的保存。
2.2 模型編輯與編輯輸入不同,許多研究致力于以參數化方式進行細粒度的模型編輯,這可以確保注入知識的持久性。根據針對LLMs參數的不同操作,我們將它們分為三類,即知識插件、定位然后編輯和整體編輯。
2.3 評估知識編輯在編輯輸入和模型之后,可以通過審查輸出來評估知識整合的程度。這一小節主要介紹模型評估的特點,并提供表1中知識編輯的一般基準概覽。當前用于編輯知識的方法主要旨在整合三元事實知識,這些知識集中在問答(QA)任務上,即ZsRE(Levy等,2017年)。此外,CounterFact是一個專門為知識編輯任務構建的評估數據集,用于衡量與僅僅表面上改變目標詞匯相比顯著變化的有效性(Meng等,2022年)。評估知識編輯的三個主要屬性包括可靠性、通用性、局部性(Yao等,2023b;Huang等, 2023b)。
3 檢索增強如第2節所討論,知識編輯(De Cao等,2021年)是一種有效的方法,通過修改大型語言模型特定部分的參數來更新過時的知識。然而,知識編輯也面臨著一些其他問題。首先,目前還不完全清楚知識在大型語言模型中是如何以及在哪里存儲的。其次,知識與參數之間的映射關系非常復雜,修改與某些知識對應的參數可能會影響其他知識。在本節中,我們介紹了檢索增強,這是一種在保持參數不變的情況下整合知識和大型語言模型的另一種方法。
與主要將外部知識參數化以更新大型語言模型的知識編輯不同,檢索增強在推理階段使用非參數化形式的外部知識。檢索增強通常由一個檢索器和一個大型語言模型組成。給定輸入上下文后,檢索器首先從外部語料庫中獲取相關文檔。然后,我們可以在不同階段使用相關文檔來提高大型語言模型的性能。在本節中,我們專注于檢索增強的以下關鍵問題:
? 大型語言模型什么時候需要通過檢索來增強?(§3.1) ? 如何檢索相關文檔?(§3.2) ? 大型語言模型如何利用檢索到的文檔?(§3.3) ? 如何解決不同文檔中的知識沖突?(§3.4)"
檢索判斷對于檢索增強的大型語言模型,一個非常重要的問題是了解LLMs的知識邊界(Yin等,2023年)并確定何時檢索補充知識。當前的檢索判斷方法主要分為兩類:基于校準的判斷和基于模型的判斷。
文檔檢索如圖3所示,獲取相關文檔有兩種方法。一種方法是使用檢索器從外部語料庫(例如維基百科)中獲取相關文檔。另一種方法是使用大型語言模型生成相關文檔。文檔利用一旦我們擁有了相關文檔,我們如何使用它們來提升大型語言模型的能力?如圖4所示,我們將使用文檔的不同方式分為三類:輸入增強、推理驗證和答案驗證。
檢索增強LLMs中的知識沖突,在模型推理中有兩個知識來源,它們的分工模糊且不透明。第一個是通過預訓練和微調注入的隱含參數化知識(即它們學習到的權重)。第二個是上下文知識,通常作為文本段落從檢索器中獲取。知識沖突意味著所包含的信息是不一致和矛盾的。如圖5所示,知識沖突有兩種類型:內部沖突和外部沖突。內部沖突指的是大型語言模型中的知識與檢索文檔中的知識之間的不一致。外部沖突指的是檢索到的多個文檔之間的不一致。
結論
在本文中,我們對知識與大型語言模型的整合進行了綜述,并提供了其主要方向的廣泛視角,包括知識編輯和檢索增強。此外,我們總結了常用的基準和前沿應用,并指出了一些有希望的研究方向。我們希望這篇綜述能為讀者提供當前進展的清晰圖景,并激發更多的工作。
大型語言模型(LLMs)的出現標志著自然語言處理(NLP)領域的一次重大突破,帶來了在文本理解和生成方面的顯著進步。然而,與這些進步同時,LLMs表現出一種關鍵的傾向:產生幻覺,導致生成的內容與現實世界事實或用戶輸入不一致。這一現象對它們的實際部署提出了重大挑戰,并引發了對LLMs在現實世界場景中可靠性的關注,這吸引了越來越多的注意力來檢測和減輕這些幻覺。在這篇綜述中,我們旨在提供一個關于LLM幻覺最新進展的全面而深入的概覽。我們首先提出LLM幻覺的一個創新性分類,然后深入探討導致幻覺的因素。隨后,我們呈現了一份幻覺檢測方法和基準的綜合概覽。此外,相應地介紹了旨在減輕幻覺的代表性方法。最后,我們分析了凸顯當前限制的挑戰,并提出了開放性問題,旨在勾勒出LLMs中幻覺未來研究的路徑。
最近,大型語言模型(LLMs)(OpenAI, 2022; Google, 2023; Touvron et al., 2023; Penedo et al., 2023; Zhao et al., 2023b)的出現引領了自然語言處理(NLP)領域的范式轉變,實現了在語言理解(Hendrycks et al., 2021; Huang et al., 2023c)、生成(Zhang et al., 2023f; Zhu et al., 2023b)和推理(Wei et al., 2022; Kojima et al., 2022; Qiao et al., 2022; Yu et al., 2023a; Chu et al., 2023)方面前所未有的進步。然而,隨著LLMs的快速發展,出現了一個令人關注的趨勢,即它們傾向于產生幻覺(Bang et al., 2023; Guerreiro et al., 2023b),導致內容看似合理但事實上缺乏支持。當前對幻覺的定義與先前的研究(Ji et al., 2023a)一致,將其描述為生成的內容既無意義又不忠于提供的源內容。這些幻覺進一步被分類為內在幻覺和外在幻覺,取決于與源內容的矛盾性。盡管這種分類在各種自然語言生成(NLG)任務中是共享的,但任務特定的變體確實存在。由于LLMs在不同NLG任務中表現出非凡的多功能性和卓越性能(Bubeck et al., 2023; Bang et al., 2023),尤其是在開放域應用中,它們的多功能性相比于任務特定模型更加放大了幻覺的潛力。在LLMs中,幻覺的范圍包括了更廣泛和更全面的概念,主要集中在事實錯誤上。鑒于LLM時代的演進,有必要調整現有的幻覺分類,增強其適用性和適應性。
在這篇綜述中,我們重新定義了幻覺的分類,為LLM應用提供了一個更為量身定做的框架。我們將幻覺分為兩大類:事實性幻覺和忠實性幻覺。事實性幻覺強調生成內容與可驗證的現實世界事實之間的差異,通常表現為事實上的不一致或捏造。例如,如圖1(a)所示,當詢問第一個登月的人時,模型可能斷言是查爾斯·林德伯格在1951年。而事實上,第一個登月的人是尼爾·阿姆斯特朗,在1969年的阿波羅11號任務中。另一方面,忠實性幻覺指的是生成內容與用戶指令或輸入提供的上下文的偏離,以及生成內容內的自我一致性。如圖1(b)所示,當要求總結一篇新聞文章時,模型不準確地將以色列和哈馬斯之間的沖突實際發生日期從2023年10月改為2006年10月。關于事實性,我們進一步根據可驗證來源的存在將其劃分為兩個子類別:事實不一致和事實捏造。對于忠實性,我們強調從用戶的角度解決不一致性,將其分類為指令不一致、上下文不一致和邏輯不一致,從而更好地與LLMs的當前使用情況相對應。
至于幻覺的潛在原因,雖然在NLG任務的背景下進行了研究,但在尖端LLMs中呈現出獨特的挑戰,值得深入調查。我們的深入分析專門針對LLMs中幻覺的獨特起源,涵蓋了從數據、訓練到推理階段的一系列貢獻因素。在這個框架內,我們指出了潛在的數據相關原因,如有缺陷的來源和次優的利用,低劣的訓練策略可能在預訓練和對齊過程中誘發幻覺,以及源于解碼策略的隨機性和推理過程中不完美表現的問題。此外,我們全面概述了專門為檢測LLMs中的幻覺而設計的有效檢測方法,以及與LLM幻覺相關的詳盡基準概覽,作為適當的測試平臺,以評估LLMs生成的幻覺的程度和檢測方法的有效性。此外,我們詳細介紹了為減輕已識別的幻覺原因而量身定制的全面策略。
通過這篇全面的綜述,我們旨在為LLMs領域的發展做出貢獻,并提供有價值的見解,加深對LLMs中幻覺機會和挑戰的理解。這項探索不僅增強了我們對當前LLMs局限性的理解,還為未來的研究和更魯棒、可信賴的LLMs的發展提供了必要的指導。
與現有綜述相比。隨著對可靠生成AI的需求日益增長,LLM幻覺作為一個主要挑戰脫穎而出,導致了許多關于其最新進展的綜述(Ji et al., 2023a; Rawte et al., 2023; Liu et al., 2023h; Zhang et al., 2023g; Wang et al., 2023c)。雖然這些作品從不同角度探討了LLM幻覺,并提供了有價值的見解,但區分我們當前綜述的獨特方面和全面性是至關重要的。(Ji et al., 2023a)主要闡明了預訓練語言模型在NLG任務領域中的幻覺,將LLMs排除在他們的討論范圍之外。(Liu et al., 2023h)從更廣闊的視角討論了LLMs的可信度,而(Wang et al., 2023c)深入探討了LLM事實性。相比之下,我們的綜述聚焦于LLM可信度中的一系列挑戰,涵蓋事實性方面,并進一步擴展了話語范圍,包括與忠實性相關的幻覺。據我們所知,與我們的綜述最為一致的是(Zhang et al., 2023g),它概述了LLM幻覺現象的分類、評估基準和減輕策略。盡管如此,我們的綜述在分類和組織結構上都有所區別。我們提出了幻覺的分層和細粒度分類。在結構上,我們通過追溯到LLMs的能力來剖析LLM幻覺的原因。更為相關的是,我們的減輕策略與潛在原因密切相關,確保了一種連貫和有針對性的方法。
本綜述的組織結構。在本文中,我們提出了關于LLMs中幻覺的最新發展的全面綜述。我們首先定義LLMs并構建幻覺的分類框架(§2)。隨后,我們深入分析了導致LLMs中幻覺的因素(§3),接著是對用于可靠檢測LLMs中幻覺的各種方法和基準的審查(§4)。然后我們詳細介紹了旨在減輕LLMs中幻覺的一系列方法(§5)。最后,我們深入探討了框定當前局限性和未來前景的挑戰和開放性問題,提供見解并勾勒出未來研究的潛在路徑(§6)。
幻覺的原因
幻覺有多方面的起源,涵蓋了大型語言模型(LLMs)能力獲取過程的整個光譜。在這一部分,我們將深入探討LLMs中幻覺的根本原因,主要分為三個關鍵方面:數據(§3.1)、訓練(§3.2)和推理(§3.3)。
數據引起的幻覺
預訓練數據是LLMs的基石,使它們獲得一般能力和事實知識(周等,2023a)。然而,它可能無意中成為LLM幻覺的來源。這主要表現在兩個方面:源自有缺陷數據源的潛在風險(§3.1.1),以及對數據中捕獲的事實知識的劣質利用(§3.1.2)。
訓練引起的幻覺
大型語言模型(LLMs)的訓練過程主要包括兩個主要階段:1)預訓練階段,LLMs在此階段學習通用表示并捕獲世界知識;2)對齊階段,LLMs被調整以更好地與用戶指令和偏好對齊。雖然這個過程為LLMs裝備了顯著的能力,但這些階段的任何短板都可能無意中導致幻覺。
推理引起的幻覺
解碼在展示LLMs在預訓練和對齊之后的能力方面扮演著重要角色。然而,解碼策略中的某些不足可能導致LLM幻覺。在本節中,我們將深入探討根源于解碼過程的潛在原因,強調兩個關鍵因素:解碼策略的固有隨機性(§3.3.1)和不完美的解碼表示(§3.3.2)。
幻覺緩解
在本節中,我們提供了針對緩解大型語言模型(LLMs)中幻覺的現代方法的全面回顧。借鑒在“幻覺的原因”(§3)中討論的見解,我們系統地根據幻覺的潛在原因對這些方法進行分類。具體來說,我們關注解決與數據相關的幻覺(§5.1)、與訓練相關的幻覺(§5.2)和與推理相關的幻覺(§5.3)的方法,每種方法都針對其各自原因固有的特定挑戰提供了量身定制的解決方案。
緩解與數據相關的幻覺
與數據相關的幻覺通常作為偏見、錯誤信息和知識空缺的副產品出現,這些都根本上植根于訓練數據中。在這個背景下,我們探索了緩解此類幻覺的各種策略,旨在盡量減少錯誤信息和偏見的發生,同時也提供知識增強和提高大型語言模型(LLMs)有效利用知識的能力。
緩解與訓練相關的幻覺
與訓練相關的幻覺通常源自大型語言模型(LLMs)所采用的架構和訓練策略的內在局限性。在這一背景下,我們討論了從訓練階段(§5.2.1)到對齊階段(§5.2.2)的各種優化方法,旨在緩解訓練過程中的幻覺。
緩解與推理相關的幻覺
在大型語言模型(LLMs)中,解碼策略在決定生成內容的事實性和忠實性方面起著關鍵作用。然而,如第§3.3節分析所述,不完美的解碼常常導致輸出結果可能缺乏事實性或偏離原始上下文。在本小節中,我們探索兩種先進策略,旨在改進解碼策略,以增強LLMs輸出的事實性和忠實性。
結論
在這項全面的調查中,我們對大型語言模型中的幻覺進行了深入的研究,探討了它們背后的復雜原因、開創性的檢測方法以及相關基準,以及有效的緩解策略。盡管已經取得了重大進步,但大型語言模型中的幻覺問題仍然是一個引人關注的持續問題,需要持續的研究。此外,我們希望這項調查能成為致力于推進安全和可信賴人工智能的研究人員的指導燈塔。通過導航幻覺的復雜景觀,我們希望能賦予這些專業人士寶貴的洞見,推動人工智能技術向更高的可靠性和安全性發展。
近年來,大型語言模型(LLMs)因其出色的理解、分析和基于其廣泛知識和推理能力的文本生成能力,已經重塑了學術和工業領域。盡管如此,LLMs的一個主要缺點是由于其前所未有的參數量,其預訓練的計算成本相當高。當需要經常向預訓練的模型中引入新知識時,這一缺點會被放大。因此,開發有效且高效的技術來更新預訓練的LLMs至關重要。傳統方法通過直接微調將新知識編碼到預訓練的LLMs中。然而,重新訓練LLMs可能在計算上很密集,并且面臨退化與模型更新無關的寶貴預訓練知識。最近,基于知識的模型編輯(KME)受到了越來越多的關注,其目的是精確修改LLMs以納入特定的知識,而不負面影響其他無關的知識。在這次綜述中,我們旨在提供關于KME領域近期進展的全面且深入的概述。我們首先介紹KME的一般公式,以涵蓋不同的KME策略。之后,我們根據新知識如何被引入到預訓練的LLMs中提供了KME技術的創新分類,并研究現有的KME策略,同時分析每個類別的方法的關鍵見解、優點和局限性。此外,相應地介紹了KME的代表性指標、數據集和應用。最后,我們對KME的實用性和剩余挑戰進行了深入的分析,并建議在這一領域進一步發展的有前景的研究方向。
近期,大型語言模型(LLMs)已成為一個熱門話題,徹底改變了學術界和工業界[10, 78, 106, 122]。通過在大型語料庫上進行預訓練,獲得了大量的事實知識和推理能力,LLMs展示了對文本信息的前所未有的理解,能夠像人類專家一樣分析和生成文本。然而,LLMs的一個主要缺點是由于參數數量龐大,訓練過程的計算開銷極高。隨著世界的不斷進化,經常出現更新預訓練LLMs以糾正過時信息或納入新知識以保持其相關性的需求,這使得該問題進一步加劇[124]。例如,在圖1中,一個過時的LLM無法準確描述Lionel Messi的最新成就,這需要明確注入新知識以生成正確的答案。
更新預訓練的大型語言模型(LLMs)的一個可行而直接的策略是通過樸素的微調[15, 26, 103, 116],在此,預訓練LLMs的參數直接被優化,以從新數據中編碼新知識[5, 72, 80, 122]。例如,提出了各種基于指令調整的方法,以在新收集的語料庫上以有監督的學習方式微調預訓練的LLMs[73, 81, 112, 114]。盡管這樣的微調技術被廣泛使用,并且能夠將新知識注入到LLMs中,但它們因以下缺點而聞名:(1) 即使提出了一些參數高效策略來提高效率[66, 113, 120],微調LLMs可能仍需要大量的計算資源[70, 75, 123]。 (2) 細調模型可能會過擬合新數據,尤其是當用于細調的數據集規模較小時[19, 71, 74]。 (3) 更重要的是,微調LLMs會不受約束地改變預訓練的權重,這有可能喪失LLMs中的寶貴現有知識[24, 48, 69]。這些挑戰限制了使用微調技術更新LLMs新知識的實用性。
為了解決更新LLMs的微調的缺點,更多的注意力已被賦予基于知識的模型編輯(KME),也被稱為知識編輯。一般來說,KME旨在精確修改預訓練LLMs的行為,以更新特定的知識,而不負面影響與更新無關的其他預訓練知識[85, 111, 119]。在KME中,LLMs中特定知識的更新通常被制定為一個編輯,例如將“誰是美國總統?”的答案從“特朗普”更正為“拜登”。關于特定的編輯,KME策略通常通過引入輔助網絡(或一組參數)到預訓練模型[41, 63, 124],或更新(部分)參數以存儲新知識[16, 39, 40, 64]來修改模型輸出。通過這些策略,KME技術可以在內存中存儲新知識或在模型參數中定位它進行更新,從而精確地將知識注入模型。此外,某些方法還引入明確的損失以包含更新過程,從而使編輯后的模型在未修改的知識上保持一致的行為。借助這些優勢,KME技術可以提供一種高效且有效的方法,不斷地用新知識更新LLMs,而無需明確地重新訓練模型。
盡管KME與微調策略有某些相似之處,但它在更新LLMs方面具有獨特的優勢,值得深入研究。特別是,KME和模型微調都尋求通過注入新知識來更新預訓練的LLMs。然而,除了這一共同目標外,KME更加關注兩個關鍵屬性,這兩個屬性不能容易地由微調來解決。 (1) 局部性要求編輯過的模型不會無意中影響具有不同語義的其他不相關輸入的輸出。例如,當有關美國總統的編輯得到更新時,編輯過的模型不應改變其關于英國首相的知識。KME方法的實用性在很大程度上依賴于它們維持與不相關輸入的輸出的能力,這是KME和微調之間的主要區別[86]。 (2) 通用性代表編輯過的模型是否可以泛化到與編輯知識相關的更廣泛的輸入范圍。具體來說,它表示模型在具有語義相似性的輸入上表現出一致行為的能力。例如,當模型關于總統的部分被編輯時,對總統配偶的查詢的答案也應相應地改變。在實踐中,確保KME方法使編輯過的模型能夠很好地適應這些相關的輸入文本是很重要的。總之,由于這兩個獨特的目標,KME仍然是一個具有挑戰性的任務,需要特定的策略才能獲得令人滿意的有效性。
與現有綜述的區別:已經進行了幾次綜述來檢查(大型)語言模型的各個方面[11, 29, 51, 53, 104, 122]。盡管如此,仍然缺乏徹底的綜述,可以全面涵蓋現有的文獻和LLM編輯領域的持續進展。例如,最近的工作[73, 114]已經討論了在預訓練的LLMs中使用更多的數據樣本合并新知識的微調策略。然而,KME的獨特性,即局部性和普遍性,并沒有得到充分的討論,這將在這次綜述中得到徹底的分析。另外兩項綜述[30, 47]回顧了知識增強的語言模型。但是,他們的主要關注點是利用外部知識來增強預訓練的LLMs的性能,而沒有解決基于特定知識的編輯任務。據我們所知,與我們的綜述最相關的論文是[119],它提供了KME的簡要概述,并簡潔地討論了KME方法的優勢和它們的挑戰。盡管如此,這項綜述缺乏對KME的更多細節,例如分類、數據集和應用程序的徹底審查。另一項最近的工作[111]提出了一個統一了幾種代表性方法的KME框架。這項工作側重于KME技術的實現,而對不同策略的技術細節的重視較少。最近,一項工作[85]討論了KME方法在編輯模型的忠實性方面的局限性,而它相對較短,缺乏對所有現有方法的更全面的介紹。考慮到KME技術的快速進展,我們認為有必要回顧所有代表性KME方法的細節,總結共同點,同時討論每種方法的獨特性,并討論KME領域的開放挑戰和前瞻性方向,這將促進該領域的進一步發展。
本次綜述的貢獻:本次綜述提供了對預訓練LLMs的編輯技術、挑戰和機會的全面和深入的分析。我們首先提供了KME任務的概述,以及一個創新的公式化。特別是,我們將一般的KME任務公式化為一個受限制的優化問題,同時結合了準確性、局部性和普遍性的目標。然后,我們將現有的KME策略分類為三個主要類別,即外部記憶、全局優化和局部修改。重要的是,我們證明了每個類別中的方法都可以被公式化為一個專門的受限制的優化問題,其中的特性基于一般的公式化理論總結。此外,我們提供了關于每個類別中方法的有效性和可行性的有價值的見解,這可以幫助實踐者選擇最適合特定任務的KME方法。我們對KME方法的優點和缺點的分析也為KME研究社區的持續進展起到了催化劑作用。總之,我們的主要貢獻可以總結為以下三個方面:
?** 新的分類法**:我們引入了一個全面和結構化的分類框架,系統地總結了LLM編輯的現有工作。具體來說,基于如何將新知識引入預訓練的LLMs,我們的分類包括三個不同的類別:外部記憶、全局優化和局部修改,其中這些類別的共性和差異在這次調查中都得到了徹底的討論。
? 深入分析:我們將LLM編輯任務公式化為一個受約束的優化問題,其中每個類別的方法都可以被視為具有細化約束的特殊情況。此外,我們強調了每個類別的主要見解、優點和局限性。在這個背景下,我們深入研究了每個類別的代表性方法,并系統地分析了它們之間的聯系。 ? 未來方向:我們分析了現有KME技術在各種數據集和應用程序中的實用性。我們還全面討論了現有KME技術的挑戰,并提出了未來探索的有前景的研究方向。
本文的其余部分組織如下。第2部分介紹了LLM編輯的背景知識。第3部分提供了KME任務的一般公式,可以適應各種應用場景。第4部分為KME策略提供了一個全面的評價指標總結,這對于公正地比較各種方法至關重要。在深入探討具體方法之前,我們在第5.1節為現有方法提供了一個全面的分類,其中討論了它們的關系和差異。然后我們詳細介紹了三個類別中的方法,其中總結了每個類別的優點和局限性。第6部分介紹了廣泛使用的公共數據集。第7部分詳細介紹了可以從KME技術中受益的各種實際任務。第8部分討論了現有技術尚未解決的KME的潛在挑戰。這一部分還提供了一些可以激發未來研究的潛在方向。最后,我們在第9部分總結了這次綜述。
面對舊信息的快速折舊和新知識的出現,各種KME方法已經被提議來更新預先訓練的LLMs,以保持它們的最新性和相關性。KME確保新知識能夠高效地融入預訓練的LLMs,而不會負面影響與編輯無關的預訓練知識。 在這份調查中,我們將現有的KME方法分為以下三個主要類別:
? 基于外部記憶的方法利用外部存儲器來存儲新的知識,以進行編輯,而不修改預訓練的權重,其中預訓練的知識可以在LLM權重中完全保留。通過使用外部參數存儲新知識,基于記憶的策略能夠準確地表示新知識,并具有良好的可伸縮性,因為記憶容易擴展以融入新知識。
?** 全局優化方法通過優化在新知識的指導下尋求將新知識普遍地合并到預訓練的LLMs中**,其中引入了定制策略來限制其他預訓練知識的影響,與簡單的微調區分開來。然而,由于需要優化的參數數量眾多,這些方法在應用于LLMs時可能在編輯效率上有所不足。
? 基于局部修改的方法旨在找到LLMs中特定知識的相關參數,并相應地更新它以融入與編輯相關的新知識。局部修改的主要優勢是只可能更新模型參數的一小部分,從而與基于記憶的方法相比提供了相當的內存效率,并與全局優化相比提供了計算效率。
上述分類是基于新信息被引入LLM的位置(例如,外部參數或內部權重)和方式(例如,通過優化或直接合并)進行的。具體而言,每個類別的方法在Sec. 4中引入的四個關鍵評估指標方面都展現出不同的優勢和劣勢。例如,當計算資源有限而需要大量編輯時,外部記憶在場景中占優勢,因為記憶的大小可以控制以適應不同的要求。另一方面,當實踐者更關注編輯知識的普遍性時,全局優化是有利的,因為優化可以促進相關知識的學習[2]。該分類法在圖3中進行了直觀的說明,并在表2中總結了所有方法的具體特點。
在這次綜述中,我們對知識為基礎的模型編輯(KME)技術進行了全面而深入的調研,以準確且高效地更新預訓練LLMs中的新知識。我們首先將KME問題構建為一個受約束的優化目標,該目標同時確保編輯的準確性和保留,這適用于包括不同KME策略。接著,我們提供了KME的評估指標概述,這有助于了解編輯模型的理想屬性。隨后,我們提出了一個結構化的分類框架,以系統地分類現有的KME技術。在每個類別中,我們概述了核心挑戰,詳細說明了代表性方法,并討論了它們的優勢和劣勢。此外,我們總結了廣泛用于評估KME技術的數據集,強調某些技術需要特定的數據集結構進行訓練或評估。為了激勵研究人員設計更多的實際實現,我們還強調了KME技術的實際應用。最后,我們確定了未來研究的幾個潛在挑戰,并提供了有助于進一步推進該領域的有見地的方向。
現如今,已有超過20種商業向量數據庫管理系統(VDBMSs),它們都是在過去五年內推出的。但基于嵌入的檢索(EBR)已經被研究了超過十年,而相似性搜索更是達到了驚人的半個世紀甚至更久。從算法轉向系統的這一變革是由新的數據密集型應用驅動的,尤其是大型語言模型(LLMs),它們需要大量的非結構化數據,以及可靠、安全、快速且可擴展的查詢處理能力。現有各種新的數據管理技術來滿足這些需求,但尚無全面的調查來徹底審查這些技術和系統。
//www.zhuanzhi.ai/paper/e86f04dba5c47ab29a19fe1db3890804
我們首先識別向量數據管理的五個主要障礙,即語義相似性的模糊性、向量的大尺寸、相似性比較的高成本、缺乏可用于索引的自然劃分,以及有效應答要求屬性和向量的“混合”查詢的困難。克服這些障礙已經導致了新的查詢處理、存儲和索引以及查詢優化和執行的方法。對于查詢處理,各種相似性分數和查詢類型現已被充分理解;對于存儲和索引,技術包括向量壓縮,即量化,以及基于隨機化、學習劃分和“可導航”的劃分技術;對于查詢優化和執行,我們描述了混合查詢的新運算符,以及計劃枚舉、計劃選擇和硬件加速查詢執行的技術。這些技術導致了各種VDBMSs在設計和運行時特性的光譜上,包括專門為向量設計的“原生”系統和將向量功能整合到現有系統中的“擴展”系統。 然后,我們討論基準測試,并最后概述了幾個研究挑戰,并指出未來工作的方向。
隨著用于信息檢索 [36] 的大型語言模型(LLMs)[71] 的崛起,以及電子商務和推薦平臺 [133,125,63] 等經濟驅動因素背后的非結構化數據的增長,有需要新的向量數據庫管理系統 (VDBMSs) 來提供傳統的功能,如查詢優化、事務處理、可擴展性、容錯能力,以及隱私和安全性,但這是針對非結構化數據的。 由于這些數據并不是由固定模式中的屬性表示的,因此它們不是通過結構化查詢而是通過相似性搜索來檢索的,在這種搜索中,與查詢具有相似語義意義的數據被檢索 [95]。為了支持這種類型的搜索,實體如圖片和文檔首先通過嵌入模型編碼為D維特征向量,然后存儲在VDBMS中。雙編碼器模型 [42] 描述了這個過程,也稱為密集檢索 [73]。
因此,VDBMS中的模塊分為查詢處理器和存儲管理器。查詢處理器包括查詢規范、邏輯運算符、它們的物理實現以及查詢優化器;而存儲管理器則維護搜索索引并管理向量的物理存儲。這在圖1中有所示。這些模塊的設計影響了VDBMS的運行時特性。許多應用,如LLMs,都是讀取密集型的,需要高查詢吞吐量和低延遲。其他應用,如電子商務,也是寫入密集型的,需要高寫入吞吐量。此外,一些應用需要高查詢準確性,這意味著檢索到的實體與查詢在語義上真正匹配,而其他應用可能對錯誤更為寬容。因此,開發合適的VDBMS需要了解技術的整體情況以及它們如何影響系統的特性。
雖然對于處理傳統的結構化數據有成熟的理解,但對于向量數據并非如此。我們提出了五個關鍵障礙。(1) 模糊的搜索條件。結構化查詢使用精確的布爾謂詞,但向量查詢依賴于一個難以準確捕捉的模糊語義相似性概念。(2) 昂貴的比較。屬性謂詞(例如 <, >, = 和 ∈)大多可以在O(1)時間內評估,但相似性比較通常需要O(D)時間,其中D是向量的維度。(3) 大尺寸。結構化查詢通常只訪問少量屬性,從而可以設計如列存儲這樣的高效讀取存儲結構。但向量搜索需要完整的特征向量。向量有時甚至跨越多個數據頁面,使磁盤檢索更加昂貴,同時也增加了內存的壓力。(4) 缺乏結構。結構化屬性主要是可排序或序數的,導致通過數字范圍或類別的劃分來設計搜索索引。但向量沒有明顯的排序順序,也不是序數,這使得難以設計既準確又高效的索引。(5) 與屬性的不兼容。在多個屬性索引上的結構化查詢可以使用簡單的集合操作,如并集或交集,將中間結果收集到最終結果集中。但向量索引通常在找到k個最相似的向量后停止,與屬性索引掃描的結果結合起來可能會導致預期結果減少。另一方面,修改索引掃描運算符以考慮屬性謂詞可能會降低索引性能。如何在既高效又準確的方式下支持既有屬性又有向量的“混合”查詢仍然不清楚。
現在已經有各種技術圍繞這些問題開發,旨在在支持大量向量的同時實現低查詢延遲、高結果質量和高吞吐量。其中一些是關于相似性搜索幾十年研究的結果。其他技術,包括混合查詢處理、基于向量壓縮的索引、基于硬件加速的技術以及分布式架構,都是較近期的發明。
在本文中,我們首先從通用VDBMS的角度對這些技術進行調研,將它們分為適用于查詢處理和適用于存儲和索引的技術。查詢優化和執行與核心查詢處理器分開處理。在這些討論之后,我們將這些技術的理解應用于描述現有的VDBMS。
查詢處理。查詢處理器主要處理如何首先指定搜索條件以及如何執行搜索查詢。對于前者,有各種相似性分數、查詢類型和查詢接口可供選擇。對于后者,基本運算符是相似性投影,但由于它可能效率不高,因此已經開發了各種基于索引的運算符。我們在第2節中討論查詢處理器。
存儲和索引。存儲管理器主要處理如何組織和存儲向量集合以支持高效準確的搜索。對于大多數系統,這是通過向量搜索索引實現的。我們將索引分類為基于表的索引,如E2LSH [49]、SPANN [44] 和IVFADC [69],這些索引通常容易更新;基于樹的索引,如FLANN [96]、RPTree [47,48] 和ANNOY [1],旨在提供對數搜索;以及基于圖的索引,如KGraph [52]、FANNG [66] 和HNSW [90],已經被證明在經驗上表現良好,但理論理解較少。為了解決劃分向量集合的難題,技術包括隨機化[67,49,31,96,48,52,123,115]、學習劃分[127,69,91,96,112]以及我們稱之為“可導航”的劃分[51,89,90]。為了處理大存儲大小,已經為壓縮向量上的索引開發了幾種技術,包括量化[62,69,91,113,129,133],以及基于磁盤的索引[61,44]。我們在第3節中討論索引。
優化和執行。查詢優化器和執行器主要處理計劃枚舉、計劃選擇和物理執行。為了支持混合查詢,已經開發了幾種混合運算符,基于我們所說的“塊優先”掃描[133,125,61] 和“訪問優先”掃描[136]。還有幾種枚舉和選擇的技術,包括基于規則和基于成本的選擇[133,125]。對于查詢執行,有幾種技術旨在利用大向量的存儲局部性設計硬件加速運算符,利用處理器緩存[125]、SIMD [125,34,35] 和GPUs [70]等功能。還有分布式搜索技術和支持高吞吐量更新的技術,即基于異地更新。我們在第4節中討論優化和執行。 當前系統。我們將現有的VDBMSs分類為原生系統,這些系統專門圍繞向量管理設計,包括Vearch [81]、Milvus [125] 和Manu [63];擴展系統在現有的數據管理系統之上增加向量功能,包括AnalyticDB-V [133] 和PASE [139];以及搜索引擎和庫,旨在僅提供搜索功能,如Apache Lucene [2]、Elasticsearch [3] 和Meta Faiss [4]。原生系統往往更傾向于針對特定功能的高性能技術,而擴展系統往往更傾向于適應不同工作負載但不一定是最快的技術。我們在第5節中調查當前的系統。
相關綜述。有一個高級調查可用,主要關注VDBMS的基本概念和用例。同樣,有一些教程專門針對相似性搜索[106,107]。我們通過關注與整體向量數據管理相關的具體問題和技術來補充這些內容。還有一些調查涵蓋了與向量相關的數據類型,如時間序列和字符串,但VDBMS不支持。與這些其他數據類型的系統不同,VDBMS不能對特征向量維度做出任何假設2。我們建議讀者參考[54,53]。對于剩下的部分,我們在第6節簡要討論基準測試,然后在第7節總結研究挑戰和尚未解決的問題。我們在第8節結束這篇調查。