核心概念
本文介紹了兩個從零開始訓練的德語語言模型 LLäMmlein 120M 和 1B,並探討其在各種基準測試中的表現,強調專用於特定語言的語言模型開發的重要性。
導論
近年來,大型語言模型(LLM)的成功為許多領域和語言帶來了進步。然而,大部分進步都集中在英語上,導致包括德語在內的其他語言存在顯著差距。與英語相比,大型研究實驗室和公司積極競爭並投入巨資,幾乎每週都會根據新數據集從頭開始訓練和調整新模型,而德語 LLM 領域似乎落後了。先前,一些 BERT 或更小的 GPT 模型已經在德語語料庫中進行了預訓練。然而,根據最近的發展,LLM 變得更大,並且要麼是經過多語言訓練,包括德語,要麼是在英語數據上進行訓練,然後針對德語進行微調,或者根本沒有關於(德語)預訓練數據的可用信息。這使得非英語(即德語)語言建模在這些模型中更像是「事後才想到的」,這可能導致非英語語言的性能出現各種下降。這些問題甚至在最新的 Llama 3 指令模型中也能注意到,儘管之前的對話是用德語進行的,但它經常會回到用英語回答。這些問題凸顯了專門針對德語的研究和模型開發的迫切需求,以識別和解決當前德語 LLM 領域的局限性。具體而言,在用於訓練現有模型的德語數據以及這些數據如何促進其能力方面,顯著缺乏透明度。為了彌合這一差距,我們(計劃)開源我們的整個訓練流程,包括數據、代碼和構件,以便全面了解訓練過程,促進可重複性,並鼓勵研究界內合作進行分析。
方法
從頭開始預訓練和評估德語 LLM 需要多個步驟,包括數據集預處理、標記器訓練、模型預訓練、使用德語下游任務和翻譯後的基於提示的少樣本問答任務進行模型評估,以及下游適配。
數據集
RedPajama V2 是一個開放的多語言數據集,旨在訓練大型語言模型。它包含從 2014 年到 2023 年間收集的 84 個 CommonCrawl 快照中的超過 1000 億個文本文檔,涵蓋多種語言,包括英語、德語、法語、意大利語和西班牙語。該數據集最初使用 CCNet 流程進行預處理,產生了大約 300 億個總體文檔,並通過質量信號和重複指標進一步豐富。使用困惑度分數,RedPajama 數據集被分為三個質量類別:頭部、中部和尾部。
標記器訓練
由於缺乏現有的詞彙量為 32,000 的德語標記器,我們選擇訓練自己的標記器。這一決定確保了與德語、TinyLlama 設置和數據集更好地保持一致,同時也增強了整個模型從頭開始訓練過程中的透明度和可追溯性。使用 TinyLlama 中概述的設置,我們訓練了一個具有 32,000 個詞彙的字節對編碼 (BPE) 標記器,該標記器專為德語量身定制。
模型預訓練框架
雖然有幾個現有的資源和存儲庫用於從頭開始訓練大型語言模型 (LLM),但我們選擇 TinyLlama GitHub 存儲庫作為我們項目的支柱。它之前被用於從頭開始預訓練 1B 英語 TinyLlama 模型,並建立在 lit-gpt 存儲庫的基礎上,該存儲庫提供了強大的工具,用於使用 PyTorch Lightning 準備數據、微調、預訓練和部署 LLM。它包括所有相關功能,例如使用 FSDP 進行多 GPU 和多節點分佈式訓練以及閃存注意力 2。此外,它還提供了將模型轉換為 HuggingFace 格式的腳本,以便於使用和分發。
模型評估
為了更好地理解訓練過程,我們監控進度並定期評估中間檢查點在六個具有代表性的 SuperGLEBer 任務上的表現。這些任務經過選擇,包括不同的任務類型,以評估我們模型的性能,並將在下文中討論:
分類:
自然語言推理 (NLI):預測一個假設是否被一個前提所包含、中立或矛盾。
事實核查評論:對文本是否包含可核查事實的主張進行二元分類。
DB 方面:對輸入句子中的類別和極性進行多標籤分類。
WebCAGe:預測一個詞的意義在兩個語境中是否匹配(真/假)。
序列標記
EuroParl:歐洲議會數據的標記分類。
語句相似度
Pawsx:通過生成有意義的向量表示來識別語句對是否是釋義。
結果
我們將結果與在 SuperGLEBer 基准測試上評估的所有其他模型的結果進行了比較,特別關注每個任務中表現最佳的模型。
雖然 LLäMmlein 1B 可能無法在整體上獲得最佳結果,但它在表格中列出的每個任務中始終排名前三,這表明與其他模型相比,它的可靠性和穩定性,而其他模型可能會表現出顯著的性能差異。有趣的是,在檢查點 1,420,000 處的 NLI 中有一個例外,與之前的檢查點相比,性能下降了近 40%。但是,性能會在下一個檢查點立即恢復。我們目前正在嘗試調查造成這種異常的原因。與 120M 模型類似,LLäMmlein 1B 在句子相似性任務中明顯表現不佳。但是,它在 EuroParl 任務中表現出色,創造了 0.732 的新最高分。
結論
我們從頭開始創建了兩個僅限德語的解碼器模型,LLäMmlein 120M 和 1B。為此,我們需要對訓練數據集進行各種步驟的預處理,擬合標記器以滿足模型和訓練的特定要求,以及評估模型。
我們密切監控整個訓練過程,評估多個中間檢查點以分析訓練動態。我們的實驗表明,模型以不同的速度學習不同的任務。一些任務隨著時間的推移表現出明顯的線性相關改進,而另一些任務則在早期就達到了穩定水平。
與 SuperGLEBer 基准測試上的最新技術相比,我們的模型始終與可比規模的模型相匹配或超越。特別是,LLäMmlein 1B 的性能優於多語言 Llama 3.2 1B,這突出了從頭開始訓練的單語模型在特定語言任務中的優勢。有趣的是,我們的 1B 模型與我們評估的較大模型之間大多沒有觀察到顯著差異,這表明了它的有效性。但是,對於生成式問答,雖然我們的模型的性能與其他參數相當的模型相似,但我們觀察到與較大模型相比存在顯著差異,這表明較大參數計數對於生成任務具有明顯優勢,而較小模型在這方面存在局限性。
未來方向
展望未來,未來的工作有幾個方向:首先,可以使用我們保存和發布的各種中間檢查點,對訓練過程進行進一步分析。這為更精細地評估訓練動態提供了可能性。此外,在我們對指令微調進行初步實驗後,我們想指出需要一個高質量的原生德語指令數據集,並計劃探索特定領域微調的潛力。領域適應及其評估可以為了解模型的能力和局限性提供寶貴的見解。
統計資料
RedPajama V2 數據集包含超過 1000 億個文本文檔。
RedPajama V2 數據集使用 CCNet 流程進行預處理,產生了大約 300 億個總體文檔。
LLäMmlein 模型的詞彙量為 32,000。
LLäMmlein 120M 模型在 32 個 L40 GPU 上進行訓練,分佈在 16 個節點上。
LLäMmlein 120M 模型的總預訓練標記數為 954,485,440,512。
LLäMmlein 1B 模型在 64 個 A100 GPU 上進行訓練,分佈在 8 個節點上。
LLäMmlein 1B 模型的總訓練標記數為 3T(3,000,001,101,824)個德語訓練標記。