一文講清楚大模型中六個關鍵詞及原理:LLM、Transformer、Bert、預訓練、微調FineTuning、機器學習
什么是大模型,相信每個人都能說上一個一二三點來。
比如:OpenAI、ChatGPT、DeepSeek、豆包、Manus等。
也知道大模型需要做訓練與推理。但是如果稍微深入一點,可能就無法再回答上來。這篇文章,我從系統性角度來講講大模型。
圖片
深度學習與機器學習
深度學習(deep learning)是機器學習(machine learning)和人工智能(artificial intelligence,AI)領域的一個重要分支,主要聚焦于神經網絡的研究。深度學習的發展使得大語言模型能夠利用海量的文本數據進行訓練,從而相比于以往的方法能夠捕獲更深層次的上下文信息和人類語言的細微之處。因此,大語言模型在文本翻譯、情感分析、問答等各類自然語言處理任務中都有顯著的性能提升。
圖片
大語言模型的成功,一方面得益于為其提供支撐的 Transformer 架構,另一方面得益于用于訓練這些模型的海量數據。這使得它們能夠捕捉到語言中的各類細微差別、上下文信息和模式規律,而這些都是手動編碼難以實現的。
什么是大語言模型
大語言模型(large language model,LLM,簡稱大模型)是一種用于理解、生成和響應類似人類語言文本的神經網絡。這類模型屬于深度神經網絡(deep neural network),通過大規模文本數據訓練而成,其訓練資料甚至可能涵蓋了互聯網上大部分公開的文本。
大語言模型在理解、生成和解釋人類語言方面擁有出色的能力。當我們談論語言模型的“理解”能力時,實際上是指它們能夠處理和生成看似連貫且符合語境的文本,而這并不意味著它們真的擁有像人類一樣的意識或理解能力。
“大語言模型”這一名稱中的“大”字,既體現了模型訓練時所依賴的龐大數據集,也反映了模型本身龐大的參數規模。這類模型通常擁有數百億甚至數千億個參數(parameter)。這些參數是神經網絡中的可調整權重,在訓練過程中不斷被優化,以預測文本序列中的下一個詞。下一單詞預測(next-word prediction)任務合理地利用了語言本身具有順序這一特性來訓練模型,使得模型能夠理解文本中的上下文、結構和各種關系。
由于大語言模型能夠生成文本,因此它們通常也被歸類為生成式人工智能(generative artificial intelligence,簡稱 generative AI 或GenAI)。
如今大多數大語言模型是使用 PyTorch 深度學習庫實現的,針對特定領域或任務量身打造的大語言模型在性能上往往優于 ChatGPT 等為多種應用場景而設計的通用大語言模型。這樣的例子包括專用于金融領域的模型和專用于醫學問答的大語言模型。
使用定制的大語言模型具有多個優勢,尤其是在數據隱私方面。例如,出于機密性考慮,公司可能不愿將敏感數據共享給像 OpenAI 這樣的第三方大語言模型提供商。此外,如果開發較小的定制的大語言模型,那么就可以將其直接部署到客戶設備(筆記本電腦和智能手機)上。這也是蘋果公司等企業正在探索的方向。本地部署可以顯著減少延遲并降低與服務器相關的成本。此外,定制的大語言模型使開發者擁有完全的自主權,能夠根據需要控制模型的更新和修改。
大語言模型的構建通常包括預訓練(pre-training)和微調(fine-tuning)兩個階段。“預訓練”中的“預”表明它是模型訓練的初始階段,此時模型會在大規模、多樣化的數據集上進行訓練,以形成全面的語言理解能力。以預訓練模型為基礎,微調階段會在規模較小的特定任務或領域數據集上對模型進行針對性訓練,以進一步提升其特定能力
圖片
預訓練是大語言模型的第一個訓練階段,預訓練后的大語言模型通常稱為基礎模型(foundation model)。一個典型例子是 ChatGPT的前身——GPT-3,這個模型能夠完成文本補全任務,即根據用戶的前半句話將句子補全。此外,它還展現了有限的少樣本學習能力,這意味著它可以在沒有大量訓練數據的情況下,基于少量示例來學習并執行新任務。
微調大語言模型最流行的兩種方法是指令微調和分類任務微調。在指令微調(instruction fine-tuning)中,標注數據集由“指令?答案”對(比如翻譯任務中的“原文?正確翻譯文本”)組成。在分類任務微調(classification fine-tuning)中,標注數據集由文本及其類別標簽(比如已被標記為“垃圾郵件”或“非垃圾郵件”的電子郵件文本)組成。
Transformer 架構介紹
該架構是在谷歌于 2017年發表的論文“Attention Is All You Need”中首次提出的。
Transformer 最初是為機器翻譯任務(比如將英文翻譯成德語和法語)開發的。
圖片
Transformer 架構由兩個子模塊構成:編碼器和解碼器。編碼器(encoder)模塊負責處理輸入文本,將其編碼為一系列數值表示或向量,以捕捉輸入的上下文信息。然后,解碼器(decoder)模塊接收這些編碼向量,并據此生成輸出文本。以翻譯任務為例,編碼器將源語言的文本編碼成向量,解碼器則解碼這些向量以生成目標語言的文本。編碼器和解碼器都是由多層組成,這些層通過自注意力機制連接。
Transformer 和大語言模型的一大關鍵組件是自注意力機制(self-attention mechanism),它允許模型衡量序列中不同單詞或詞元之間的相對重要性。這一機制使得模型能夠捕捉到輸入數據中長距離的依賴和上下文關系,從而提升其生成連貫且上下文相關的輸出的能力。
BERT 基于原始 Transformer的編碼器模塊構建,其訓練方法與GPT 不同。GPT 主要用于生成任務,而 BERT 及其變體專注于掩碼預測(masked word prediction),即預測給定句子中被掩碼的詞。
圖片
GPT 則側重于原始 Transformer 架構的解碼器部分,主要用于處理生成文本的任務,包括機器翻譯、文本摘要、小說寫作、代碼編寫等。
零樣本學習(zero-shot learning)是指在沒有任何特定示例的情況下,泛化到從未見過的任務,而少樣本學習(few-shot learning)是指從用戶提供的少量示例中進行學習。
Token、預訓練與微調
并非所有的 Transformer 都是大語言模型,因為Transformer 也可用于計算機視覺領域。同樣,并非所有的大語言模型都基于 Transformer 架構,因為還存在基于循環和卷積架構的大語言模型。
詞元(token)是模型讀取文本的基本單位。數據集中的詞元數量大致等同于文本中的單詞和標點符號的數量。
分詞,即將文本轉換為詞元的過程。
預訓練 GPT-3的云計算費用成本估計高達 460 萬美元。該模型僅在 3000 億個詞元上進行了訓練。
好消息是,許多預訓練的大語言模型是開源模型,可以作為通用工具,用于寫作、摘要和編輯那些未包含在訓練數據中的文本。同時,這些大語言模型可以使用相對較小的數據集對特定任務進行微調,這不僅減少了模型所需的計算資源,還提升了它們在特定任務上的性能。
下一單詞預測任務采用的是自監督學習(self-supervised learning)模式,這是一種自我標記的方法。這意味著我們不需要專門為訓練數據收集標簽,而是可以利用數據本身的結構。也就是說,我們可以使用句子或文檔中的下一個詞作為模型的預測標簽。由于該任務允許“動態”創建標簽,因此我們可以利用大量的無標注文本數據集來訓練大語言模型。
與原始 Transformer 架構相比,GPT的通用架構更為簡潔。
圖片
它只包含解碼器部分,并不包含編碼器。由于像 GPT 這樣的解碼器模型是通過逐詞預測生成文本,因此它們被認為是一種自回歸模型(autoregressive model)。自回歸模型將之前的輸出作為未來預測的輸入。
GPT-3 總共有 96 層 Transformer 和 1750 億個參數
雖然原始的 Transformer 模型(包含編碼器模塊和解碼器模塊)專門為語言翻譯而設計,但 GPT 模型采用了更大且更簡單的純解碼器架構,旨在預測下一個詞,并且它們也能執行翻譯任務。
模型能夠完成未經明確訓練的任務的能力稱為涌現(emergence)。這種能力并非模型在訓練期間被明確教授所得,而是其廣泛接觸大量多語言數據和各種上下文的自然結果。
圖片
最后總結:
現代大語言模型的訓練主要包含兩個步驟。
首先,在海量的無標注文本上進行預訓練,將預測的句子中的下一個詞作為“標簽”。
隨后,在更小規模且經過標注的目標數據集上進行微調,以遵循指令和執行分類任務。
原始的 Transformer 架構由兩部分組成:一個是用于解析文本的編碼器,另一個是用于生成文本的解碼器。
當一個大語言模型完成預訓練后,該模型便能作為基礎模型,通過高效的微調來適應各類下游任務。
在自定義數據集上進行微調的大語言模型能夠在特定任務上超越通用的大語言模型。