大型語言模型訓練淺析

大型語言模型訓練淺析配圖

2022年底,大型語言模型(LLMs)在網際網路上掀起了一場風暴,因為OpenAI的ChatGPT在推出後僅5天就達到了100萬使用者。ChatGPT的能力和廣泛的應用可以歸功於GPT-3語言模型擁有的1750億個引數。

雖然使用像ChatGPT這樣的終端產品語言模型很容易,但開發一個大型語言模型需要大量的電腦科學知識、時間和資源。我們建立這篇文章是為了幫助大家對大型語言模型訓練有基礎的瞭解:

  1. 大型語言模型的定義
  2. 大型語言模型的例子
  3. 大型語言模型的架構
  4. 大型語言模型的訓練過程

以便他們能夠有效地利用人工智慧和機器學習。

什麼是大型語言模型?

大型語言模型是一種機器學習模型,它在大量的文字資料上進行訓練,為各種自然語言處理(NLP)任務產生輸出,如文字生成、問題回答和機器翻譯。

大型語言模型通常基於深度學習神經網路,如Transformer架構,並在大量的文字資料上進行訓練,通常涉及數十億字。較大的模型,如谷歌的BERT模型,是用來自各種資料來源的大型資料集進行訓練的,這使得它們能夠為許多工產生輸出。

如果你是大型語言模型的新手,請檢視我們的 “大型語言模型完整指南” 一文。

按引數大小排列的頂級大型語言模型

我們在下面的表格中按引數大小彙編了7個最大的大型語言模型。

模型 開發者 引數大小
WuDao 2.0 Beijing Academy of Artificial Intelligence 1.75 trillion
MT-NLG Nvidia and Microsoft 530 billion
Bloom Hugging Face and BigScience 176 billion
GPT-3 OpenAI 175 billion
LaMDA Google 137 billion
ESMFold Meta AI 15 billion
Gato DeepMind 1.18 billion

請檢視我們關於大型語言模型例項的文章,瞭解更多模型的深入資訊。

大型語言模型的架構

大型語言模型的架構,如OpenAI的GPT-3,是基於一種叫做Transformer架構的深度學習。它由以下主要部件組成(見圖1):

Transformer架構 

圖1:Transformer架構

1. 輸入嵌入

輸入序列首先被轉換為密集的向量表示,稱為嵌入,它捕捉到了輸入中單詞之間的關係。

2. 多頭自我關注

變換器塊結構的核心部分是多頭自我關注機制,它允許模型關注輸入序列的不同部分以捕捉其關係和依賴性。

3. 前饋網路

在自我注意機制之後,輸出被送入前饋神經網路,該網路執行非線性轉換以產生新的表示。

4. 歸一化和殘差連線

為了穩定訓練過程,每一層的輸出都被歸一化,並加入一個殘差連線,使輸入直接傳遞給輸出,讓模型學習輸入的哪些部分是最重要的。

這些元件被重複多次,形成一個深度神經網路,它可以處理長序列的文字,併為各種語言任務產生高質量的輸出,如文字生成、問題回答和翻譯。

開發人員繼續通過實施新技術來開發大型語言模型,以:

  • 簡化模型(減少模型大小或訓練所需的記憶體)、
  • 提高效能、
  • 降低價格、
  • 減少模型訓練時間。

訓練大型語言模型

訓練大型語言模型有四個步驟:

1. 資料收集和預處理

第一步是收集訓練資料集,也就是訓練LLM的資源。資料可以來自不同的來源,如書籍、網站、文章和公開資料集。

尋找資料集的流行公共來源有:

  • Kaggle
  • Google Dataset Search
  • Hugging Face
  • Data.gov
  • Wikipedia database

然後需要對資料進行清理,併為訓練做準備。這可能涉及到將資料集轉換為小寫字母,刪除停頓詞,並將文字標記為構成文字的標記序列。

2. 模型選擇和配置

大型模型,如谷歌的BERT和OpenAI的GPT-3都使用了轉化器深度學習架構,這是近年來複雜的NLP應用的共同選擇。模型的一些關鍵元素,如:

  • 轉換器塊的層數
  • 注意力頭的數量
  • 損失函式
  • 超引數

需要在配置轉換器神經網路時指定。配置可以取決於所需的用例和訓練資料。模型的配置直接影響到模型的訓練時間。

3. 模型訓練

模型在預處理的文字資料上使用監督學習進行訓練。在訓練過程中,模型被呈現出一連串的詞,並被訓練為預測該序列中的下一個詞。該模型根據其預測和實際的下一個詞之間的差異來調整其權重。這個過程要重複數百萬次,直到模型達到令人滿意的效能水平。

由於模型和資料的規模都很大,因此需要巨大的計算能力來訓練模型。為了減少訓練時間,我們使用了一種叫做模型並行的技術。模型並行使一個大型模型的不同部分分散在多個GPU上,允許用AI晶片以分散式方式訓練模型。

通過將模型分為較小的部分,每個部分都可以被並行訓練,與在單個GPU或處理器上訓練整個模型相比,訓練過程更快。這導致更快的收斂和更好的整體效能,使得訓練比以前更大的語言模型成為可能。常見的模型並行化型別包括:

  • 資料並行
  • 序列並行
  • 管線並行
  • 張量並行

從頭開始訓練一個大型的語言模型需要大量的投資,一個更經濟的選擇是對現有的語言模型進行微調,使其適合你的具體使用情況。據估計,GPT-3的單次訓練費用約為500萬美元。

4. 評估和微調

訓練結束後,模型將在一個未被用作訓練資料集的測試資料集上進行評估,以衡量模型的效能。根據評估結果,該模型可能需要通過調整其超引數、改變結構或在更多的資料上進行訓練來提高其效能,進行一些微調。

為特定用例訓練LLM

LLM的訓練由兩部分組成:預訓練和特定任務訓練。預訓練是訓練的一部分,使模型能夠學習語言中的一般規則和依賴關係,這需要大量的資料、計算能力和時間來完成。論文中討論的大型語言模型需要配備幾個人工智慧晶片的超級計算機系統(例如,英偉達DGX A100起價199,999美元)。一旦加上維護和電力成本,大型語言模型的預訓練就是一筆數百萬數量級的投資。

為了讓企業更容易獲得大型語言模型,LLM開發人員正在為希望利用語言模型的企業提供服務。英偉達的NeMO就是這些服務的一個例子,它提供預訓練的LLM,用於微調和特定任務訓練,以適應特定的使用情況。特定任務訓練為模型增加了一個額外的層,需要更少的資料、功率和時間來進行訓練;使大型模型能夠為企業所用。新的特定任務層是通過few-shot learning來訓練的,其目的是用較少的訓練資料獲得準確的輸出。

由於該模型已經經過預訓練,並且熟悉語言,因此,少數幾次學習是一種可行的方法,可以將特定領域的單詞和短語教給該模型。

下面的視訊介紹了NVIDIA的NeMO LLM服務。

  1. Wodecki, Ben (July 22, 2022). “7 language models you need to know“. AI Business. Retrieved February 3, 2023.
  2. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., & Polosukhin, I. (2017). Attention is All you NeedNeural Information Processing Systems30, 5998–6008. https://arxiv.org/pdf/1706.03762v5

評論留言