大規(guī)模語(yǔ)言模型
1.大語(yǔ)言模型
大規(guī)模語(yǔ)言模型(Large Language Models,LLM),也稱大語(yǔ)言模型 ,是一種由包含數(shù)百億以上參數(shù)的深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的語(yǔ)言模型,通常使用自監(jiān)督學(xué)習(xí)方法通過(guò)大量無(wú)標(biāo)注文本進(jìn)行訓(xùn)練。
2.預(yù)訓(xùn)練語(yǔ)言模型
受到計(jì)算機(jī)視覺領(lǐng)域采用 ImageNet對(duì)模型進(jìn)行一次預(yù)訓(xùn)練,使得模型可以通過(guò)海量圖像充分學(xué)習(xí)如何提取特征,然后再根據(jù)任務(wù)目標(biāo)進(jìn)行模型精調(diào)的預(yù)訓(xùn)練范式影響,自然語(yǔ)言處理領(lǐng)域基于預(yù)訓(xùn)練語(yǔ)言模型的方法也逐漸成為主流。將預(yù)訓(xùn)練模型應(yīng)用于下游任務(wù)時(shí),不需要了解太多的任務(wù)細(xì)節(jié),不需要設(shè)計(jì)特定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),只需要“微調(diào)”預(yù)訓(xùn)練模型,使用具體任務(wù)的標(biāo)注數(shù)據(jù)在預(yù)訓(xùn)練語(yǔ)言模型上進(jìn)行監(jiān)督訓(xùn)練,就可以取得顯著的性能提升。這類方法通常稱為預(yù)訓(xùn)練語(yǔ)言模型(Pre-trained Language Models,PLM)。
3.提示詞(Prompt)學(xué)習(xí)方法
2020 年 Open AI 發(fā)布了由包含 1750 億參數(shù)的神經(jīng)網(wǎng)絡(luò)構(gòu)成的生成式大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型GPT-3。開啟了大規(guī)模語(yǔ)言模型的新時(shí)代。由于大規(guī)模語(yǔ)言模型的參數(shù)量巨大,如果在不同任務(wù)上都進(jìn)行微調(diào)需要消耗大量的計(jì)算資源,因此預(yù)訓(xùn)練微調(diào)范式不再適用于大規(guī)模語(yǔ)言模型。但是研究人員發(fā)現(xiàn),通過(guò)語(yǔ)境學(xué)習(xí)(Incontext Learning,ICL)等方法,直接使用大規(guī)模語(yǔ)言模型就可以在很多任務(wù)的少樣本場(chǎng)景下取得很好的效果。此后,研究人員們提出了面向大規(guī)模語(yǔ)言模型的提示詞(Prompt)學(xué)習(xí)方法、模型即服務(wù)范式(Model as aService,MaaS)、指令微調(diào)(Instruction Tuning)等方法,在不同任務(wù)上都取得了很好的效果。
大規(guī)模語(yǔ)言模型構(gòu)建流程
根據(jù) OpenAI 聯(lián)合創(chuàng)始人 Andrej Karpathy 在微軟 Build 2023 大會(huì)上所公開的信息,OpenAI所使用的大規(guī)模語(yǔ)言模型構(gòu)建流程如圖1.3所示。主要包含四個(gè)階段:預(yù)訓(xùn)練、有監(jiān)督微調(diào)、獎(jiǎng)勵(lì)建模、強(qiáng)化學(xué)習(xí)。這四個(gè)階段都需要不同規(guī)模數(shù)據(jù)集合以及不同類型的算法,會(huì)產(chǎn)出不同類型的模型,同時(shí)所需要的資源也有非常大的差別。

1.預(yù)訓(xùn)練
預(yù)訓(xùn)練(Pretraining)階段需要利用海量的訓(xùn)練數(shù)據(jù),包括互聯(lián)網(wǎng)網(wǎng)頁(yè)、維基百科、書籍、GitHub、論文、問(wèn)答網(wǎng)站等,構(gòu)建包含數(shù)千億甚至數(shù)萬(wàn)億單詞的具有多樣性的內(nèi)容。利用由數(shù)千塊高性能GPU 和高速網(wǎng)絡(luò)組成超級(jí)計(jì)算機(jī),花費(fèi)數(shù)十天完成深度神經(jīng)網(wǎng)絡(luò)參數(shù)訓(xùn)練,構(gòu)建基礎(chǔ)語(yǔ)言模型(BaseModel)?;A(chǔ)大模型構(gòu)建了長(zhǎng)文本的建模能力,使得模型具有語(yǔ)言生成能力,根據(jù)輸入的提示詞(Prompt),模型可以生成文本補(bǔ)全句子。也有部分研究人員認(rèn)為,語(yǔ)言模型建模過(guò)程中也隱含的構(gòu)建了包括事實(shí)性知識(shí)(Factual Knowledge)和常識(shí)知識(shí)(Commonsense)在內(nèi)的世界知識(shí)(World Knowledge)。根據(jù)文獻(xiàn) [46] 介紹,GPT-3 完成一次訓(xùn)練的總計(jì)算量是 3640PFlops,按照NVIDIA A100 80G 和平均利用率達(dá)到 50% 計(jì)算,需要花費(fèi)近一個(gè)月時(shí)間使用 1000 塊 GPU 完成。由于 GPT-3 訓(xùn)練采用了 NVIDIA V100 32G,其實(shí)際計(jì)算成本遠(yuǎn)高于上述計(jì)算。文獻(xiàn) [31] 介紹了參數(shù)量同樣是 1750 億的 OPT 模型,該模型訓(xùn)練使用了 992 塊 NVIDIA A100 80G,整體訓(xùn)練時(shí)間將近 2 個(gè)月。BLOOM[33] 模型的參數(shù)量也是 1750 億,該模型訓(xùn)練一共花費(fèi) 3.5 個(gè)月,使用包含 384塊 NVIDIA A100 80G GPU 集群完成。可以看到大規(guī)模語(yǔ)言模型的訓(xùn)練需要花費(fèi)大量的計(jì)算資源和時(shí)間。包括 LLaMA 系列、Falcon 系列、百川(Baichuan)系列等在模型都屬于此階段。由于訓(xùn)練過(guò)程需要消耗大量的計(jì)算資源,并很容易受到超參數(shù)影響,如何能夠提升分布式計(jì)算效率并使得模型訓(xùn)練穩(wěn)定收斂是本階段的重點(diǎn)研究?jī)?nèi)容。
2.有監(jiān)督微調(diào)
有監(jiān)督微調(diào)(Supervised Finetuning),也稱為指令微調(diào)(Instruction Tuning),利用少量高質(zhì)量數(shù)據(jù)集合,包含用戶輸入的提示詞(Prompt)和對(duì)應(yīng)的理想輸出結(jié)果。用戶輸入包括問(wèn)題、閑聊對(duì)話、任務(wù)指令等多種形式和任務(wù)。
gretelai/synthetic_text_to_sql 是一個(gè)包含高質(zhì)量合成 Text-to-SQL 示例的豐富數(shù)據(jù)集,使用Gretel Navigator 設(shè)計(jì)和生成,并在 Apache 2.0 下發(fā)布。
Text-to-SQL 數(shù)據(jù)集可用于Llama2模型進(jìn)行訓(xùn)練微調(diào),構(gòu)建基于sql生成場(chǎng)景的模型服務(wù)。
{
"id": 39325,
"domain": "public health",
"domain_description": "Community health statistics, infectious disease tracking data, healthcare access metrics, and public health policy analysis.",
"sql_complexity": "aggregation",
"sql_complexity_description": "aggregation functions (COUNT, SUM, AVG, MIN, MAX, etc.), and HAVING clause",
"sql_task_type": "analytics and reporting",
"sql_task_type_description": "generating reports, dashboards, and analytical insights",
"sql_prompt": "What is the total number of hospital beds in each state?",
"sql_context": "CREATE TABLE Beds (State VARCHAR(50), Beds INT); INSERT INTO Beds (State, Beds) VALUES ('California', 100000), ('Texas', 85000), ('New York', 70000);",
"sql": "SELECT State, SUM(Beds) FROM Beds GROUP BY State;",
"sql_explanation": "This query calculates the total number of hospital beds in each state in the Beds table. It does this by using the SUM function on the Beds column and grouping the results by the State column."
}
利用這些有監(jiān)督數(shù)據(jù),使用與預(yù)訓(xùn)練階段相同的語(yǔ)言模型訓(xùn)練算法,在基礎(chǔ)語(yǔ)言模型基礎(chǔ)上再進(jìn)行訓(xùn)練,從而得到有監(jiān)督微調(diào)模型(SFT 模型)。經(jīng)過(guò)訓(xùn)練的 SFT 模型具備了初步的指令理解能力和上下文理解能力,能夠完成開放領(lǐng)域問(wèn)題、閱讀理解、翻譯、生成代碼等能力,也具備了一定的對(duì)未知任務(wù)的泛化能力。由于有監(jiān)督微調(diào)階段的所需的訓(xùn)練語(yǔ)料數(shù)量較少,SFT 模型的訓(xùn)練過(guò)程并不需要消耗非常大量的計(jì)算。根據(jù)模型的大小和訓(xùn)練數(shù)據(jù)量,通常需要數(shù)十塊 GPU,花費(fèi)數(shù)天時(shí)間完成訓(xùn)練。SFT 模型具備了初步的任務(wù)完成能力,可以開放給用戶使用,很多類 ChatGPT的模型都屬于該類型。很多這類模型效果也非常好,甚至在一些評(píng)測(cè)中達(dá)到了 ChatGPT 的 90% 的效果。當(dāng)前的一些研究表明有監(jiān)督微調(diào)階段數(shù)據(jù)選擇對(duì)SFT 模型效果有非常大的影響,因此如何構(gòu)造少量并且高質(zhì)量的訓(xùn)練數(shù)據(jù)是本階段有監(jiān)督微調(diào)階段的研究重點(diǎn)。
3.獎(jiǎng)勵(lì)建模
獎(jiǎng)勵(lì)建模(Reward Modeling)階段目標(biāo)是構(gòu)建一個(gè)文本質(zhì)量對(duì)比模型,對(duì)于同一個(gè)提示詞,SFT模型給出的多個(gè)不同輸出結(jié)果的質(zhì)量進(jìn)行排序。獎(jiǎng)勵(lì)模型(RM 模型)可以通過(guò)二分類模型,對(duì)輸入的兩個(gè)結(jié)果之間的優(yōu)劣進(jìn)行判斷。RM 模型與基礎(chǔ)語(yǔ)言模型和 SFT 模型不同,RM 模型本身并不能單獨(dú)提供給用戶使用。獎(jiǎng)勵(lì)模型的訓(xùn)練通常和 SFT 模型一樣,使用數(shù)十塊 GPU,通過(guò)幾天時(shí)間完成訓(xùn)練。由于 RM 模型的準(zhǔn)確率對(duì)于強(qiáng)化學(xué)習(xí)階段的效果有著至關(guān)重要的影響,因此對(duì)于該模型的訓(xùn)練通常需要大規(guī)模的訓(xùn)練數(shù)據(jù)。Andrej Karpathy 在報(bào)告中指出,該部分需要百萬(wàn)量級(jí)的對(duì)比數(shù)據(jù)標(biāo)注,而且其中很多標(biāo)注需要花費(fèi)非常長(zhǎng)的時(shí)間才能完成。
4.強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)(Reinforcement Learning)階段根據(jù)數(shù)十萬(wàn)用戶給出的提示詞,利用在前一階段訓(xùn)練的 RM 模型,給出 SFT 模型對(duì)用戶提示詞補(bǔ)全結(jié)果的質(zhì)量評(píng)估,并與語(yǔ)言模型建模目標(biāo)綜合得到更好的效果。該階段所使用的提示詞數(shù)量與有監(jiān)督微調(diào)階段類似,數(shù)量在十萬(wàn)量級(jí),并且不需要人工提前給出該提示詞所對(duì)應(yīng)的理想回復(fù)。使用強(qiáng)化學(xué)習(xí),在 SFT 模型基礎(chǔ)上調(diào)整參數(shù),使得最終生成的文本可以獲得更高的獎(jiǎng)勵(lì)(Reward)。該階段所需要的計(jì)算量相較預(yù)訓(xùn)練階段也少很多,通常也僅需要數(shù)十塊 GPU,經(jīng)過(guò)數(shù)天時(shí)間的即可完成訓(xùn)練。在經(jīng)過(guò)強(qiáng)化學(xué)習(xí)方法訓(xùn)練完成后的 RL 模型,就是最終提供給用戶使用具有理解用戶指令和上下文的類 ChatGPT 系統(tǒng)。由于強(qiáng)化學(xué)習(xí)方法穩(wěn)定性不高,并且超參數(shù)眾多,使得模型收斂難度大,再疊加 RM 模型的準(zhǔn)確率問(wèn)題,使得在大規(guī)模語(yǔ)言模型如何能夠有效應(yīng)用強(qiáng)化學(xué)習(xí)非常困難。
參考:大規(guī)模語(yǔ)言模型:從理論到實(shí)踐 – 張奇、桂韜、鄭銳、黃萱菁