ChatGPT的成功帶動整個AIGC產業(yè)的發(fā)展,尤其是LLM(大型語言模型,大語言模型)、NLP、高性能計算和深度學習等領域。LLM的發(fā)展將為全球和中國AI芯片、AI服務器市場的增長提供強勁動力,據估算,LLM將為全球和中國AI服務器帶來約891.2億美元和338.2億美元的市場空間。
國外廠商在LLM領域具有領先優(yōu)勢,但我國LLM產品也在快速發(fā)展,2023年以來多家廠商推出了自研的通用LLM,國產LLM在各行業(yè)的應用以及生態(tài)建設也取得積極進展。雖然我國LLM相比GPT-4或仍有一定差距,但在短期內達到或接近ChatGPT的水平是可以預期的。
值得關注是 AMD上周推出 MI300 系列加速卡,旨在與英偉達展開競爭。MI300 系列是 AMD 為 AI 和高性能計算打造的一系列最新APU 加速卡,包括MI300A 和 MI300X。其中 MI300A 集成了 CPU和 GPU,而 MI300X 則是一款專門面向生成式 AI 推出的加速器,對標英偉達 H100。從性能參數看,MI300系列產品足以比肩甚至超越英偉達的高端加速卡,但總的來說,短期仍然難以撼動英偉達在該領域的絕對領先地位。
(資料圖)
展望下半年,我國大模型產品已經初步具備商用能力。北上深三地利好通用人工智能發(fā)展政策的發(fā)布,彰顯我國對AIGC發(fā)展的重視和支持,同時將為其他城市發(fā)布類似政策帶來示范效應。在政策與技術的共振下,我國AIGC產業(yè)未來發(fā)展前景廣闊。
如今,國內在LLM模型相關技術方面距離最先進技術的差距進一步加大。在Bert出現(xiàn)之后的一到兩年間,國內在這塊的技術追趕速度很快的同時也提出了一些很好的改進模型。差距拉開的分水嶺應該是在 GPT 3.0出來之后,也就是2020年年中左右。在當時,其實只有少數的人覺察到GPT 3.0它不僅僅是一項具體的技術,更能體現(xiàn)出LLM應該往何處去的一個發(fā)展理念。
大型語言模型(LLM)是一種低成本、高效率的技術,它在自然語言處理(NLP)和人工智能(AI)領域引起了廣泛關注。其中,ChatGPT作為LLM的代表,是否帶來了NLP和AI領域的研究范式轉變?如果是,將會產生怎樣的影響?LLM通過從海量數據中學習,積累了豐富的知識。那么,LLM是如何存取這些知識的呢?隨著LLM規(guī)模逐步增大,它將對研究和應用產生怎樣的影響?此外,上下文學習(In Context Learning)是一項神秘的技術,它與指令(Instruct)有著密切的關系。LLM是否具備推理能力?思維鏈(CoT)又是如何實現(xiàn)的呢?接下來,將詳細介紹以上提到的方面。
LLMs的背景、能力
一、LLM的背景
LLM(大型語言模型,大語言模型)是指使用大量文本數據訓練的語言模型,包含數千億或更多的參數。采用 Transformer 架構和語言建模預訓練目標,但相較于小型模型,LLM 模型大小、預訓練數據和總計算量更大。這使得它們可以更好地理解自然語言,并生成高質量的文本。LLM 的容量改進可以用標度律進行部分地描述,但某些能力只有在模型大小超過某個水平時才能觀察到。
二、LLM的涌現(xiàn)能力
LLM 的涌現(xiàn)能力是指在小型模型中不存在但在大型模型中出現(xiàn)的能力,是 LLM 與以前的 PLM 區(qū)分的最顯著特征之一。當規(guī)模達到一定水平時,LLM 的性能顯著高于隨機狀態(tài),這種新模式與物理學中的相變現(xiàn)象密切相關。LLM 的涌現(xiàn)能力可以與一些復雜的任務有關,人們更關心的是它的通用能力。
LLM 的三種代表性的涌現(xiàn)能力包括上下文學習、指令遵循和循序漸進的推理。其中,上下文學習能力使得語言模型可以通過完成輸入文本的詞序列來生成測試實例的預期輸出;指令遵循能力使得 LLM 能夠在不使用顯式樣本的情況下通過理解任務指令來執(zhí)行新任務,從而提高泛化能力;循序漸進的推理能力使得 LLM 可以通過利用涉及中間推理步驟的 prompt 機制來解決復雜任務得出最終答案。
NLP研究范式的轉換從淺層語義到深層語義的建模
在過去的10年中,NLP領域可能經歷了兩次重要的研究范式轉換。
一、從深度學習到兩階段預訓練模型
NLP領域引入深度學習大致從2013年開始,直到GPT 3.0出現(xiàn)之前(2020年5月左右)。在Bert和GPT模型出現(xiàn)之前,NLP領域流行的技術主要是深度學習模型,主要依托于改進的LSTM和CNN模型作為特征抽取器,以及Sequence to Sequence+Attention作為總體技術框架。然而,這些雖然增加了模型層深,但在解決具體任務上的效果仍然不夠成功。這主要是由于任務訓練數據量有限和LSTM/CNN特征抽取器表達能力不夠強所致。
直到Bert和GPT這兩個預訓練模型的出現(xiàn),才代表了NLP領域的一個技術飛躍,并帶來了整個領域研究范式的轉換。這種范式轉換帶來的影響主要體現(xiàn)在兩個方面:一是部分NLP研究子領域的衰退乃至逐步消亡;二是NLP不同子領域的技術方法和技術框架日趨統(tǒng)一,技術?;臼諗康絻煞N技術模式中。
1、部分NLP研究子領域的衰退乃至逐步消亡
NLP是一個宏觀研究領域的統(tǒng)稱,里面有五花八門具體的子領域與子方向,如果仔細分析,從任務的性質角度,可以把這些任務分成兩大類:中間任務和最終任務。
1)中間任務
典型的中間任務主要包括中文分詞、詞性標注、NER、句法分析、指代消解、語義Parser等,這類任務一般并不解決應用中的實際需求,大多數是作為那些解決實際需求任務的中間階段或者輔助階段存在。比如幾乎沒有需求說,要一個句法Parser,把這個句子的句法分析樹給用戶看看,用戶不需要看到這些NLP的中間階段處理結果,只需關心某個具體任務有沒有干好。
2)最終任務
這類任務(文本分類、文本相似性計算、機器翻譯、文本摘要等)的特點是每個子領域都解決某個實際需求,任務結果基本能直接呈現(xiàn)給用戶,比如用戶確實存在給你一句英文,告訴他中文是什么的需求。
按理說,“中間任務”不應該出現(xiàn),而之所以會存在的原因是NLP技術發(fā)展水平不夠高。在技術發(fā)展早期階段,由于當時技術相對落后,很難一步做好有難度的最終任務。如機器翻譯,早期技術要做好機器翻譯是很困難的,于是科研人員就把難題分而治之,分解成分詞、詞性標注、句法分析等各種中間階段,先把每個中間階段做好,然后再拼起來完成最終任務。
自從Bert/GPT出現(xiàn)之后,就沒有必要做中間任務。因為通過大量數據的預訓練,Bert/GPT已經把這些中間任務作為語言學特征,吸收到Transformer的參數里,此時完全可以端到端地直接解決那些最終任務,而無須對這種中間過程專門建模。
2、不同研究方向技術路線的統(tǒng)一
除了“中間任務”,NLP任務可以劃分為兩大類型:自然語言理解和自然語言生成。自然語言理解任務包括文本分類、句子關系判斷、情感傾向判斷等分類任務,模型根據輸入文本判斷其屬于哪個類別。自然語言生成任務包括聊天機器人、機器翻譯、文本摘要、問答系統(tǒng)等生成任務,模型根據輸入文本生成相應輸出文本。
自Bert/GPT模型出現(xiàn)后,NLP領域出現(xiàn)了技術統(tǒng)一趨向,特征抽取器逐漸從LSTM/CNN統(tǒng)一到Transformer上,多數任務采用預訓練+微調或Zero/Few Shot Prompt模式。自然語言理解任務采用Bert為代表的雙向語言模型預訓練+Fine-tuning模式,自然語言生成任務采用GPT 2.0為代表的自回歸語言模型+Zero/Few Shot Prompt模式。這兩種模式背后的發(fā)展思路和未來發(fā)展方向不同,但很多人低估了GPT模式的潛力。GPT模式的自回歸語言模型可以生成高質量的文本,能夠應用于多個自然語言生成任務且具有良好的遷移能力。相比之下,Bert模式在生成任務上表現(xiàn)較差且Fine-tuning方式需要大量標注數據,不易適應新任務。
二、從預訓練模型走向通用人工智能 (AGI,Artificial General Intelligence)
這次范式轉換涵蓋的時間大致在GPT3.0出現(xiàn)后,從2020年6月左右開始一直持續(xù)到現(xiàn)在。ChatGPT轉換的關鍵節(jié)點,但在InstructGPT出現(xiàn)之前,LLM處于范式轉換的過渡期。
1、以GPT 3.0為代表的“自回歸語言模型+Prompting”模式占據統(tǒng)治地位
在預訓練模型發(fā)展的早期,技術框架收斂到Bert模式和GPT模式這兩種不同的技術范型,而且人們普遍更看好Bert模式一些,相當多數的后續(xù)技術改進,都是沿著Bert那條路走。但是,隨著技術的繼續(xù)發(fā)展就發(fā)現(xiàn)目前規(guī)模最大的LLM模型,幾乎清一色都是類似GPT 3.0的“自回歸語言模型+Prompting”模式(如GPT-3、PaLM、GLaM、Gopher、Chinchilla、MT-NLG、LaMDA等)。為什么會這樣呢?背后一定有其必然性,主要源于兩個原因。
1)Google的T5模型,在形式上統(tǒng)一自然語言理解和自然語言生成任務的外在表現(xiàn)形式
如上圖所示,T5模型中的文本分類問題和判斷句子相似性的回歸或分類問題,都是典型的自然語言理解問題。在T5模型中,這些自然語言理解問題的輸入輸出形式與生成問題保持一致,可以將分類問題轉換成讓LLM模型生成對應類別的字符串,從而實現(xiàn)理解和生成任務在表現(xiàn)形式上的完全統(tǒng)一。這表明自然語言生成任務在表現(xiàn)形式上可以兼容自然語言理解任務,而反過來則很難做到這一點。這樣做的好處是,同一個LLM生成模型可以解決幾乎所有NLP問題。相比之下,如果仍然采用Bert模式,LLM模型則無法很好地處理生成任務。
2)如果要以零示例提示語(zero shot prompting)或少數示例提示語(few shot prompting)的方式做好任務就必須要采取GPT模式
研究表明,以fine-tuning方式解決下游任務時,Bert模式的效果優(yōu)于GPT模式。但是,如果是以zero shot/few shot prompting模式解決下游任務,則GPT模式的效果要優(yōu)于Bert模式。這說明,生成模型更容易完成zero shot/few shot prompting方式的任務,而Bert模式在這種方式下做任務時存在劣勢。
那么問題來了:為什么要追求zero shot/few shot prompting方式來做任務呢?要解釋清楚這個問題,首先需要搞清楚另外一個問題:什么樣的LLM模型最理想的?
對于LLM模型來說,首先,應該具備強大的自主學習能力。如果將世界上所有可獲得的文本、圖片等不同類型的數據輸入模型中,應該能夠自動學習其中包含的所有知識點,學習過程不需要人的介入,并且能夠靈活應用所學知識來解決實際問題。由于數據量龐大,要吸收所有知識,模型必然需要具備大量的參數來存儲知識,因此這個模型必然會是一個巨無霸模型。
其次,LLM模型應該能夠解決NLP任何子領域的問題,而不僅限于某個有限的領域,甚至應該能夠響應NLP之外的其他領域的問題。此外,當使用LLM模型解決某個具體領域的問題時,應該使用人類習慣的表達方式,即LLM應該理解人類的命令。這體現(xiàn)讓LLM適應人類,而不是讓人去適應LLM模型。人適應LLM的典型例子是,人們會費盡心思地嘗試各種不同的prompt,以試圖找到好的提示語,以便更好地解決手頭問題。
為什么要追求zero shot/few shot prompting這種方式來解決任務?主要有以下兩個原因。
1)理想中的LLM模型規(guī)模必然非常巨大,只有極少數機構有能力制作出這個模型或改動模型參數。任務需求方卻千千萬萬,其中大多數是中小機構甚至個人即使模型開源,也無法部署這個模型,更不用說再使用Fine-tuning這種模式去修改模型參數了。因此應該追求不修正模型參數就能讓任務需求方完成任務的方式,即應該采取prompt模式完成任務,而非Fine-tuning模式。模型制作方則將LLM作為公用服務,以LLM as Service的模式運行。
作為服務支持方,考慮到用戶需求的多樣性,LLM模型制作方更應該追求讓LLM能夠完成盡可能多類型的任務,這是附帶的影響,也是為何超級大模型一定會追求走向AGI的現(xiàn)實因素。
2)zero shot prompting也好,few shot prompting也好,甚至促進LLM推理能力的思維鏈(CoT, Chain of Thought)Prompting也好,都是現(xiàn)有技術中的一種。具體而言,zero shot prompting的初衷是直接用人類常用的任務表述方式讓LLM做事情,但是發(fā)現(xiàn)LLM并不能很好地理解,效果也不好。經過繼續(xù)研究,人們轉而發(fā)現(xiàn),對于某項任務,如果給LLM幾個示例,用這些示例來代表任務描述,效果會比zero shot prompting好,于是都開始研究更好的few shot prompting技術。
可以理解為,本來希望LLM能夠用人類常用的命令方式來執(zhí)行某個任務,但是目前技術還做不到,所以退而求其次,用這些替代技術來表達人類的任務需求。如果理解了上述邏輯,很容易得出如下結論:few shot prompting(也被稱為In Context Learning)只是一種過渡時期的技術。如果能夠更自然地去描述一個任務,而且LLM可以理解,那么肯定會毫不猶豫地拋棄這些過渡期的技術,原因很明顯,用這些方法來描述任務需求,并不符合人類的使用習慣。
2、讓LLM適配人的新型交互接口
ChatGPT是一種能力強大、善解人意的技術方法,最接近理想的LLM模型。ChatGPT的強大能力主要得益于GPT 3.5模型,而非人工標注數據。雖然加入了人工標注數據,但這些數據量級只有數萬,對GPT 3.5的基礎能力增強作用微乎其微。
ChatGPT的最大貢獻在于它基本實現(xiàn)了理想LLM的接口層,讓LLM適配人的習慣命令表達方式,而不是反過來讓人去適配LLM。這增加了LLM的易用性和用戶體驗,是一種更符合人類表達習慣的人和LLM進行交互的人機接口技術。ChatGPT的技術貢獻必將啟發(fā)后續(xù)的LLM模型,在易用人機接口方面繼續(xù)做進一步的工作。
3、很多NLP子領域不再具備獨立研究價值
范式轉換將會改變NLP領域的格局,許多獨立存在的研究領域將被LLM技術體系所納入,逐步消失。雖然許多“中間任務”不再需要獨立存在,但是大多數“最終任務”仍將作為獨立領域存在,只是在“預訓練+fine-tuning”框架下,陸續(xù)提出新的改進方案。
研究表明,隨著LLM模型規(guī)模的增大,許多NLP任務的效果會得到大幅提升。因此,很多領域所謂“獨有”的問題,只是因為缺乏領域知識而表現(xiàn)出來的外在表象。只要提供更多的領域數據給LLM,讓它自己學習更多知識,這些問題就可以被很好地解決。未來的技術發(fā)展趨勢應該是追求規(guī)模越來越大的LLM模型,通過增加預訓練數據的多樣性,來涵蓋越來越多的領域。研究重心將投入到如何構建理想LLM模型,而非解決某個領域的具體問題。因此,越來越多NLP的子領域將被納入LLM技術體系,逐步消失。
判斷某個具體領域是否需要立即停止獨立研究,可以采取以下兩種方法:一是判斷LLM的研究效果是否超過人類表現(xiàn),對于那些LLM效果已超過人類表現(xiàn)的研究領域,已無獨立研究的必要。二是對比兩種模式的任務效果,如果few-shot prompting或instruct-based方法的效果達到或超過用較大的領域專用數據進行Fine-tuning的效果,則意味著這個領域沒有繼續(xù)獨立存在的必要性。
如果這個猜測成立,將意味著很多NLP領域的研究人員面臨著往何處去的選擇,是繼續(xù)做領域獨有問題呢?還是放棄這種方式,轉而去建設更好的LLM?
4、更多NLP之外的研究領域將被納入LLM技術體系
理想中的LLM應該是一種通用的人工智能模型,不應該被限制在某一個學科領域內。ChatGPT的出現(xiàn)證明了這種追求AGI的可行性,而現(xiàn)在是拋開“領域學科”這種思維束縛的時候了。除展示出在各種NLP任務中流暢的對話形式,ChatGPT還具備強大的代碼能力。
LLM技術正在向外擴展,其中一個自然的方向是圖像處理和多模態(tài)任務。目前已經有一些工作在嘗試將多模態(tài)融入LLM中,以實現(xiàn)通用人機接口的功能,例如DeepMind的Flamingo和微軟的“Language Models are General-Purpose Interfaces”。
圖像領域的預訓練模型應用到下游任務的效果收益遠不如NLP領域的預訓練模型顯著,這可能是因為圖像預處理模型仍需深入探索,以釋放圖像數據的潛力。因此,圖像處理領域被融入LLM的時間可能會比想象的要慢。當然,如果圖像領域的預訓練模型被趟通,它們很可能會被融入到大型LLM中,直接完成終端任務,類似于NLP領域的局面。
除了圖像和多模態(tài),其他領域也將逐漸被納入到LLM中,這是具備高價值的研究主題。范式轉換的個人思考表明,LLM技術的主要技術進展可以分為兩大類:一類是關于LLM模型如何從數據中吸收知識,也包括模型規(guī)模增長對LLM吸收知識能力帶來的影響。第二類是關于人如何使用LLM內在能力來解決任務的人機接口,包括In Context Learning和Instruct兩種模式。思維鏈(CoT)prompting這種LLM推理技術,本質上也屬于In Context Learning。
從無盡數據導海量知識
目前的研究結果表明,Transformer作為一個特征抽取器已經足夠強大,不需要進行特別的改進。預訓練過程讓Transformer學到了什么?知識是如何存儲的?如何修正錯誤的知識?這些問題是當前研究的重點。本節(jié)講述這方面的研究進展。
一、LLM學到了什么知識
LLM通過學習海量自由文本,獲得了大量的知識,可以將這些知識粗略地分為語言類知識和世界知識兩大類。語言類知識包括詞法、詞性、句法和語義等,有助于人類或機器理解自然語言。研究表明,LLM可以學習各種層次類型的語言學知識,并且這些知識存儲在Transformer的低層和中層。世界知識則包括真實事件(事實型知識)和常識性知識(Common Sense Knowledge)。
研究表明,LLM可以從訓練數據中吸收大量世界知識,并且這些知識主要分布在Transformer的中層和高層,隨著模型層數的增加,能夠學習到的知識數量逐漸以指數級增加。對于Bert類型的語言模型來說,只用1000萬到1億單詞的語料,就能學好句法語義等語言學知識,但是要學習事實類知識,則需要更多的訓練數據。隨著增加訓練數據量,預訓練模型在各種下游任務中效果越好,這說明了從增量的訓練數據中學到的更主要是世界知識。
二、LLM如何存取知識
LLM是一種基于Transformer結構的語言模型,可以從大量的自由文本中學習到豐富的語言類和世界知識。但對于具體的某條知識,LLM是如何存儲和提取的呢?從Transformer的結構來看,模型參數由兩部分構成:多頭注意力(MHA)部分占了大約參數總體的三分之一,三分之二的參數集中在FFN結構中。
FFN的第一層是一個MLP寬隱層,也就是Key層;第二層是一個MLP窄隱層,也就是Value層。FFN的輸入層實際上是某個單詞對應的MHA的輸出結果Embedding,也就是通過Self Attention,將整個句子有關的輸入上下文集成到一起的Embedding,代表了整個輸入句子的整體信息。
Key層的每個神經元節(jié)點,記載了一對信息。比如對于FFN第一個隱層的第i個節(jié)點ki,也許就是它記載了<北京,is-capital-of,中國>這條知識。ki節(jié)點對應的Key向量,其實指的是節(jié)點ki和輸入層每個節(jié)點的權重向量;而對應的Value向量,指的是節(jié)點ki和FFN第二層的Value層每個節(jié)點形成連接的權重向量。
每個神經元的Key向量,用于識別輸入中的某種語言或者知識模式,是一種模式探測器。如果輸入中包含它要檢測的某種模式,那么輸入向量和ki節(jié)點的key權重進行向量內積計算,加上Relu,形成ki的大數值響應,意味著ki檢測到了這個模式,于是再把這個響應值,通過ki節(jié)點的Value權重向量向FFN第二層傳播。這等價于將Value向量的值,用響應值加權,然后傳遞并體現(xiàn)到第二層Value層每個節(jié)點的輸出上。
這樣,F(xiàn)FN的正向傳播計算過程,看起來就像是通過Key檢測到某種知識模式,然后取出對應的Value,并把Value體現(xiàn)在FFN的第二層輸出上。當然,F(xiàn)FN第二層每個節(jié)點,會收集FFN的Key層所有節(jié)點信息,所以是一種混合響應,而Value層所有節(jié)點的混合響應,可以解讀為代表輸出單詞的概率分布信息。把FFN看成Key-Value存儲器這種思路,雖然可能不是最終的正確答案,但是距離最終正確答案的距離,估計也不太遠。
三、如何修正LLM里存儲的知識
當使用LLM進行自然語言處理時,可能會遇到一些過時或錯誤的知識。為了解決這個問題,可以使用三種不同的方法來修正LLM中存儲的知識。
1、從訓練數據的源頭開始修正知識
通過追蹤某條知識對應的訓練數據源頭定位到是哪些數據導致LLM學會知識。然后刪除數據源,重新預訓練整個LLM模型,以達到刪除LLM中相關知識的目的。但這種方法在少量多次的常規(guī)知識修正場景中不適用。
2、通過fine-tuning來修正知識
根據要修正成的新知識來構建訓練數據,讓LLM模型在練數據上做fine-tuning,以指導LLM記住新的知識,遺忘舊知識。但是會有忘掉該忘的知識,還會忘掉不該忘的知識現(xiàn)象存在,導致這么做之后有些下游任務效果下降。此外成本也相當高。
3、直接修改LLM的模型參數來修正知識
通過定位存儲知識的具體位置,強行調整FFN中對應的模型參數,將舊知識替換成新的知識。然而,這種方法需要解決兩個關鍵問題。首先需要知道如何在LLM參數空間中定位某條知識的具體存儲位置。其次需要知道如何修正模型參數,以實現(xiàn)舊知識到新知識的修正。
理解修正LLM知識的過程對于更深入理解LLM的內部運作機制是很有幫助的。雖然三種方法各有優(yōu)缺點,但都可以幫助修正LLM中的過時或錯誤的知識,提高LLM在自然語言處理任務中的表現(xiàn)。
當LLM越來越大時會發(fā)生什么
近年來,LLM模型規(guī)模不斷增長,目前效果最好的LLM模型,其參數規(guī)模大都超過了千億(100B)參數規(guī)模。如OpenAI的GPT-3規(guī)模為175B,Google的LaMDA規(guī)模為137B,PaLM的規(guī)模為540B,DeepMind的Gogher規(guī)模為280B等。國內也有中文巨型模型,比如清華&智譜GLM規(guī)模130B,華為“盤古”規(guī)模200B,百度“文心”規(guī)模260B,浪潮“源1.0”規(guī)模245B。
那么問題來了,隨著LLM模型規(guī)模的不斷增長會發(fā)生些什么呢?預訓練模型的應用往往是兩階段的:預訓練階段和具體場景應用階段。在預訓練階段,LLM模型的優(yōu)化目標是交叉熵,對于像GPT這種自回歸語言模型來說,也就是看LLM是否正確預測下一個單詞。而在場景應用階段,一般要看具體場景的評價指標。通常,LLM模型在預訓練階段的指標越好解決下游任務的能力就越強。然而,事實并非完全如此。
現(xiàn)有研究表明,預訓練階段的優(yōu)化指標確實和下游任務表現(xiàn)出正相關關系,但并非完全正相關。也就是說,僅僅看預訓練階段的指標來判斷一個LLM模型是否夠好是不夠的。因此需要在模型的預訓練階段和應用階段都進行充分的評估和測試。
在預訓練階段,OpenAI和DeepMind的研究表明,同時增加訓練數據量和模型參數是最優(yōu)的選擇,而只單獨增加其中某一個是不夠好的。DeepMind認為,訓練數據量和模型參數是同等重要的,因此應該同比例地增加。比如,如果用于訓練LLM的算力總預算增加了10倍,那么應該增加3.3倍的模型參數量,3.3倍的訓練數據量,這樣模型效果才最好。而對于Chinchilla模型,它選擇增加4倍的訓練數據,但是將模型參數降低為Gopher的四分之一,大約為70B。這樣做的結果是,Chinchilla的預訓練指標和許多下游任務指標都要優(yōu)于規(guī)模更大的Gopher。這表明,可以選擇放大訓練數據,并同比例地減少LLM模型參數,以達到在不降低模型效果的前提下,極大縮小模型規(guī)模的目的。
從LLM解決下游具體任務效果的角度來看,隨著模型規(guī)模增大,不同類型的任務有不同的表現(xiàn)。比如,對于簡單的任務,如語言模型的困惑度,隨著模型規(guī)模增大,模型效果會不斷提升。在OpenAI的研究中,當訓練數據量從12B增加到800B時,GPT-3模型的困惑度從3.15降低到1.28。
對于中等難度的任務,如問答、文本分類等,隨著模型規(guī)模增大,模型效果會先提升后趨于平穩(wěn)。在OpenAI的研究中,當訓練數據量從12B增加到800B時,GPT-3模型在LAMBADA和SuperGLUE等任務上的表現(xiàn)都有所提升,但是提升幅度逐漸減小。對于復雜的任務,如機器翻譯、語義理解等,隨著模型規(guī)模增大,模型效果會先提升后出現(xiàn)飽和現(xiàn)象或者略微下降。在Google的研究中,當模型參數量從1558M增加到137B時,BLEU分數從36.8提高到37.5,但是隨著模型規(guī)模進一步增大,BLEU分數反而略微下降。因此,在選擇LLM模型規(guī)模時,需要根據具體任務的難度和要求,綜合考慮各種因素,以獲得最佳的模型性能。
第一類任務展現(xiàn)了LLM模型的scaling law,即隨著模型規(guī)模的增大,任務的表現(xiàn)越來越好。這類任務通常是知識密集型任務,LLM模型包含的知識量越多,任務表現(xiàn)越好。研究表明,更大的LLM模型學習效率越高,相同訓練數據量,大模型可以學到更多的知識點。傳統(tǒng)的自然語言理解類任務大多屬于這種類型,近兩年這些任務的效果有了極大的提升,很可能是因為LLM模型的規(guī)模增長所帶來的。
第二類任務展現(xiàn)出LLM具備某種“涌現(xiàn)能力”,當模型規(guī)模達到某個閥值時,LLM模型對此類任務的效果會出現(xiàn)突然的性能增長。這種“涌現(xiàn)能力”是LLM模型規(guī)模增長的關鍵,隨著模型規(guī)模越來越大,LLM模型會逐漸解鎖新的能力。這種現(xiàn)象很神奇,因為即使LLM模型現(xiàn)在還不能很好地解決某些任務,但如果繼續(xù)推大模型,也許某一天它的這項能力就被突然解鎖了。這些任務一般由多步驟構成,需要先解決多個中間步驟,邏輯推理能力在最終解決這類任務中發(fā)揮重要作用。思維鏈Prompting是一種典型的增強LLM推理能力的技術,能大幅提升此類任務的效果。關于為何LLM會出現(xiàn)這種“涌現(xiàn)能力”現(xiàn)象,目前還需要進一步的研究。
還有一部分任務的效果曲線呈現(xiàn)出U形特性,即隨著模型規(guī)模的增大,任務效果逐漸變差,但當模型規(guī)模進一步增大時,效果開始變好,呈現(xiàn)出U形增長趨勢。這些任務內部隱含了兩種不同類型的子任務,一種是真正的任務,另一種是“干擾任務”。當模型規(guī)模小的時候,無法識別任意一種子任務,所以模型的表現(xiàn)跟隨機選擇答案差不多。
當模型增長到中等規(guī)模時,主要執(zhí)行的是干擾任務,所以對真正的任務效果有負面影響,體現(xiàn)為真正任務效果的下降。當進一步增加模型規(guī)模時,LLM可以忽略干擾任務,執(zhí)行真正的任務,效果開始增長。如果采用思維鏈(CoT)Prompting,則部分任務的表現(xiàn)轉換為遵循Scaling law,即模型規(guī)模越大效果越好,而其他任務則轉換為U形增長曲線。這說明此類任務應屬于推理類型的任務,加入CoT后任務表現(xiàn)會發(fā)生質的變化。
從In Context Learning到Instruct理解
一般常提到的人和LLM的接口技術包括:Instruct和In Context Learning。Instruct是ChatGPT的接口方式,人以自然語言給出任務的描述,例如“把這個句子從中文翻譯成英文”。而In Context Learning和few shot prompting意思類似,給LLM幾個示例作為范本,然后讓LLM解決新問題。
雖然這些技術都是描述任務的方式,但其實思路是不同的。Instruct是一種抽象的描述方式,而In Context Learning是一種例子示范的說明法。盡管叫法有些混亂,但這兩種技術是最為常見的人和LLM的接口技術。下面將重點介紹Instruct和In Context Learning,而不再提及zero shot和few shot。
一、神秘的In Context Learning
In Context Learning是一項非常神奇的技術。它之所以神奇,是因為只需要提供LLM幾個樣本示例,....,然后給一個新的輸入xn+1,LLM就能成功預測對應的輸出yn+1。這聽起來有些類似于Fine-tuning,但實際上更為復雜。
Fine-tuning和In Context Learning看似都提供了一些示例給LLM,但兩者之間存在著質的不同。Fine-tuning使用這些示例作為訓練數據,通過反向傳播來修正LLM的模型參數,從而實現(xiàn)了LLM從示例中學習的過程。而In Context Learning只是簡單地展示示例,然后要求LLM去預測新的示例,沒有使用反向傳播來修正模型參數,這意味著它貌似沒有經歷學習的過程。但是,In Context Learning卻能夠僅憑一眼就預測出新的示例。
目前,有一些研究對這個問題提出了不同的看法,但是它們之間存在著相互矛盾的結論。對于這個問題的真相,目前仍是未解之謎。有些研究認為In Context Learning并沒有從示例中學習映射函數,而是通過輸入和輸出的分布來實現(xiàn)預測。而另一些研究則認為LLM仍然從示例中學習了映射函數,只是這個過程是隱式的。
二、神奇的Instruct理解
Instruct是一種為了方便人類理解的任務表述?;谶@個前提,目前的Instruct研究可以分為兩類:一種是偏向學術研究的Instruct,另一種則是關注于人類真實需求描述的Instruct。
首先,來看偏向學術研究的Instruct。該領域的核心研究主題是LLM模型在多任務場景下對Instruct理解的泛化能力。這種方法使用多個NLP任務,每個任務都有一個或多個Prompt模版作為Instruct,并用訓練數據對LLM模型進行微調,使其能夠同時學習多個任務。
訓練好模型后,給LLM模型一個全新的任務Instruct,然后讓LLM解決zero shot任務,從而判斷LLM模型是否具有對Instruct的泛化能力。目前的研究表明,增加多任務的數量、增加LLM模型的大小、提供CoT Prompting以及增加任務的多樣性等因素可以有效地增加LLM模型對Instruct的理解能力。
第二種是面向人類真實需求的Instruct,這類研究以InstructGPT和ChatGPT為代表。這種方法同樣基于多任務,但與偏向學術研究的方法最大的不同在于它是面向真實需求的。它使用從大量用戶提交的真實請求中抽樣而來的任務描述Prompt進行LLM多任務訓練,而不是固定好研究任務的范圍,然后讓研究人員來編寫任務描述prompt。
這種方法的優(yōu)勢在于可以涵蓋更多樣化的任務類型,更符合用戶的真實需求;同時,任務的prompt描述來自用戶提交的請求,反映了用戶在表達任務需求時的真實表述方式。因此,這種方法訓練出的LLM模型可以更好地滿足用戶需求。InstructGPT論文還將該方法與偏向學術研究的FLAN方法進行了比較。結果表明,F(xiàn)LAN方法的效果距離InstructGPT有很大差距。這是因為FLAN方法涉及的任務領域相對較少,而InstructGPT使用的任務類型更加多樣化,更符合用戶的真實需求。因此,從用戶數據中收集真實需求對于提高LLM模型的效果是非常重要的。
三、In Context Learning和Instruct的聯(lián)系
可以將In Context Learning看作是通過一些具體的例子來表達任務命令,而Instruct則是更符合人類習慣的抽象任務描述。這引發(fā)了一個自然的問題:這兩種方法之間是否存在聯(lián)系?例如,是否可以提供一些具體的示例,讓LLM找出對應的自然語言描述的Instruct命令來完成某個任務?
目前有些研究工作在探索具象任務示例和自然語言命令之間的聯(lián)系,并且這個方向具有很高的研究價值。在這個問題上,答案是肯定的:LLM確實可以實現(xiàn)這個任務。最近的一項研究使用了GPT-3和InstructGPT作為基礎模型,讓LLM通過一些具體的示例生成自然語言命令來描述某項任務,然后再用這個描述測試任務效果。這項技術的加持使得LLM生成的Instruct效果大大提升,甚至在一些任務上超過了人類的表現(xiàn)。這表明了具象任務示例和自然語言命令之間存在一種神秘的內在聯(lián)系,但我們目前還無法確定這種聯(lián)系的具體本質。
如何增強LLM的推理能力
目前,許多研究表明LLM具有強大的記憶能力,但通常不會因為一個人記憶能力強就認為他/她很聰明,因為推理能力往往是判斷一個人是否聰明的重要標準。因此,對于LLM而言,強大的推理能力也是必不可少的。在過去一年中,LLM的推理能力已成為最重要和熱門的研究領域之一。目前的研究表明,當模型規(guī)模足夠大時,LLM本身具備推理能力,在簡單推理問題上已經達到了很好的能力,但在復雜推理問題上仍需要更深入的研究。
LLM推理能力的研究可以歸為兩大類分別是基于Prompt的方法和引入程序代碼的方法?;赑rompt的方法通過合適的提示語或提示樣本來激發(fā)LLM本身具備的推理能力,Google在這個方向做了很多有成效的工作。而引入程序代碼的方法則在預訓練過程中將代碼和文本一起參與預訓練,以此進一步增強LLM的推理能力,這是OpenAI實踐出的思路。這兩種方法的大方向是迥異的:前者是通過提供多樣性的訓練數據來直接增強LLM推理能力,而后者則是讓LLM在解決問題過程中更好地展示出推理能力的技術方法。雖然這兩種方法互補,但從長遠來看,治本的方法更為重要。
歸納一下大致可以分為三條技術路線。
一、直接在問題上追加輔助推理Prompt
在各個領域,基于Prompt的方法都被證明是一種有效的方法來增強LLM的推理能力。這種方法非常簡單,直接在問題上追加輔助推理Prompt即可。其中,Zero-shot CoT是一種被廣泛應用的方法,它通過在提問的問題上追加“Let’s think step by step”這句提示語來激發(fā)LLM本身具備的推理能力。
具體而言,分為兩個階段,第一階段在問題上追加提示語,LLM會輸出具體的推理過程;第二階段,拼接LLM輸出的具體推理過程,并再追加Prompt,此時LLM會給出答案。這種簡單的操作可以大幅增加LLM在各項推理任務中的效果。目前,關于LLM為什么會具備推理能力的原因尚無定論,但可能是因為預訓練數據中存在大量以“Let’s think step by step”開頭的數據,LLM在預訓練的時候記住了這些模式。
因此,當我們輸入這個提示語的時候,LLM會模仿這些例子進行步驟推理并給出答案。當然,Zero-shot CoT的效果比標準CoT差一些,因為靠LLM回憶示例,精準性估計不會太高。但無論是Zero-shot CoT還是標準CoT,都說明了一個道理,就是LLM本身是具備推理能力的,只是我們沒有辦法把它的這種能力激發(fā)出來而已。
二、基于示例的思維鏈(few-shot CoT,Chain of Thought)Prompting
目前,基于Prompt的方法是LLM推理研究的主要方向,很多工作都是在這個思路上展開的。在這個方向上,有幾個代表性的工作取得了顯著的效果,這些工作基本能代表CoT技術發(fā)展的方向。
CoT的主體思想非常簡單明了,為了讓LLM模型學會推理,需要給出一些人工寫好的推理示例,示例中詳細說明得到最終答案前的具體推理步驟,而這些人工寫的詳細推理過程就是思維鏈Prompting。CoT的目的是讓LLM模型明白在推理過程中,步子不要邁得太大,需要化大問題為小問題,步步為營,積小勝為大勝。最早明確提出CoT這個概念的文章是“Chain of thought prompting elicits reasoning in large language models”,該論文于2022年1月份發(fā)布。盡管CoT的做法很簡單,但應用CoT后LLM模型的推理能力得到了巨大提升,GSM8K數學推理測試集準確率提高到了約60.1%。值得一提的是,這種給出詳細推理步驟和中間過程的思想,并非CoT最早提出的。更早一些的“scratchpad”技術就采用了類似的思路。
CoT提出不久,隨后在2022年3月份,一項名為“Self-Consistency”的改進技術迅速問世,將GSM8K測試集準確率提高到了74.4%。這項改進技術的思路也很簡單明了,首先利用CoT給出幾個寫了推理過程的示例,然后要求LLM對給定的問題進行推理,但不同于CoT的是,“Self-Consistency”要求LLM輸出多個不同的推理過程和答案,并采用投票的方式選出最佳答案。這種思路教導LLM學會這樣一個道理:一個數學題的正確解法可以有很多種,每個不同的推導過程都指向最終的答案。簡單的方法往往蘊含著深刻的哲學含義。之后,“On the Advance of Making Language Models Better Reasoners”這個工作在“Self-Consistency”的基礎上,進一步集成了“從一個Prompt問題拓展到多個Prompt問題、檢查推理中間步驟的正確性以及對多個輸出的回答加權投票”這三個改進點,將GSM8K測試集準確率提高到了約83%。
三、分治算法
核心思想是將一個復雜的推理問題分解成若干個容易解決的子問題,解決這些子問題,再從子問題的答案推導出復雜問題的答案。這種思路可能是揭示問題本質、最終解決LLM復雜推理問題的正宗道路。以“Least-to-most prompting”技術為例,它分為兩個階段。在第一個階段,我們從原始問題中得到最終要問的問題,然后構造一個Prompt模板,填充“如果要解決Final Q問題,那么我需要先解決”的內容,讓LLM模型回答,得到前置子問題SubQ。在第二個階段,讓LLM先回答子問題Sub Q,并得到對應的答案,然后將原始問題與子問題Sub Q及對應答案拼接在一起,再去問LLM最終問題Final Q,此時LLM會給出最終的答案。這種思路體現(xiàn)了拆解子問題,并從子問題的答案逐步找出最終答案的思路,類似于分治算法的思想。
代碼預訓練增強LLM推理能力
上面提到了當前利用Prompt激發(fā)LLM模型推理能力的三種主流方法,同時還觀察到了一個有趣而費解的現(xiàn)象:除了文本之外,將程序代碼與文本一起參與模型的預訓練可以顯著提高LLM模型的推理能力。
在論文“On the Advance of Making Language Models Better Reasoners”中,通過實驗數據展示了一個有趣的現(xiàn)象:將程序代碼與文本一起參與模型預訓練,可以顯著提升LLM模型的推理能力。實驗結果表明,僅僅是從純文本預訓練模型切換到文本和Code混合預訓練模型,就可以在幾乎所有測試數據集合上,將模型推理能力提升20到50個百分點。
此外研究還發(fā)現(xiàn),GPT 3這種純文本預訓練模型,其實具備相當程度的推理能力,只是需要采用合適的方法來激發(fā)。而加入instruct fine-tuning會損害LLM模型的推理能力,但會在一定程度上提升自然語言理解能力。至于為何預訓練模型可以從代碼的預訓練中獲得額外的推理能力,目前尚未得到確切的原因,但可能是因為代碼訓練本質上是<文本,Code>兩種數據的多模態(tài)對齊工作,其中包含相當比例的數學或邏輯推理類的數據,對于解決下游數學推理問題是有幫助的。這些結論啟發(fā)了后續(xù)進一步的思考和探索。
關于LLM推理能力的思考
最近一年來,關于激發(fā)LLM的推理能力的技術進展很快,但總體感覺距離接觸到真正的問題本質還有一段距離,需要更深入的思考和探索。對于復雜的推理問題,將其拆解成若干簡單的子問題,因為子問題對于LLM來說回答正確的概率更高。受到“Least-to-most prompting”技術的啟發(fā),LLM推理本質上可能是不斷和LLM進行交互的圖上推理問題,或者是不斷和LLM進行交互的程序流程圖執(zhí)行問題。
假設我們能夠將復雜問題拆解成由子問題或子步驟構成的圖結構,其中節(jié)點代表子問題或子步驟,邊表示子問題之間的依賴關系。我們可以根據依賴關系,引導LLM一步一步回答必須首先回答的子問題,直到推導出最終答案。圖中可能存在循環(huán)結構,即需要反復執(zhí)行某些子步驟。如果我們能夠得到上述子問題拆解圖,那么就能夠有效地引導LLM進行推理。
假設我們能夠將復雜問題拆解成子問題或子步驟,并生成一個類似程序流程圖的結構,其中有循環(huán)結構和條件分支。我們可以在執(zhí)行每個子步驟時,與LLM進行交互,得到子步驟的答案,并按照流程不斷執(zhí)行,直到輸出最終答案。這種多模態(tài)預訓練模型可以增強LLM模型從文本構建出隱含的流程圖并按照流程圖執(zhí)行的能力,從而增強其推理能力。
然而,如何根據文本描述得到圖結構或流程圖結構仍然是一個難點。一種可能的思路是通過增強文本和更高質量的代碼預訓練來隱式學習內部隱含結構。目前的CoT技術是試圖根據最后一個圖節(jié)點,倒推出圖結構或程序流程圖,但目前的方法限制了它的倒推深度,只能推導出簡單的圖結構,這是其能力受限的原因。
LLM研究趨勢及值得研究的重點方向
這里列出一些比較重要的LLM研究領域或值得深入探索的研究方向。
一、探索LLM模型的規(guī)模天花板
雖然LLM模型的規(guī)模看似沒有技術含量,但其實這個事情異常重要。自Bert問世以來,到GPT 3和ChatGPT給人印象深刻的關鍵技術突破,核心貢獻都來自于LLM模型規(guī)模的增長,而非某項具體技術。這說明對于知識密集型的任務,隨著模型規(guī)模越大,各種任務的效果會越來越好。而對于很多推理類型的有難度的任務,加上CoT Prompting后,其效果也呈現(xiàn)出遵循Scaling law的趨向。因此,很自然的一個問題就是:對于這些任務,LLM的規(guī)模效應,能將這些任務解決到何種程度?
考慮到LLM具備的神奇的“涌現(xiàn)能力”,如果繼續(xù)增加模型規(guī)模,將會解鎖哪些意想不到的新能力呢?這也是很有意思的問題。因此,需要不斷增大模型規(guī)模,看看模型規(guī)模對解決各類任務的天花板在哪里。當然,這種事情也就只能說說,對99.99%的從業(yè)者來說,是沒有機會和能力做這個事情的。
要做這個事情,對研究機構的財力及投入意愿、工程能力、技術熱情,都有極高的要求,缺一不可。能做這事情的機構,粗估下來,國外不超過5家,國內不超過3家。這是因為做超大規(guī)模的LLM模型對技術團隊的工程實現(xiàn)能力要求非常高,需要有非常強的硬件和軟件支持。因此,這是具有技術含量的工作。
盡管如此,繼續(xù)推大LLM模型規(guī)模的研究意義仍然非常重要。除探究LLM的規(guī)模效應對各種任務的效果影響到何種程度,還可以探索LLM模型規(guī)模增大后會解鎖哪些新的能力。這些問題的答案將有助于更好地理解LLM模型的性質和行為,為未來的研究和應用提供重要的參考。因此,對于有能力的研究機構來說,繼續(xù)推大LLM模型規(guī)模的研究是非常有價值的。
二、增強LLM的復雜推理能力
正如之前對LLM推理能力的敘述,盡管LLM在最近一年的推理能力方面取得了很大進展,但是仍然存在一些限制。例如,許多研究表明,LLM仍然無法很好地解決復雜推理問題,特別是當涉及到長字符串或數字時,LLM的推理能力會顯著下降。因此,加強LLM的復雜推理能力應該成為未來研究的重點之一。
在前文中,我們提到了一種直接增強LLM推理能力的方法,即將代碼加入到預訓練中。雖然這種方法已經得到了一些實踐的總結,但是需要深入探索背后的原理,并引入更多類型的新型數據來增強LLM的推理能力。這可能是更本質的提升LLM推理能力的方向,而不僅僅局限于代碼的加入。
三、LLM納入NLP之外更多其它研究領域
當前的ChatGPT是一個在自然語言處理(NLP)和編程任務方面表現(xiàn)出色的模型。作為通向人工通用智能(AGI)的前沿研究之一,將圖像、視頻、音頻等多媒體數據與語言模型相結合,并進一步將AI應用到科學研究、機器人控制等其他領域,是實現(xiàn)更大范圍應用和差異化發(fā)展的重要途徑。雖然這個研究方向仍處于初級階段,但卻具有極高的研究價值。
四、更易用的人和LLM的交互接口
正如前面所討論的那樣,ChatGPT的主要技術貢獻在于其在特定領域,如NLP和編程任務方面的出色表現(xiàn)。然而,我們也意識到當前的技術仍有不完善之處,存在許多命令和指令LLM無法理解的情況。因此,一個非常有前景和嶄新的技術方向是尋找更好的方法,使得LLM能夠理解人類使用自己習慣的命令表達方式。這個方向的探索將為我們創(chuàng)造新的機會,并為改善LLM的技術水平提供更多的潛在解決方案。
五、建設高難度的綜合任務評測數據集
一個優(yōu)秀的評測數據集是推動技術不斷進步的基礎。隨著LLM模型不斷擴大,任務效果迅速提升,許多經典測試集很快就變得太容易,無法有效評估當前技術的缺陷和盲點。因此,構建具有高難度的測試數據集對于推動LLM技術的進步至關重要。目前,業(yè)界已經出現(xiàn)了一些新的測試集,例如BIGBench和OPT-IML等。這些測試集具有一定的難度,綜合了多種任務類型的要求,并能更好地反映當前LLM技術的挑戰(zhàn)。
受到ChatGPT的啟發(fā),除了測試集的難度和多樣性之外,還應該考慮體現(xiàn)真實用戶需求的因素。也就是說,這些任務應該是由真實用戶提出的,只有這樣構建出來的LLM模型才能真正解決用戶的實際需求。此外,LLM將迅速擴展其能力到NLP以外的領域,因此需要提前考慮如何將更多其他領域的評測數據融入其中。這將有助于進一步提高LLM模型的廣泛適應性。
六、高質量數據工程
數據是預訓練模型的核心,預訓練過程是從數據中獲取知識的過程。因此,需要更加注重挖掘、收集和清洗高質量數據。數據質量和數量是兩個關鍵方面。根據T5的實驗比較,可以得出結論:在質量和數量之間,質量應優(yōu)先考慮。因此,正確的做法是在確保數據質量的前提下增加數據規(guī)模。數據質量方面,需要考慮數據的信息含量和多樣性等多個標準。例如,維基百科是信息含量極高的高質量數據。增加數據類型的多樣性對于激發(fā)LLM的各種新能力至關重要。例如,加入問答網站的數據對于提升LLM的問答能力具有直接幫助。多樣化的數據賦予LLM更好解決各種類型任務的能力,因此多樣性是數據質量中最關鍵的標準。
關于數據數量,原則上可以納入預訓練模型的是互聯(lián)網上公開發(fā)布的數據。然而,數據的數量也存在一定的極限。一項研究對數據量的擴展性進行了估算,并得出結論:到2026年左右,高質量的NLP數據將耗盡,低質量的NLP數據將在2030年至2050年之間耗盡,低質量圖像數據將在2030年至2060年之間耗盡。這說明要么需要開發(fā)新類型的數據來源,要么必須提高LLM模型對數據的利用效率。否則,當前依賴數據驅動的模型優(yōu)化方式將停止進步或收益減少。因此需要尋求新的解決方案,以應對數據的極限問題。
七、超大LLM模型Transformer的稀疏化
LLM中存在一些最大規(guī)模模型,如GPT 3、PaLM、GLaM等,采用了稀疏結構。使用稀疏化模型的主要優(yōu)點是可以極大地減少訓練和推理時間。相比于密集模型,稀疏模型在相同算力預算下,訓練速度可以提升4倍到7倍。這是因為盡管稀疏模型擁有巨大的參數量,但對于每個訓練實例,稀疏模型通過路由機制只使用其中一小部分參數參與訓練和推理,所以速度更快。
未來的超大規(guī)模LLM模型很可能會趨向于稀疏模型,主要有兩個原因。首先,研究顯示標準的密集模型在訓練和推理過程中本身也呈現(xiàn)稀疏的激活,即只有部分參數會被激活,大部分參數沒有參與訓練和推理?;谶@一點,遷移到稀疏模型是合理的選擇。其次,LLM模型的規(guī)模將繼續(xù)增大,而高昂的訓練成本是其擴大模型規(guī)模的主要障礙。使用稀疏模型可以顯著降低超大模型的訓練成本,因此隨著模型規(guī)模的增加,稀疏模型的好處將更加明顯。鑒于這些原因,未來更大規(guī)模的LLM模型很可能采用稀疏模型方案。
然而,目前其他大規(guī)模模型尚未采用稀疏模型的原因是稀疏模型存在訓練不穩(wěn)定和容易過擬合等問題,很難訓練得好。因此,解決稀疏模型面臨的問題,設計出更易于訓練的稀疏模型,是未來研究的重要方向。
復刻ChatGPT時要注意些什么?
要復刻類似ChatGPT這種令人驚艷的LLM模型,我們需要在技術選型時權衡以下問題。
一、關于預訓練模式,可以選擇GPT這種自回歸語言模型、Bert這種雙向語言模型,或者T5這種混合模式。基于本文的分析,選用GPT自回歸語言模型可能是更好的選擇。然而,目前似乎許多國內LLM項目選擇了Bert雙向語言模型或T5混合語言模型,這可能導致方向有所偏移。
二、強大的推理能力是用戶認可LLM的重要基礎,為了實現(xiàn)這一目標,根據當前經驗,預訓練階段最好引入大量代碼和文本,同時進行LLM訓練。前文中也有相應的分析對此進行了解釋。
三、如果希望模型參數規(guī)模不過于龐大但依然具備良好效果,有兩個選項。一是加強高層的特征抽取和表示能力,通過更深層次的網絡結構或者更復雜的特征提取方法來實現(xiàn)。二是采用文本檢索模型與LLM相結合的方式,通過文本檢索模型提供初步的篩選和匹配,再由LLM進行進一步的生成和推理,這樣可以極大地減小LLM模型的參數規(guī)模。
四、由于超級大模型的訓練成本過高,很少有機構有能力去實施。因此,降低LLM的訓練成本是非常重要的。其中,一種有效的技術選擇是將LLM的特征抽取器進行Sparse化,這可以有效降低模型的訓練和推理成本。因此,隨著模型規(guī)模的增大,LLM模型的Sparse化是一個應該考慮的選項。
五、目前最接近理想LLM的技術方案是ChatGPT,理想中的LLM應該是一個幾乎無所不能的通用大模型,可以支持各種任務類型。為了實現(xiàn)這一目標,可以通過增加LLM的預訓練數據的多樣性來支持更多的任務類型。數據的多樣性越好,LLM能夠支持的任務類型就越豐富。因此,應該重視通過增加數據多樣性來增強LLM的能力。
六、易用的人機操作接口也是非常重要。LLM需要能夠理解人類用自己習慣的方式來描述任務的真實含義。同時,也需要根據最終用戶的需求收集任務表述方式,而不是依靠研發(fā)人員的臆想或猜測。ChatGPT在這方面給了我很大的啟發(fā),因此,是否使用增強學習并不重要,其他替代技術也能夠實現(xiàn)類似的效果。
要復刻類似ChatGPT這種令人驚艷的LLM模型,需要在技術選型上權衡預訓練模式、推理能力、模型規(guī)模、訓練成本、數據多樣性和人機操作接口等因素,并選擇最合適的方法來實現(xiàn)目標。
LLM訓練所需因素
當訓練大型語言模型時會面臨多個挑戰(zhàn),可以歸納為以下六個方面:硬件需求、健康檢查、編排技術、數據處理、模型規(guī)模擴展和成本管理。每個方面都對模型訓練的效果和效率產生重要影響。
在訓練大型語言模型時,我們會面臨多個挑戰(zhàn)。首先是硬件方面。使用最新的硬件可以提供更好的性能,而沒有充分利用最新硬件的優(yōu)勢會導致訓練時間延長,無法達到最佳結果。
藍海大腦高性能LLM大模型訓練平臺利用工作流體作為中間熱量傳輸的媒介,將熱量由熱區(qū)傳遞到遠處再進行冷卻。支持多種硬件加速器,包括CPU、GPU、FPGA和AI等,能夠滿足大規(guī)模數據處理和復雜計算任務的需求。采用分布式計算架構,高效地處理大規(guī)模數據和復雜計算任務,為深度學習、高性能計算、大模型訓練、大型語言模型(LLM)算法的研究和開發(fā)提供強大的算力支持。具有高度的靈活性和可擴展性,能夠根據不同的應用場景和需求進行定制化配置??梢钥焖俨渴鸷凸芾砀鞣N計算任務,提高了計算資源的利用率和效率。
另一個挑戰(zhàn)是健康檢查,確保硬件正常運行,減少干擾。此外還需要考慮編排,以確保團隊中的工作負載不會互相干擾,同時保持網絡和安全配置良好。處理大規(guī)模數據集也是一項挑戰(zhàn),需要高效的存儲、處理和加載方法。擴展基礎設施和設計算法以克服限制性問題也是一項重要任務。這些模型通常不適用于單個GPU,所以需要考慮如何將模型拆分到多個GPU上。
最后,成本管理是不可忽視的因素。訓練大型模型的成本可能很高,應該充分利用機器學習團隊的時間,讓其專注于創(chuàng)造新的模型,而不是花費過多時間在基礎架構上。
審核編輯黃宇
標簽: