LLM Small Model TinyLlama 是乙個開源的小型語言模型

Mondo 科技 更新 2024-02-01

介紹 Tinyllama,乙個開源的小型語言模型。 發布所有相關資訊,包括預訓練、所有中間模型檢查點以及資料處理步驟的詳細資訊。 憑藉其緊湊的架構和令人滿意的效能,Tinyllama 支援移動裝置上的終端使用者應用程式,並作為測試與語言模型相關的各種創新想法的輕量級平台。 **借鑑從這個開放式實時階段專案中獲得的豐富經驗,目的是開發 Tinyllama 的改進版本,使其具有各種能力,以提高其在各種任務中的效能和多功能性。 **進一步的調查結果和詳細結果將記錄在今後的報告中。

在大規模文字語料庫上預先訓練的大型語言模型 (LLM) 已在各種任務中證明了它們的有效性。 一些實驗研究已經證明了 LLM 中的湧現能力,這些能力可能僅在具有足夠大參數量的模型中才明顯,例如少樣本提示和邏輯鏈推理。 其他研究則側重於對LLM的縮放行為進行建模。 Hoffmann 等人(2022 年)表明,為了訓練計算最優模型,模型大小和訓練資料量應以相同的速度增加。 這為選擇模型大小和分配具有固定計算預算的訓練資料量提供了指導。

儘管這些努力有利於大型模型,但在較大的資料集上訓練較小模型的潛力仍未得到探索。 Touvron et al. (2023a) 強調了推理預算的重要性,而不是僅僅關注訓練計算優化的語言模型。 針對特定推理約束的推理優化語言模型旨在實現最佳效能。 這是通過使用比縮放定律建議的更多令牌來訓練模型來實現的。 Touvron 等人(2023a)證明,在更多資料上訓練的較小模型可以匹配甚至優於較大的模型。 此外,Thaddée (2023) 認為,當較小的模型訓練較長時間時,現有的縮放定律可能不準確。

受到這些新發現的啟發,本文著眼於探索代幣數量何時遠遠超過縮放定律 ()。scaling law) 在較小模型表現良好時建議。具體來說,使用大約 3 萬億個代幣,乙個使用者擁有 11b引數Transformer解碼器模型。 這是第一次嘗試使用如此大量的資料來訓練具有 1b 引數的模型。 遵循與 Llama 2 相同的架構和分詞器,該模型被命名為 Tinylama。

以下是預訓練 tinyllama 的方法。 首先,詳細介紹了預訓練的語料庫和資料抽樣方法。 接下來,詳細闡述了預訓練過程中使用的模型架構和超引數。

預訓練資料

主要目標是使預訓練過程高效且可重複。 自然語言資料和資料的混合用於預訓練tinyllama,其中自然語言資料用於slimpajama,資料用於starcoderdata。 Llama Tokenizer 用於處理資料。

SlimPajama:乙個用於訓練語言模型的大型開源語料庫,基於 RedPajama。 原始的 RedPajama 語料庫是一項開源研究工作,旨在複製超過 1 個2 萬億個 LLAMA 預訓練資料代幣。 Slimpajama 是通過清潔和重複資料刪除從 redpajama 衍生而來的。 StarCoderData:收集此資料集是為了訓練 StarCoder,這是乙個強大的開源大型語言模型。 它包含 86 種程式語言的約 2500 億個代幣。 除了 **,它還包括 github 問題和涉及自然語言的文字 - **對。 為了避免資料重複,刪除了 SlimPajama 中的 GitHub 子集,並且僅從 StarCoderData 中取樣了 ** 資料。 將這兩個語料庫組合在一起後,總共有近似值950 億個代幣用於預訓練。Tinyllama 在這些標記物上接受了大約 3 次訓練時代正如 Muennighoff 等人(2023 年)所觀察到的那樣,與使用唯一資料相比,在相同資料上訓練多達 4 個 epoch 的效能幾乎沒有下降。 在訓練過程中,對自然語言資料進行取樣以實現:自然語言資料和 ** 資料之間的比例為 7:3

建築

表 1:模型架構詳細資訊。

它採用了與 Llama 2 類似的模型架構。 所使用的 Transformer 架構的具體細節如下:

位置嵌入:使用繩索(旋轉位置嵌入將位置資訊注入模型。 ROPE是最近被許多主流大語言模型廣泛採用的方法,如PALM、LLAMA、QWEN等。 rmsnorm:在預歸一化中,輸入在每個 Transformer 子層之前歸一化,以實現更穩定的訓練。 此外,RMSNORM作為歸一化技術,可以提高訓練效率。 Swiglu:它沒有使用傳統的 Relu 非線性,而是遵循 Llama 2,將 Swish 和門控線性單元(稱為 Swiglu)組合在一起,作為 Tinyllama 中的啟用函式。 分組查詢注意力:為了減少記憶體頻寬開銷並加速推理,在模型中使用了分組查詢注意力。 有 32 個查詢注意頭,並使用 4 個鍵值注意頭組。 使用此技巧,模型可以在多個標頭之間共享鍵和值表示形式,而不會損失太多效能。 速度優化

完全分段資料並行性 (FSDP):在訓練期間,該庫整合了 FSDP1,以有效利用多 GPU 和多節點設定。 這種整合對於跨多個計算節點擴充套件訓練過程至關重要,從而顯著提高了訓練速度和效率。 Flash Attention:另乙個關鍵改進是整合了 Flash Attention 2,這是一種優化的注意力機制。 該倉庫還提供收斂層歸一化、收斂交叉熵損失和收斂旋轉位置嵌入,它們在提高計算吞吐量方面發揮著關鍵作用。 Xformers:將 Xformers 倉庫中的融合 Swiglu 模組替換為原有的 Swiglu 模組,進一步提公升了 ** 庫的效率。 借助這些功能,可以減少記憶體占用,並使 11 億引數模型適合 40GB GPU RAM。 效能分析及與其他機型的比較

這些元素的組合將每個 A100-40G GPU 的訓練吞吐量提高到每秒 24,000 個令牌。 與其他模型(如 pythia-10 億和 mpt-13 億)相比,該庫表現出卓越的訓練速度。 例如,Tinyllama-11 億引數模型只需 3,456 個 A100 GPU 小時即可獲得 300 億個標記,而 Pythia 需要 4,830 小時,MPT 需要 7,920 小時。 這顯示了優化的有效性,以及在大規模模型訓練中節省大量時間和資源的潛力。

圖 1:庫與 Pythia 和 MPT 的訓練速度比較。

在 lit-gpt3 上構建框架。 在LLAMA 2之後,在預訓練階段採用了自動回歸語言建模目標。 與 Llama 2 的設定一致,使用 ADAMW 優化器。 此外,使用余弦學習率計畫。 使用 2,000 個步驟來促進優化學習。 將批處理大小設定為 2,000,000 個令牌。 將權重衰減設定為 01、使用10 梯度剪裁閾值來調整梯度值。 Tinyllama 在專案中接受了 16 個 A100-40G GPU 的預訓練。

Tinyllama 的效能優於現有類似規模的開源語言模型。 具體來說,Tinyllama 在各種下游任務中的表現優於 OP-13B 和 Pythia 14B。 Tinyllama 是開源的,旨在提高語言模型研究人員的可訪問性。

Tinyllama 在各種常識推理和解決問題的任務上進行了評估,並與幾個具有相似模型引數的現有開源語言模型進行了比較。

基線模型

主要關注的是具有約 10 億個引數的解碼器架構的語言模型。 具體來說,將 Tinyllama 與 OPT-13B、Pythia-10 億和 Pythia-14 億進行比較。

常識推理任務

要了解 Tinylama 的常識推理能力,請考慮以下任務:Hellaswag、OpenBookQA、WinoGrande、Arc-Easy 和 Arc-Challenge、BoolQ 和 Piqa。 採用語言模型評估工具來評估這些模型。 按照以前的實踐,這些模型以零樣本方式在這些任務上進行了評估。 結果如表2所示。 值得注意的是,tinyllama 在許多任務上的表現優於基準模型,並取得了最高的平均分。

表 2:常識推理任務的零樣本表現。

訓練期間的表現演變

它在 Common Sense Inference 基準測試中的準確性是在 Tinyllama 的預訓練過程中跟蹤的,如圖 2 所示。 總體而言,隨著計算資源的增加,Tinyllama 的效能有所提高,在大多數基準測試中都優於 Pythia 的 -14 億精度。

圖 2:預訓練期間常識推理基準效能的演變。 Pythia-1 也包含在圖中4b的效能用於比較。

問題解決評估

Tinyllama 解決問題的能力也使用 Instructeval 基準進行了評估。 基準測試包括以下任務:

大規模多工語言理解 (MMLU):此任務用於衡量模型對世界的了解和在各種主題上解決問題的能力。 我們在 5 個樣本的設定中評估了這些模型。 BIG-Bench Hard (BBH):這是 BIG-Bench 基準測試(Srivast**a 等人,2022 年)中 23 個困難任務的子集,旨在衡量語言模型遵循複雜指令的能力。 這些模型在 3 個樣本的設定中進行評估。 段落離散推理(下降):此閱讀理解任務用於衡量模型的數學推理能力。 我們在 3 樣本設定中評估了這些模型。 humaneval:此任務用於衡量模型的程式設計能力。 這些模型在零樣本的基礎上進行評估。 評估結果如表3所示。 據觀察,與現有模型相比,Tinyllama 表現出更好的解決問題的能力。

表 3:Instructeval 基準測試中解決問題任務的效能。

*標題:Tinyllama:開源小型語言模型* 鏈結:

相關問題答案

    LLM 大型模型可以用作在 Google Colab 上執行的 MoE

    探討了基於消費級硬體和記憶體受限 GPU 加速基於 MOE 的語言模型的策略。提出了一種以MOE為中心的解除安裝方法,並探討了混合量化對混亂和語言理解任務表現的影響。對所提出的策略進行了評估,結果表明,與現有方法相比,結果是 顯著提高了消費級硬體的構建速度,包括免費的 Google Colab 該方...

    LLM大語言模型 AskBot大模型的深度分析與應用

    在當今的人工智慧領域,大型語言模型 LLMs 已成為乙個熱門話題。通過深度學習和自然語言處理技術,LLM能夠理解和生成更自然 更準確的文字內容。作為最好的模型之一,AskBot 模型將 LLM 的應用推向了乙個新的高度。.LLM大型語言模型概述。LLM是一種基於深度學習的自然語言處理模型,其核心是在...

    大型語言模型 (LLM) 使用指令進行調整,以提高 top-k 推薦系統的效能

    q 這個 測試 有什麼問題?a 本文旨在解決如何在推薦系統中使用大型語言模型 LLMS 作為排名器的問題,以提高top k推薦器系統的效能。具體來說,提出了乙個名為 Reconk rcer 的框架來優化 LLM,以通過指令調優技術更好地適應推薦的任務。對 Recranker 框架的主要貢獻包括 該文...

    LLM 大型模型 GPT 4 的全新演繹

    展示新的 GPT API 引入了新的漏洞。這些漏洞違反了 GPT 中的安全措施,導致 GPT 協助使用者發出有害請求。此外,這些漏洞可用於自動生成有針對性的和通用的虛假資訊 洩露私人資料 生成惡意 以及與 GPT 整合的攻擊服務。實驗中使用的資料集可供採集。這些結果強調了仔細測試新 API 的必要性...

    Microsoft小模型以27億引數擊敗大模型,手機可以執行

    由機器之心報告。編輯 杜薇 小舟 在小打大技術的發展路線上,Microsoft一直在前行。上個月,Microsoft首席執行官納德拉在 Ignite 大會上宣布,他自主研發的小型模型 phi 將完全開源,在常識推理 語言理解和邏輯推理方面的效能將得到顯著提公升。今天,Microsoft公布了有關 P...