本文最初發布于 2024 年 8 月 21 日,但已根據當前數據進行了修訂。
最近,NVIDIA 和 Mistral AI 推出了 Mistral NeMo 12B ,這是一款先進的大語言模型 (LLM)。Mistral NeMo 12B 在 各種基準測試 中的表現始終優于類似大小的模型。
我們宣布推出 Mistral-NeMo-Minitron 8B,這是同類產品中最先進的開放訪問模型之一。該模型在九項熱門基準測試中始終提供領先的準確性。Mistral-NeMo-Minitron 8B 基礎模型是通過對 Mistral NeMo 12B 基礎模型 進行寬度剪枝獲得的,然后是使用知識蒸餾進行的輕量化重新訓練過程。這是 NVIDIA 最初在論文《 通過剪枝和知識蒸餾實現緊湊語言模型 》中提出的成功方法。NVIDIA Minitron 8B 和 4B 以及 Llama-3.1-Minitron 4B 模型不斷證明了這一點。

在圖 1 中,我們使用 Nemotron-4-340B-Instruct 和 Nemotron-4-340B-Reward 模型為比對生成合成數據。
? | MMLU 5-shot | GMS8k 0-shot | GPQA 0-shot | HumanEval 0-shot | MBPP 0-shot | IFEval | MTBench (GPT4-Turbo) | BFCL v2 Live | |
Mistral-NeMo-Minitron 8B Instruct | 70.4% | 87.1 | 31.5% | 71.3% | 72.5% | 84.4% | 7.86 | 67.6 | |
Llama-3.1-8B-Instruct | 69.4% | 83.9% | 30.4 | 72.6% | 72.8 | 79.7 | 7.78 | 44.3% | |
Mistral-NeMo-12B-Instruct | 68.4% | 79.8 | 28.6% | 68.3% | 66.7 | 64.7 | 8.10 | 47.9 |
? | 訓練令牌 | Wino-Grande 5-shot | ARC Challenge 25-shot |
MMLU 5-shot | Hella Swag 10-shot |
GSM8K 5-shot | TruthfulQA 0-shot | XLSum en (20%) 3-shot |
MBPP 0-shot |
Human Eval 0-shot |
|
Llama-3.1-8B | 15T | 77.27% | 57.94 | 65.28 | 81.80 | 48.60 | 45.06 | 30.05 | 42.27 | 24.76 | |
Gemma-7B | 6T | 78 | 61 | 64 | 82 | 50 | 45 | 17 | 39 | 32 | |
Mistral-NeMo-Minitron-8B | 380B | 80.35 | 64.42 | 69.51% | 83.03 | 58.45 | 47.56% | 31.94 | 43.77 | 36.22 | |
Mistral-NeMo-12B | 不適用 | 82.24 | 65.10 | 68.99% | 85.16 | 56.41 | 49.79 | 33.43 | 42.63 | 23.78 |
模型剪枝和蒸概述?
模型剪枝 是縮小模型并使其更精簡的過程,方法是減少圖層( 深度剪枝 )或減少神經元、注意力頭和嵌入通道( 寬度剪枝 )。剪枝通常伴隨一些重新訓練,以恢復準確性。
模型蒸 是一種技術,用于將知識從復雜的大型模型 (通常稱為 教師模型 ) 轉移到更小、更簡單的 學生模型 。其目標是創建更高效的模型,該模型保留了原始大型模型的大部分預測能力,同時運行速度更快,資源密集度更低。在本文中,我們將蒸作為剪枝后的輕量化重新訓練過程,其數據集比從頭開始訓練模型時使用的數據集要小得多。
迭代剪枝和蒸 是一種從單個預訓練模型開始,可以獲得多個逐漸較小的模型的方法。例如,可以對 15B 模型進行剪枝和蒸以獲得 8B 模型,而這反過來又可以作為剪枝和蒸 4B 模型的起點,以此類推。
模型剪枝與通過蒸餾進行輕度重新訓練相結合,是一種高效且經濟的方法,用于訓練模型系列。對于每個額外的模型,只需使用 100-400B 個令牌即可進行重新訓練,與從零開始訓練相比,減少了 40 倍以上。因此,與從零開始訓練所有模型(12B、8B 和 4B)相比,訓練模型系列可節省高達 1.95 倍的計算成本。
從廣泛的削減研究中學習已總結為 結構化權重剪枝與知識蒸餾相結合 的 10 種最佳實踐。我們發現寬度剪枝始終優于深度剪枝,最重要的是,剪枝和蒸餾后的模型在質量方面優于從頭開始訓練的模型。
Mistral-NeMo-Minitron 8B?
按照最佳實踐,我們對 Mistral NeMo 12B 模型進行了寬度精簡,以獲得 8B 目標模型。本節詳細介紹了用于獲得 Mistral-NeMo-Minitron 8B 基礎模型的步驟和參數,以及其性能。
教師微調?
為了糾正訓練模型所用的原始數據集上的分布偏移,我們首先使用 127B 個令牌在數據集上微調了未剪枝的 Mistral NeMo 12B 模型。實驗表明,在不糾正分布偏移的情況下,教師在提煉數據集時提供了次優指導。
僅寬度的剪枝?
鑒于我們的目標是盡可能獲得最強的 8B 模型,我們繼續進行僅寬度的剪枝。我們沿著寬度軸剪枝了嵌入(hidden)和 MLP 中間維度,以壓縮 Mistral NeMo 12B。具體來說,我們使用基于激活的策略計算了每個注意力頭、嵌入通道和 MLP 隱藏維度的重要性分數。在重要性估計之后,我們:
- 將 MLP 中間維度從 14336 剪枝至 11520
- 將隱藏大小從 5120 剪枝為 4096
- 保留了注意力頭數和層數。
蒸參數?
我們利用峰值學習率 = 1e-4,最低學習率 = 4.5e-7,60 個步驟的線性熱身,余弦衰減時間表,以及使用 380B 令牌(與教師微調中使用的數據集相同)的全局批量大小 768,對模型進行了提煉。
Mistral-NeMo-Minitron-8B-Instruct?
我們應用了由兩階段指令微調和兩階段偏好優化組成的高級比對技術,從而打造出在指令跟隨、語言推理、函數調用和安全基準測試方面表現優異的先進指令模型。
對齊數據是使用?Nemotron-340B-Instruct?模型和?Nemotron-340B-Reward?模型合成生成的。模型對齊是使用?NVIDIA NeMo Aligner?完成的。
性能基準測試?
我們使用 NVIDIA TensorRT-LLM (用于優化 LLM 推理的開源工具包) 優化了 Mistral-NeMo-Minitron-8B-Base 模型、教師 Mistral-NeMo-12B 模型和 LLama-3.1-8B 模型。
圖 2 和 3 顯示了不同模型在 FP8 和 BF16 精度下,在不同用例中每秒吞吐量的請求,以批量大小為 32 時的輸入序列長度/輸出序列長度(ISL/OSL)組合表示,在一個 NVIDIA H100 80-GB GPU 上。
Llama-3.1-8B 模型速度最快,Mistral-NeMo-12B 的平均吞吐量約為 1.4 倍,其次是 Mistral-NeMo-Minitron-8B-Base,比 Mistral-NeMo-12B 改進了 1.2 倍。這主要是因為 Llama-3.1-8B 模型有 32 層,而 Mistral-NeMo-12B 有 40 層。
與 BF16 相比,FP8 中的部署還可將所有三個模型的性能提升約 1.4 倍。


結束語?
Mistral-NeMo-Minitron-8B 提供業界領先的準確性,并且始終優于最近推出的類似大小的最先進模型。Mistral-NeMo-Minitron-8B 是我們對 Mistral-NeMo-12B 模型進行蒸餾的首個工作,為 我們的結構化權重剪枝與知識蒸餾 最佳實踐提供了強有力的支持。
Mistral-NeMo-Minitron-8B-Instruct 還展示了我們的最先進的比對訓練方法。我們計劃進一步進行 蒸餾 、比對并獲得更小、更準確的模型。 NVIDIA NeMo 框架為生成式 AI 訓練提供了 深度剪枝 和蒸餾的支持。示例用法以 Notebook 的形式提供。
有關更多信息,請參閱以下資源:有關更多信息,請參閱以下資源:
- LLM 剪枝和蒸餾在實踐中的應用:Minitron 方法
- 通過剪枝和知識蒸餾構建緊湊語言模型
- /NVlabs/Minitron GitHub 庫
- /NVIDIA/NeMo-Aligner GitHub 庫
- Mistral-NeMo-Minitron-8B-Base 模型 on Hugging Face
- Mistral-NeMo-Minitron 8B-Instruct 模型 在 Hugging Face
- Mistral-NeMo-Minitron-8B-Instruct 模型 在 NVIDIA API 目錄中
致謝?
這項工作如果沒有 NVIDIA 許多人的貢獻是不可能實現的。 僅舉其中幾個例子:
基礎模型 :Sharath Turuvekere Sreenivas, Saurav Muralidharan, Raviraj Joshi, Marcin Chochowski, Sanjeev Satheesh, Jupinder Parmar, Pavlo Molchanov, Mostofa Patwary, Daniel Korzekwa, Ashwath Aithal, Mohammad Shoeybi, Bryan Catanzaro, 和 Jan Kautz
對齊 :Gerald Shen、Jiaqi Zeng、Ameya Sunil Mahabaleshwarkar、Zijia Chen、Hayley Ross、Brandon Rowlett、Oluwatobi Olabiyi、Shizhe Diao、Yoshi Suhara、Shengyang Sun、Zhilin Wang、Yi Dong、Zihan Liu、Rajarshi Roy、Wei Ping、Makesh Narsimhan Sreedhar、Shaona Ghosh、Somshubra Majumdar、Vahid Noroozi、Aleksander Ficek、Siddhartha Jain、Wasi Uddin Ahmad、Jocelyn Huang、Sean Narenthiran、Igor Gitman、Shubham Toshniwal、Ivan Moshkov、Evelina Bakhturina、Matvei Novikov、Fei Jia、Boris Ginsburg 和 Oleksii Kuchaiev
TensorRT-LLM :Bobby Chen, James Shen 和 Chenhan Yu。
Hugging Face 支持 :Ao Tang、Yoshi Suhara 和 Greg Heinrich。
?