大模型綜述一鏡到底(全文八萬字) ——《Large Language Models: A Survey》

在這里插入圖片描述
論文鏈接https://arxiv.org/abs/2402.06196

摘要:自2022年11月ChatGPT發布以來,大語言模型(LLMs)因其在廣泛的自然語言任務上的強大性能而備受關注。正如縮放定律所預測的那樣,大語言模型通過在大量文本數據上訓練數十億個模型參數來獲得通用語言理解和生成能力。大語言模型的研究領域雖然非常新,但在許多不同方面都在迅速發展。在本文中,我們回顧了一些最杰出的大語言模型,包括三個流行的大語言模型家族(GPT、LLaMA、PaLM),討論了它們的特點、貢獻和局限性。我們還概述了為構建和增強大語言模型而開發的技術。然后,我們調查了為大語言模型訓練、微調和評估準備的流行數據集,回顧了廣泛使用的大語言模型評估指標,并在一組代表性的基準測試中比較了幾個流行大語言模型的性能。最后,我們通過討論開放的挑戰和未來的研究方向來總結本文。

在這里插入圖片描述

一、引言

I. INTRODUCTION

語言建模是一個長期存在的研究課題,可以追溯到20世紀50年代,當時香農將信息理論應用于人類語言,他測量了簡單的n元語法語言模型對自然語言文本的預測或壓縮效果。從那時起,統計語言建模成為許多自然語言理解和生成任務的基礎,從語音識別、機器翻譯到信息檢索。

基于Transformer的大語言模型在網絡規模的文本語料上進行預訓練,顯著擴展了語言模型的能力。例如,OpenAI的ChatGPT和GPT-4不僅可以用于自然語言處理,還可以作為通用任務求解器來為微軟的Copilot系統提供支持,它們可以遵循人類的指令完成復雜的新任務,并在需要時進行多步推理。因此,大語言模型正在成為通用人工智能代理或人工智能通用智能(AGI)開發的基本組成部分。

由于大語言模型領域發展迅速,新的發現、模型和技術在數月或數周內不斷涌現,人工智能研究人員和從業者常常發現,為他們的任務構建基于大語言模型的人工智能系統的最佳方法難以確定。本文對大語言模型的最新進展進行了及時的調查。我們希望這篇綜述能成為學生、研究人員和開發人員有價值的參考資源。

大語言模型是基于神經網絡的大規模預訓練語言模型。大語言模型的近期成功是語言模型數十年研發的積累,可分為四個不同起點和發展速度的浪潮:統計語言模型、神經語言模型、預訓練語言模型和大語言模型。

統計語言模型(SLMs)將文本視為單詞序列,并將文本的概率估計為單詞概率的乘積。統計語言模型的主要形式是馬爾可夫鏈模型,即n元語法模型,它計算單詞在其直接前序的n - 1個單詞條件下的概率。由于單詞概率是使用從文本語料中收集的單詞和n元語法計數來估計的,因此模型需要通過使用平滑來處理數據稀疏性(即為未出現的單詞或n元語法分配零概率),其中模型的一些概率質量被保留給未出現的n元語法。n元語法模型廣泛應用于許多自然語言處理系統中。然而,這些模型并不完整,因為由于數據稀疏性,它們無法完全捕捉自然語言的多樣性和可變性。

早期的神經語言模型處理數據稀疏性的方式是將單詞映射到低維連續向量(嵌入向量),并根據神經網絡對其前序單詞的嵌入向量進行聚合來預測下一個單詞。神經語言模型學習的嵌入向量定義了一個隱藏空間,在這個空間中,向量之間的語義相似性可以很容易地計算為它們之間的距離。這為計算任何兩個輸入的語義相似性打開了大門,無論它們的形式(例如,網絡搜索中的查詢與文檔、機器翻譯中的不同語言的句子)或模態(例如,圖像字幕中的圖像和文本)如何。早期的神經語言模型是特定任務模型,因為它們是在特定任務的數據上進行訓練的,并且它們學習的隱藏空間是特定于任務的。

預訓練語言模型(PLMs)與早期的神經語言模型不同,它是任務無關的。這種通用性也擴展到了學習到的隱藏嵌入空間。PLMs的訓練和推理遵循預訓練和微調范式,其中使用循環神經網絡或Transformer的語言模型在網絡規模的未標記文本語料上進行預訓練,以進行單詞預測等通用任務,然后使用少量(標記的)特定任務數據對其進行微調。最近關于PLMs的綜述包括[8]、[27]、[28]。

大語言模型(LLMs)主要是指基于Transformer的神經語言模型,包含數十億到數百億的參數,這些模型在大規模文本數據上進行預訓練,如表 III所示。
在這里插入圖片描述

與PLMs相比,大語言模型不僅模型規模大得多,而且表現出更強的語言理解和生成能力,更重要的是,具有小規模語言模型所沒有的涌現能力。如圖1所示,這些涌現能力包括(1)上下文學習,大語言模型在推理時可以從提示中提供的少量示例中學習新任務;(2)指令跟隨,大語言模型在經過指令調優后,可以遵循新類型任務的指令,而無需使用明確的示例;(3)多步推理,大語言模型可以通過將復雜任務分解為中間推理步驟來解決它,如思想鏈提示中所示。大語言模型還可以通過使用外部知識和工具來增強自身,以便與用戶和環境進行有效交互,并通過與用戶的交互收集反饋數據來不斷改進自己(例如,通過與人類反饋的強化學習(RLHF))。

在這里插入圖片描述

通過先進的使用和增強技術,大語言模型可以被部署為所謂的人工智能代理:能夠感知環境、做出決策并采取行動的人工智能實體。以前的研究主要集中在為特定任務和領域開發代理。大語言模型展示的涌現能力使得基于大語言模型構建通用人工智能代理成為可能。雖然大語言模型是在靜態設置中訓練來生成響應的,但人工智能代理需要采取行動與動態環境進行交互。因此,基于大語言模型的代理通常需要增強大語言模型,例如,從外部知識庫獲取更新的信息、驗證系統動作是否產生預期結果,以及應對意外情況等。我們將在第四節詳細討論基于大語言模型的代理。

在本文的其余部分,第二節介紹大語言模型的最新進展,重點介紹三個大語言模型家族(GPT、LLaMA和PaLM)和其他代表性模型。第三節討論大語言模型是如何構建的。第四節討論大語言模型是如何使用和增強以應用于實際世界的應用。第五節和第六節回顧了用于評估大語言模型的流行數據集和基準,并總結了報告的大語言模型評估結果。最后,第七節通過總結挑戰和未來研究方向來結束本文。

二、大語言模型

II. LARGE LANGUAGE MODELS
在本節中,我們首先回顧早期的預訓練神經語言模型,因為它們是大語言模型的基礎,然后重點討論三個大語言模型家族:GPT、LLaMA和PaLM。表I提供了這些模型的概述和特點。
在這里插入圖片描述

A. 早期預訓練神經語言模型

使用神經網絡進行語言建模是由[38]、[39]、[40]開創的。本吉奧等人開發了早期的神經語言模型之一,該模型可與n元語法模型相媲美。隨后,[14]成功地將神經語言模型應用于機器翻譯。米科洛夫開發的RNNLM(一個開源的神經語言模型工具包)極大地促進了神經語言模型的普及。隨后,基于循環神經網絡(RNNs)及其變體,如長短期記憶(LSTM)[19]和門控循環單元(GRU)[20]的神經語言模型被廣泛應用于許多自然語言應用,包括機器翻譯、文本生成和文本分類[43]。

然后,Transformer架構的發明標志著神經語言模型發展的另一個里程碑。通過應用自注意力來并行計算句子或文檔中每個單詞的“注意力得分”,以對每個單詞對其他單詞的影響進行建模,Transformer比RNNs允許更多的并行化,這使得在GPU上對非常大的語言模型進行高效預訓練成為可能。這些預訓練語言模型(PLMs)可以針對許多下游任務進行微調。

我們根據早期基于Transformer的PLMs的神經架構,將它們分為三個主要類別:僅編碼器、僅解碼器和編碼器-解碼器模型。早期PLMs的綜合調查在[43]、[28]中提供。

1)僅編碼器 PLMs(Encoder-only)

顧名思義,僅編碼器模型僅由編碼器網絡組成。這些模型最初是為語言理解任務而開發的,例如文本分類,在這些任務中,模型需要為輸入文本預測類別標簽。代表性的僅編碼器模型包括BERT及其變體,例如RoBERTa、ALBERT、DeBERTa、XLM、XLNet、UNILM,如下所述。

BERT(來自Transformer的雙向編碼器表示)是最廣泛使用的僅編碼器語言模型之一。BERT由三個模塊組成:(1)一個嵌入模塊,將輸入文本轉換為嵌入向量序列;(2)一堆Transformer編碼器,將嵌入向量轉換為上下文表示向量;(3)一個全連接層,將表示向量(在最后一層)轉換為獨熱向量。BERT的預訓練使用兩個目標:掩碼語言建模(MLM)和下一句預測。預訓練的BERT模型可以通過添加分類器層進行微調,以用于許多語言理解任務,從文本分類、問答到語言推理。圖3展示了BERT框架的高級概述。由于BERT在發布時在廣泛的語言理解任務上顯著改進了現有技術,人工智能社區受到啟發,開發了許多基于BERT的類似的僅編碼器語言模型。

在這里插入圖片描述

RoBERTa通過一組模型設計選擇和訓練策略顯著改進了BERT的魯棒性,例如修改一些關鍵超參數、刪除下一句預訓練目標,并使用更大的小批次和學習率進行訓練。ALBERT使用兩種參數減少技術來降低BERT的內存消耗并提高訓練速度:(1)將嵌入矩陣拆分為兩個較小的矩陣;(2)使用在組之間拆分的重復層。DeBERTa(具有解耦注意力的解碼增強BERT)使用兩種新技術改進了BERT和RoBERTa模型。首先是解耦注意力機制,其中每個單詞使用兩個向量表示,分別編碼其內容和位置,并且單詞之間的注意力權重分別使用關于其內容和相對位置的解耦矩陣進行計算。其次,使用增強的掩碼解碼器在解碼層中納入絕對位置,以預測模型預訓練中的掩碼標記。此外,在微調中使用新穎的虛擬對抗訓練方法來提高模型的泛化能力。ELECTRA使用一種新的預訓練任務,稱為替換標記檢測(RTD),經驗證明這比MLM更具樣本效率。RTD不是對輸入進行掩碼,而是通過從一個小的生成網絡中采樣替換一些標記來破壞輸入。然后,不是訓練一個預測損壞標記原始身份的模型,而是訓練一個判別模型來預測損壞輸入中的標記是否被生成樣本替換。RTD比MLM更具樣本效率,因為前者是針對所有輸入標記定義的,而不是像MLM那樣僅針對被掩碼的小子集,如圖4所示。

在這里插入圖片描述

XLMs使用兩種方法將BERT擴展為跨語言語言模型:(1)一種僅依賴于單語言數據的無監督方法;(2)一種利用具有新跨語言語言模型目標的并行數據的監督方法,如圖5所示。XLMs在提出時在跨語言分類、無監督和監督機器翻譯方面取得了最先進的結果。

在這里插入圖片描述

還有一些僅編碼器語言模型利用自回歸(解碼器)模型在模型訓練和推理中的優勢。兩個例子是XLNet和UNILM。XLNet基于Transformer-XL,使用廣義自回歸方法進行預訓練,該方法通過最大化因式分解順序的所有排列的期望似然來學習雙向上下文。UNILM(統一預訓練語言模型)使用三種語言建模任務進行預訓練:單向、雙向和序列到序列預測。這是通過使用共享的Transformer網絡并利用特定的自注意力掩碼來控制預測所依據的上下文來實現的,如圖6所示。預訓練模型可以針對自然語言理解和生成任務進行微調。
在這里插入圖片描述

2)僅解碼器 PLMs(Decoder-only)

兩個最廣泛使用的PLMs是OpenAI開發的GPT-1和GPT-2。這些模型為隨后更強大的大語言模型(即GPT-3和GPT-4)奠定了基礎。

GPT-1首次表明,通過對僅解碼器Transformer模型進行生成式預訓練(GPT),在多樣化的無標記文本語料上進行自監督學習,然后在每個特定的下游任務上進行判別式微調(使用更少的樣本),可以在廣泛的自然語言任務中獲得良好的性能,如圖7所示。GPT-1為后續的GPT模型鋪平了道路,每個版本都在架構上進行了改進,并在各種語言任務上取得了更好的性能。
在這里插入圖片描述

GPT-2表明,當在由數百萬網頁組成的大型WebText數據集上進行訓練時,語言模型能夠學習執行特定的自然語言任務而無需任何明確的監督。GPT-2模型遵循GPT-1的模型設計,并進行了一些修改:層歸一化移到了每個子塊的輸入處,在最后一個自注意力塊之后添加了額外的層歸一化,初始化進行了修改以考慮殘差路徑上的累積,并縮放了殘差層的權重,詞匯量擴展到了50256,上下文大小從512個令牌增加到了1024個令牌。

3)編碼器-解碼器 PLMs(Encoder-Decode)

在[52]中,拉斐爾等人表明,幾乎所有的自然語言處理任務都可以被表述為序列到序列生成任務。因此,編碼器-解碼器語言模型在設計上是一個統一的模型,因為它可以執行所有的自然語言理解和生成任務。我們將在下面回顧的代表性編碼器-解碼器PLMs是T5、mT5、MASS和BART。

T5是一個文本到文本轉移變壓器(T5)模型,其中通過引入一個統一的框架,將所有自然語言處理任務都表述為文本到文本生成任務,從而有效地利用轉移學習進行自然語言處理。mT5是T5的多語言變體,它在一個新的基于Common Crawl的數據集上進行預訓練,該數據集包含101種語言的文本。

MASS(掩碼序列到序列預訓練)采用編碼器-解碼器框架,根據句子的剩余部分重建句子片段。編碼器將一個句子的隨機掩碼片段(幾個連續的標記)作為輸入,解碼器預測掩碼片段。通過這種方式,MASS共同訓練編碼器和解碼器分別進行語言嵌入和生成。

BART使用標準的序列到序列翻譯模型架構。它通過使用任意噪聲函數破壞文本,然后學習重建原始文本進行預訓練。

B. 大語言模型家族

大語言模型(LLMs)主要是指基于Transformer的PLMs,包含數十億到數百億的參數。與上面回顧的PLMs相比,大語言模型不僅模型規模大得多,而且表現出更強的語言理解和生成能力以及小規模模型所沒有的涌現能力。接下來,我們回顧三個大語言模型家族:GPT、LLaMA和PaLM,如圖8所示。

在這里插入圖片描述

1)GPT家族

生成式預訓練變壓器(GPT)是OpenAI開發的一系列僅解碼器的基于Transformer的語言模型,包括GPT-1、GPT-2、GPT-3、InstrucGPT、ChatGPT、GPT-4、CODEX和WebGPT。盡管早期的GPT模型,如GPT-1和GPT-2是開源的,但最近的模型,如GPT-3和GPT-4是閉源的,只能通過API訪問。GPT-1和GPT-2模型在早期的PLM小節中已經討論過。我們從GPT-3開始。

GPT-3是一個預訓練的自回歸語言模型,擁有1750億個參數。GPT-3被廣泛認為是第一個大語言模型,因為它不僅比以前的PLMs大得多,而且首次展示了以前較小的PLMs中沒有觀察到的涌現能力。GPT-3展示了上下文學習的涌現能力,這意味著GPT-3可以應用于任何下游任務而無需任何梯度更新或微調,任務和少樣本演示純粹通過與模型的文本交互來指定。GPT-3在許多自然語言處理任務上取得了強大的性能,包括翻譯、問答和完形填空任務,以及一些需要即時推理或領域適應的任務,如解單詞、在句子中使用新單詞、三位數算術。圖9繪制了GPT-3作為上下文提示中示例數量的函數的性能。

在這里插入圖片描述

CODEX由OpenAI于2023年3月發布,是一個通用的編程模型,可以解析自然語言并生成代碼作為響應。CODEX是GPT-3的后代,針對從GitHub收集的代碼語料上的編程應用進行了微調。CODEX為微軟的GitHub Copilot提供支持。

WebGPT是GPT-3的另一個后代,經過微調以使用基于文本的網絡瀏覽器回答開放式問題,促進用戶搜索和瀏覽網絡。具體來說,WebGPT的訓練分為三個步驟。首先,讓WebGPT使用人類演示數據學習模仿人類瀏覽行為。然后,學習一個獎勵函數來預測人類偏好。最后,通過強化學習和拒絕采樣對WebGPT進行優化,以優化獎勵函數。

為了使大語言模型能夠遵循預期的人類指令,InstructGPT通過使用人類反饋進行微調,使語言模型與用戶在廣泛任務上的意圖保持一致。從一組由標記器編寫的提示和通過OpenAI API提交的提示開始,收集一個標記器對所需模型行為的演示數據集。然后,在這個數據集上對GPT-3進行微調。然后,收集一個人類排名的模型輸出數據集,以使用強化學習進一步微調模型。這種方法被稱為從人類反饋中強化學習(RLHF),如圖10所示。由此產生的InstructGPT模型在真實性方面有所提高,減少了有毒輸出的生成,同時在公共自然語言處理數據集上的性能下降最小。
在這里插入圖片描述

大語言模型發展的最重要里程碑是2022年11月ChatGPT(聊天生成預訓練變壓器)的發布。ChatGPT是一個聊天機器人,使用戶能夠引導對話來完成各種任務,如問答、信息搜索、文本摘要等。ChatGPT由GPT-3.5(后來是GPT-4)提供支持,GPT-3.5是InstructGPT的姊妹模型,經過訓練以遵循指令并提供詳細的響應。

GPT-4是GPT家族中最新、最強大的大語言模型。它于2023年3月發布,是一個多模態大語言模型,能夠接受圖像和文本作為輸入,并生成文本輸出。雖然在一些最具挑戰性的現實世界場景中,GPT-4仍不如人類,但它在各種專業和學術基準測試中展現出了人類水平的性能,例如在模擬律師資格考試中取得了約前10%的成績,如圖11所示。與早期的GPT模型一樣,GPT-4首先在大量文本語料上進行預訓練以預測下一個令牌,然后通過強化學習與人類反饋(RLHF)進行微調,以使模型行為與人類期望保持一致。

在這里插入圖片描述

2)LLaMA家族

LLaMA是Meta開發的一組基礎語言模型。與GPT模型不同,LLaMA模型是開源的,即模型權重以非商業許可的方式發布給研究社區。因此,LLaMA家族發展迅速,許多研究團隊使用這些模型來開發更好的開源大語言模型,以與閉源模型競爭,或開發針對關鍵任務應用的特定任務大語言模型。

LLaMA的第一組模型于2023年2月發布,參數范圍從7B到65B。這些模型在數十億個標記上進行預訓練,這些標記是從公開可用的數據集中收集的。LLaMA使用GPT-3的Transformer架構,并進行了一些小的架構修改,包括(1)使用SwiGLU激活函數而不是ReLU;(2)使用旋轉位置嵌入而不是絕對位置嵌入;(3)使用均方根層歸一化而不是標準層歸一化。開源的LLaMA-13B模型在大多數基準測試中優于專有GPT-3(175B)模型,使其成為大語言模型研究的良好基線。

2023年7月,Meta與微軟合作發布了LLaMA-2系列,包括基礎語言模型和針對對話進行微調的Chat模型,稱為LLaMA-2 Chat。據報道,LLaMA-2 Chat模型在許多公共基準測試中優于其他開源模型。圖12展示了LLaMA-2 Chat的訓練過程。該過程始于使用公開可用的在線數據對LLaMA-2進行預訓練。然后,通過監督微調構建LLaMA-2 Chat的初始版本。隨后,使用RLHF、拒絕采樣和近端策略優化對模型進行迭代改進。在RLHF階段,積累人類反饋以修改獎勵模型對于防止獎勵模型過度改變至關重要,這可能會損害LLaMA模型訓練的穩定性。

在這里插入圖片描述

Alpaca是從LLaMA-7B模型使用GPT-3.5(text-davinci-003)生成的52K指令跟隨演示進行微調的模型。Alpaca對于訓練非常有效,特別是對于學術研究。在自我指令評估集上,Alpaca的表現與GPT-3.5相似,盡管Alpaca的規模要小得多。

Vicuna團隊通過在從ShareGPT收集的用戶共享對話上微調LLaMA,開發了一個13B的聊天模型Vicuna13B。使用GPT4作為評估器的初步評估表明,Vicuna-13B在超過90%的情況下達到了OpenAI ChatGPT和Google Bard的質量水平,并且在超過90%的情況下優于其他模型,如LLaMA和Stanford Alpaca。圖13展示了Vicuna和其他一些知名模型的相對響應質量,由GPT-4評估。Vicuna-13B的另一個優點是其相對較低的模型訓練計算需求。Vicuna-13B的訓練成本僅為300美元。

在這里插入圖片描述

與Alpaca和Vicuna類似,Guanaco模型也是使用指令跟隨數據對LLaMA進行微調的模型。但Guanaco的微調是使用QLoRA高效完成的,使得在單個48GB GPU上可以對65B參數的模型進行微調。QLoRA通過凍結的4位量化預訓練語言模型將梯度反向傳播到低秩適配器(LoRA)中。最好的Guanaco模型在Vicuna基準測試中優于所有先前發布的模型,達到ChatGPT性能水平的99.3%,而在單個GPU上僅需要24小時的微調時間。

Koala是另一個基于LLaMA構建的指令跟隨語言模型,但它特別關注包括用戶輸入和由ChatGPT等高性能閉源聊天模型生成的響應在內的交互數據。根據基于現實世界用戶提示的人類評估,Koala-13B模型與最先進的聊天模型具有競爭力。

Mistral-7B是一個為卓越性能和效率而設計的7B參數語言模型。Mistral-7B在所有評估基準測試中優于最好的開源13B模型(LLaMA-2-13B),在推理、數學和代碼生成方面優于最好的開源34B模型(LLaMA-34B)。該模型利用分組查詢注意力來實現更快的推理,同時結合滑動窗口注意力來有效地處理任意長度的序列,同時降低推理成本。

LLaMA家族正在迅速發展,更多的指令跟隨模型已經在LLaMA或LLaMA2的基礎上構建,包括Code LLaMA、Gorilla、Giraffe、Vigogne、Tulu 65B等,僅舉幾例。

3)PaLM家族

PaLM(路徑語言模型)家族是由Google開發的。第一個PaLM模型于2022年4月發布,并一直保密,直到2023年3月。它是一個基于540B參數的Transformer的大語言模型。該模型在由7800億個令牌組成的高質量文本語料上進行預訓練,這些令牌涵蓋了廣泛的自然語言任務和用例。PaLM使用Pathways系統在6144個TPU v4芯片上進行預訓練,該系統允許在多個TPU Pod之間進行高效訓練。PaLM通過在數百個語言理解和生成基準測試中取得最先進的少樣本學習結果,展示了擴展的持續優勢。PaLM540B不僅在一系列多步推理任務上優于最先進的微調模型,而且在最近發布的BIG-bench基準測試中與人類表現相當。

U-PaLM模型的8B、62B和540B規模在PaLM的基礎上使用UL2R方法進行持續訓練,UL2R是一種使用UL2的去噪器目標在幾個步驟上持續訓練大語言模型的方法。據報道,計算節省率約為2倍。

U-PaLM后來被指令微調為Flan-PaLM。與上述其他指令微調工作相比,Flan-PaLM的微調使用了更多的任務、更大的模型規模和思想鏈數據。因此,Flan-PaLM顯著優于以前的指令跟隨模型。例如,在1.8K個任務上進行指令微調的Flan-PaLM-540B比PaLM-540B有了很大的性能提升(平均提高9.4%)。微調數據包括473個數據集、146個任務類別和1836個總任務,如圖14所示。

在這里插入圖片描述

PaLM-2是一個計算效率更高、多語言和推理能力更強的大語言模型,與之前的PaLM相比。PaLM-2使用目標的混合進行訓練。通過對英語、多語言和推理任務的廣泛評估,PaLM-2在不同模型規模的下游任務中顯著提高了模型性能,同時表現出比PaLM更快、更高效的推理。

Med-PaLM是一個特定領域的PaLM,旨在為醫療問題提供高質量的答案。Med-PaLM是在PaLM的基礎上使用指令提示微調進行微調的,指令提示微調是一種使用幾個示例將大語言模型與新領域對齊的參數高效方法。Med-PaLM在許多醫療保健任務上取得了非常令人鼓舞的結果,盡管它仍然不如人類臨床醫生。Med-PaLM 2通過醫療領域微調和集成提示進一步改進了Med-PaLM。Med-PaLM 2在MedQA數據集上的得分高達86.5%(即一個結合了六個現有的涵蓋專業醫學考試、研究和消費者查詢的開放問答數據集的基準),比Med-PaLM提高了超過19%,并創造了新的最先進水平。

C. 其他代表模型

除了前面小節討論的模型之外,還有其他一些流行的大語言模型不屬于這三個模型家族,但它們取得了出色的性能并推動了大語言模型領域的發展。我們在本小節中簡要描述這些大語言模型。

1)FLAN

在[78]中,魏等人探索了一種提高語言模型零樣本學習能力的簡單方法。他們表明,通過在由指令描述的數據集上對語言模型進行指令調優,可以顯著提高在未見過的任務上的零樣本性能。他們使用一個137B參數的預訓練語言模型,并在超過60個通過自然語言指令模板表達的自然語言處理數據集上進行指令調優。他們將這個指令調優后的模型稱為FLAN。圖15比較了指令調優與預訓練-微調和提示。

在這里插入圖片描述

2)Gopher

在[79]中,雷等人對基于Transformer的語言模型在廣泛的模型規模上的性能進行了分析,從數千萬參數的模型到一個2800億參數的模型Gopher。這些模型在152個不同的任務上進行評估,在大多數任務上取得了最先進的性能。不同模型規模的層數、鍵/值大小和其他超參數如圖16所示。

在這里插入圖片描述

3)T0

在[80]中,桑等人開發了T0,這是一個系統,可以輕松地將任何自然語言任務映射到人類可讀的提示形式。他們將一組監督數據集轉換為每個都有不同措辭的多個提示。這些提示數據集允許對模型執行完全未見過的任務的能力進行基準測試。然后,開發了一個T0編碼器-解碼器模型來消耗文本輸入并生成目標響應。該模型在被劃分為不同任務的自然語言處理數據集的多任務混合物上進行訓練。

4)ERNIE 3.0

在[81]中,孫等人提出了一個名為ERNIE 3.0的統一框架,用于預訓練大規模知識增強模型。它融合了自回歸網絡和自動編碼網絡,使得訓練后的模型可以通過零樣本學習、少樣本學習或微調輕松地針對自然語言理解和生成任務進行定制。他們在一個由純文本和大規模知識圖譜組成的4TB語料上訓練了ERNIE 3.0,參數為100億。圖17說明了Ernie 3.0的模型架構。
在這里插入圖片描述

5)RETRO

在[82]中,博爾戈等人通過根據與前面標記的局部相似性,對從大型語料庫中檢索到的文檔塊進行條件處理,增強了自回歸語言模型。使用一個2萬億標記的數據庫,檢索增強變壓器(Retro)在Pile上與GPT-3和Jurassic-1[83]取得了相當的性能,盡管使用的參數減少了25%。如圖18所示,Retro結合了一個凍結的Bert檢索器、一個可微的編碼器和一個分塊交叉注意力機制,根據比訓練期間通常消耗的數據多一個數量級的數據來預測標記。

在這里插入圖片描述

6)GLaM

在[84]中,杜等人提出了一組名為GLaM(通用語言模型)的大語言模型,它們使用稀疏激活的混合專家架構來擴展模型容量,同時比密集變體產生的訓練成本低得多。最大的GLaM有1.2萬億個參數,大約是GPT3的7倍大。它消耗的能量僅為訓練GPT-3的1/3,并需要進行推理的計算 FLOP 的一半,同時在29個自然語言處理任務中仍然實現了更好的整體零樣本、一樣本和少樣本性能。圖19展示了GLAM的高級架構。

在這里插入圖片描述

7)LaMDA

在[85]中,索皮蘭等人介紹了LaMDA,這是一組專門用于對話的基于Transformer的神經語言模型,具有高達137B的參數,并在1.56T單詞的公共對話數據和網絡文本上進行預訓練。他們表明,通過使用注釋數據進行微調并使模型能夠咨詢外部知識源,可以顯著改善朝著安全性和事實基礎這兩個關鍵挑戰的進展。

8)OPT

在[86]中,張等人介紹了Open Pre-trained Transformers(OPT),這是一組僅解碼器的預訓練Transformer,參數范圍從125M到175B,他們與研究人員共享這些模型。OPT模型的參數如圖20所示。
在這里插入圖片描述

9)Chinchilla

在[2]中,霍夫曼等人研究了在給定計算預算下訓練Transformer語言模型的最佳模型規模和標記數量。通過在5到5000億個標記上訓練超過400個模型,參數范圍從7000萬到超過160億,他們發現對于計算最優訓練,模型規模和訓練標記數量應該按比例縮放:模型規模每增加一倍,訓練標記數量也應該增加一倍。他們通過訓練一個預測計算最優模型Chinchilla來測試這個假設,該模型使用與Gopher相同的計算預算,但參數為70B,數據多4%。

10)Galactica

在[87]中,泰勒等人介紹了Galactica,這是一個大語言模型,可以存儲、組合和推理科學知識。他們在一個大型科學論文、參考材料、知識庫和許多其他來源的語料上進行訓練。Galactica在推理方面表現良好,在數學MMLU上比Chinchilla高出41.3%至35.7%,在MATH上比PaLM 540B高出20.4%至8.8%。

11)CodeGen

在[88]中,尼克坎普等人訓練并發布了一組高達161B參數的大語言模型,稱為CODEGEN,用于自然語言和編程語言數據,并開源了訓練庫JAXFORMER。他們通過證明它在HumanEval上的零樣本Python代碼生成方面與之前的最先進模型具有競爭力,展示了訓練模型的實用性。他們進一步研究了程序合成的多步范式,其中一個程序被分解為指定子問題的多個提示。他們還構建了一個開放基準Multi-Turn Programming Benchmark(MTPB),由115個不同的問題集組成,這些問題集被分解為多輪提示。

12)AlexaTM

在[89]中,索爾坦等人證明,在由去噪和因果語言建模(CLM)任務混合預訓練的多語言大規模序列到序列(seq2seq)模型在各種任務上是比僅解碼器模型更高效的少樣本學習者。他們訓練了一個200億參數的多語言seq2seq模型Alexa Teacher Model(AlexaTM 20B),并表明它在1-shot總結任務上取得了最先進的(SOTA)性能,優于大得多的540B PaLM解碼器模型。AlexaTM由46個編碼器層、32個解碼器層、32個注意力頭和 d m o d e l = 4096 d_{model}=4096 dmodel?=4096組成。

13)Sparrow

在[90]中,格萊斯等人介紹了Sparrow,這是一個信息尋求對話代理,經過訓練比提示語言模型基線更有幫助、更正確和更無害。他們使用來自人類反饋的強化學習來訓練他們的模型,并添加了兩個新功能來幫助人類評判者判斷代理行為。Sparrow模型的高級管道如圖21所示。
在這里插入圖片描述

14)Minerva

在[91]中,盧科夫斯基等人介紹了Minerva,這是一個在通用自然語言數據上進行預訓練,并在技術內容上進一步訓練的大語言模型,以解決以前大語言模型在定量推理(如解決數學、科學和工程問題)方面的困難。

15)MoD

在[92]中,泰等人提出了自然語言處理中自我監督的廣義和統一觀點,并展示了如何將不同的預訓練目標相互轉換,以及在不同目標之間進行插值如何有效。他們提出了去噪器混合(MoD),這是一個將不同預訓練范式結合在一起的預訓練目標。這個框架被稱為統一語言學習(UL2)。UL2預訓練范式的概述如圖22所示。
在這里插入圖片描述

16)BLOOM

在[93]中,斯考等人介紹了BLOOM,這是一個176B參數的開放訪問語言模型,是由數百名研究人員合作設計和構建的。BLOOM是一個僅解碼器的Transformer語言模型,在ROOTS語料上進行訓練,ROOTS語料是一個包含46種自然語言和13種編程語言(共59種)的數百個來源的數據集。BLOOM架構的概述如圖23所示。

在這里插入圖片描述

17)GLM

在[94]中,曾等人介紹了GLM-130B,這是一個雙語(英語和中文)預訓練語言模型,參數為1300億。這是為了開源一個至少與GPT-3(davinci)一樣好的100B規模模型,并揭示這樣規模的模型如何能夠成功預訓練。

18)Pythia

在[95]中,比德曼等人介紹了Pythia,這是一組16個在完全相同的順序中看到的公共數據上進行訓練的大語言模型,大小從70M到12B參數不等。我們為16個模型中的每一個提供了154個檢查點的公共訪問權限,以及下載和重建其確切訓練數據加載器的工具,以便進行進一步研究。

19)Orca

在[96]中,穆克吉等人開發了Orca,這是一個130億參數的模型,它學習模仿大型基礎模型的推理過程。Orca從GPT-4的豐富信號中學習,包括解釋軌跡、逐步思考過程和其他復雜指令,并在ChatGPT的教師幫助下進行指導。

20)StarCoder

在[97]中,李等人介紹了StarCoder和StarCoderBase。它們是155億參數的模型,具有8K的上下文長度,通過多查詢注意力實現填充能力和快速的大規模批處理推理。StarCoderBase在一個由The Stack組成的一萬億個標記上進行訓練,The Stack是一個包含大量許可GitHub存儲庫的集合,具有檢查工具和退出過程。他們在350億個Python標記上對StarCoderBase進行了微調,從而創建了StarCoder。他們對代碼大語言模型進行了迄今為止最全面的評估,并表明StarCoderBase優于支持多種編程語言的每個開放代碼大語言模型,并與OpenAI的code-cushman-001模型匹配或優于該模型。

21)KOSMOS

在[98]中,黃等人介紹了KOSMOS-1,這是一個多模態大語言模型(MLLM),它可以感知一般模態、進行上下文學習(即少樣本學習)和遵循指令(即零樣本學習)。具體來說,他們從零開始在網絡規模的多模態語料上訓練KOSMOS-1,包括任意交錯的文本和圖像、圖像字幕對和文本數據。實驗結果表明,KOSMOS-1在(i)語言理解、生成甚至無OCR的自然語言處理(直接將文檔圖像作為輸入)方面取得了令人印象深刻的性能;(ii)感知-語言任務,包括多模態對話、圖像字幕、視覺問答;以及(iii)視覺任務,如圖像識別與描述(通過文本指令指定分類)方面表現出色。

22)Gemini

在[99]中,Gemini團隊介紹了一個新的多模態模型系列,該系列在圖像、音頻、視頻和文本理解方面展現出有前途的能力。Gemini系列包括三個版本:Ultra用于高度復雜的任務,Pro用于增強的性能和可擴展性,Nano用于設備端應用。Gemini架構建立在Transformer解碼器之上,并經過訓練以支持32K的上下文長度(通過使用高效的注意力機制)。

一些其他流行的大語言模型框架(或用于高效開發大語言模型的技術)包括InnerMonologue[100]、Megatron-Turing NLG[101]、LongFormer[102]、OPT-IML[103]、MeTaLM[104]、Dromedary[105]、Palmyra[106]、Camel[107]、Yalm[108]、MPT[109]、ORCA2[110]、Gorilla[67]、PAL[111]、Claude[112]、CodeGen 2[113]、Zephyr[114]、Grok[115]、Qwen[116]、Mamba[30]、Mixtral-8x7B[117]、DocLLM[118]、DeepSeek-Coder[119]、FuseLLM-7B[120]、TinyLlama-1.1B[121]、LLaMA-Pro-8B[122]。

圖24提供了一些最具代表性的大語言模型框架的概述,以及為大語言模型的成功做出貢獻并幫助推動大語言模型發展極限的相關工作。

在這里插入圖片描述

三、大語言模型是如何構建的

III. HOW LLMS ARE BUILT
在本節中,我們首先回顧用于大語言模型的流行架構,然后討論從數據準備、標記化到預訓練、指令調優和對齊的數據和建模技術。

一旦選擇了模型架構,訓練大語言模型的主要步驟包括:數據準備(收集、清洗、去重等)、標記化、模型預訓練(以自監督學習的方式)、指令調優和對齊。我們將在下面的單獨小節中解釋每個步驟。這些步驟也在圖25中進行了說明。

在這里插入圖片描述

A. 主要的大語言模型架構

最廣泛使用的大語言模型架構是僅編碼器、僅解碼器和編碼器-解碼器。它們大多數基于Transformer(作為構建塊)。因此,我們在這里也回顧一下Transformer架構。

1)Transformer

在一項開創性的工作[44]中,瓦斯瓦尼等人提出了Transformer框架,該框架最初是為了使用GPU進行有效并行計算而設計的。Transformer的核心是(自)注意力機制,它能夠比遞歸和卷積機制更有效地利用GPU來捕獲長期上下文信息。圖26提供了Transformer工作的高級概述。在本節中,我們提供主要元素和變體的概述,更多細節請參見[44]、[123]。

在這里插入圖片描述

Transformer語言模型架構最初是為機器翻譯而設計的,它由一個編碼器和一個解碼器組成。編碼器由一堆 N = 6 N = 6 N=6個相同的Transformer層組成。每個層有兩個子層。第一個是多頭自注意力層,另一個是簡單的按位置全連接前饋網絡。解碼器由一堆6個相同的層組成。除了每個編碼器層中的兩個子層之外,解碼器還有第三個子層,該子層對編碼器堆棧的輸出執行多頭注意力。注意力函數可以描述為將查詢和一組鍵值對映射到一個輸出,其中查詢、鍵、值和輸出都是向量。輸出計算為值的加權和,其中分配給每個值的權重是通過查詢與相應鍵的兼容性函數計算得出的。不是對具有 m o d e l model model維鍵、值和查詢的單個注意力函數進行操作,而是發現分別將查詢、鍵和值線性投影到 d k d_{k} dk? d k d_{k} dk? d v d_{v} dv?維度是有益的,其中這些投影是通過不同的學習線性投影來完成的。位置編碼被納入以融合關于序列中標記的相對或絕對位置的信息。

2)僅編碼器(Encoder-Only)

對于這個家族,在每個階段,注意力層可以訪問初始句子中的所有單詞。這些模型的預訓練通常包括以某種方式破壞給定的句子(例如,通過對其中的隨機單詞進行掩碼),并要求模型找到或重建初始句子。編碼器模型非常適合需要理解整個序列的任務,例如句子分類、命名實體識別和抽取式問答。一個突出的僅編碼器模型是BERT(來自Transformer的雙向編碼器表示),由[24]提出。

3)僅解碼器(Decoder-Only)

對于這些模型,在每個階段,對于任何單詞,注意力層只能訪問句子中位于該單詞之前的單詞。這些模型也有時被稱為自回歸模型。這些模型的預訓練通常被表述為預測序列中的下一個單詞(或標記)。僅解碼器模型最適合涉及文本生成的任務。GPT模型是這個模型類別的杰出代表。

4)編碼器-解碼器(Encoder-Decoder)

這些模型使用編碼器和解碼器,有時也被稱為序列到序列模型。在每個階段,編碼器的注意力層可以訪問初始句子中的所有單詞,而解碼器的注意力層只能訪問輸入中給定單詞之前的單詞。這些模型通常使用編碼器或解碼器模型的目標進行預訓練,但通常涉及更復雜的內容。例如,一些模型通過用單個掩碼特殊單詞替換文本的隨機跨度(可以包含幾個單詞)進行預訓練,目標是預測這個掩碼單詞所替換的文本。編碼器-解碼器模型最適合根據給定的輸入生成新句子的任務,例如總結、翻譯或生成式問答。

B. 數據清洗

數據質量對基于它們訓練的語言模型的性能至關重要。數據清洗技術,如過濾、去重,對模型性能有很大影響。

例如,在Falcon40B[124]中,佩內多等人表明,經過適當過濾和去重的網絡數據本身就可以產生強大的模型;甚至可以顯著優于在The Pile上訓練的最先進模型。盡管進行了廣泛的過濾,他們仍能從CommonCrawl中獲得5萬億個標記。他們還從他們的REFINEDWEB數據集中發布了6000億個標記的提取,以及在其上訓練的1.3/7.5B參數的語言模型。圖27展示了這項工作對CommonCrawl數據的精煉過程。

在這里插入圖片描述

1)數據過濾

數據過濾旨在提高訓練數據的質量和訓練后的大語言模型的有效性。常見的數據過濾技術包括:
- 去除噪聲:指消除可能影響模型泛化能力的無關或噪聲數據。例如,可以考慮從訓練數據中去除虛假信息,以降低模型生成虛假響應的機會。兩種主流的質量過濾方法包括基于分類器的和基于啟發式的框架。
- 處理異常值:識別和處理數據中的異常值或異常情況,以防止它們對模型產生不成比例的影響。
- 解決不平衡問題:平衡數據集中類或類別的分布,以避免偏差并確保公平表示。這對于負責任的模型訓練和評估特別有用。
- 文本預處理:通過去除停用詞、標點符號或其他可能對模型學習沒有顯著貢獻的元素來清理和標準化文本數據。
- 處理模糊性:解決或排除在訓練過程中可能使模型混淆的模糊或矛盾數據。這可以幫助模型提供更明確和可靠的答案。

2)去重

去重是指從數據集中刪除重復的實例或相同數據的重復出現。重復的數據點可能會在模型訓練過程中引入偏差,并降低多樣性,因為模型可能會多次學習相同的示例,這可能會導致在這些特定實例上的過擬合。一些工作[125]表明,去重可以提高模型泛化到新的、未見過的數據的能力。

去重過程在處理大型數據集時尤為重要,因為重復數據可能會無意中夸大某些模式或特征的重要性。這在自然語言處理任務中尤為相關,因為多樣化和代表性的訓練數據對于構建強大的語言模型至關重要。

具體的去重方法可能會根據數據的性質和正在訓練的特定語言模型的要求而有所不同。它可能涉及比較整個數據點或特定特征來識別和刪除重復項。在文檔級別,現有工作主要依賴于文檔之間高級特征(例如n元語法重疊)的重疊率來檢測重復樣本。

C. 標記化

標記化是指將文本序列轉換為更小的部分,稱為標記。雖然最簡單的標記化工具只是根據空格將文本分割成標記,但大多數標記化工具依賴于單詞字典。然而,在這種情況下,出現了未登錄詞(OOV)的問題,因為標記器只知道其字典中的單詞。為了增加字典的覆蓋范圍,用于大語言模型的流行標記器是基于子詞的,這些子詞可以組合形成大量的單詞,包括在訓練數據中未出現的單詞或不同語言的單詞。接下來,我們描述三個流行的標記器。

1)字節對編碼(BytePairEncoding)

字節對編碼最初是一種數據壓縮算法,它使用字節級的頻繁模式來壓縮數據。根據定義,該算法主要嘗試保持頻繁出現的單詞的原始形式,并分解不常見的單詞。這個簡單的范式保持了詞匯量不會太大,但同時也足以表示常見單詞。如果在算法的訓練數據中后綴或前綴也很常見,那么頻繁單詞的形態形式也可以很好地表示。

2)單詞塊編碼(WordPieceEncoding)

這個算法主要用于BERT和Electra等知名模型。在訓練開始時,該算法會取訓練數據中的所有字母,以確保從訓練數據中不會有任何單詞被標記為UNK(未知)。當模型遇到一個無法被標記器標記的輸入時,就會出現這種情況。它大多發生在一些字符無法被標記器標記的情況下。與字節對編碼類似,它試圖根據單詞的頻率最大化將所有標記放入詞匯表的可能性。

3)句子塊編碼(SentencePieceEncoding)

盡管前面描述的兩種標記器都很強大,并且與空格標記化相比有許多優點,但它們仍然假設單詞總是由空格分隔。但在實際情況中,有些語言中,單詞可能會被許多噪聲元素破壞,例如不需要的空格甚至是自創單詞。句子塊編碼試圖解決這個問題。

D. 位置編碼

在這里插入圖片描述

1)絕對位置嵌入(Absolute Positional Embeddings)

絕對位置嵌入[44]已被用于原始的Transformer模型中,以保留序列順序的信息。因此,單詞的位置信息被添加到編碼器和解碼器堆棧底部的輸入嵌入中。位置編碼有多種選擇,要么是學習到的,要么是固定的。在原始的Transformer中,正弦和余弦函數被用于此目的。在Transformer中使用絕對位置嵌入的主要缺點是對令牌數量的限制。此外,絕對位置嵌入沒有考慮到標記之間的相對距離。

2)相對位置嵌入(Relative Positional Embeddings)

相對位置嵌入[126]涉及將自注意力擴展到考慮輸入元素之間的成對鏈接。相對位置嵌入在兩個級別添加到模型中:首先作為鍵的附加組件,然后作為值矩陣的子組件。這種方法將輸入視為具有標簽和有向邊的完全連接圖。在線性序列的情況下,邊可以捕獲關于輸入元素之間相對位置差異的信息。一個剪輯距離,表示為 k ≤ 2 ≤ n ? 4 k \leq 2 \leq n - 4 k2n?4,指定了相對位置的最大限制。這允許模型對不屬于訓練數據的序列長度進行合理預測。

3)旋轉位置嵌入(Rotary Position Embeddings)

旋轉位置嵌入(RoPE)[127]解決了現有方法的問題。學習到的絕對位置編碼可能缺乏通用性和有意義性,特別是當句子很短時。此外,當前的方法,如T5的位置嵌入,在構建位置之間的完整注意力矩陣時面臨挑戰。RoPE使用旋轉矩陣來編碼單詞的絕對位置,并同時在自注意力中包含明確的相對位置細節。RoPE具有諸如對句子長度的靈活性、隨著相對距離增加單詞依賴性降低以及能夠通過相對位置編碼改進線性自注意力等有用特征。GPT-NeoX-20B、PaLM、CODEGEN和LLaMA等模型在其架構中利用了RoPE。

4)相對位置偏差(Relative Positional Bias)

這種位置嵌入的概念是為了在推理過程中促進對比訓練數據中更長的序列的外推。在[128]中,普雷斯等人提出了帶有線性偏差的注意力(ALiBi)。他們不是簡單地將位置嵌入添加到單詞嵌入中,而是對查詢-鍵對的注意力得分引入偏差,對它們之間的距離施加懲罰。BLOOM模型利用了ALiBi。

E. 模型預訓練

預訓練是大語言模型訓練流程中的第一步,它幫助大語言模型獲得基本的語言理解能力,這些能力可以在廣泛的語言相關任務中發揮作用。在預訓練過程中,大語言模型在大量(通常)未標記的文本上進行訓練,通常采用自監督的方式。有不同的方法用于預訓練,如下一個句子預測[24],其中兩個最常見的方法包括下一個令牌預測(自回歸語言建模)和掩碼語言建模。

在自回歸語言建模框架中,給定一個 n n n個令牌的序列 x 1 , . . . , x n x_{1},...,x_{n} x1?,...,xn?,模型試圖以自回歸的方式預測下一個令牌 x n + 1 x_{n + 1} xn+1?(有時是下一個令牌序列)。在這種情況下,一個流行的損失函數是預測令牌的對數似然,如公式2所示:
L A L M ( x ) = ∑ i = 1 N p ( x i + n ∣ x i , . . . , x i + n ? 1 ) \mathcal{L}_{ALM}(x)=\sum_{i = 1}^{N} p\left(x_{i + n} | x_{i},...,x_{i + n - 1}\right) LALM?(x)=i=1N?p(xi+n?xi?,...,xi+n?1?)
由于這個框架的自回歸性質,僅解碼器模型自然更適合學習如何完成這些任務。

在掩碼語言建模中,序列中的一些單詞被掩碼,模型被訓練根據周圍上下文預測掩碼單詞。有時人們也將這種方法稱為去噪自動編碼。如果我們將序列 x x x中的掩碼/損壞樣本表示為 x  ̄ \overline{x} x,那么這種方法的訓練目標可以寫為:
L M L M ( x ) = ∑ i = 1 N p ( x  ̄ ∣ x \ x  ̄ ) \mathcal{L}_{MLM}(x)=\sum_{i = 1}^{N} p(\overline{x} | x \backslash \overline{x}) LMLM?(x)=i=1N?p(xx\x)
最近,混合專家(MoE)[130]、[131]在大語言模型領域也變得非常流行。MoE使模型能夠以更少的計算進行預訓練,這意味著可以在與密集模型相同的計算預算下大幅擴展模型或數據集規模。MoE由兩個主要元素組成:稀疏MoE層,用于替代密集的前饋網絡(FFN)層,并且具有一定數量的“專家”(例如8個),其中每個專家是一個神經網絡。在實踐中,專家是FFN,但它們也可以是更復雜的網絡。一個門網絡或路由器,用于確定將哪些令牌發送到哪些專家。值得注意的是,一個令牌可以發送到多個專家。如何將令牌路由到專家是使用MoE時的一個重要決策 - 路由器由學習到的參數組成,并與網絡的其余部分同時進行預訓練。圖29提供了一個Switch Transformer編碼器塊的圖示,該編碼器塊用于MoE。

在這里插入圖片描述

F. 微調和指令調優(Fine-tuning and Instruction Tunin)

早期的語言模型,如BERT,使用自我監督進行訓練,如第三節-E中所解釋的,無法執行特定任務。為了使基礎模型有用,需要使用標記數據對其進行微調(因此稱為監督微調或簡稱為SFT)以適應特定任務。例如,在原始的BERT論文[24]中,該模型被微調到11個不同的任務。雖然最近的大語言模型不再需要微調即可使用,但它們仍然可以從任務或數據特定的微調中受益。例如,OpenAI報告說,更小的GPT-3.5 Turbo模型在使用任務特定數據進行微調時可以優于GPT-4。

微調不需要針對單個任務進行,并且有不同的多任務微調方法(例如,見Mahabi等人[132])。針對一個或多個任務進行微調已知可以提高結果并減少提示工程的復雜性,并且它可以作為檢索增強生成的替代方案。此外,還有其他一些原因可能建議進行微調。例如,可能希望針對特定任務或專有的新數據進行微調,這些數據在預訓練期間未被暴露。

微調大語言模型的一個重要原因是使模型的響應與人類通過提示提供的期望保持一致。這就是所謂的指令調優[133]。我們將在第四節-B中詳細討論如何設計和優化提示,但在指令調優的背景下,重要的是要理解指令是一個指定模型應完成任務的提示。指令調優數據集,如NaturalInstructions[134],不僅包括任務定義,還包括其他組件,如正面/負面示例或要避免的事情。

用于指令調優大語言模型的具體方法和指令數據集各不相同,但總體而言,指令調優的模型優于其基于的原始基礎模型。例如,InstructGPT[59]在大多數基準測試上優于GPT-3。Alpaca[62]與LLaMA相比也是如此。

Wang等人提出的自我指令[135]也是這一領域的一種流行方法,他們引入了一個框架,通過引導模型自生成指令來提高預訓練語言模型的指令跟隨能力。他們的流程從語言模型生成指令、輸入和輸出樣本開始,然后過濾掉無效或相似的樣本,再使用這些樣本對原始模型進行微調。

G. 對齊(Alignment)

人工智能對齊是將人工智能系統引導向人類目標、偏好和原則的過程。為單詞預測而預訓練的大語言模型通常會表現出意想不到的行為。例如,它們可能會生成有毒、有害、誤導性和有偏見的內容。

上面討論的指令調優使大語言模型更接近對齊,但在許多情況下,采取進一步的步驟來改善模型的對齊并避免意外行為是很重要的。我們在本節中回顧最流行的對齊方法。

RLHF(從人類反饋中強化學習)和RLAIF(從人工智能反饋中強化學習)是兩種流行的方法。RLHF使用獎勵模型從人類反饋中學習對齊。這個獎勵模型在經過調整后,能夠對不同的輸出進行評分,并根據人類給出的對齊偏好對其進行評分。獎勵模型向原始大語言模型提供反饋,該反饋用于進一步調整大語言模型。另一方面,從人工智能反饋中強化學習直接將預訓練且對齊良好的模型連接到大語言模型,并幫助它從更大和更對齊的模型中學習。

在最近的另一項工作(稱為DPO)[139]中,拉法伊洛夫等人討論了RLHF是一個復雜且往往不穩定的過程,并試圖用一種新的方法來解決這個問題。他們利用獎勵函數和最優策略之間的映射來表明,這個約束獎勵最大化問題可以通過單階段的策略訓練來精確優化,基本上解決了在人類偏好數據上的分類問題。他們將得到的算法稱為直接偏好優化(DPO),它是穩定的、高效的,并且計算量小,消除了擬合獎勵模型、在微調期間從大語言模型中采樣或進行大量超參數調整的需要。他們觀察到,使用DPO進行微調超過了RLHF控制生成情感的能力,并提高了總結中的響應質量。圖30顯示了DPO與RLHF的高級比較。

在這里插入圖片描述

最近,Ethayarajh等人提出了一種新的對齊方法,稱為卡尼曼 - 特沃斯基優化(KTO)[136]。與現有的最先進方法不同,KTO不需要成對的偏好數據( ( x , y w , y l ) (x, y_{w}, y_{l}) (x,yw?,yl?)),它只需要 ( x , y ) (x, y) (x,y)和關于 y y y是否可取的知識。盡管沒有使用成對偏好,但KTO對齊的模型在1B到30B的規模上表現優于DPO對齊的模型。KTO在現實世界中也比偏好優化方法更容易使用,因為它所需的數據類型要豐富得多。例如,每個零售公司都有大量的客戶交互數據,以及關于該交互是否成功(例如,購買是否完成)或不成功(例如,沒有購買)的信息。然而,他們幾乎沒有反事實數據(即如何將不成功的客戶交互 y l y_{l} yl?變成成功的交互 y w y_{w} yw?)。圖31顯示了KTO與上面討論的其他對齊方法的高級比較。

在這里插入圖片描述

H. 解碼策略

解碼是指使用預訓練的大語言模型生成文本的過程。給定一個輸入提示,標記器將輸入文本中的每個標記轉換為相應的標記ID。然后,語言模型使用這些標記ID作為輸入,并預測下一個最可能的標記(或標記序列)。最后,模型生成對數幾率,這些對數幾率使用softmax函數轉換為概率。已經提出了不同的解碼策略。一些最流行的策略是貪心搜索、束搜索以及不同的采樣技術,如top-K、top-P(核采樣)。

1)貪心搜索(Greedy Search)

貪心搜索在每個步驟中選擇最可能的標記作為序列中的下一個標記,丟棄所有其他潛在選項。可以想象,這是一種簡單的方法,可能會丟失很多時間一致性和連貫性。它只考慮每個步驟中最可能的標記,而不考慮對整個序列的總體影響。這種特性使它速度很快,但也意味著它可能會錯過一些可能出現的更好的序列,這些序列可能會使用稍微不那么可能的下一個標記。

2)束搜索(Beam Search)

與貪心搜索只考慮下一個最可能的標記不同,束搜索考慮 N N N個最可能的標記,其中 N N N表示束的數量。這個過程會重復進行,直到達到預定義的最大序列長度或出現序列結束標記。在這一點上,具有最高總體得分的標記序列(即“束”)將被選擇作為輸出。例如,對于束大小為2和最大長度為5,束搜索需要跟蹤 2 5 = 32 2^{5}=32 25=32個可能的序列。因此,它比貪心搜索計算量更大。

3)top - k采樣(Top-k Sampling)

top - k采樣是一種技術,它使用語言模型生成的概率分布來從 k k k個最可能的選項中隨機選擇一個標記。

假設我們有6個標記(A、B、C、D、E、F), k = 2 k = 2 k=2,并且 P ( A ) = 30 % P(A)=30\% P(A)=30% P ( B ) = 20 % P(B)=20\% P(B)=20% P ( C ) = P ( D ) = P ( E ) = P ( F ) = 12.5 % P(C)=P(D)=P(E)=P(F)=12.5\% P(C)=P(D)=P(E)=P(F)=12.5%。在top - k采樣中,標記C、D、E、F將被忽略,模型輸出A的時間為60%,輸出B的時間為40%。這種方法確保我們在選擇過程中優先考慮最可能的標記,同時引入了一定的隨機性。

隨機性通常通過溫度參數來引入。溫度 T T T是一個范圍從0到1的參數,它影響softmax函數生成的概率,使最可能的標記更具影響力。在實踐中,它只是通過將輸入的對數幾率除以溫度值來實現:
s o f t m a x ( x i ) = e x i / T ∑ j e x j / T softmax\left(x_{i}\right)=\frac{e^{x_{i} / T}}{\sum_{j} e^{x_{j} / T}} softmax(xi?)=j?exj?/Texi?/T?
低溫設置會顯著改變概率分布(并且常用于文本生成中以控制生成輸出的“創造性”水平),而高溫會優先考慮具有較高概率的標記。top - k采樣是一種創造性的采樣方式,可以與束搜索一起使用。top - k采樣選擇的序列可能不是束搜索中概率最高的序列。但重要的是要記住,最高得分并不總是導致更現實或有意義的序列。

4)top - p采樣

top - p采樣,也稱為核采樣,采用了與top - k采樣略有不同的方法。它不是選擇top k k k個最可能的標記,而是選擇一個截止值 p p p,使得所選標記的概率之和超過 p p p。這形成了一個“核”的標記,從中隨機選擇下一個標記。換句話說,在top - p采樣中,語言模型按降序檢查最可能的標記,并不斷將它們添加到列表中,直到概率之和超過閾值 p p p。可以想象,這對于top - k標記沒有很大概率質量的場景可能更好。與top - k采樣不同,核采樣中包含的標記數量不是固定的。這種可變性通常會導致更具多樣性和創造性的輸出,使核采樣在與文本生成相關的任務中很受歡迎。

I. 成本效益高的訓練/推理/適應/壓縮

在這一部分,我們回顧一些用于更具成本效益(和計算效益)的訓練和使用大語言模型的流行方法。

1)優化訓練

已經開發了許多用于優化大語言模型訓練的框架,這里我們介紹一些突出的框架。

  • ZeRO:在[140]中,拉杰班達里等人開發了一種新穎的解決方案,零冗余優化器(ZeRO),用于優化內存,極大地提高了大語言模型的訓練速度,同時增加了可以有效訓練的模型規模。ZeRO消除了數據和模型并行訓練中的內存冗余,同時保持了低通信量和高計算粒度,使得可以按比例擴展模型規模,與設備數量成正比,并保持高效。
  • RWKV:在[141]中,彭等人提出了一種新穎的模型架構,接收權重鍵值(RWKV),它結合了Transformer的高效并行訓練和RNN的高效推理。他們的方法利用線性注意力機制,并允許他們將模型表述為Transformer或RNN,這在訓練期間并行化計算,并在推理期間保持恒定的計算和內存復雜性,導致第一個非Transformer架構被擴展到數百億參數。RWKV架構如圖32所示。
    在這里插入圖片描述

RWKV與不同Transformer的時間復雜度比較如圖33所示。

在這里插入圖片描述

2)低秩適應(LoRA)

低秩適應是一種流行且輕量級的訓練技術,它顯著減少了可訓練參數的數量,其基于一個關鍵見解,即針對特定任務微調的權重與初始預訓練權重之間的差異通常表現出“低內在秩” - 這意味著它可以很好地由低秩矩陣近似。

在訓練過程中,對于預訓練權重矩陣 W 0 ∈ R d × k W_{0} \in R^{d \times k} W0?Rd×k,LoRA通過低秩分解 W 0 + Δ W = W 0 + B A W_{0}+\Delta W=W_{0}+B A W0?+ΔW=W0?+BA來約束其更新,其中 B ∈ R d × r B \in R^{d \times r} BRd×r A ∈ R r × k A \in R^{r \times k} ARr×k,并且秩 r ? min ? ( d , k ) r \ll \min(d, k) r?min(d,k)。在訓練期間, W 0 W_{0} W0?被凍結,不接收梯度更新,而 A A A B B B包含可訓練參數。值得注意的是, W 0 W_{0} W0? Δ W = B A \Delta W = BA ΔW=BA都與相同的輸入相乘,并且它們各自的輸出向量按坐標相加。對于 h = W 0 x h = W_{0}x h=W0?x,它們修改后的前向傳播產生: h = W 0 x + Δ W x = W 0 x + B A x h = W_{0}x+\Delta W x=W_{0}x + BAx h=W0?x+ΔWx=W0?x+BAx通常, A A A使用隨機高斯初始化, B B B使用零初始化,因此在訓練開始時 Δ W = B A \Delta W = BA ΔW=BA為零。然后,他們將 Δ W x \Delta Wx ΔWx縮放為 α r \alpha r αr,其中 α \alpha α是一個與 r r r相關的常數。這種重新參數化如圖34所示。
在這里插入圖片描述

值得注意的是,LoRA可以應用于神經網絡中的任何權重矩陣子集,以減少可訓練參數的數量。在Transformer架構中,自注意力模塊中有四個權重矩陣( ( W q , W k , W v , W o ) (W_{q}, W_{k}, W_{v}, W_{o}) (Wq?,Wk?,Wv?,Wo?)),多層感知機(MLP)模塊中有兩個。大多數時候,LoRA專注于僅為下游任務調整注意力權重,并凍結MLP模塊,因此它們在下游任務中不進行訓練,以簡化和提高參數效率。

3)知識蒸餾(Knowledge Distillation)

知識蒸餾是從較大模型中學習的過程。早期最佳模型發布的日子已經證明,即使使用API蒸餾方法,這種方法也是非常有用的。它也被稱為將多個模型的知識提煉到一個較小模型中的方法。通過這種方法創建的較小模型具有較小的模型大小,可以在邊緣設備上使用。知識蒸餾如圖35所示,展示了這種訓練方案的一般設置。

在這里插入圖片描述

知識可以通過不同的學習形式進行轉移:響應蒸餾、特征蒸餾和API蒸餾。響應蒸餾僅關注教師模型的輸出,并試圖教導學生模型如何準確地或至少相似地(在預測意義上)執行與教師相同的操作。特征蒸餾不僅使用最后一層,還使用中間層來為學生模型創建更好的內部表示。這有助于較小模型具有與教師模型相似的表示。

API蒸餾是使用API(通常來自OpenAI等大語言模型提供商)來訓練較小模型的過程。在大語言模型的情況下,它用于根據較大模型的直接輸出來訓練模型,這使其與響應蒸餾非常相似。這種蒸餾方式引發了很多關注,因為在模型本身不公開的情況下,通常會為終端用戶暴露(通常)付費的API。另一方面,雖然用戶為每次調用付費,但如何使用預測是有限的,例如,OpenAI禁止使用其API創建將與它競爭的大語言模型。在這種情況下,主要價值在于訓練數據。

4)量化(Quantization)

深度學習的核心是一組應用于矩陣的數學函數,模型權重具有特定的精度。降低權重的精度可以用于減小模型的大小并使其運行更快。例如,與Int-8操作相比,Float-32操作更慢。這個過程稱為量化,可以在不同的階段應用。模型量化的主要方法可以分為:后訓練量化和量化感知訓練。后訓練量化涉及使用兩種眾所周知的方法對量化訓練后的模型進行處理:動態和靜態。動態后訓練量化在運行時計算量化范圍,因此比靜態量化慢。量化感知訓練將量化標準添加到訓練中,并在訓練過程中訓練和優化量化模型。這種方法確保最終模型將具有良好的性能,并且在訓練后不需要進行量化。

四、大語言模型是如何使用和增強的

IV. HOW LLMS ARE USED AND AUGMENTED

一旦大語言模型經過訓練,我們可以使用它們為各種任務生成所需的輸出。大語言模型可以通過基本的提示直接使用。然而,為了充分利用它們的潛力或解決一些缺點,我們需要通過一些外部手段來增強這些模型。在本節中,我們首先簡要概述大語言模型的主要缺點,更深入地研究幻覺問題。然后,我們描述提示和一些增強方法如何不僅能夠解決這些限制,還可以用于增強大語言模型的能力,甚至將大語言模型轉變為能夠與外部世界交互的成熟人工智能代理。

A. 大語言模型的局限性

重要的是要記住,大語言模型是為預測令牌而訓練的。雖然微調和對齊可以提高它們的性能并增加它們的能力維度,但如果使用不當,它們仍然存在一些重要的局限性。其中一些包括:

1)沒有狀態/記憶

大語言模型本身無法記住甚至在之前的提示中發送給它們的內容。這對于許多需要某種形式的狀態的用例來說是一個重要的限制。

2)隨機性/概率性

如果向大語言模型發送相同的提示多次,您可能會得到不同的響應。雖然有參數,特別是溫度,可以限制響應的可變性,但這是它們訓練的固有屬性,可能會造成問題。

3)信息陳舊

大語言模型本身不知道當前時間或日期,并且無法訪問其訓練集之外的任何信息。

4)模型規模大

這意味著訓練和服務需要許多昂貴的GPU機器。在某些情況下,最大的模型在服務級別協議(SLAs)方面表現不佳,特別是在延遲方面。

5)幻覺(Hallucination)

大語言模型沒有“真理”的概念,并且通常在混合的好內容和壞內容上進行訓練。它們可能會產生非常合理但不真實的答案。

雖然前面的局限性對于某些應用來說都可能很重要,但我們值得更深入地研究最后一個局限性,即幻覺,因為它在過去幾個月中引起了很多關注,并且也激發了許多我們稍后將描述的提示方法和大語言模型增強方法。

6)幻覺的定義與分類
  • 內在幻覺(Intrinsic Hallucinations):這些直接與源材料沖突,引入事實錯誤或邏輯不一致。
  • 外在幻覺(Extrinsic Hallucinations):這些雖然不矛盾,但無法根據源進行驗證,包括推測性或無法證實的元素。

“source” 在大語言模型的上下文中根據任務而有所不同。在基于對話的任務中,它指的是“世界知識”,而在文本摘要中,它指的是輸入文本本身。這種區別在評估和解釋幻覺時起著關鍵作用。幻覺的影響也高度依賴于上下文。例如,在詩歌創作等創造性努力中,幻覺可能被認為是可以接受的甚至是有益的。

大語言模型在包括互聯網、書籍和維基百科在內的多樣化數據集上進行訓練,根據概率模型生成文本,而沒有對真理或虛假性的內在理解。最近的進展,如指令調優和從人類反饋中強化學習(RLHF),試圖引導大語言模型朝著更真實的輸出發展,但基本的概率性質和其固有的局限性仍然存在。最近的一項研究,“大語言模型在推理任務上的幻覺來源”[146],強調了大語言模型中幻覺的兩個關鍵因素:準確性先驗和相對頻率啟發式,強調了大語言模型訓練和輸出生成中固有的復雜性。

7)幻覺的測量與評估
  • 自動化測量(Statistical Metrics)
    • 統計指標:像ROUGE[147]和BLEU[148]這樣的指標常用于評估文本相似性,主要用于檢測內在幻覺。
    • 高級指標:如PARENT[149]、PARENTT[150]和Knowledge F1[151]等指標,在有結構化知識源時使用。這些指標雖然有效,但在捕捉句法和語義細微差別方面存在局限性。
    • 基于模型的指標(Model-Based Metrics)
      • 基于信息提取(IE)的指標:利用信息提取模型將知識簡化為關系元組,然后與源進行比較。
      • 基于問答(QA)的指標:通過問答框架評估生成內容與源的重疊(見[152])。
      • 基于自然語言推理(NLI)的指標:使用自然語言推理數據集根據給定的前提評估生成假設的真實性(見[153])。
      • 保真度分類指標:通過創建特定任務的數據集進行細致評估(見[154])。
  • 人類判斷(human judgment)
    • 評分:人類評估者根據預定義的等級對幻覺水平進行評分。
    • 比較分析:評估者將生成的內容與基線或真實參考進行比較,增加了主觀評估的重要層次。

FactScore[155]是最近的一個可以用于人類和基于模型評估的指標。該指標將大語言模型的生成分解為“原子事實”。最終得分計算為每個原子事實的準確性之和,給每個原子事實賦予相同的權重。準確性是一個二進制數,簡單地表示原子事實是否得到源的支持。作者實現了不同的自動化策略,使用大語言模型來估計這個指標。

8)減少幻覺的策略
  • 產品設計與用戶交互:例如設計用例設計、結構化輸入/輸出或提供用戶反饋機制。
  • 數據管理與持續改進:維護和分析跟蹤幻覺的數據集對于模型的持續改進至關重要。
  • 提示工程與元提示設計:許多第四節-B中描述的先進提示技術,如檢索增強生成,直接解決了幻覺風險。
  • 模型選擇與配置以減少幻覺:例如,溫度設置較低的較大模型通常表現更好。此外,RLHF或特定領域的微調等技術可以減輕幻覺風險。

B. 使用大語言模型:提示設計和工程(Prompt Design and Engineering)

生成式人工智能模型中的提示是用戶提供的文本輸入,用于指導模型的輸出。這可以從簡單的問題到詳細的描述或特定任務。提示通常包括指令、問題、輸入數據和示例。在實踐中,為了從人工智能模型中引出期望的響應,提示必須包含指令或問題,其他元素是可選的。高級提示涉及更復雜的結構,例如“思維鏈”提示,其中模型被引導遵循邏輯推理過程來得出答案。

提示工程是一個快速發展的學科,它塑造了大語言模型和其他生成式人工智能模型的交互和輸出。提示工程的本質在于設計最佳提示,以使用生成模型實現特定目標。這個過程不僅是指導模型,還涉及對模型能力和局限性的理解,以及它所操作的上下文的理解。

提示工程超越了簡單的提示構建;它需要結合領域知識、對人工智能模型的理解以及針對不同上下文定制提示的系統方法。這可能涉及創建可以根據給定數據集或上下文進行編程修改的模板。例如,根據用戶數據生成個性化響應可能會使用一個模板,該模板會動態填充相關的用戶信息。

此外,提示工程是一個迭代和探索性的過程,類似于傳統的機器學習實踐,如模型評估或超參數調整。這個領域的快速發展表明它有可能徹底改變機器學習的某些方面,超越傳統的特征或架構工程方法。另一方面,像版本控制和回歸測試這樣的傳統工程實踐需要適應這個新范式,就像它們適應其他機器學習方法一樣。

在接下來的段落中,我們詳細描述一些最有趣和流行的提示工程方法。

1)思維鏈(CoT,Chain of Thought)

思維鏈(CoT)技術最初在谷歌研究人員的論文“思維鏈提示在大語言模型中引出推理”[34]中描述,是大語言模型提示工程中的一個關鍵進展。這種方法基于這樣的理解,即大語言模型雖然擅長令牌預測,但并非天生設計用于明確推理。CoT通過引導模型完成基本的推理步驟來解決這個問題。

CoT基于使大語言模型的隱式推理過程顯式化。通過概述推理所需的步驟,模型被引導向更邏輯和合理的輸出,特別是在需要比簡單的信息檢索或模式識別更多的場景中。

CoT提示有兩種主要形式:

  • 零樣本CoT:這種形式要求大語言模型“逐步思考”,提示它分解問題并闡明每個推理階段。
  • 手動CoT:這是一個更復雜的變體,它需要提供逐步推理的示例作為模型的模板。雖然手動CoT更有效,但它在可擴展性和維護性方面面臨挑戰。

手動CoT比零樣本更有效。然而,這種基于示例的CoT的有效性取決于多樣化示例的選擇,手動構建包含逐步推理示例的提示是困難且容易出錯的。這就是自動CoT[157]發揮作用的地方。

2)思維樹(ToT,Tree of Thought)

思維樹(ToT)[158]提示技術受到在收斂到最合理的解決方案之前考慮各種替代方案或思維過程的概念的啟發。ToT基于分支到多個“思維樹”的想法,其中每個分支代表不同的推理線。這種方法允許大語言模型探索各種可能性和假設,就像人類認知過程中在確定最可能的解決方案之前考慮多個場景一樣。

ToT的一個關鍵方面是對這些推理路徑的評估。當大語言模型生成不同的思維分支時,每個分支都會根據其對查詢的有效性和相關性進行評估。這個過程涉及實時分析和比較分支,導致選擇最連貫和合理的結果。

ToT在復雜的問題解決場景中特別有用,在這些場景中,單一的推理路線可能不夠。它允許大語言模型模仿更人類般的問題解決方法,在得出結論之前考慮一系列可能性。這種技術增強了模型處理模糊性、復雜性和細致任務的能力,使其成為先進人工智能應用中的寶貴工具。

3)自一致性(Self-Consistency)

自一致性(或者譯為自洽)[159]利用基于集成的方法,要求大語言模型對相同的查詢生成多個響應。這些響應之間的一致性用作其準確性和可靠性的指標。

自一致性方法基于這樣的原則,即如果大語言模型對相同的提示生成多個相似的響應,那么該響應更有可能是準確的。這個方法涉及多次要求大語言模型處理一個查詢,每次都分析響應的一致性。這種技術在事實準確性和精度至關重要的場景中特別有用。

響應的一致性可以使用各種方法來測量。一種常見的方法是分析響應內容的重疊。其他方法可能包括比較響應的語義相似性或使用更復雜的技術,如BERT分數或n元語法重疊。這些措施有助于量化大語言模型生成的響應之間的一致性程度。

自一致性在信息準確性至關重要的領域有重要應用。它在事實核查等場景中特別相關,確保人工智能模型提供的信息準確無誤。通過使用這種技術,提示工程師可以增強大語言模型的可信度,使它們在需要高事實準確性的任務中更可靠。

4)反思(Reflection)

反思[160]涉及提示大語言模型根據對其響應的正確性和連貫性的推理來評估和可能修改自己的輸出。反思的概念圍繞著大語言模型進行某種自我評估的能力。在生成初始響應后,模型被提示反思其自身的輸出,考慮因素如事實準確性、邏輯一致性和相關性。這個內省過程可以導致生成修改或改進的響應。

反思的一個關鍵方面是大語言模型的自我編輯能力。通過評估其初始響應,模型可以識別潛在的錯誤或需要改進的地方。這個生成、反思和修改的迭代過程使大語言模型能夠改進其輸出,提高響應的整體質量和可靠性。

5)專家提示(Expert Prompting)

專家提示[161]通過模擬各個領域的專家響應來增強大語言模型的能力。這種方法涉及提示大語言模型扮演專家的角色并相應地響應,提供高質量、有見地的答案。專家提示中的一個關鍵策略是多專家方法。大語言模型被提示考慮來自多個專家視角的響應,這些響應然后被綜合形成一個全面和全面的答案。這種技術不僅增強了響應的深度,還納入了一系列觀點,反映了對主題的更全面理解。

6)鏈(Chains)

鏈是指在大語言模型中鏈接多個組件以處理復雜任務的方法。這種方法涉及創建一系列相互連接的步驟或過程,每個步驟都對最終結果做出貢獻。鏈的概念基于構建一個工作流程的想法,其中不同的階段或組件按順序排列。鏈中的每個組件執行特定的功能,并且一個組件的輸出作為下一個組件的輸入。這種端到端的安排允許更復雜和細致的處理,因為每個階段都可以針對任務的特定方面進行定制。鏈的復雜性和結構可以根據要求而變化。在“PromptChainer:通過可視化編程鏈接大語言模型提示”[162]中,作者不僅描述了設計鏈的主要挑戰,還描述了支持這些任務的可視化工具。

7)導軌(Rails)

先進的提示工程中的導軌是指通過預定義的規則或模板來引導和控制大語言模型輸出的方法。這種方法旨在確保模型的響應符合某些標準或標準,增強輸出的相關性、安全性和準確性。導軌的概念涉及設置一個框架或一組指南,大語言模型在生成響應時必須遵循。這些指南通常使用稱為規范形式的建模語言或模板來定義,這些規范形式標準化了自然語言句子的結構和傳遞方式。

導軌可以設計用于各種目的,具體取決于應用的特定需求:

  • 主題導軌:確保大語言模型堅持特定的主題或領域。
  • 事實核查導軌:旨在最大限度地減少虛假或誤導性信息的生成。
  • 越獄導軌:防止大越獄導軌:防止大語言模型生成試圖繞過其自身操作約束或指南的響應。
8)自動提示工程(APE,Automatic Prompt Engineering)

自動提示工程(APE)[163]專注于自動化大語言模型提示的創建過程。APE旨在簡化和優化提示設計過程,利用大語言模型自身的能力來生成和評估提示。APE涉及以自引用的方式使用大語言模型,其中模型被用于生成、評分和改進提示。這種對大語言模型的遞歸使用使得能夠創建更有可能引出所需響應或結果的高質量提示。

APE的方法可以分解為幾個關鍵步驟:

  • 提示生成:大語言模型基于給定的任務或目標生成一系列潛在提示。
  • 提示評分:然后對每個生成的提示根據其有效性進行評估,通常使用諸如清晰度、特異性和引出所需響應的可能性等標準。
  • 改進和迭代:基于這些評估,提示可以被改進和迭代,進一步提高其質量和有效性。

C. 通過外部知識增強大語言模型 - RAG(etrieval augmented generation)

在這里插入圖片描述

預訓練大語言模型的主要限制之一是它們缺乏最新知識或訪問私有或特定用例的信息。這就是檢索增強生成(RAG)發揮作用的地方[164]。
在這里插入圖片描述
如圖37所示,RAG涉及從輸入提示中提取查詢,并使用該查詢從外部知識源(例如搜索引擎或知識圖譜,見圖38)檢索相關信息。然后將相關信息添加到原始提示中并提供給大語言模型,以便模型生成最終響應。一個RAG系統包括三個重要組件:檢索、生成、增強[165]。
在這里插入圖片描述

1)RAG感知提示技術(RAG-aware prompting techniques)

由于RAG對于構建先進的大語言模型系統的重要性,最近開發了幾種RAG感知提示技術。一種這樣的技術是前瞻性主動檢索增強生成(FLARE)[168]。

前瞻性主動檢索增強生成(FLARE)通過迭代地結合預測和信息檢索來增強大語言模型的能力。FLARE代表了檢索增強生成使用的演變,旨在提高大語言模型響應的準確性和相關性。

FLARE涉及一個迭代過程,其中大語言模型主動預測即將到來的內容,并使用這些預測作為查詢來檢索相關信息。這種方法與傳統的檢索增強模型形成對比,傳統模型通常檢索一次信息然后進行生成。在FLARE中,這個過程是動態的并且在生成階段持續進行。在FLARE中,大語言模型生成的每個句子或片段都要評估其置信度。如果置信度水平低于某個閾值,模型使用生成的內容作為查詢來檢索相關信息,然后使用該信息重新生成或改進句子。這個迭代過程確保響應的每個部分都基于最相關和最新的可用信息。

有關RAG框架及其相關工作的更多詳細信息,請讀者參考關于檢索增強生成的綜述[165]。

D. 使用外部工具(Using External Tools)

如上文所述,從外部知識源檢索信息只是增強大語言模型的一種潛在方式。更一般地說,大語言模型可以訪問任意數量的外部工具(例如服務的API)來增強其功能。在這方面,RAG可以被視為更廣泛的“工具”類別中的一個特定實例。

在這種情況下,工具是指大語言模型可以利用的外部函數或服務。這些工具擴展了大語言模型可以執行的任務范圍,從基本的信息檢索到與外部數據庫或API的復雜交互。

在論文“Toolformer:語言模型可以自學使用工具”[169]中,作者超越了簡單的工具使用,訓練大語言模型決定何時使用什么工具,甚至API需要什么參數。工具包括兩個不同的搜索引擎或一個計算器。在以下示例中,大語言模型決定調用外部問答工具、計算器和維基百科搜索引擎。最近,伯克利的研究人員訓練了一個名為Gorilla[67]的新大語言模型,它在使用API(一種特定但相當通用的工具)方面優于GPT-4。

1)工具感知提示技術(Tool-aware prompting techniques)

與RAG類似,已經開發了幾種工具感知提示方法來使工具的使用更具可擴展性。一種流行的技術是自動多步推理和工具使用(ART)[170]。

自動多步推理和工具使用(ART)是一種提示工程技術,它結合了自動思維鏈提示和外部工具的使用。ART代表了多種提示工程策略的融合,增強了大語言模型處理需要推理和與外部數據源或工具交互的復雜任務的能力。

ART涉及一種系統方法,其中給定一個任務和輸入,系統首先從任務庫中識別類似任務。這些任務然后用作提示中的示例,指導大語言模型如何接近和執行當前任務。這種方法在任務需要內部推理和外部數據處理或檢索的組合時特別有效。

E. 大語言模型智能體(LLM Agents)

人工智能體的概念在人工智能的歷史中已經得到了很好的探索。一個智能體通常是一個能夠使用其傳感器感知環境、根據其當前狀態做出判斷,并相應地根據可用行動采取行動的自主實體。

在大語言模型的背景下,一個智能體是指基于(增強的)大語言模型的專門實例化的系統,能夠自主執行特定任務。這些智能體被設計為與用戶和環境交互,以便根據輸入和交互的預期目標做出決策。智能體基于能夠訪問和使用工具并根據給定輸入做出決策的大語言模型。它們被設計用于處理需要一定程度的自主性和決策制定的任務,通常超出簡單的響應生成。

一個通用的基于大語言模型的智能體的功能包括:

1)工具訪問和利用(Tool Access and Utilization)

智能體有能力訪問外部工具和服務,并有效地利用這些資源來完成任務。

在這里插入圖片描述

2)決策制定(Decision Making)

它們可以根據輸入、上下文和可用工具做出決策,通常采用復雜的推理過程。

例如,一個能夠訪問天氣API等函數(或API)的大語言模型可以回答與特定地點的天氣相關的任何問題。換句話說,它可以使用API來解決問題。此外,如果該大語言模型能夠訪問允許進行購買的API,則可以構建一個購買智能體,不僅能夠從外部世界讀取信息,還能夠對其采取行動[171]。

圖40展示了另一個用于對話式信息尋求的基于大語言模型的智能體的示例[36],其中一個大語言模型通過一組即插即用模塊進行增強,包括跟蹤對話狀態的工作記憶、為任務制定執行計劃并選擇下一個系統行動的策略、執行策略選擇的行動(整合來自外部知識的證據或提示大語言模型生成響應)的行動執行器,以及評估大語言模型的響應與用戶期望或特定業務要求的一致性并生成反饋以提高智能體性能的效用。
在這里插入圖片描述

有關基于大語言模型的人工智能體的更多詳細信息,請參閱最近的綜述[172]、[173]、[174]。

1)智能體的提示工程技術

與RAG和工具類似,已經開發了專門針對基于大語言模型的智能體需求的提示工程技術。三個這樣的例子是無觀察推理(ReWOO)、推理和行動(ReAct)以及對話啟用解決智能體(DERA)。

無觀察推理(ReWOO)[175]旨在將推理與直接觀察分離。ReWOO通過使大語言模型能夠制定全面的推理計劃或元計劃而無需立即依賴外部數據或工具來運作。這種方法允許智能體創建一個結構化的推理框架,一旦有必要的數據或觀察可用,就可以執行該框架。在ReWOO中,大語言模型首先開發一個計劃(一系列步驟),概述如何接近和解決給定問題。這個元計劃階段至關重要,因為它為智能體一旦獲得信息就處理信息奠定了基礎。執行階段然后涉及將實際數據或觀察整合到預先指定的計劃中,從而產生連貫且與上下文相關的響應。ReWOO在令牌效率和對工具故障的魯棒性方面具有顯著優勢。它使大語言模型能夠處理無法立即訪問外部數據的任務,而是依賴于一個結構良好的推理框架。這種方法在數據檢索成本高、慢或不確定的場景中特別有利,允許基于大語言模型的智能體保持高水平的性能和可靠性。

推理和行動(ReAct)[176]提示大語言模型不僅生成口頭推理,還生成可操作的步驟,從而增強模型的動態問題解決能力。ReAct基于將推理與行動相結合的原則。在這種方法中,大語言模型被提示交替生成推理痕跡(解釋)和采取行動(步驟或命令)。這種方法允許模型動態地推理問題,并同時提出和采取具體行動。

對話啟用解決智能體(DERA)[177]是專門的人工智能體,能夠進行對話、解決查詢并根據交互交流做出決策。DERA基于在對話上下文中利用多個智能體的想法,每個智能體具有特定的角色和功能。這些智能體可以包括收集和分析信息的研究人員以及根據提供的信息做出最終判斷的決策者。這種角色分工允許一種組織良好且高效的問題解決和決策制定方法。DERA在需要復雜決策和問題解決的場景中特別有利,例如醫療診斷或客戶服務。DERA智能體的協作和交互性質使它們能夠處理復雜的查詢,具有單智能體系統可能難以處理的深度和細微差別。此外,這種方法與人類決策過程很好地對齊,使人工智能推理更相關和值得信賴。

五、大語言模型的流行數據集

V. POPULAR DATASETS FOR LLMS
大語言模型取得了有前途的成果,但主要問題是它們在特定任務或應用中如何有效地發揮作用以及如何評估它們的性能。
在這里插入圖片描述

由于大語言模型應用的不斷發展,對它們的評估帶來了特殊的挑戰。開發大語言模型的最初意圖是提高自然語言處理任務的性能,如翻譯、總結、問答等[178]。然而,如今很明顯,這些模型在各種領域都有應用,包括代碼生成和金融。此外,對大語言模型的評估涵蓋了幾個關鍵考慮因素,如公平性和偏見、事實核查和推理。在本節中,我們概述了用于評估大語言模型的常用基準。這些基準根據訓練或評估大語言模型的能力進行分類。

在這里插入圖片描述

A. 基本任務數據集:語言建模/理解/生成

本節提供了適合評估大語言模型基本能力的基準和數據集的概述。

1)自然問題(Natural Questions)

自然問題是一個問答數據集,由提交給谷歌搜索引擎的真實匿名、聚合查詢組成,這些查詢被用作問題。一個注釋者會看到一個問題以及來自前5個搜索結果的維基百科頁面,并注釋一個長答案(通常是一個段落)和一個短答案(一個或多個實體),如果頁面上存在這些答案,或者如果沒有長/短答案則標記為null。

2)MMLU

MMLU旨在評估在零樣本和少樣本場景中獲得的知識。這意味著MMLU評估模型的一般知識和問題解決能力。它涵蓋了STEM、人文、社會科學和其他領域的57個學科。該基準在復雜性上有所不同,從基礎到高級專業。值得一提的是,這個數據集的主要貢獻在于多任務語言理解、問答和算術推理。

3)MBPP

MBPP代表“大多數基本Python問題”,為評估設計用于代碼生成的模型的性能提供了一個基準。該基準包括974個簡短的Python程序,涵蓋了廣泛的主題,包括基本編程概念和標準庫使用等。每個挑戰包括一個任務描述、一個代碼解決方案和三個自動化測試用例。

4)HumanEval

HumanEval是一個用于代碼生成任務的數據集。這個數據集由164個人工編寫的編程挑戰組成。每個挑戰都伴隨著一個函數簽名、文檔字符串、代碼主體和多個單元測試。開發這個數據集的主要動機是確保其內容不包含在代碼生成模型的訓練數據中。

5)APPS

APPS是為專注于Python編程的代碼生成任務而設計的。APPS數據集包含232,444個Python程序。數據集中的每個程序平均有18行Python代碼。此外,APPS提供了對一個包含10,000個獨特編程練習的存儲庫的訪問,每個練習都有基于文本的問題描述。最后要強調的是,它包括測試用例。

6)WikiSQL

WikiSQL是為代碼生成任務而精心設計的,它有87,726對仔細標記的SQL查詢和相應的來自維基百科表的自然語言問題。SQL查詢包括三個子集:測試集(17,284個例子)、開發集(9,145個例子)和訓練集(61,297個例子)。

7)TriviaQA

TriviaQA是為問答任務設計的。這個數據集包括超過650,000個問題 - 答案 - 證據三元組。這個數據集有95,000個問題 - 答案對,每個問題由瑣事愛好者編寫,并由平均六個獨立來源的證據文件支持。這些文件是自動從維基百科或更廣泛的網絡搜索結果中獲取的。該數據集分為兩個部分,包括那些來自維基百科和網絡域的真實答案的問題,以及驗證集,其中包含準確回答的問題以及來自維基百科和在線的相關文件。

8)RACE

RACE適合閱讀理解任務。這個數據集基于中國中學生和高中生(年齡12至18歲)完成的英語測試,它包含大約28,000篇文本和100,000個由人類專家(主要是英語教師)精心準備的問題。這個數據集涵蓋了廣泛的主題,這些主題是有目的地選擇來評估學生的理解和推理能力的。這個數據集可分為三個子組:RACE - M、RACE - H和RACE。RACE - M指的是中學考試,RACE - H表示高中測試,而RACE是RACE - M和RACE - H的綜合。

9)SQuAD

SQuAD代表“斯坦福問答數據集”,是一個基于維基百科文章的眾包閱讀理解數據集。它大約有100,000個問題 - 答案對,與超過500篇文章相關聯。這些問題的答案通常是從相應的閱讀段落中提取的文本片段或跨度。在某些情況下,問題可能無法回答。該數據集分為三個集:一個80%的訓練集、一個10%的開發集和一個10%的隱藏測試集。

10)BoolQ

BoolQ是一個用于是/否問答任務的數據集,其目標是閱讀理解任務。BoolQ包括15,942個例子。每個例子是一個三元組,包括一個問題、一個相關段落和解決方案。雖然這個數據集的主要目的是用于閱讀理解,但它也可以用于推理、自然語言推理和問答任務。

11)MultiRC

MultiRC是另一個適合閱讀理解任務的數據集。MultiRC包含簡短的段落以及可以使用段落中的信息回答的多句問題。這個數據集的段落來自各種來源,包括新聞、小說、歷史文本、維基百科文章、社會和法律討論、小學科學教科書和9/11報告。每個問題有許多響應選擇,其中一個或多個是正確的。回答這些問題需要在幾個句子之間進行推理。MultiRC數據集包括大約6,000個從超過800個段落中收集的多句問題。平均而言,每個問題在總共五個響應選擇中提供大約兩個有效答案。

B. 涌現能力數據集:ICL、推理(CoT)、指令跟隨

本節重點介紹用于評估大語言模型涌現能力的基準和數據集。

1)GSM8K

GSM8K旨在評估模型的多步數學推理能力。GSM8K包括8,500個人類編寫的不同語言的小學數學文字問題。該數據集分為兩個集:一個訓練集,有7,500個問題,和一個測試集,有1,000個問題。這些問題需要2到8步來解決。解決方案主要是一系列使用基本算術運算的基本計算。

2)MATH

MATH使我們能夠評估模型解決數學問題的能力。MATH數據集有12,500個來自高中數學競賽的問題。數據集中的每個問題都有一個逐步的解決方案和一個最終答案,答案封閉在一個框中。這些問題涵蓋了廣泛的主題,并且具有不同的復雜程度。總共有七個學科。此外,每個問題的難度根據AoPS標準在從’1’到’5’的尺度上進行評級。'1’表示學科中最容易的問題,而’5’表示最困難的問題。在格式方面,所有問題和解決方案都使用LATEX和Asymptote向量圖形語言呈現。

3)HellaSwag

HellaSwag旨在評估大語言模型中的常識推理能力。這個基準包括70,000個多項選擇題。每個問題來自兩個領域之一:ActivityNet或WikiHow,并針對接下來可能發生的情況提供四個答案選擇。正確答案提供了一個實際描述即將發生的事件的陳述,而三個錯誤答案是為了迷惑機器而創建的。

4)AI2推理挑戰(ARC)

AI2推理挑戰用于常識推理。這個基準包括7,787個科學考試問題。這些問題是英語的,并且大多數是以多項選擇題的形式設置的。這些問題已被分為兩組:一個挑戰集,有2,590個困難問題,和一個容易集,有5,197個問題。每個集合也已預先分為訓練、開發和測試子集。

5)PIQA

PIQA旨在評估語言表示在物理常識方面的知識。在這個數據集中,重點是日常情況,偏好不常見的解決方案。核心任務是多項選擇題回答,其中提供一個問題 ( q ) (q) (q)以及兩個潛在的解決方案 ( s 1 , s 2 ) (s1, s2) (s1,s2)。然后,根據模型或人類選擇最佳解決方案。對于每個問題,只有一個解決方案是正確的。

6)SIQA

SIQA提供了一個框架,用于評估模型在社會情況中的常識推理能力。SIQA數據集有38,000個多項選擇題,旨在評估日常情況下的情感和社會智力。這個數據集涵蓋了廣泛的社會場景。在SIQA中,潛在的答案是人類選擇的響應和通過對抗過程過濾的機器生成的響應的混合。

7)OpenBookQA

OpenBookQA是一種新型的問答數據集,回答其問題需要額外的常識和豐富的文本理解,這些知識不在書中。這個數據集包括大約6,000個多項選擇題。每個問題都與一個核心事實以及額外的 6000 多個事實相關聯。這些問題是通過多階段眾包和專家篩選程序開發的。OpenBookQA 的問題難度較大,因為它們需要在有限的背景知識下進行多步推理。

8)TruthfulQA

TruthfulQA 專門用于評估語言模型在回答問題時的真實性。該數據集包含 817 個問題,由作者編寫,涵蓋 38 個不同類別,包括健康、法律、金融和政治等。這些問題是有意設計來挑戰人類回答者的,因為它們可能包含導致錯誤答案的常見誤解。

9)OPT-IML Bench

OPT-IML Bench 是一個全面的指令元學習基準。它涵蓋了來自 8 個現有基準的 2000 個 NLP 任務。OPT-IML Bench 由一個包含 1790 萬個示例的訓練集、一個包含 145000 個樣本的開發集和一個包含 321000 個樣本的測試集組成。

C. 增強能力數據集:使用外部知識/工具

本節重點介紹為評估大語言模型的增強能力而設計的數據集。

1)HotpotQA

HotpotQA 旨在涵蓋一個多樣化且可解釋的問答數據集,該數據集需要多跳推理。該數據集源自英語維基百科。它大約包含 113000 個問題。數據集中的每個問題都配有來自兩個維基百科文章的兩段,稱為黃金段落。此外,還有這些段落中工作人員挑選出的對回答問題很重要的句子列表。

2)ToolQA

ToolQA 是一個問答基準,用于評估大語言模型使用外部工具回答問題的能力。

3)GPT4Tools

GPT4Tools 用作教學數據集,通過指示高級教師(如 ChatGPT)根據視覺內容和工具描述生成指令來生成。這個過程會生成與工具使用相關的指令。該數據集有三個版本。第一個版本包含 71000 個指令跟隨數據點,用于微調 GPT4Tools 模型。下一個版本由手動清理的用于驗證的指令數據組成,涵蓋了與第一個版本中的工具相關的指令。最后一個版本是用于測試的清理指令數據,包括與第一個版本中不存在的一些工具相關的指令。

六、突出的大語言模型在基準測試上的性能

在本節中,我們首先概述一些用于評估不同場景下大語言模型性能的流行指標。然后,我們查看一些突出的大語言模型在一些流行數據集和基準測試上的性能。

A. 評估大語言模型的流行指標

評估生成式語言模型的性能取決于它們將要用于的底層任務。對于主要是從給定選項中選擇一個的任務(如情感分析),可以將其視為簡單的分類任務,其性能可以使用分類指標進行評估。在這種情況下,準確率、精確率、召回率、F1 等指標是適用的。需要注意的是,模型為特定任務(如多項選擇題回答)生成的答案總是要么為真要么為假。如果答案不在給定的選項中,也可以視為假。

然而,對于一些純粹的開放式文本生成任務,不能以與分類相同的方式進行評估。需要針對評估的特定目的使用不同的指標。代碼生成是開放式生成評估中的一個非常不同的情況。生成的代碼必須通過測試套件,但另一方面,了解模型是否能夠生成不同的解決方案以及在這些解決方案中選擇正確的概率是很重要的。在這種情況下,Pass@k 是一個非常好的指標。它的工作方式如下:給定一個問題,生成不同的代碼解決方案。使用不同的功能測試對它們進行正確性測試。然后,從生成的 n 個解決方案中,分別計算出正確的 c 個解決方案,Pass@k 的最終值由公式 4 給出:
P a s s @ k : = E Problems [ 1 ? ( n ? c k ) ( n k ) ] Pass@k := \mathbb{E}_{\text{Problems}}\left[1-\frac{\binom{n - c}{k}}{\binom{n}{k}}\right] Pass@k:=EProblems?[1?(kn?)(kn?c?)?]

精確匹配(EM)是另一個主要關注與(預定義)答案精確匹配的指標。如果預測與一個或多個期望參考文本標記逐字匹配,則將其計為正確。在某些情況下,它可能與準確率相同,其數學定義由公式 5 給出。這里 M 是正確答案的總數,N 是問題的總數[202]:
E M = M N EM=\frac{M}{N} EM=NM?

人類等效分數(HEQ)是 F1 分數的替代方案[203]。HEQ-Q 表示單個問題的精度,其中如果模型的 F1 分數超過平均人類 F1 分數,則答案被視為正確。同樣,HEQ-D 表示每個對話的精度;當對話中的所有問題都滿足 HEQ 標準時,它被視為準確[182]。

其他生成任務(如機器翻譯)的評估基于諸如 Rouge 和 BLEU 等指標。當有參考文本作為真實情況以及由生成模型(在我們的情況下是大語言模型)生成的假設時,這些分數效果很好。這些分數主要用于檢測答案與真實情況的相似性的情況。在計算上,這意味著僅使用 n 元語法。然而,像 BERTScore 這樣的指標在這些情況下也很好,但它們也有很大的誤差,因為使用了另一個模型來判斷。即使在今天,評估純粹生成的內容仍然非常困難,并且沒有找到完全合適的指標,現有的指標要么尋找簡單的特征如 n 元語法、SkipGram 等,要么是準確性和精確性未知的模型[204]。

生成評估指標也是用于評估大語言模型的另一種類型的指標,它使用另一個大語言模型來評估答案。然而,根據任務本身,評估可能以這種方式可行或不可行。另一個使生成評估容易出錯的因素是對提示本身的依賴。RAGAS 是一個很好的例子,它結合了生成評估的使用。

已經提出了各種基準和排行榜來解決大語言模型領域中最具挑戰性的問題:哪個更好?然而,沒有一個簡單的答案可以解決這個問題。答案取決于大語言模型的各個方面。第五節展示了不同任務的分類呈現以及每個類別中最重要的數據集。我們將遵循相同的分類并基于每個類別提供比較。在提供每個類別的比較之后,我們將通過平均在不同任務上報告的性能指標來提供聚合性能的概述。

評估不同的大語言模型也可以從不同的角度來看待。例如,一個參數數量少得多的大語言模型與一個參數數量多的大語言模型并不完全可比。從這個角度來看,我們將大語言模型分為四類:小(參數數量≤10 億)、中(10 億<參數數量≤100 億)、大(100 億<參數數量≤1000 億)和非常大(參數數量>1000 億)。我們對大語言模型的另一種分類是根據它們的主要用例。我們認為每個大語言模型要么是:基礎模型(預訓練語言模型,沒有指令微調或聊天微調)、指令模型(預訓練語言模型,僅進行指令微調)或聊天模型(預訓練語言模型,進行指令和聊天微調)。除了上述所有分類之外,還需要一個類別來區分原始模型和微調模型。原始模型是那些作為基礎模型或微調模型發布的模型。微調模型是那些基于原始模型并使用不同數據集或甚至不同訓練方法進行調整的模型。值得注意的是,原始模型通常是在特定數據集或甚至不同方法上進行微調的基礎模型。模型權重的可用性,無論許可證如何,是我們分類中的另一個類別。權重公開可用(即使需要請求)的模型被標記為公共模型,而其他模型則標記為私有。表 III 顯示了本文其余部分中使用的所有這些定義和縮寫。圖 43 直觀地說明了這些內容。

在這里插入圖片描述

根據提供的分類,我們可以對每個值得注意的大語言模型進行分類和標記,如表 IV 所示。從這個表中可以看出,標記為非常大的模型通常也是不可用的。

在這里插入圖片描述

B. 大語言模型在不同任務上的性能

常識推理是每個模型都可以獲得的重要能力之一。這種能力表示模型結合先前知識和推理技能的能力。例如,在 HellaSwag 中,找到文本的延續是具有挑戰性的,因為給定的文本只是故事的一部分,而給定的延續選擇很棘手,如果沒有關于世界的先前知識,就不可能選擇正確的答案。這種特定類型的推理值得高度關注,因為它涉及利用先前知識與以開放文本描述的場景或事實。從表 V 中可以看出,不僅不可用的模型,而且公共模型也可以在各種測試中取得良好的結果。

在這里插入圖片描述

從表 V 中呈現的結果可以清楚地看出,GPT-4 在 HellaSwag 上取得了最佳結果,而 Davinci-003 是 OBQA 的最佳模型。值得注意的是,并非所有模型都報告了它們在所有數據集上的性能,因此在不同表中報告性能的模型數量會有所不同。
在這里插入圖片描述

世界知識主要涉及一般知識問題。例如,在 Wikifact 數據集中,可以找到諸如“誰是某本特定著名書籍的作者”之類的問題,并且還提供了參考資料。表 VII 顯示了結果。

在這里插入圖片描述

對于一些特定用例的模型,具有編碼和代碼生成能力是非常需要的。表 VIII 顯示了不同模型在編碼能力方面的結果。

在這里插入圖片描述

算術推理是另一種具有挑戰性的推理能力。例如,GSM8K 包含小學數學問題及其答案。表 IX 提供了不同模型比較的見解。

在這里插入圖片描述

大語言模型在某些情況下會產生幻覺答案,因為它們是下一個標記預測機器。幻覺是衡量一個大語言模型可信賴程度的重要因素之一。另一方面,測量幻覺并不像看起來那么容易,因為每個事實都可以用不同的風格書寫,即使是最小的書寫變化也會使檢測變得困難。可以合理地假設,如果某個特定的大語言模型更有能力檢測文本中的虛假信息幻覺,那么它也更值得信賴。HaluEval 是一個旨在測量該領域幻覺的數據集[205]。也可以通過另一個模型根據實際答案來評估響應[206]。表 X 顯示了基于這些數據集對不同模型的評估。

在這里插入圖片描述

七、挑戰和未來方向

正如我們在前面幾節中看到的,大語言模型在過去一兩年中取得了令人矚目的成果。

A. 更小且更高效的語言模型

這是一篇關于大語言模型的綜述,最初有一種向“越大越好”的趨勢,這在像 GPT-4 這樣更大的模型在基準測試中獲得更好的準確性和性能時得到了明顯的回報。然而,這些大型模型在幾個方面成本高昂且效率低下(例如,高延遲)。針對這一切,當前的研究趨勢是開發小型語言模型(SLMs)作為大語言模型的成本效益替代方案,特別是在用于可能不需要大型模型全部通用性的特定任務時。在這個方向上的突出工作包括微軟的 Phi-1[208]、Phi-1.5[209]等。

一般來說,我們應該期待在如何訓練更小且更高效的模型這一領域有許多研究努力。諸如參數高效微調(PEFT)、教師/學生和其他形式的蒸餾(見第三節-I)等技術將繼續被用于從大型模型構建更小的模型。

B. 新的后注意力架構范式

Transformer 塊一直是當前大多數大語言模型框架中至關重要且持續存在的部分,而這個架構還能流行多久以及深度學習(和自然語言處理)領域的下一個重大架構突破會是什么,這是一個很大的問號。自 2012 年 AlexNet 以來,我們已經看到許多架構來來去去,包括 LSTM、GRU、seq2seq,但自從其誕生以來,Transformer 一直是主導方法。如前所述,注意力是驅動 Transformer 的主要機制。最近,在被標記為后注意力的替代方法方面有一些有前途的研究。

一類重要的此類后注意力模型是所謂的狀態空間模型(SSMs)。雖然狀態空間模型的概念在機器學習中有很長的歷史,但在語言模型的背景下,SSM 通常是指較新的結構化狀態空間模型架構或簡稱 S4(見 Gu 等人[29])。這個類別中的一些近期模型包括 Mamba[30]、Hyena[210]和 Striped Hyena[211]。

雖然這些模型在排行榜上的性能和效率方面都非常有競爭力,但它們也解決了更傳統的基于注意力的架構中的一個重要挑戰:對更大上下文窗口的支持不足。

對許多提示的良好回答需要上下文。例如,對“推薦一些適合我的好電影”的回答需要關于“我”以及可用電影和我未看過的電影的大量上下文。上下文長度對于 RAG 尤其重要,在 RAG 中,可能會檢索大量文本并將其注入提示中進行生成(見第四節-C)。

上下文越長,我們可以在上下文中擠進的標記就越多。模型能夠訪問的信息越多,其響應就越好。但另一方面,對于非常長的上下文,模型很難記住所有內容并有效地處理所有信息。基于注意力的模型對于較長的上下文效率非常低,這就是為什么我們應該期待在能夠處理更長上下文并總體上提出更高效架構的不同機制方面有更多研究。

話雖如此,新架構可能不僅會提出注意力機制的替代方案,還會重新思考整個 Transformer 架構。作為早期示例,Monarch Mixer[212]提出了一種新架構,該架構使用相同的二次以下原語(Monarch 矩陣)在序列長度和模型維度上實現高硬件效率。

在另一端,值得一提的是,有一些與注意力兼容的架構機制最近越來越受歡迎,并在創建更好、更強大的大語言模型方面證明了其價值。可能是這種機制的最佳示例是混合專家(MoE)。MoE 在機器學習中已經存在多年,甚至在深度學習時代之前[213],但自那時以來它們越來越受歡迎,特別是在 Transformer 模型和大語言模型的背景下。

在大語言模型中,MoE 允許訓練一個極其龐大的模型,然后在推理時僅部分實例化,當一些專家在門控/加權函數分配給它們的權重較低時被關閉。例如,GLaM 模型有 1.2 萬億個參數,但在推理時僅使用 64 個專家中的 2 個[84]。

如今,MoE 是所謂前沿大語言模型(即最先進和最有能力的模型)的重要組成部分。有傳言稱 GPT-4 本身就是基于 MoE 架構,一些表現最佳的大語言模型,如 Mixtral[117],基本上是現有大語言模型的 MoE 版本。

最后,重要的是要注意,MoE 可以用作任何架構的組件,無論它是否基于注意力。事實上,MoE 也已應用于基于 SSM 的大語言模型,如 Mamba citepioro2024moemamba。我們應該繼續看到 MoE 驅動的改進,無論底層架構如何。

C. 多模態模型

未來的大語言模型預計將是多模態的,并以統一的方式處理各種數據類型,如文本、圖像、視頻、音頻。這為在問答、內容生成、創意藝術、醫療保健、機器人等領域的更多樣化應用打開了大門。已經有幾個突出的多模態大語言模型,包括:LLAVA[214]、LLAVA-Plus[215]、GPT-4[33]、Qwen-vl[116]、Next-GPT[216],但這種趨勢預計將繼續下去。對這些模型的評估也是一個新的研究課題,特別是對話式生成視覺模型[217]。多模態大語言模型可以在各種任務中釋放巨大的潛力,并且在這個方向上已經取得了一定的進展,這需要一篇專門的論文來詳細討論其所有細節。

D. 改進的大語言模型使用和增強技術

如我們在第四節中描述的,大語言模型的許多缺點和局限性,如幻覺,可以通過先進的提示工程、工具使用或其他增強技術來解決。我們應該期待在這個領域不僅有持續的,而且有加速的研究。值得一提的是,在軟件工程的特定情況下,一些工作([218])試圖從整個軟件工程工作流程中自動消除這個問題。

基于大語言模型的系統已經開始取代直到最近還在使用其他方法的機器學習系統。作為一個明顯的例子,大語言模型現在被部署用于更好地理解人們的偏好和興趣,并提供更個性化的交互,無論是在客戶服務、內容推薦還是其他應用中。這涉及更好地理解用戶偏好,并分析他們過去的交互并將其用作上下文。我們將繼續看到在大語言模型的應用和使用方面的研究,不僅用于個性化和推薦,還用于許多其他使用其他機器學習技術的應用領域。

最后,另一個我們預計會受到更多關注的重要研究領域是基于大語言模型的智能體和多智能體系統[172]、[173]、[174]。開發具有訪問外部工具和決策能力的大語言模型系統既令人興奮又具有挑戰性。我們將看到在這個重要領域的持續研究和進展,一些人認為這可能導致人工智能挑戰性。我們將看到在這個重要領域的持續研究和進展,一些人認為這可能會通向通用人工智能(AGI)。

E. 安全和倫理/負責任的 AI

確保大語言模型對對抗攻擊和其他漏洞的魯棒性和安全性是一個關鍵的研究領域[219]。隨著大語言模型越來越多地部署在現實世界的應用中,它們需要受到保護,以防止潛在的威脅,防止它們被用于操縱人們或傳播錯誤信息。

解決大語言模型中的倫理問題和偏見是另一個活躍的研究領域。人們正在努力確保大語言模型是公平、無偏見的,并能夠負責任地處理敏感信息。隨著越來越多的人在日常生活中使用大語言模型,確保它們無偏見且行為負責任至關重要。

八、結論

本文對過去幾年開發的大語言模型進行了綜述。我們首先概述了早期的預訓練語言模型(如 BERT),然后回顧了三個流行的大語言模型家族(GPT、LLaMA、PaLM)以及其他代表性的大語言模型。然后,我們綜述了構建、增強和使用大語言模型的方法和技術。我們回顧了流行的大語言模型數據集和基準,并比較了一組突出模型在公共基準上的性能。最后,我們提出了開放的挑戰和未來的研究方向。

參考文獻

以下是該文章的參考文獻,你可以將其復制到一個新建的文本文檔中:
[1] J. Kaplan, S. McCandlish, T. Henighan, T. B. Brown, B. Chess, R. Child, S. Gray, A. Radford, J. Wu, and D. Amodei, “Scaling laws for neural language models,” arXiv preprint arXiv:2001.08361, 2020.
[2] J. Hoffmann, S. Borgeaud, A. Mensch, E. Buchatskaya, T. Cai, E. Rutherford, D. d. L. Casas, L. A. Hendricks, J. Welbl, A. Clark et al., “Training compute-optimal large language models,” arXiv preprint arXiv:2203.15556, 2022.
[3] C. E. Shannon, “Prediction and entropy of printed english,” Bell system technical journal, vol. 30, no. 1, pp. 50–64, 1951.
[4] F. Jelinek, Statistical methods for speech recognition. MIT press, 1998.
[5] C. Manning and H. Schutze, Foundations of statistical natural language processing. MIT press, 1999.
[6] C. D. Manning, An introduction to information retrieval. Cambridge university press, 2009.
[7] W. X. Zhao, K. Zhou, J. Li, T. Tang, X. Wang, Y. Hou, Y. Min, B. Zhang, J. Zhang, Z. Dong et al., “A survey of large language models,” arXiv preprint arXiv:2303.18223, 2023.
[8] C. Zhou, Q. Li, C. Li, J. Yu, Y. Liu, G. Wang, K. Zhang, C. Ji, Q. Yan, L. He et al., “A comprehensive survey on pretrained foundation models: A history from bert to chatgpt,” arXiv preprint arXiv:2302.09419, 2023.
[9] P. Liu, W. Yuan, J. Fu, Z. Jiang, H. Hayashi, and G. Neubig, “Pretrain, prompt, and predict: A systematic survey of prompting methods in natural language processing,” ACM Computing Surveys, vol. 55, no. 9, pp. 1–35, 2023.
[10] Q. Dong, L. Li, D. Dai, C. Zheng, Z. Wu, B. Chang, X. Sun, J. Xu, and Z. Sui, “A survey for in-context learning,” arXiv preprint arXiv:2301.00234, 2022.
[11] J. Huang and K. C.-C. Chang, “Towards reasoning in large language models: A survey,” arXiv preprint arXiv:2212.10403, 2022.
[12] S. F. Chen and J. Goodman, “An empirical study of smoothing techniques for language modeling,” Computer Speech & Language, vol. 13, no. 4, pp. 359–394, 1999.
[13] Y. Bengio, R. Ducharme, and P. Vincent, “A neural probabilistic language model,” Advances in neural information processing systems, vol. 13, 2000.
[14] H. Schwenk, D. D′echelotte, and J.-L. Gauvain, “Continuous space language models for statistical machine translation,” in Proceedings of the COLING/ACL 2006 Main Conference Poster Sessions, 2006, pp. 723–730.
[15] T. Mikolov, M. Karafi\′at, L. Burget, J. Cernock`y, and S. Khudanpur, “Recurrent neural network based language model.” in Interspeech, vol. 2, no. 3. Makuhari, 2010, pp. 1045–1048.
[16] A. Graves, “Generating sequences with recurrent neural networks,” arXiv preprint arXiv:1308.0850, 2013.
[17] P.-S. Huang, X. He, J. Gao, L. Deng, A. Acero, and L. Heck, “Learning deep structured semantic models for web search using clickthrough data,” in Proceedings of the 22nd ACM international conference on Information & Knowledge Management, 2013, pp. 2333–2338.
[18] J. Gao, C. Xiong, P. Bennett, and N. Craswell, Neural Approaches to Conversational Information Retrieval. Springer Nature, 2023, vol. 44.
[19] I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to sequence learning with neural networks,” Advances in neural information processing systems, vol. 27, 2014.
[20] K. Cho, B. Van Merri¨enboer, D. Bahdanau, and Y. Bengio, “On the properties of neural machine translation: Encoder-decoder approaches,” arXiv preprint arXiv:1409.1259, 2014.
[21] H. Fang, S. Gupta, F. Iandola, R. K. Srivastava, L. Deng, P. Doll′ar, J. Gao, X. He, M. Mitchell, J. C. Platt et al., “From captions to visual concepts and back,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2015, pp. 1473–1482.
[22] O. Vinyals, A. Toshev, S. Bengio, and D. Erhan, “Show and tell: A neural image caption generator,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2015, pp. 3156–3164.
[23] M. E. Peters, M. Neumann, M. Iyyer, M. Gardner, C. Clark, K. Lee, and L. Zettlemoyer, “Deep contextualized word representations. corr abs/1802.05365 (2018),” arXiv preprint arXiv:1802.05365, 2018.
[24] J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, “Bert: Pre-training of deep bidirectional transformers for language understanding,” arXiv preprint arXiv:1810.04805, 2018.
[25] Y. Liu, M. Ott, N. Goyal, J. Du, M. Joshi, D. Chen, O. Levy, M. Lewis, L. Zettlemoyer, and V. Stoyanov, “Roberta: A robustly optimized bert pretraining approach,” arXiv preprint arXiv:1907.11692, 2019.
[26] P. He, X. Liu, J. Gao, and W. Chen, “Deberta: Decoding-enhanced bert with disentangled attention,” arXiv preprint arXiv:2006.03654, 2020.
[27] X. Han, Z. Zhang, N. Ding, Y. Gu, X. Liu, Y. Huo, J. Qiu, Y. Yao, A. Zhang, L. Zhang et al., “Pre-trained models: Past, present and future,” AI Open, vol. 2, pp. 225–250, 2021.
[28] X. Qiu, T. Sun, Y. Xu, Y. Shao, N. Dai, and X. Huang, “Pre-trainedmodels for natural language processing: A survey,” Science China Technological Sciences, vol. 63, no. 10, pp. 1872–1897, 2020.
[29] A. Gu, K. Goel, and C. R′e, “Efficiently modeling long sequences with structured state spaces,” 2022.
[30] A. Gu and T. Dao, “Mamba: Linear-time sequence modeling with selective state spaces,” arXiv preprint arXiv:2312.00752, 2023.
[31] A. Chowdhery, S. Narang, J. Devlin, M. Bosma, G. Mishra, A. Roberts, P. Barham, H. W. Chung, C. Sutton, S. Gehrmann et al., “Palm: Scaling language modeling with pathways,” arXiv preprint arXiv:2204.02311, 2022.
[32] H. Touvron, T. Lavril, G. Izacard, X. Martinet, M.-A. Lachaux, T. Lacroix, B. Rozi`ere, N. Goyal, E. Hambro, F. Azhar et al., “Llama: Open and efficient foundation language models,” arXiv preprint arXiv:2302.13971, 2023.
[33] OpenAI, “GPT-4 Technical Report,” https://arxiv.org/pdf/2303. 08774v3.pdf, 2023.
[34] J. Wei, X. Wang, D. Schuurmans, M. Bosma, b. ichter, F. Xia, E. Chi, Q. V. Le, and D. Zhou, “Chain-of-thought prompting elicits reasoning in large language models,” in Advances in Neural Information Processing Systems, S. Koyejo, S. Mohamed, A. Agarwal, D. Belgrave, K. Cho, and A. Oh, Eds., vol. 35. Curran Associates, Inc., 2022, pp. 24 824–24 837. [Online]. Available: https://proceedings.neurips.cc/paper files/paper/ 2022/file/9d5609613524ecf4f15af0f7b31abca4-Paper-Conference.pdf
[35] G. Mialon, R. Dess`?, M. Lomeli, C. Nalmpantis, R. Pasunuru, R. Raileanu, B. Rozi`ere, T. Schick, J. Dwivedi-Yu, A. Celikyilmaz et al., “Augmented language models: a survey,” arXiv preprint arXiv:2302.07842, 2023.
[36] B. Peng, M. Galley, P. He, H. Cheng, Y. Xie, Y. Hu, Q. Huang, L. Liden, Z. Yu, W. Chen, and J. Gao, “Check your facts and try again: Improving large language models with external knowledge and automated feedback,” arXiv preprint arXiv:2302.12813, 2023.
[37] S. Yao, J. Zhao, D. Yu, N. Du, I. Shafran, K. Narasimhan, and Y. Cao, “React: Synergizing reasoning and acting in language models,” arXiv preprint arXiv:2210.03629, 2022.
[38] D. E. Rumelhart, G. E. Hinton, R. J. Williams et al., “Learning internal representations by error propagation,” 1985.
[39] J. L. Elman, “Finding structure in time,” Cognitive science, vol. 14, no. 2, pp. 179–211, 1990.
[40] M. V. Mahoney, “Fast text compression with neural networks.” in FLAIRS conference, 2000, pp. 230–234.
[41] T. Mikolov, A. Deoras, D. Povey, L. Burget, and J. ˇCernock`y, “Strategies for training large scale neural network language models,” in 2011 IEEE Workshop on Automatic Speech Recognition & Understanding. IEEE, 2011, pp. 196–201.
[42] tmikolov. rnnlm. [Online]. Available: https://www.fit.vutbr.cz/ ~imikolov/rnnlm/
[43] S. Minaee, N. Kalchbrenner, E. Cambria, N. Nikzad, M. Chenaghlu, and J. Gao, “Deep learning–based text classification: a comprehensive review,” ACM computing surveys (CSUR), vol. 54, no. 3, pp. 1–40, 2021.
[44] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin, “Attention is all you need,” Advances in neural information processing systems, vol. 30, 2017.
[45] Z. Lan, M. Chen, S. Goodman, K. Gimpel, P. Sharma, and R. Soricut, “Albert: A lite bert for self-supervised learning of language representations,” arXiv preprint arXiv:1909.11942, 2019.
[46] K. Clark, M.-T. Luong, Q. V. Le, and C. D. Manning, “Electra: Pretraining text encoders as discriminators rather than generators,” arXiv preprint arXiv:2003.10555, 2020.
[47] G. Lample and A. Conneau, “Cross-lingual language model pretraining,” arXiv preprint arXiv:1901.07291, 2019.
[48] Z. Yang, Z. Dai, Y. Yang, J. Carbonell, R. R. Salakhutdinov, and Q. V. Le, “Xlnet: Generalized autoregressive pretraining for language understanding,” Advances in neural information processing systems, vol. 32, 2019.
[49] L. Dong, N. Yang, W. Wang, F. Wei, X. Liu, Y. Wang, J. Gao, M. Zhou, and H.-W. Hon, “Unified language model pre-training for
natural language understanding and generation,” Advances in neural information processing systems, vol. 32, 2019.
[50] A. Radford, K. Narasimhan, T. Salimans, I. Sutskever et al., “Improving language understanding by generative pre-training,” 2018.
[51] A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, I. Sutskever et al., “Language models are unsupervised multitask learners,” OpenAI blog, vol. 1, no. 8, p. 9, 2019.
[52] C. Raffel, N. Shazeer, A. Roberts, K. Lee, S. Narang, M. Matena, Y. Zhou, W. Li, and P. J. Liu, “Exploring the limits of transfer learning with a unified text-to-text transformer,” The Journal of Machine Learning Research, vol. 21, no. 1, pp. 5485–5551, 2020.
[53] L. Xue, N. Constant, A. Roberts, M. Kale, R. Al-Rfou, A. Siddhant, A. Barua, and C. Raffel, “mt5: A massively multilingual pre-trained text-to-text transformer,” arXiv preprint arXiv:2010.11934, 2020.
[54] K. Song, X. Tan, T. Qin, J. Lu, and T.-Y. Liu, “Mass: Masked sequence to sequence pre-training for language generation,” arXiv preprint arXiv:1905.02450, 2019.
[55] M. Lewis, Y. Liu, N. Goyal, M. Ghazvininejad, A. Mohamed, O. Levy, V. Stoyanov, and L. Zettlemoyer, “Bart: Denoising sequence-tosequence pre-training for natural language generation, translation, and comprehension,” arXiv preprint arXiv:1910.13461, 2019.
[56] T. Brown, B. Mann, N. Ryder, M. Subbiah, J. D. Kaplan, P. Dhariwal, A. Neelakantan, P. Shyam, G. Sastry, A. Askell et al., “Language models are few-shot learners,” Advances in neural information processing systems, vol. 33, pp. 1877–1901, 2020.
[57] M. Chen, J. Tworek, H. Jun, Q. Yuan, H. P. d. O. Pinto, J. Kaplan, H. Edwards, Y. Burda, N. Joseph, G. Brockman et al., “Evaluating large language models trained on code,” arXiv preprint arXiv:2107.03374, 2021.
[58] R. Nakano, J. Hilton, S. Balaji, J. Wu, L. Ouyang, C. Kim, C. Hesse, S. Jain, V. Kosaraju, W. Saunders et al., “Webgpt: Browserassisted question-answering with human feedback,” arXiv preprint arXiv:2112.09332, 2021.
[59] L. Ouyang, J. Wu, X. Jiang, D. Almeida, C. Wainwright, P. Mishkin, C. Zhang, S. Agarwal, K. Slama, A. Ray et al., “Training language models to follow instructions with human feedback,” Advances in Neural Information Processing Systems, vol. 35, pp. 27 730–27 744, 2022.
[60] OpenAI. (2022) Introducing chatgpt. [Online]. Available: https://openai.com/blog/chatgpt
[61] H. Touvron, L. Martin, K. Stone, P. Albert, A. Almahairi, Y. Babaei, N. Bashlykov, S. Batra, P. Bhargava, S. Bhosale et al., “Llama 2: Open foundation and fine-tuned chat models,” arXiv preprint arXiv:2307.09288, 2023.
[62] R. Taori, I. Gulrajani, T. Zhang, Y. Dubois, X. Li, C. Guestrin, P. Liang, and T. B. Hashimoto, “Alpaca: A strong, replicable instructionfollowing model,” Stanford Center for Research on Foundation Models. https://crfm. stanford. edu/2023/03/13/alpaca. html, vol. 3, no. 6, p. 7, 2023.
[63] T. Dettmers, A. Pagnoni, A. Holtzman, and L. Zettlemoyer, “Qlora: Efficient finetuning of quantized llms,” arXiv preprint arXiv:2305.14314, 2023.
[64] X. Geng, A. Gudibande, H. Liu, E. Wallace, P. Abbeel, S. Levine, and D. Song, “Koala: A dialogue model for academic research,” Blog post, April, vol. 1, 2023.
[65] A. Q. Jiang, A. Sablayrolles, A. Mensch, C. Bamford, D. S. Chaplot, D. d. l. Casas, F. Bressand, G. Lengyel, G. Lample, L. Saulnier et al., “Mistral 7b,” arXiv preprint arXiv:2310.06825, 2023.
[66] B. Roziere, J. Gehring, F. Gloeckle, S. Sootla, I. Gat, X. E. Tan, Y. Adi, J. Liu, T. Remez, J. Rapin et al., “Code llama: Open foundation models for code,” arXiv preprint arXiv:2308.12950, 2023.
[67] S. G. Patil, T. Zhang, X. Wang, and J. E. Gonzalez, “Gorilla: Large language model connected with massive apis,” 2023.
[68] A. Pal, D. Karkhanis, M. Roberts, S. Dooley, A. Sundararajan, and S. Naidu, “Giraffe: Adventures in expanding context lengths in llms,” arXiv preprint arXiv:2308.10882, 2023.
[69] B. Huang, “Vigogne: French instruction-following and chat models,” https://github.com/bofenghuang/vigogne, 2023.
[70] Y. Wang, H. Ivison, P. Dasigi, J. Hessel, T. Khot, K. R. Chandu, D. Wadden, K. MacMillan, N. A. Smith, I. Beltagy et al., “How far can camels go? exploring the state of instruction tuning on open resources,” arXiv preprint arXiv:2306.04751, 2023.
[71] S. Tworkowski, K. Staniszewski, M. Pacek, Y. Wu, H. Michalewski, and P. Mi?o′s, “Focused transformer: Contrastive training for context scaling,” arXiv preprint arXiv:2307.03170, 2023.
[72] D. Mahan, R. Carlow, L. Castricato, N. Cooper, and C. Laforte, “Stable beluga models.” [Online]. Available: [https://huggingface.co/stabilityai/StableBeluga2](https:// huggingface.co/stabilityai/StableBeluga2)
[73] Y. Tay, J. Wei, H. W. Chung, V. Q. Tran, D. R. So, S. Shakeri, X. Garcia, H. S. Zheng, J. Rao, A. Chowdhery et al., “Transcending scaling laws with 0.1% extra compute,” arXiv preprint arXiv:2210.11399, 2022.
[74] H. W. Chung, L. Hou, S. Longpre, B. Zoph, Y. Tay, W. Fedus, Y. Li, X. Wang, M. Dehghani, S. Brahma et al., “Scaling instructionfinetuned language models,” arXiv preprint arXiv:2210.11416, 2022.
[75] R. Anil, A. M. Dai, O. Firat, M. Johnson, D. Lepikhin, A. Passos, S. Shakeri, E. Taropa, P. Bailey, Z. Chen et al., “Palm 2 technical report,” arXiv preprint arXiv:2305.10403, 2023.
[76] K. Singhal, S. Azizi, T. Tu, S. S. Mahdavi, J. Wei, H. W. Chung, N. Scales, A. Tanwani, H. Cole-Lewis, S. Pfohl et al., “Large language models encode clinical knowledge,” arXiv preprint arXiv:2212.13138, 2022.
[77] K. Singhal, T. Tu, J. Gottweis, R. Sayres, E. Wulczyn, L. Hou, K. Clark, S. Pfohl, H. Cole-Lewis, D. Neal et al., “Towards expertlevel medical question answering with large language models,” arXiv preprint arXiv:2305.09617, 2023.
[78] J. Wei, M. Bosma, V. Y. Zhao, K. Guu, A. W. Yu, B. Lester, N. Du, A. M. Dai, and Q. V. Le, “Finetuned language models are zero-shot learners,” arXiv preprint arXiv:2109.01652, 2021.
[79] J. W. Rae, S. Borgeaud, T. Cai, K. Millican, J. Hoffmann, F. Song, J. Aslanides, S. Henderson, R. Ring, S. Young et al., “Scaling language models: Methods, analysis & insights from training gopher,” arXiv preprint arXiv:2112.11446, 2021.
[80] V. Sanh, A. Webson, C. Raffel, S. H. Bach, L. Sutawika, Z. Alyafeai, A. Chaffin, A. Stiegler, T. L. Scao, A. Raja et al., “Multitask prompted training enables zero-shot task generalization,” arXiv preprint arXiv:2110.08207, 2021.
[81] Y. Sun, S. Wang, S. Feng, S. Ding, C. Pang, J. Shang, J. Liu, X. Chen, Y. Zhao, Y. Lu et al., “Ernie 3.0: Large-scale knowledge enhanced pretraining for language understanding and generation,” arXiv preprint arXiv:2107.02137, 2021.
[82] S. Borgeaud, A. Mensch, J. Hoffmann, T. Cai, E. Rutherford, K. Millican, G. B. Van Den Driessche, J.-B. Lespiau, B. Damoc, A. Clark et al., “Improving language models by retrieving from trillions of tokens,” in International conference on machine learning. PMLR, 2022, pp. 2206–2240.
[83] O. Lieber, O. Sharir, B. Lenz, and Y. Shoham, “Jurassic-1: Technical details and evaluation,” White Paper. AI21 Labs, vol. 1, p. 9, 2021.
[84] N. Du, Y. Huang, A. M. Dai, S. Tong, D. Lepikhin, Y. Xu, M. Krikun, Y. Zhou, A. W. Yu, O. Firat et al., “Glam: Efficient scaling of language models with mixture-of-experts,” in International Conference on Machine Learning. PMLR, 2022, pp. 5547–5569.
[85] R. Thoppilan, D. De Freitas, J. Hall, N. Shazeer, A. Kulshreshtha, H.T. Cheng, A. Jin, T. Bos, L. Baker, Y. Du et al., “Lamda: Language models for dialog applications,” arXiv preprint arXiv:2201.08239, 2022.
[86] S. Zhang, S. Roller, N. Goyal, M. Artetxe, M. Chen, S. Chen, C. Dewan, M. Diab, X. Li, X. V. Lin et al., “Opt: Open pre-trained transformer language models,” arXiv preprint arXiv:2205.01068, 2022.
[87] R. Taylor, M. Kardas, G. Cucurull, T. Scialom, A. Hartshorn, E. Saravia, A. Poulton, V. Kerkez, and R. Stojnic, “Galactica: A large language model for science,” arXiv preprint arXiv:2211.09085, 2022.
[88] E. Nijkamp, B. Pang, H. Hayashi, L. Tu, H. Wang, Y. Zhou, S. Savarese, and C. Xiong, “Codegen: An open large language model for code with multi-turn program synthesis,” arXiv preprint arXiv:2203.13474, 2022.
[89] S. Soltan, S. Ananthakrishnan, J. FitzGerald, R. Gupta, W. Hamza, H. Khan, C. Peris, S. Rawls, A. Rosenbaum, A. Rumshisky et al., “Alexatm 20b: Few-shot learning using a large-scale multilingual seq2seq model,” arXiv preprint arXiv:2208.01448, 2022.
[90] A. Glaese, N. McAleese, M. Trebacz, J. Aslanides, V. Firoiu, T. Ewalds, M. Rauh, L. Weidinger, M. Chadwick, P. Thacker et al., “Improving alignment of dialogue agents via targeted human judgements,” arXiv preprint arXiv:2209.14375, 2022.
[91] A. Lewkowycz, A. Andreassen, D. Dohan, E. Dyer, H. Michalewski, V. Ramasesh, A. Slone, C. Anil, I. Schlag, T. Gutman-Solo et al., “Solving quantitative reasoning problems with language models,” Advances in Neural Information Processing Systems, vol. 35, pp. 3843–3857, 2022.
[92] Y. Tay, M. Dehghani, V. Q. Tran, X. Garcia, D. Bahri, T. Schuster, H. S. Zheng, N. Houlsby, and D. Metzler, “Unifying language learning paradigms,” arXiv preprint arXiv:2205.05131, 2022.
[93] T. L. Scao, A. Fan, C. Akiki, E. Pavlick, S. Ili′c, D. Hesslow, R. Castagn′e, A. S. Luccioni, F. Yvon, M. Gall′e et al., “Bloom: A 176bparameter open-access multilingual language model,” arXiv preprint arXiv:2211.05100, 2022.
[94] A. Zeng, X. Liu, Z. Du, Z. Wang, H. Lai, M. Ding, Z. Yang, Y. Xu, W. Zheng, X. Xia et al., “Glm-130b: An open bilingual pre-trained model,” arXiv preprint arXiv:2210.02414, 2022.
[95] S. Biderman, H. Schoelkopf, Q. G. Anthony, H. Bradley, K. O’Brien, E. Hallahan, M. A. Khan, S. Purohit, U. S. Prashanth, E. Raff et al., “Pythia: A suite for analyzing large language models across training and scaling,” in International Conference on Machine Learning. PMLR, 2023, pp. 2397–2430.
[96] S. Mukherjee, A. Mitra, G. Jawahar, S. Agarwal, H. Palangi, and A. Awadallah, “Orca: Progressive learning from complex explanation traces of gpt-4,” arXiv preprint arXiv:2306.02707, 2023.
[97] R. Li, L. B. Allal, Y. Zi, N. Muennighoff, D. Kocetkov, C. Mou, M. Marone, C. Akiki, J. Li, J. Chim et al., “Starcoder: may the source be with you!” arXiv preprint arXiv:2305.06161, 2023.
[98] S. Huang, L. Dong, W. Wang, Y. Hao, S. Singhal, S. Ma, T. Lv, L. Cui, O. K. Mohammed, Q. Liu et al., “Language is not all you need: Aligning perception with language models,” arXiv preprint arXiv:2302.14045, 2023.
[99] G. Team, R. Anil, S. Borgeaud, Y. Wu, J.-B. Alayrac, J. Yu, R. Soricut, J. Schalkwyk, A. M. Dai, A. Hauth et al., “Gemini: a family of highly capable multimodal models,” arXiv preprint arXiv:2312.11805, 2023.
[100] W. Huang, F. Xia, T. Xiao, H. Chan, J. Liang, P. Florence, A. Zeng, J. Tompson, I. Mordatch, Y. Chebotar et al., “Inner monologue: Embodied reasoning through planning with language models,” arXiv preprint arXiv:2207.05608, 2022.
[101] S. Smith, M. Patwary, B. Norick, P. LeGresley, S. Rajbhandari, J. Casper, Z. Liu, S. Prabhumoye, G. Zerveas, V. Korthikanti et al., “Using deepspeed and megatron to train megatron-turing nlg 530b, a large-scale generative language model,” arXiv preprint arXiv:2201.11990, 2022.
[102] I. Beltagy, M. E. Peters, and A. Cohan, “Longformer: The longdocument transformer,” arXiv preprint arXiv:2004.05150, 2020.
[103] S. Iyer, X. V. Lin, R. Pasunuru, T. Mihaylov, D. Simig, P. Yu, K. Shuster, T. Wang, Q. Liu, P. S. Koura et al., “Opt-iml: Scaling language model instruction meta learning through the lens of generalization,” arXiv preprint arXiv:2212.12017, 2022.
[104] Y. Hao, H. Song, L. Dong, S. Huang, Z. Chi, W. Wang, S. Ma, and F. Wei, “Language models are general-purpose interfaces,” arXiv preprint arXiv:2206.06336, 2022.
[105] Z. Sun, Y. Shen, Q. Zhou, H. Zhang, Z. Chen, D. Cox, Y. Yang, and C. Gan, “Principle-driven self-alignment of language models from scratch with minimal human supervision,” arXiv preprint arXiv:2305.03047, 2023.
[106] W. E. team, “Palmyra-base Parameter Autoregressive Language Model,” https://dev.writer.com, 2023.
[107] --, “Camel-5b instructgpt,” https://dev.writer.com, 2023.
[108] Yandex. Yalm. [Online]. Available: https://github.com/yandex/YaLM-100B
[109] M. Team et al., “Introducing mpt-7b: a new standard for open-source, commercially usable llms,” 2023.
[110] A. Mitra, L. D. Corro, S. Mahajan, A. Codas, C. Simoes, S. Agarwal, X. Chen, A. Razdaibiedina, E. Jones, K. Aggarwal, H. Palangi, G. Zheng, C. Rosset, H. Khanpour, and A. Awadallah, “Orca 2: Teaching small language models how to reason,” 2023.
[111] L. Gao, A. Madaan, S. Zhou, U. Alon, P. Liu, Y. Yang, J. Callan, and G. Neubig, “Pal: Program-aided language models,” in International Conference on Machine Learning. PMLR, 2023, pp. 10 764–10 799.
[112] Anthropic. claude. [Online]. Available: https://www.anthropic.com/news/introducing-claude
[113] E. Nijkamp, H. Hayashi, C. Xiong, S. Savarese, and Y. Zhou, “Codegen2: Lessons for training llms on programming and natural languages,” arXiv preprint arXiv:2305.02309, 2023.
[114] L. Tunstall, E. Beeching, N. Lambert, N. Rajani, K. Rasul, Y. Belkada, S. Huang, L. von Werra, C. Fourrier, N. Habib et al., “Zephyr: Direct distillation of lm alignment,” arXiv preprint arXiv:2310.16944, 2023.
[115] X. team. Grok. [Online]. Available: https://grok.x.ai/
[116] J. Bai, S. Bai, S. Yang, S. Wang, S. Tan, P. Wang, J. Lin, C. Zhou, and J. Zhou, “Qwen-vl: A frontier large vision-language model with versatile abilities,” arXiv preprint arXiv:2308.12966, 2023.
[117] mixtral. mixtral. [Online]. Available: https://mistral.ai/news/mixtral-of-experts/
[118] D. Wang, N. Raman, M. Sibue, Z. Ma, P. Babkin, S. Kaur, Y. Pei, A. Nourbakhsh, and X. Liu, “Docllm: A layout-aware generative language model for multimodal document understanding,” 2023.
[119] D. Guo, Q. Zhu, D. Yang, Z. Xie, K. Dong, W. Zhang, G. Chen, X. Bi, Y. Wu, Y. K. Li, F. Luo, Y. Xiong, and W. Liang, “Deepseek-coder: When the large language model meets programming – the rise of code intelligence,” 2024.
[120] F. Wan, X. Huang, D. Cai, X. Quan, W. Bi, and S. Shi, “Knowledge fusion of large language models,” 2024.
[121] P. Zhang, G. Zeng, T. Wang, and W. Lu, “Tinyllama: An open-source small language model,” 2024.
[122] C. Wu, Y. Gan, Y. Ge, Z. Lu, J. Wang, Y. Feng, P. Luo, and Y. Shan, “Llama pro: Progressive llama with block expansion,” 2024.
[123] X. Amatriain, A. Sankar, J. Bing, P. K. Bodigutla, T. J. Hazen, and M. Kazi, “Transformer models: an introduction and catalog,” 2023.
[124] G. Penedo, Q. Malartic, D. Hesslow, R. Cojocaru, A. Cappelli, H. Alobeidli, B. Pannier, E. Almazrouei, and J. Launay, “The refinedweb dataset for falcon llm: outperforming curated corpora with web data, and web data only,” arXiv preprint arXiv:2306.01116, 2023.
[125] D. Hernandez, T. Brown, T. Conerly, N. DasSarma, D. Drain, S. ElShowk, N. Elhage, Z. Hatfield-Dodds, T. Henighan, T. Hume et al., “Scaling laws and interpretability of learning from repeated data,” arXiv preprint arXiv:2205.10487, 2022.
[126] P. Shaw, J. Uszkoreit, and A. Vaswani, “Self-attention with relative position representations,” arXiv preprint arXiv:1803.02155, 2018.
[127] J. Su, Y. Lu, S. Pan, B. Wen, and Y. Liu, “Roformer: Enhanced transformer with rotary position embedding,” arXiv preprint arXiv:2104.09864, 2021.
[128] O. Press, N. A. Smith, and M. Lewis, “Train short, test long: Attention with linear biases enables input length extrapolation,” arXiv preprint arXiv:2108.12409, 2021.
[129] G. Ke, D. He, and T.-Y. Liu, “Rethinking positional encoding in language pre-training,” arXiv preprint arXiv:2006.15595, 2020.
[130] N. Shazeer, A. Mirhoseini, K. Maziarz, A. Davis, Q. Le, G. Hinton, and J. Dean, “Outrageously large neural networks: The sparsely-gated mixture-of-experts layer,” arXiv preprint arXiv:1701.06538, 2017.
[131] W. Fedus, B. Zoph, and N. Shazeer, “Switch transformers: Scaling to trillion parameter models with simple and efficient sparsity,” The Journal of Machine Learning Research, vol. 23, no. 1, pp. 5232–5270, 2022.
[132] R. K. Mahabadi, S. Ruder, M. Dehghani, and J. Henderson, “Parameter-efficient multi-task fine-tuning for transformers via shared hypernetworks,” 2021.
[133] S. Zhang, L. Dong, X. Li, S. Zhang, X. Sun, S. Wang, J. Li, R. Hu, T. Zhang, F. Wu, and G. Wang, “Instruction tuning for large language models: A survey,” 2023.
[134] S. Mishra, D. Khashabi, C. Baral, and H. Hajishirzi, “Cross-task generalization via natural language crowdsourcing instructions,” arXiv preprint arXiv:2104.08773, 2021.
[135] Y. Wang, Y. Kordi, S. Mishra, A. Liu, N. A. Smith, D. Khashabi, and H. Hajishirzi, “Self-instruct: Aligning language model with self generated instructions,” arXiv preprint arXiv:2212.10560, 2022.
[136] K. Ethayarajh, W. Xu, D. Jurafsky, and D. Kiela. Kto. [Online]. Available: https://github.com/ContextualAI/HALOs/blob/main/assets/report.pdf
[137] P. F. Christiano, J. Leike, T. Brown, M. Martic, S. Legg, and D. Amodei, “Deep reinforcement learning from human preferences,” Advances in neural information processing systems, vol. 30, 2017.
[138] H. Lee, S. Phatale, H. Mansoor, K. Lu, T. Mesnard, C. Bishop, V. Carbune, and A. Rastogi, “Rlaif: Scaling reinforcement learning from human feedback with ai feedback,” arXiv preprint arXiv:2309.00267, 2023.
[139] R. Rafailov, A. Sharma, E. Mitchell, S. Ermon, C. D. Manning, and C. Finn, “Direct preference optimization: Your language model is secretly a reward model,” arXiv preprint arXiv:2305.18290, 2023.
[140] S. Rajbhandari, J. Rasley, O. Ruwase, and Y. He, “Zero: Memory optimizations toward training trillion parameter models,” in SC20: International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 2020, pp. 1–16.
[141] B. Peng, E. Alcaide, Q. Anthony, A. Albalak, S. Arcadinho, H. Cao, X. Cheng, M. Chung, M. Grella, K. K. GV et al., “Rwkv: Reinventing rnns for the transformer era,” arXiv preprint arXiv:2305.13048, 2023.
[142] E. J. Hu, Y. Shen, P. Wallis, Z. Allen-Zhu, Y. Li, S. Wang, L. Wang, and W. Chen, “Lora: Low-rank adaptation of large language models,” arXiv preprint arXiv:2106.09685, 2021.
[143] G. Hinton, O. Vinyals, and J. Dean, “Distilling the knowledge in a neural network,” arXiv preprint arXiv:1503.02531, 2015.
[144] J. Gou, B. Yu, S. J. Maybank, and D. Tao, “Knowledge distillation: A survey,” International Journal of Computer Vision, vol. 129, pp. 1789–1789–1819, 2021.
[145] Z. Ji, N. Lee, R. Frieske, T. Yu, D. Su, Y. Xu, E. Ishii, Y. J. Bang, A. Madotto, and P. Fung, “Survey of hallucination in natural language generation,” ACM Comput. Surv., vol. 55, no. 12, mar 2023. [Online]. Available: https://doi.org/10.1145/3571730
[146] N. McKenna, T. Li, L. Cheng, M. J. Hosseini, M. Johnson, and M. Steedman, “Sources of hallucination by large language models on inference tasks,” 2023.
[147] C.-Y. Lin, “ROUGE: A package for automatic evaluation of summaries,” in Text Summarization Branches Out. Barcelona, Spain: Association for Computational Linguistics, Jul. 2004, pp. 74–81. [Online]. Available: https://aclanthology.org/W04-1013
[148] K. Papineni, S. Roukos, T. Ward, and W.-J. Zhu, “Bleu: a method for automatic evaluation of machine translation,” in Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics, P. Isabelle, E. Charniak, and D. Lin, Eds. Philadelphia, Pennsylvania, USA: Association for Computational Linguistics, Jul. 2002, pp. 311–318. [Online]. Available: https://aclanthology.org/P02-1040
[149] B. Dhingra, M. Faruqui, A. Parikh, M.-W. Chang, D. Das, and W. Cohen, “Handling divergent reference texts when evaluating table-to-text generation,” in Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, A. Korhonen, D. Traum, and L. M`arquez, Eds. Florence, Italy: Association for Computational Linguistics, Jul. 2002, pp. 4884–4895. [Online]. Available: https://aclanthology.org/P19-1483
[150] Z. Wang, X. Wang, B. An, D. Yu, and C. Chen, “Towards faithful neural table-to-text generation with content-matching constraints,” in Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, D. Jurafsky, J. Chai, N. Schluter, and J. Tetreault, Eds. Online: Association for Computational Linguistics, Jul. 2020, pp. 1072–1086. [Online]. Available: https://aclanthology.org/2020.acl-main.101
[151] H. Song, W.-N. Zhang, J. Hu, and T. Liu, “Generating persona consistent dialogues by exploiting natural language inference,” Proceedings of the AAAI Conference on Artificial Intelligence, vol. 34, no. 05, pp. 8878–8885, Apr. 2020.
[152] O. Honovich, L. Choshen, R. Aharoni, E. Neeman, I. Szpektor,and O. Abend, “q2: Evaluating factual consistency in knowledgegrounded dialogues via question generation and question answering,” in Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, M.-F. Moens, X. Huang, L. Specia, and S. W.-t. Yih, Eds. Online and Punta Cana, Dominican Republic: Association for Computational Linguistics, Nov. 2021, pp. 7856–7870. [Online]. Available: https://aclanthology.org/2021.emnlp-main.619
[153] N. Dziri, H. Rashkin, T. Linzen, and D. Reitter, “Evaluating attribution in dialogue systems: The BEGIN benchmark,” Transactions of the Association for Computational Linguistics, vol. 10, pp. 1066–1083, 2022. [Online]. Available: https://aclanthology.org/2022.tacl-1.62
[154] S. Santhanam, B. Hedayatnia, S. Gella, A. Padmakumar, S. Kim, Y. Liu, and D. Z. Hakkani-T¨ur, “Rome was built in 1776: A case study on factual correctness in knowledge-grounded response generation,” ArXiv, vol. abs/2110.05456, 2021.
[155] S. Min, K. Krishna, X. Lyu, M. Lewis, W. tau Yih, P. W. Koh, M. Iyyer, L. Zettlemoyer, and H. Hajishirzi, “Factscore: Fine-grained atomic evaluation of factual precision in long form text generation,” 2023.
[156] D. Sculley, G. Holt, D. Golovin, E. Davydov, T. Phillips, D. Ebner, V. Chaudhary, and M. Young, “Machine learning: The high interest credit card of technical debt,” in SE4ML: Software Engineering for Machine Learning (NIPS 2014 Workshop), 2014.
[157] Z. Zhang, A. Zhang, M. Li, and A. Smola, “Automatic chain of thought prompting in large language models,” 2022.
[158] Y. Zhou, A. I. Muresanu, Z. Han, K. Paster, S. Pitis, H. Chan, and J. Ba, “Large language models are human-level prompt engineers,” 2023.
[159] N. Shinn, F. Cassano, E. Berman, A. Gopinath, K. Narasimhan, and S. Yao, “Reflexion: Language agents with verbal reinforcement learning,” 2023.
[160] S. J. Zhang, S. Florin, A. N. Lee, E. Niknafs, A. Marginean, A. Wang, K. Tyser, Z. Chin, Y. Hicke, N. Singh, M. Udell, Y. Kim, T. Buonassisi, A. Solar-Lezama, and I. Drori, “Exploring the mit mathematics and eecs curriculum using large language models,” 2023.
[161] T. Wu, E. Jiang, A. Donsbach, J. Gray, A. Molina, M. Terry, and C. J. Cai, “Promptchainer: Chaining large language model prompts through visual programming,” 2022.
[162] Y. Zhou, A. I. Muresanu, Z. Han, K. Paster, S. Pitis, H. Chan, and J. Ba, “Large language models are human-level prompt engineers,” 2023.
[163] P. S. H. Lewis, E. Perez, A. Piktus, F. Petroni, V. Karpukhin, N. Goyal, H. Küttler, M. Lewis, W. Yih, T. Rockt?schel, S. Riedel, and D. Kiela, “Retrieval-augmented generation for knowledge-intensive NLP tasks,” CoRR, vol. abs/2005.11401, 2020. [Online]. Available: https://arxiv.org/abs/2005.11401
[164] Y. Gao, Y. Xiong, X. Gao, K. Jia, J. Pan, Y. Bi, Y. Dai, J. Sun, and H. Wang, “Retrieval-augmented generation for large language models: A survey,” arXiv preprint arXiv:2312.10997, 2023.
[165] A. W. Services. (Year of publication, e.g., 2023) Question answering using retrieval augmented generation with foundation models in amazon sagemaker jumpstart. Accessed: Date of access, e.g., December 5, 2023. [Online]. Available: https://shorturl.at/dSV47
[166] S. Pan, L. Luo, Y. Wang, C. Chen, J. Wang, and X. Wu, “Unifying large language models and knowledge graphs: A roadmap,” arXiv preprint arXiv:2306.08302, 2023.
[167] B. Paranjape, S. Lundberg, S. Singh, H. Hajishirzi, L. Zettlemoyer, and M. T. Ribeiro, “Art: Automatic multi-step reasoning and tool-use for large language models,” 2023.
[168] Y. Shen, K. Song, X. Tan, D. Li, W. Lu, and Y. Zhuang, “Hugginggpt: Solving ai tasks with chatgpt and its friends in huggingface,” arXiv preprint arXiv:2303.17580, 2023.
[169] Z. Xi, W. Chen, X. Guo, W. He, Y. Ding, B. Hong, M. Zhang, J. Wang, S. Jin, E. Zhou et al., “The rise and potential of large language model based agents: A survey,” arXiv preprint arXiv:2309.07864, 2023.
[170] L. Wang, C. Ma, X. Feng, Z. Zhang, H. Yang, J. Zhang, Z. Chen, J. Tang, X. Chen, Y. Lin et al., “A survey on large language model based autonomous agents,” arXiv preprint arXiv:2308.11432, 2023.
[171] Z. Durante, Q. Huang, N. Wake, R. Gong, J. S. Park, B. Sarkar, R. Taori, Y. Noda, D. Terzopoulos, Y. Choi, K. Ikeuchi, H. Vo, L. FeiFei, and J. Gao, “Agent ai: Surveying the horizons of multimodal interaction,” arXiv preprint arXiv:2401.03568, 2024.
[172] B. Xu, Z. Peng, B. Lei, S. Mukherjee, Y. Liu, and D. Xu, “Rewoo: Decoupling reasoning from observations for efficient augmented language models,” 2023.
[173] S. Yao, J. Zhao, D. Yu, N. Du, I. Shafran, K. Narasimhan, and Y. Cao, “React: Synergizing reasoning and acting in language models,” 2023.
[174] V. Nair, E. Schumacher, G. Tso, and A. Kannan, “Dera: Enhancing large language model completions with dialog-enabled resolving agents,” 2023.
[175] Y. Chang, X. Wang, J. Wang, Y. Wu, L. Yang, K. Zhu, H. Chen, X. Yi, C. Wang, Y. Wang, W. Ye, Y. Zhang, Y. Chang, P. S. Yu, Q. Yang, and X. Xie, “A survey on evaluation of large language models,” 2023.
[176] T. Kwiatkowski, J. Palomaki, O. Redfield, M. Collins, A. Parikh, C. Alberti, D. Epstein, I. Polosukhin, J. Devlin, K. Lee, K. Toutanova, L. Jones, M. Kelcey, M.-W. Chang, A. M. Dai, J. Uszkoreit, Q. Le, and S. Petrov, “Natural questions: A benchmark for question answering research,” Transactions of the Association for Computational Linguistics, vol. 7, pp. 452–466, 2023. [Online]. Available: https://aclanthology.org/Q19-1026
[177] D. Hendrycks, C. Burns, S. Basart, A. Zou, M. Mazeika, D. Song, and J. Steinhardt, “Measuring massive multitask language understanding,” 2021.
[178] J. Austin, A. Odena, M. Nye, M. Bosma, H. Michalewski, D. Dohan, E. Jiang, C. Cai, M. Terry, Q. Le et al., “Program synthesis with large language models,” arXiv preprint arXiv:2108.07732, 2021.
[179] E. Choi, H. He, M. Iyyer, M. Yatskar, W.-t. Yih, Y. Choi, P. Liang, and L. Zettlemoyer, “QuAC: Question answering in context,” in Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, E. Riloff, D. Chiang, J. Hockenmaier, and J. Tsujii, Eds. Brussels, Belgium: Association for Computational Linguistics, Oct.-Nov. 2018, pp. 2174–2184. [Online]. Available: https://aclanthology.org/D18-1241
[180] D. Hendrycks, S. Basart, S. Kadavath, M. Mazeika, A. Arora, E. Guo, C. Burns, S. Puranik, H. He, D. Song, and J. Steinhardt, “Measuring coding challenge competence with apps,” NeurIPS, 2021.
[181] V. Zhong, C. Xiong, and R. Socher, “Seq2sql: Generating structured queries from natural language using reinforcement learning,” arXiv preprint arXiv:1709.00103, 2017.
[182] M. Joshi, E. Choi, D. Weld, and L. Zettlemoyer, “TriviaQA: A large scale distantly supervised challenge dataset for reading comprehension,” in Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), R. Barzilay and M.-Y. Kan, Eds. Vancouver, Canada: Association for Computational Linguistics, Jul. 2017, pp. 1601–1611. [Online]. Available: https://aclanthology.org/P17-1147
[183] H.-Y. Huang, E. Choi, and W.-t. Yih, “Flowqa: Grasping flow in history for conversational machine comprehension,” arXiv preprint arXiv:1810.06683, 2018.
[184] G. Lai, Q. Xie, H. Liu, Y. Yang, and E. Hovy, “RACE: Large-scale ReAding comprehension dataset from examinations,” in Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, M. Palmer, R. Hwa, and S. Riedel, Eds. Copenhagen, Denmark: Association for Computational Linguistics, Sep. 2017, pp. 785–794. [Online]. Available: https://aclanthology.org/D17-082
[185] P. Rajpurkar, J. Zhang, K. Lopyrev, and P. Liang, “SQuAD: 100,000+ questions for machine comprehension of text,” in Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, J. Su, K. Duh, and X. Carreras, Eds. Austin, Texas: Association for Computational Linguistics, Nov. 2016, pp. 2383–2392. [Online]. Available: https://aclanthology.org/D16-1264
[186] Simon Mark Hughes, “Hughes hallucination evaluation model (hhem) leaderboard,” 2024, https://huggingface.co/spaces/vectara/Hallucination-evaluation-leaderboard, Last accessed on 2024-01-21.
[187] C. Clark, K. Lee, M. Chang, T. Kwiatkowski, M. Collins, and K. Toutanova, “Boolq: Exploring the surprising difficulty of natural yes/no questions,” CoRR, vol. abs/1905.10044, 2019. [Online]. Available: http://arxiv.org/abs/1905.10044
[188] D. Khashabi, S. Chaturvedi, M. Roth, S. Upadhyay, and D. Roth, “Looking beyond the surface:a challenge set for reading comprehension over multiple sentences,” in Proceedings of North American Chapter of the Association for Computational Linguistics (NAACL), 2018.
[189] K. Cobbe, V. Kosaraju, M. Bavarian, M. Chen, H. Jun, L. Kaiser, M. Plappert, J. Tworek, J. Hilton, R. Nakano, C. Hesse, and J. Schulman, “Training verifiers to solve math word problems,” CoRR, vol. abs/2110.14168, 2021. [Online]. Available: https://arxiv.org/abs/2110.14168
[190] D. Hendrycks, C. Burns, S. Kadavath, A. Arora, S. Basart, E. Tang, D. Song, and J. Steinhardt, “Measuring mathematical problem solving with the MATH dataset,” CoRR, vol. abs/2103.03874, 2021. [Online]. Available: https://arxiv.org/abs/2103.03874
[191] R. Zellers, A. Holtzman, Y. Bisk, A. Farhadi, and Y. Choi, “Hellaswag: Can a machine really finish your sentence?” 2019.
[192] P. Clark, I. Cowhey, O. Etzioni, T. Khot, A. Sabharwal, C. Schoenick, and O. Tafjord, “Think you have solved question answering? try arc, the AI2 reasoning challenge,” CoRR, vol. abs/1803.05457, 2018. [Online]. Available: http://arxiv.org/abs/1803.05457
[193] Y. Bisk, R. Zellers, R. L. Bras, J. Gao, and Y. Choi, “PIQA: reasoning about physical commonsense in natural language,” CoRR, vol. abs/1911.11641, 2019. [Online]. Available: http://arxiv.org/abs/1911.11641
[194] M. Sap, H. Rashkin, D. Chen, R. L. Bras, and Y. Choi, “Socialiqa: Commonsense reasoning about social interactions,” CoRR, vol. abs/1904.09728, 2019. [Online]. Available: http://arxiv.org/abs/1904.09728
[195] T. Mihaylov, P. Clark, T. Khot, and A. Sabharwal, “Can a suit of armor conduct electricity? A new dataset for open book question answering,” CoRR, vol. abs/1809.02789, 2018. [Online]. Available: http://arxiv.org/abs/1809.02789
[196] S. Lin, J. Hilton, and O. Evans, “Truthfulqa: Measuring how models mimic human falsehoods,” arXiv preprint arXiv:2109.07958, 2021.
[197] Z. Yang, P. Qi, S. Zhang, Y. Bengio, W. W. Cohen, R. Salakhutdinov, and C. D. Manning, “Hotpotqa: A dataset for diverse, explainable multi-hop question answering,” CoRR, vol. abs/1809.09600, 2018. [Online]. Available: http://arxiv.org/abs/1809.09600
[198] Y. Zhuang, Y. Yu, K. Wang, H. Sun, and C. Zhang, “Toolqa: A dataset for llm question answering with external tools,” arXiv preprint arXiv:2306.13304, 2023.
[199] D. Chen, J. Bolton, and C. D. Manning, “A thorough examination of the cnn/daily mail reading comprehension task,” in Association for Computational Linguistics (ACL), 2016.
[200] R. Nallapati, B. Zhou, C. Gulcehre, B. Xiang et al., “Abstractive text summarization using sequence-to-sequence rnns and beyond,” arXiv preprint arXiv:1602.06023, 2016.
[201] Y. Bai and D. Z. Wang, “More than reading comprehension: A survey on datasets and metrics of textual question answering,” arXiv preprint arXiv:2109.12264, 2021.
[202] S. Lee, J. Lee, H. Moon, C. Park, J. Seo, S. Eo, S. Koo, and H. Lim, “A survey on evaluation metrics for machine translation,” Mathematics, vol. 11, no. 4, p. 1006, 2023.
[203] J. Li, X. Cheng, W. X. Zhao, J.-Y. Nie, and J.-R. Wen, “Halueval: A large-scale hallucination evaluation benchmark for large language models,” in Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing, 2023, pp. 6449–6464.
[204] J. Kaddour, J. Harris, M. Mozes, H. Bradley, R. Raileanu, and R. McHardy, “Challenges and applications of large language models,” arXiv preprint arXiv:2307.10169, 2023.
[205] S. Gunasekar, Y. Zhang, J. Aneja, C. C. T. Mendes, A. Del Giorno, S. Gopi, M. Javaheripi, P. Kauffmann, G. de Rosa, O. Saarikivi et al., “Textbooks are all you need,” arXiv preprint arXiv:2306.11644, 2023.
[206] Y. Li, S. Bubeck, R. Eldan, A. Del Giorno, S. Gunasekar, and Y. T. Lee, “Textbooks are all you need ii: phi-1.5 technical report,” arXiv preprint arXiv:2309.05463, 2023.
[207] M. Poli, S. Massaroli, E. Nguyen, D. Y. Fu, T. Dao, S. Baccus, Y. Bengio, S. Ermon, and C. R′e, “Hyena hierarchy: Towards larger convolutional language models,” 2023.
[208] M. Poli, J. Wang, S. Massaroli, J. Quesnelle, E. Nguyen, and A. Thomas, “StripedHyena: Moving Beyond Transformers with Hybrid Signal Processing Models,” 2023. [Online]. Available: https://github.com/togethercomputer/stripedhyena
[209] D. Y. Fu, S. Arora, J. Grogan, I. Johnson, S. Eyuboglu, A. W. Thomas, B. Spector, M. Poli, A. Rudra, and C. R′e, “Monarch mixer: A simple sub-quadratic gemm-based architecture,” 2023.
[210] G. J. McLachlan, S. X. Lee, and S. I. Rathnayake, “Finite mixture models,” Annual review of statistics and its application, vol. 6, pp. 355–378, 2019.
[211] H. Liu, C. Li, Q. Wu, and Y. J. Lee, “Visual instruction tuning,” arXiv preprint arXiv:2304.08485, 2023.
[212] S. Liu, H. Cheng, H. Liu, H. Zhang, F. Li, T. Ren, X. Zou, J. Yang, H. Su, J. Zhu, L. Zhang, J. Gao, and C. Li, “Llava-plus: Learning to use tools for creating multimodal agents,” arXiv preprint arXiv:2311.05437, 2023.
[213] S. Wu, H. Fei, L. Qu, W. Ji, and T.-S. Chua, “Next-gpt: Any-to-any multimodal llm,” arXiv preprint arXiv:2309.05519, 2023.
[214] N. N. Khasmakhi, M. Asgari-Chenaghlu, N. Asghar, P. Schaer, and D. Zühlke, “Convgenvismo: Evaluation of conversational generative vision models,” 2023.
[215] N. Alshahwan, J. Chheda, A. Finegenova, B. Gokkaya, M. Harman, I. Harper, A. Marginean, S. Sengupta, and E. Wang, “Automated unit test improvement using large language models at meta,” arXiv preprint arXiv:2402.09171, 2024.
[216] L. Sun, Y. Huang, H. Wang, S. Wu, Q. Zhang, C. Gao, Y. Huang, W. Lyu, Y. Zhang, X. Li et al., “Trustllm: Trustworthiness in large language models,” arXiv preprint arXiv:2401.05561, 2024.
[217] Microsoft. Deepspeed. [Online]. Available: https://github.com/microsoft/DeepSpeed
[218] HuggingFace. Transformers. [Online]. Available: https://github.com/huggingface/transformers
[219] Nvidia. Megatron. [Online]. Available: https://github.com/NVIDIA/Megatron-LM
[220] BMTrain. Bmtrain. [Online]. Available: https://github.com/OpenBMB/BMTrain
[221] EleutherAI. gpt-neox. [Online]. Available: https://github.com/EleutherAI/gpt-neox
[222] microsoft. Lora. [Online]. Available: https://github.com/microsoft/LoRA
[223] ColossalAI. Colossalai. [Online]. Available: https://github.com/hpcaitech/ColossalAI
[224] FastChat. Fastchat. [Online]. Available: https://github.com/lm-sys/FastChat
[225] skypilot. skypilot. [Online]. Available: https://github.com/skypilot-org/skypilot
[226] vllm. vllm. [Online]. Available: https://github.com/vllm-project/vllm
[227] huggingface. text-generation-inference. [Online]. Available: https://github.com/huggingface/text-generation-inference
[228] langchain. langchain. [Online]. Available: https://github.com/langchain-ai/langchain
[229] bentoml. Openllm. [Online]. Available: https://github.com/bentoml/OpenLLM
[230] embedchain. embedchain. [Online]. Available: https://github.com/embedchain/embedchain
[231] microsoft. autogen. [Online]. Available: https://github.com/microsoft/autogen
[232] babyagi. babyagi. [Online]. Available: https://github.com/yoheinakajima/babyagi
[233] guidance. guidance. [Online]. Available: https://github.com/guidance-ai/guidance
[234] prompttools. prompttools. [Online]. Available: https://github.com/hegelai/prompttools
[235] promptfoo. promptfoo. [Online]. Available: https://github.com/promptfoo/promptfoo
[236] facebook. faiss. [Online]. Available: https://github.com/facebookresearch/faiss
[237] milvus. milvus. [Online]. Available: https://github.com/milvus-io/milvus
[238] qdrant. qdrant. [Online]. Available: https://github.com/qdrant/qdrant
[239] weaviate. weaviate. [Online]. Available: https://github.com/weaviate/weaviate
[240] llama index. llama-index. [Online]. Available: https://github.com/run-llama/llama index

附錄

1. 用于大語言模型開發和部署的開源工具包

有許多為大語言模型訓練、評估和部署而開發的框架和庫,全面涵蓋每一個框架超出了本文的范圍。但我們嘗試簡要介紹一些最流行的工具,將它們分為不同類別。

A. 大語言模型訓練/推理框架

一些對大語言模型訓練有用的流行框架(注意其中一些也可用于大語言模型訓練之外的領域):

  • DeepSpeed:一個深度學習優化庫,使分布式訓練和推理變得簡單、高效和有效。它支持訓練如 MT - 530B 和 BLOOM 等世界上最強大的語言模型。這是一個易于使用的深度學習優化軟件套件,為訓練和推理提供了前所未有的規模和速度。使用 DeepSpeed 你可以:
  • Transformers:由 HuggingFace 提供的庫,提供了數千個預訓練模型,可用于執行不同模態(如文本、視覺和音頻)的任務。使用預訓練模型可以降低計算成本、減少碳足跡,并節省從頭開始訓練模型所需的時間和資源。
  • Megatron - LM:由 NVIDIA 的應用深度學習研究團隊開發的大型、強大的 Transformer。它包含對基于 Transformer 的模型(如 GPT、BERT 和 T5)進行高效的模型并行(張量、序列和流水線)和多節點預訓練,采用混合精度。
  • BMTrain:一個高效的大型模型訓練工具包,可用于訓練具有數百億參數的大型模型。它可以以分布式方式訓練模型,同時保持代碼像獨立訓練一樣簡單。
  • GPT - NeoX:利用了許多與流行的 Megatron - DeepSpeed 庫相同的特性和技術,但具有更高的可用性和新穎的優化。
  • LoRA:該庫為大語言模型的低秩適應提供支持。它通過學習成對的秩分解矩陣來減少可訓練參數的數量,同時凍結原始權重。這極大地減少了適應特定任務的大語言模型的存儲需求,并在部署期間實現高效的任務切換,且不會引入推理延遲。LoRA 也優于其他幾種適應方法,包括適配器、前綴調整和微調。
  • ColossalAI 庫:提供了一系列并行組件。它旨在支持開發者像在筆記本電腦上編寫模型一樣編寫分布式深度學習模型。他們提供了用戶友好的工具,只需幾行代碼即可啟動分布式訓練和推理。在并行策略方面,它們支持:數據并行、流水線并行、序列并行、零冗余優化器(ZeRO)和自動并行。
B. 部署工具

我們在此概述一些最流行的大語言模型部署工具。

  • FastChat:一個用于訓練、服務和評估基于大語言模型的聊天機器人的開放平臺。FastChat 的核心功能包括:最先進模型(如 Vicuna、MT - Bench)的訓練和評估代碼,以及帶有 Web UI 和與 OpenAI 兼容的 RESTful API 的分布式多模型服務系統。
  • Skypilot:一個在任何云上運行大語言模型、人工智能和批量作業的框架,提供最大的成本節約、最高的 GPU 可用性和托管執行。
  • vLLM:一個用于大語言模型推理和服務的快速且易于使用的庫。vLLM 無縫支持許多 Hugging Face 模型,包括以下架構:Aquila、Baichuan、BLOOM、ChatGLM、DeciLM、Falcon、GPT BigCode、LLaMA、LLaMA 2、Mistral、Mixtral、MPT、OPT、Qwen、Yi 等等。
  • text - generation - inference:一個用于部署和服務大語言模型(LLMs)的工具包。TGI 為最流行的開源大語言模型(包括 Llama、Falcon、StarCoder、BLOOM、GPT - NeoX 等)實現高性能文本生成。
  • LangChain:一個用于開發由語言模型驅動的應用程序的框架。它使應用程序能夠:
    • 具有上下文感知能力:將語言模型連接到上下文源(提示指令、少量示例、用于為其響應提供依據的內容等)
    • 進行推理:依靠語言模型進行推理(例如,基于提供的上下文回答問題、決定采取什么行動等)
  • OpenLLM:一個開源平臺,旨在促進大語言模型(LLMs)在實際應用中的部署和操作。使用 OpenLLM,你可以對任何開源大語言模型進行推理,在云端或本地部署它們,并構建強大的人工智能應用程序。
  • Embedchain:一個開源的 RAG 框架,使創建和部署人工智能應用變得容易。Embedchain 簡化了 RAG 應用程序的創建過程,提供了一個無縫的流程來管理各種類型的非結構化數據。它有效地將數據分割成可管理的塊,生成相關的嵌入,并將它們存儲在向量數據庫中以優化檢索。
  • Autogen:一個框架,允許使用多個可以相互對話以解決任務的智能體開發大語言模型應用程序。AutoGen 智能體是可定制的、可對話的,并允許人類無縫參與。它們可以在各種模式下運行,這些模式結合了大語言模型、人類輸入和工具。
  • BabyAGI:一個自主的人工智能智能體,旨在根據給定的目標生成和執行任務。它利用來自 OpenAI、Pinecone、LangChain 和 Chroma 的前沿技術來自動化任務并實現特定目標。在這篇博文中,我們將深入探討 BabyAGI 的獨特功能,并探索它如何簡化任務自動化。
C. 提示庫
  • Guidance:一種編程范式,與傳統的提示和鏈接相比,提供了更好的控制和效率。它允許用戶約束生成(例如,使用正則表達式和上下文無關語法),以及無縫地交織控制(條件、循環)和生成。
  • PromptTools:提供了一組開源的、可自托管的工具,用于試驗、測試和評估大語言模型、向量數據庫和提示。其核心思想是使開發者能夠使用熟悉的接口(如代碼、筆記本和本地 playground)進行評估。
  • PromptBench:一個基于 PyTorch 的 Python 包,用于評估大語言模型(LLMs)。它為研究人員提供了用戶友好的 API,用于對大語言模型進行評估。
  • Promptfoo:一個用于測試和評估大語言模型輸出質量的工具。它使用預定義的測試用例系統地測試提示、模型和 RAG。

D. 向量數據庫

  • Faiss:由 Facebook AI Research 開發的庫,提供了對密集向量的高效相似性搜索和聚類。它專為大規模、高維數據設計,支持多種索引類型和算法,適用于各種用例。
  • Milvus:一個開源向量數據庫,用于支持嵌入相似性搜索和人工智能應用。Milvus 使非結構化數據搜索更容易訪問,并提供一致的用戶體驗,而不受部署環境的影響。
  • Qdrant:一個向量相似性搜索引擎和向量數據庫。它提供了一個具有便捷 API 的生產就緒服務,用于存儲、搜索和管理帶有額外負載的點向量。Qdrant 專為擴展過濾支持而定制。
  • Weaviate:一個開源的、基于 GraphQL 的向量搜索引擎,能夠對高維數據進行相似性搜索。雖然它是開源的,但商業版本提供了額外的功能、支持和托管服務。

其他一些流行的選項包括 LlamaIndex 和 Pinecone。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67861.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python處理數據庫:MySQL與SQLite詳解

Python處理數據庫&#xff1a;MySQL與SQLite詳解 在數據處理和存儲方面&#xff0c;數據庫扮演著至關重要的角色。Python提供了多種與數據庫交互的方式&#xff0c;其中pymysql庫用于連接和操作MySQL數據庫&#xff0c;而SQLite則是一種輕量級的嵌入式數據庫&#xff0c;Pytho…

【C++】B2124 判斷字符串是否為回文

博客主頁&#xff1a; [小????????] 本文專欄: C 文章目錄 &#x1f4af;前言&#x1f4af;題目描述輸入格式&#xff1a;輸出格式&#xff1a;樣例&#xff1a; &#x1f4af;方法一&#xff1a;我的第一種做法思路代碼實現解析 &#x1f4af;方法二&#xff1a;我…

ubuntuCUDA安裝

系列文章目錄 移動硬盤制作Ubuntu系統盤 前言 根據前篇“移動硬盤制作Ubuntu系統盤”安裝系統后&#xff0c;還不能夠使用顯卡。 如果需要使用顯卡&#xff0c;還需要進行相關驅動的安裝&#xff08;如使用的為Nvidia顯卡&#xff0c;就需要安裝相關的Nvidia顯卡驅動&#xff…

Selenium 使用指南:從入門到精通

Selenium 使用指南&#xff1a;從入門到精通 Selenium 是一個用于自動化 Web 瀏覽器操作的強大工具&#xff0c;廣泛應用于自動化測試和 Web 數據爬取中。本文將帶你從入門到精通地掌握 Selenium&#xff0c;涵蓋其基本操作、常用用法以及一個完整的圖片爬取示例。 1. 環境配…

Sqoop導入MySQL中含有回車換行符的數據

個人博客地址&#xff1a;Sqoop導入MySQL中含有回車換行符的數據 MySQL中的數據如下圖&#xff1a; 檢查HDFS上的目標文件內容可以看出&#xff0c;回車換行符位置的數據被截斷了&#xff0c;導致數據列錯位。 Sqoop提供了配置參數&#xff0c;在導入時丟棄掉數據的分隔符&…

利用matlab尋找矩陣中最大值及其位置

目錄 一、問題描述1.1 max函數用法1.2 MATLAB中 : : :的作用1.3 ind2sub函數用法 二、實現方法2.1 方法一&#xff1a;max和find2.2 方法二&#xff1a;max和ind2sub2.3 方法對比 三、參考文獻 一、問題描述 matlab中求最大值可使用函數max&#xff0c;對于一維向量&#xff0…

PyTorch數據建模

回歸分析 import torch import numpy as np import pandas as pd from torch.utils.data import DataLoader,TensorDataset import time strat = time.perf_counter()

機試題——字符匹配

題目描述 給你一個字符串數組&#xff08;每個字符串均由小寫字母組成&#xff09;和一個字符規律&#xff08;由小寫字母和 . 和 * 組成&#xff09;&#xff0c;識別數組中哪些字符串可以匹配到字符規律上。 . 匹配任意單個字符。* 匹配零個或多個前面的那一個元素。 所謂…

《 C++ 點滴漫談: 二十五 》空指針,隱秘而危險的殺手:程序崩潰的真兇就在你眼前!

摘要 本博客全面解析了 C 中指針與空值的相關知識&#xff0c;從基礎概念到現代 C 的改進展開&#xff0c;涵蓋了空指針的定義、表示方式、使用場景以及常見注意事項。同時&#xff0c;深入探討了 nullptr 的引入及智能指針在提升代碼安全性和簡化內存管理方面的優勢。通過實際…

git push到遠程倉庫時無法推送大文件

一、錯誤 remote: Error: Deny by project hooks setting ‘default’: size of the file ‘scientific_calculator’, is 164 MiB, which has exceeded the limited size (100 MiB) in commit ‘4c91b7e3a04b8034892414d649860bf12416b614’. 二、原因 本地提交過大文件&am…

掌握API和控制點(從Java到JNI接口)_36 JNI開發與NDK 04

4、 *.so的入口函數&#xff1a;JNI_OnLoad() VM (virtual machine)的角色 Java代碼在VM上執行。在執行Java代碼的過程中&#xff0c;如果Java需要與本地代碼(*.so)溝通時&#xff0c; VM就會把*.so視為插件<Tn>而加載到VM里。然后讓Java函數呼叫到這插件<Tn>里的…

Windows圖形界面(GUI)-QT-C/C++ - QT Tab Widget

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> ???鏈接點擊跳轉博客主頁 目錄 一、概述 1.1 什么是 QTabWidget&#xff1f; 1.2 使用場景 二、常見樣式 2.1 選項卡式界面 2.2 動態添加和刪除選項卡 2.3 自定義選項卡標題和圖標 三、屬性設置 3.1 添加頁面&…

[MRCTF2020]Ez_bypass1(md5繞過)

[MRCTF2020]Ez_bypass1(md5繞過) ?? 這道題就是要繞過md5強類型比較&#xff0c;但是本身又不相等&#xff1a; md5無法處理數組&#xff0c;如果傳入的是數組進行md5加密&#xff0c;會直接放回NULL&#xff0c;兩個NuLL相比較會等于true&#xff1b; 所以?id[]1&gg…

90,【6】攻防世界 WEB Web_php_unserialize

進入靶場 進入靶場 <?php // 定義一個名為 Demo 的類 class Demo { // 定義一個私有屬性 $file&#xff0c;默認值為 index.phpprivate $file index.php;// 構造函數&#xff0c;當創建類的實例時會自動調用// 接收一個參數 $file&#xff0c;用于初始化對象的 $file 屬…

Jenkins安裝部署(以及常見報錯解決方案),jdk版本控制器sdkman

目錄 零、環境介紹 一、Jenkins安裝 1、插件安裝以及更換插件源 2、修改jenkins時區 二、sdkman安裝&#xff08;可選&#xff09; 1、sdkman常用方法 2、sdkman常用方法演示 2.1、查看可用的jdk 2.2、下載jdk并切換版本 三、jenkins報錯解決 1、下載sdkman后systemc…

大數據挖掘--兩個角度理解相似度計算理論

文章目錄 0 相似度計算可以轉換成什么問題1 集合相似度的應用1.1 集合相似度1.1文檔相似度1.2 協同過濾用戶-用戶協同過濾物品-物品協同過濾 1.2 文檔的shingling--將文檔表示成集合1.2.1 k-shingling1.2.2 基于停用詞的 shingling 1.3 最小哈希簽名1.4 局部敏感哈希算法&#…

關于貪心學習的文筆記錄

貪心&#xff0c;顧名思義就是越貪越好&#xff0c;越多越有易&#xff0c;他給我的感覺是&#xff0c;通常是求最大或最小問題&#xff0c;相比于動態規劃貪心讓人更加琢磨不透&#xff0c;不易看出方法&#xff0c;為此在這記錄我所見過的題型和思維方法&#xff0c;以便回頭…

c語言練習題【數據類型、遞歸、雙向鏈表快速排序】

練習1&#xff1a;數據類型 請寫出以下幾個數據的數據類型 整數 a a 的地址 存放a的數組 b 存放a的地址的數組 b的地址 c的地址 指向 printf 函數的指針 d 存放 d的數組 整數 a 的類型 數據類型是 int a 的地址 數據類型是 int*&#xff08;指向 int 類型的指針&#xff09; …

聯想拯救者Y9000P IRX8 2023 (82WK) 原廠Win11 家庭中文版系統 帶一鍵還原功能 安裝教程

安裝完重建winre一鍵還原功能&#xff0c;和電腦出廠時的系統狀態一模一樣。自動機型專用軟件&#xff0c;全部驅動&#xff0c;主題壁紙&#xff0c;自動激活&#xff0c;oem信息等。將電腦系統完全恢復到出廠時狀態。 支持機型 (MTM) : 82WK 系統版本&#xff1a;Windows 1…

搜索與圖論復習2最短路

單源最短路---所有邊權是正數(Dijkstra算法O(n^2)--稠密圖(鄰接矩陣)和堆優化的Dijkstra算法O(mlogn)--稀疏圖(鄰接表)) 或存在負邊權(Bellman-ford貝爾曼福特算法O(nm)和SPFA一般O(m) 最壞O(nm) ) 多源最短路---Floyd算法O(n^3) 一、迪杰斯特拉算法(Dijkstra)&#xff1a;1…