大規(guī)模語(yǔ)言模型
1.大語(yǔ)言模型
大規(guī)模語(yǔ)言模型(Large Language Models堪伍,LLM),也稱(chēng)大語(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ī)視覺(jué)領(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)練,就可以取得顯著的性能提升截汪。這類(lèi)方法通常稱(chēng)為預(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衙解。開(kāi)啟了大規(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ì)上所公開(kāi)的信息监憎,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ù)集合以及不同類(lèi)型的算法隶债,會(huì)產(chǎn)出不同類(lèi)型的模型腾它,同時(shí)所需要的資源也有非常大的差別。
1.預(yù)訓(xùn)練
預(yù)訓(xùn)練(Pretraining)階段需要利用海量的訓(xùn)練數(shù)據(jù)死讹,包括互聯(lián)網(wǎng)網(wǎng)頁(yè)瞒滴、維基百科、書(shū)籍、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)旁瘫∽尜欤基礎(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)涡戳,也稱(chēng)為指令微調(diào)(Instruction Tuning),利用少量高質(zhì)量數(shù)據(jù)集合脯倚,包含用戶(hù)輸入的提示詞(Prompt)和對(duì)應(yīng)的理想輸出結(jié)果渔彰。用戶(hù)輸入包括問(wèn)題嵌屎、閑聊對(duì)話(huà)、任務(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 模型具備了初步的指令理解能力和上下文理解能力,能夠完成開(kāi)放領(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ù)完成能力井赌,可以開(kāi)放給用戶(hù)使用,很多類(lèi) ChatGPT的模型都屬于該類(lèi)型贵扰。很多這類(lèi)模型效果也非常好仇穗,甚至在一些評(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ò)二分類(lèi)模型,對(duì)輸入的兩個(gè)結(jié)果之間的優(yōu)劣進(jìn)行判斷球切。RM 模型與基礎(chǔ)語(yǔ)言模型和 SFT 模型不同拴还,RM 模型本身并不能單獨(dú)提供給用戶(hù)使用。獎(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)用戶(hù)給出的提示詞,利用在前一階段訓(xùn)練的 RM 模型衡瓶,給出 SFT 模型對(duì)用戶(hù)提示詞補(bǔ)全結(jié)果的質(zhì)量評(píng)估韧献,并與語(yǔ)言模型建模目標(biāo)綜合得到更好的效果末患。該階段所使用的提示詞數(shù)量與有監(jiān)督微調(diào)階段類(lèi)似,數(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 模型,就是最終提供給用戶(hù)使用具有理解用戶(hù)指令和上下文的類(lèi) 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í)踐 – 張奇湖员、桂韜贫悄、鄭銳、黃萱菁