自2022年,ChatGPT發(fā)布之后,大語(yǔ)言模型(Large Language Model),簡(jiǎn)稱LLM掀起了一波狂潮。作為學(xué)習(xí)理解LLM的開始,先來整體理解一下大語(yǔ)言模型。
一、發(fā)展歷史
大語(yǔ)言模型的發(fā)展歷史可以追溯到早期的語(yǔ)言模型和機(jī)器翻譯系統(tǒng),但其真正的起點(diǎn)可以說是隨著深度學(xué)習(xí)技術(shù)的興起而開始。
1.1 統(tǒng)計(jì)語(yǔ)言模型
在深度學(xué)習(xí)技術(shù)出現(xiàn)之前,語(yǔ)言模型主要基于傳統(tǒng)的統(tǒng)計(jì)方法,也稱為統(tǒng)計(jì)語(yǔ)言模型(SLM)。
SLMs是基于統(tǒng)計(jì)語(yǔ)言方法開始,基本思想是基于馬爾可夫假設(shè)建立詞預(yù)測(cè)模型,如根據(jù)最近的上下文預(yù)測(cè)下一個(gè)詞。具有固定上下文長(zhǎng)度n的SLM也稱為n—gram語(yǔ)言模型。
然而這些模型雖然簡(jiǎn)單,但在處理長(zhǎng)文本序列時(shí)存在著詞匯稀疏性和上下文理解能力有限等問題。
1.2 神經(jīng)語(yǔ)言模型
隨著神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,Bengio等人于2003年提出了神經(jīng)語(yǔ)言模型,將語(yǔ)言模型建模問題轉(zhuǎn)化為了一個(gè)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)問題。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)的提出進(jìn)一步增強(qiáng)了神經(jīng)語(yǔ)言模型對(duì)文本序列的建模能力。這些模型能夠捕捉到文本序列中的長(zhǎng)程依賴關(guān)系,從而提高了語(yǔ)言模型的性能。
2013年,Google提出了Word2Vec模型,通過詞嵌入(Word Embedding)的方式將單詞映射到連續(xù)的向量空間中,提高了語(yǔ)言模型對(duì)單詞語(yǔ)義的理解能力。
2017年,谷歌提出了Transformer模型,該模型通過自注意力機(jī)制(Self-Attention)實(shí)現(xiàn)了并行計(jì)算,大大提高了模型的訓(xùn)練速度。
1.3 預(yù)訓(xùn)練語(yǔ)言模型
2018年,OpenAI發(fā)布了第一個(gè)版本的GPT模型,利用Transformer結(jié)構(gòu)進(jìn)行預(yù)訓(xùn)練,這是首個(gè)成功利用大規(guī)模無監(jiān)督學(xué)習(xí)方法來預(yù)訓(xùn)練通用語(yǔ)言表示的模型。
2018年,Google提出了BERT模型,與GPT的區(qū)別是GPT采用了單向的自回歸方式進(jìn)行預(yù)訓(xùn)練,而BERT通過MLM和NSP實(shí)現(xiàn)雙向上下文建模。使得預(yù)訓(xùn)練語(yǔ)言模型的性能得到了進(jìn)一步的提升。
隨后就激發(fā)了后續(xù)一系列的預(yù)訓(xùn)練模型的發(fā)展,如XLNet、RoBERTTa、T5、 GPT-2、GPT-3、GPT 3.5、GPT-4 等等。而大語(yǔ)言模型也是在此過程中被定義下來的。
二、什么是大語(yǔ)言模型
2.1 定義
從大語(yǔ)言模型字面意思來理解,“語(yǔ)言”和“模型”很好理解,就是代表著在自然語(yǔ)言處理上的AI模型。而這個(gè)大指的是神經(jīng)網(wǎng)絡(luò)很大,包括模型的參數(shù)數(shù)量、訓(xùn)練數(shù)據(jù)量、計(jì)算資源等。
參數(shù)數(shù)量
大語(yǔ)言模型通常含有數(shù)十億到數(shù)千億個(gè)參數(shù),使得模型能夠有更強(qiáng)的語(yǔ)言理解、推理和生成能力。
如果只通過 GPT(生成式預(yù)訓(xùn)練 Transformer)模型的演進(jìn)規(guī)模來看:
2018年發(fā)布的GPT-1包含 1.17 億個(gè)參數(shù),9.85 億個(gè)單詞。2019年發(fā)布的GPT-2包含15億個(gè)參數(shù)。2020年發(fā)布的GPT-3包含1750億個(gè)參數(shù)。ChatGPT 就是基于這個(gè)模型。2023年發(fā)布的GPT-4據(jù)爆料它可能包含1.8萬億個(gè)參數(shù)
訓(xùn)練數(shù)據(jù)訓(xùn)練大語(yǔ)言模型通常需要大規(guī)模的文本語(yǔ)料庫(kù)。這些語(yǔ)料庫(kù)可以包括來自互聯(lián)網(wǎng)、書籍、新聞等各種來源的文本數(shù)據(jù),從而確保模型能夠?qū)W習(xí)到豐富和多樣化的語(yǔ)言知識(shí)。如GPT-3,它是在混合數(shù)據(jù)集上進(jìn)行訓(xùn)練的;PaLM使用了一個(gè)有社交媒體對(duì)話、過濾后的網(wǎng)頁(yè)、書籍、Github、多語(yǔ)言維基百科和新聞組成的預(yù)訓(xùn)練數(shù)據(jù)集。計(jì)算資源訓(xùn)練大型語(yǔ)言模型需要大量的計(jì)算資源,包括高性能的計(jì)算機(jī)集群、大容量的存儲(chǔ)設(shè)備以及高速的網(wǎng)絡(luò)連接。英偉達(dá)價(jià)格高昂但依然一卡難求的高性能GPU H100,長(zhǎng)期霸占著LLM領(lǐng)域的熱門話題,可以說,英偉達(dá)壟斷了目前的AI算力市場(chǎng)。馬斯克甚至戲言:GPU現(xiàn)在比drug還緊俏。
2.2 大語(yǔ)言模型訓(xùn)練方式
現(xiàn)有的神經(jīng)網(wǎng)絡(luò)在進(jìn)行訓(xùn)練時(shí),一般基于反向傳播算法(BP算法),先對(duì)網(wǎng)絡(luò)中的參數(shù)進(jìn)行隨機(jī)初始化,再利用隨機(jī)梯度下降(SGD)等優(yōu)化算法不斷優(yōu)化模型參數(shù)。
大語(yǔ)言模型的訓(xùn)練通常采用兩階段方法:預(yù)訓(xùn)練(pre-training)和微調(diào)(fine-tuning)預(yù)訓(xùn)練(Pre-training):
- 在預(yù)訓(xùn)練階段,模型使用大規(guī)模無監(jiān)督的文本數(shù)據(jù)進(jìn)行訓(xùn)練,學(xué)習(xí)文本數(shù)據(jù)中的語(yǔ)言表示。
- 通常采用自監(jiān)督學(xué)習(xí)方法,即使用文本數(shù)據(jù)自身作為標(biāo)簽來訓(xùn)練模型。
訓(xùn)練過程中,模型通過最小化損失函數(shù)來優(yōu)化參數(shù),以使得模型能夠更好地表示文本中的語(yǔ)義和語(yǔ)法信息。
微調(diào)(Fine-tuning):
- 在預(yù)訓(xùn)練完成后,可以將預(yù)訓(xùn)練好的模型參數(shù)應(yīng)用于特定的下游任務(wù),如文本生成、文本分類、情感分析等。
- 在微調(diào)階段,通常使用帶標(biāo)簽的數(shù)據(jù)集對(duì)模型進(jìn)行進(jìn)一步訓(xùn)練,以適應(yīng)特定任務(wù)的需求。微調(diào)可以在預(yù)訓(xùn)練模型的頂部添加一個(gè)或多個(gè)額外的層,并使用標(biāo)簽數(shù)據(jù)對(duì)這些層進(jìn)行訓(xùn)練。
微調(diào)的目標(biāo)是調(diào)整模型參數(shù),使得模型能夠更好地適應(yīng)特定任務(wù)的特征和標(biāo)簽,從而提高任務(wù)性能。
在微調(diào)階段,模型在與目標(biāo)任務(wù)或領(lǐng)域相關(guān)的更具體、更小的數(shù)據(jù)集上進(jìn)一步訓(xùn)練。這有助于模型微調(diào)其理解,并適應(yīng)任務(wù)的特殊要求。
三、預(yù)訓(xùn)練
3.1 數(shù)據(jù)收集及處理
3.1.1 數(shù)據(jù)來源
無論是怎樣的模型,數(shù)據(jù)的質(zhì)量都是相當(dāng)重要的?,F(xiàn)有的大語(yǔ)言模型主要混合各種公共文本數(shù)據(jù)集作為預(yù)訓(xùn)練語(yǔ)料庫(kù)。如下為一些代表性模型的預(yù)訓(xùn)練數(shù)據(jù)來源的分布情況。語(yǔ)料庫(kù)的來源可以廣義分為通用文本數(shù)據(jù)和專用文本數(shù)據(jù)。通用指的就是如網(wǎng)頁(yè)、書籍和對(duì)話文本等廣泛可獲取的,可以增強(qiáng)模型的泛化能力;專用文本數(shù)據(jù)就是在想讓模型更加專注某一專業(yè)領(lǐng)域時(shí)所用的,如科學(xué)數(shù)據(jù)、代碼等。如上圖中的模型中,就大部分都是使用了通用的預(yù)訓(xùn)練數(shù)據(jù)。
3.1.2 數(shù)據(jù)預(yù)處理
收集數(shù)據(jù)之后,由于不確定性,所以需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,尤其是噪聲、榮譽(yù)、無關(guān)或有害的數(shù)據(jù)。預(yù)處理過程如下:(1) 質(zhì)量過濾(Quality Filtering)刪除低質(zhì)量數(shù)據(jù),常采用基于分類器和基于啟發(fā)式兩種方法。分類器就是使用用高質(zhì)量數(shù)據(jù)訓(xùn)練好的二分類的模型來對(duì)數(shù)據(jù)進(jìn)行分類,不過可能會(huì)刪除方言、口語(yǔ)和社會(huì)語(yǔ)言的高質(zhì)量文本。基于啟發(fā)式就是設(shè)計(jì)一組精心設(shè)計(jì)的規(guī)則來消除低質(zhì)量文本,如基于語(yǔ)言、生成文本的評(píng)估度量、統(tǒng)計(jì)特征、關(guān)鍵詞等。
(2)去重(De-duplication)
重復(fù)數(shù)據(jù)會(huì)降低語(yǔ)言模型的多樣性,所以需要進(jìn)行去重處理。
從數(shù)據(jù)顆粒上來說,可以分為在句子級(jí)、文檔級(jí)和數(shù)據(jù)集級(jí)等進(jìn)行去重;(3)隱私去除(Privary Reduction)如涉及敏感個(gè)人信息的隱私內(nèi)容,也是需要去除的,很簡(jiǎn)單有效的就是用基于如姓名、地址、電話號(hào)碼等關(guān)鍵詞的方法。(4)分詞(Tokenization)非常關(guān)鍵的步驟,將原始文本分割成詞序列。
3.2 架構(gòu)
3.2.1 編碼器-解碼器架構(gòu)(Encoder-Decoder)
如傳統(tǒng)Transformer 模型就是建立在此結(jié)構(gòu)上。它使用了6層的Encoder和Decoder
3.2.2 因果編碼器架構(gòu)(Causal decoder)
這時(shí)當(dāng)前主流使用的,采用單向注意力掩碼,以確保每個(gè)輸入標(biāo)記只能關(guān)注過去的標(biāo)記和它本身。輸入輸出標(biāo)記通過解碼器以相同的方式處理。典型的模型有 GPT1/23, OPT, BLOOM, Gopher。
3.2.3 前綴解碼器架構(gòu)(Prefix decoder)
修正了因果解碼器的掩碼機(jī)制,以使其能夠?qū)η熬Y標(biāo)記執(zhí)行雙向注意力,并僅對(duì)生成的標(biāo)記執(zhí)行單向注意力。
這樣與編碼器-解碼器架構(gòu)類似,前綴解碼器可以雙向編碼前綴序列并自回歸地逐個(gè)預(yù)測(cè)輸出標(biāo)記,其中在編碼和解碼過程中共享相同的參數(shù)??偟膩碚f,Encoder-Decoder適用于序列到序列的任務(wù),Causal Decoder適用于需要生成自回歸序列的任務(wù),而Prefix Decoder適用于需要根據(jù)特定前綴生成序列的任務(wù)。
3.3 模型訓(xùn)練
在數(shù)據(jù)處理好,模型搭建好之后,就要開始對(duì)模型進(jìn)行訓(xùn)練。
四、微調(diào)和強(qiáng)化學(xué)習(xí)
在預(yù)訓(xùn)練后,大語(yǔ)言模型可以獲得解決各種任務(wù)的通用能力。然而,還可以通過特定目標(biāo)進(jìn)一步調(diào)整,也就是微調(diào)(Instruction Tuning)
4.1 指令微調(diào)
通過在特定的指令性任務(wù)數(shù)據(jù)集上進(jìn)行訓(xùn)練,提高模型對(duì)于指令類輸入的理解和響應(yīng)。指令的意思,舉個(gè)例子,對(duì)聊天機(jī)器人的指令,需要包括如“今天天氣如何”和對(duì)應(yīng)的回答,供模型學(xué)習(xí)。也就是說需要包含明確指令的數(shù)據(jù)集,一個(gè)指令需要包括一個(gè)任務(wù)描述、一個(gè)輸入輸出對(duì)以及少量實(shí)例(可選)。常用的指令實(shí)例格式化方法有格式化已有的數(shù)據(jù)集還有格式化人類需求。指令微調(diào)對(duì)模型的性能改進(jìn)和任務(wù)泛化能夠起到很好的作用
4.2 對(duì)齊微調(diào)
大語(yǔ)言模型有時(shí)可能表現(xiàn)出意外的行為,例如制造虛假信息、追求不準(zhǔn)確的目標(biāo),以及產(chǎn)生有害的、誤導(dǎo)性的和偏見性的表達(dá)。為了避免這些意外行為,研究提出了人類對(duì)齊,使大語(yǔ)言模型行為能夠符合人類的期望也就是對(duì)齊微調(diào)。
在預(yù)訓(xùn)練階段使用的訓(xùn)練語(yǔ)料庫(kù)是沒有對(duì)模型的主觀定性評(píng)估的。所以可以在使用人類反饋的數(shù)據(jù)進(jìn)行微調(diào),這個(gè)過程稱為強(qiáng)化學(xué)。
五、應(yīng)用
大語(yǔ)言模型作為具有廣泛應(yīng)用的變革工具而受到重視。
文本生成:這些模型具有理解上下文、含義和語(yǔ)言的微妙復(fù)雜性的固有能力。因此,他們可以生成連貫且上下文相關(guān)的文本。
問答與信息檢索:大語(yǔ)言模型在問答和信息檢索領(lǐng)域正在快速發(fā)展。他們理解人類語(yǔ)言的卓越能力使他們能夠從龐大的數(shù)據(jù)存儲(chǔ)庫(kù)中提取相關(guān)細(xì)節(jié)。
情感分析與意見挖掘:了解人類的情感和觀點(diǎn)在不同的環(huán)境中都具有巨大的意義,從塑造品牌認(rèn)知到進(jìn)行市場(chǎng)分析。像在社交媒體監(jiān)控和品牌認(rèn)知分析領(lǐng)域的應(yīng)用。
- 輔助代碼生成:如GitHub Copilot、通義靈碼
本文來源:嗣金雜談
-
語(yǔ)言模型
+關(guān)注
關(guān)注
0文章
501瀏覽量
10236 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1546瀏覽量
7353 -
LLM
+關(guān)注
關(guān)注
0文章
264瀏覽量
297
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論