騰訊混元又來開源,一出手就是最大MoE大模型

机器之心發表於2024-11-06

圖片

AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com

隨著人工智慧技術的快速發展,大型語言模型(LLMs)在自然語言處理、計算機視覺和科學任務等領域取得了顯著進展。然而,隨著模型規模的擴大,如何在保持高效能的同時最佳化資源消耗成為關鍵挑戰。為了應對這一挑戰,騰訊混元團隊率先採用混合專家(MoE)模型架構,最新發布的 Hunyuan-Large(Hunyuan-MoE-A52B)模型,是目前業界已經開源的基於 Transformer 的最大 MoE 模型,擁有 389B 總引數和 52B 啟用引數。

本次騰訊混元 - Large 共計開源三款模型:Hunyuan-A52B-Pretrain,Hunyuan-A52B-Instruct 和 Hunyuan-A52B-FP8,可支援企業及開發者精調、部署等不同場景的使用需求,可在 HuggingFace、Github 等技術社群直接下載,免費可商用。透過技術最佳化,騰訊混元 Large 適配開源框架的精調和部署,具有較強的實用性。騰訊雲 TI 平臺和高效能應用服務 HAI 也同步開放接入,為模型的精調、API 呼叫及私有化部署提供一站式服務。

圖片

  • 開源官網:https://llm.hunyuan.tencent.com/

  • github(開源模型工具包):https://github.com/Tencent/Hunyuan-Large

  • huggingface(模型下載):https://huggingface.co/tencent/Hunyuan-Large/tree/main

  • huggingface demo 地址:https://huggingface.co/spaces/tencent/Hunyuan-Large

  • 技術報告:https://arxiv.org/abs/2411.02265

Hunyuan-Large 整體模型效果

公開測評結果顯示,騰訊混元 Large 在 CMMLU、MMLU、CEval、MATH 等多學科綜合評測集以及中英文 NLP 任務、程式碼和數學等 9 大維度全面領先,超過 Llama3.1、Mixtral 等一流的開源大模型。

圖片

技術創新點

MoE (Mixture of Experts),也即混合專家模型,MoE 模型的每一層都包含多個並行的同構專家,一次 token 的前向計算只會啟用部分專家。MoE 模型的每一層會採用路由演算法,決定了 token 會被哪些專家處理。MoE 是一種稀疏的網路結構,具有比啟用總引數量同等大小稠密模型更優越的效能,而推理成本卻遠低於總引數量相同的稠密模型。

得益於 MoE (Mixture of Experts) 結構的優越性,混元 Large 可以在保證模型推理速度的同時,顯著提升模型的引數量進而提升模型效能。

1、路由和訓練策略

  • 共享專家路由策略

騰訊混元 Large 的專家層中,設定一個共享專家來捕獲所有 token 所需的共同知識,還設定了 16 個需要路由的專家,模型將每個 token 路由給其啟用得分最高的專家來動態學習特定領域的知識,並透過隨機補償的路由保障訓練穩定性。共享專家負責處理共享的通用能力和知識,特殊專家負責處理任務相關的特殊能力,動態啟用的專家,利用稀疏的神經網路來高效率的進行推理。

  • 回收路由策略

路由策略,即把 token 分發給 MoE 中各個專家的策略,是 MoE 模型中至關重要的部分。好的路由策略可以有效地啟用每個專家的能力,使得每個專家保持相對均衡的負載,同時提升模型的訓練穩定性和收斂速度。業界常用的路由策略是 Top-K 路由,也就是將各個 token 按照其和專家的啟用得分路由給各個專家。但是這種路由方式難以保障 token 在各個專家間平均分配,而那些超過專家負載的 token 則會被直接扔掉,不參與專家層的計算。這樣會導致部分處理 token 較少的專家訓練不穩定。

針對這一問題,騰訊混元 Large 在傳統 Top-K 路由的基礎上進一步提出了隨機補償的路由方式。

圖片

  • 專家特定學習率適配策略

在 Hunyuan-A52B 中,共享專家和路由專家在每個迭代裡面專家處理的 token 數有很大差異,這將導致每個專家實際的 batchsize 並不相同(共享專家的 batchsize 是其他專家的 16 倍),根據學習率與 Batch size 的縮放原則,為不同(共享 / 特殊)專家適配不同的最佳學習率,以提高模型的訓練效率。

圖片

  • 高質量的合成資料

大語言模型的成功與高質量的訓練資料密不可分。公開網頁資料通常質量參差不齊,高質量通常難以獲取;在天然文字語料庫的基礎上,騰訊混元團隊在天然文字語料庫的基礎上,利用混元內部系列大語言模型,構建大量的高質量、多樣性、高難度合成資料,並透過模型驅動的自動化方法評價、篩選和持續維護資料質量,形成一條完整資料獲取、篩選、最佳化、質檢和合成的自動化資料鏈路。

圖片

在數學領域,網頁資料中很難找到大量優質的思維鏈 (CoT) 資料。騰訊混元 Large 從網頁中挖掘構建大規模題庫,並利用它作為種子來合成數學問答,從而保證了多樣性;同時我們利用一致性模型和評價模型來維護資料的質量,從而得到大量優質且多樣的數學資料。透過加入數學合成資料顯著提高了模型的數學能力。

在程式碼領域中,自然程式碼很多質量較差,而且包含類似程式碼解釋的程式碼 - 文字對映的資料很稀缺。因此,騰訊混元 Large 使用大量天然程式碼庫中的程式碼片段作為種子,合成了大量包含豐富的文字 - 程式碼對映的高質量程式碼訓練資料,加入後大幅提升了模型的程式碼生成能力。

針對通用網頁中低資源、高教育價值的資料,騰訊混元 Large 使用合成的方式對資料做變換、增廣,構建了大量且多樣的、不同形式、不同風格、高質量的合成資料,提升了模型通用領域的效果。

2、長文能力最佳化

採用高效的超長文 Attention 訓練和退火策略。透過將長文和正常文字混合訓練,逐步多階段引入自動化構建的海量長文合成資料,每階段僅需少量長文資料,即可獲得較好的模型長文泛化和外推能力。

圖片

騰訊混元 Large 模型專項提升的長文能力已經應用到騰訊 AI 助手騰訊元寶上,最大支援 256K 上下文,相當於一本《三國演義》或英文原版的《哈利・波特》全集的長度,可以一次性處理上傳最多 10 個文件,並能夠一次性解析多個微信公眾號連結、網址,讓騰訊元寶具備獨有的深度解析能力。

3、推理加速最佳化

隨著 LLM 處理序列逐漸增長,Key-Value Cache 佔用記憶體過大的問題日益突出,為推理成本和速度帶來了挑戰。

為了提高推理效率,騰訊混元團隊使用 Grouped-Query Attention(GQA)和 Cross-Layer Attention (CLA) 兩種策略,對 KV Cache 進行了壓縮。同時引入量化技術,進一步提升壓縮比。

圖片

透過 GQA+CLA 的引入,我們將 Hunyuan-A52B 模型的 head 數從 80 壓縮到 8,並透過 CLA 每兩層共用 KV 啟用值,最終將模型的 KV Cache 壓縮為 MHA 的 5%,大幅提升推理效能。下面是不同策略的 KV Cache 對比。

圖片

4、Postrain 最佳化

  • SFT 訓練

騰訊混元團隊在預訓練模型的基礎上使用超過百萬量級的 SFT 資料進行精調訓練,這些精調資料包含了數學、程式碼、邏輯、文字創作、文字理解、知識問答、角色扮演、工具使用等多種類別。為了保證進入 SFT 訓練的資料質量,我們構建了一套完整的基於規則和模型判別的資料質檢 Pipeline,用於發現資料中常見的 markdown 格式錯誤、資料截斷、資料重複、資料亂碼問題。此外,為了自動化地從大規模指令資料中篩選高質量的 SFT 資料,我們基於 Hunyuan-70B 模型訓練了一個 Critique 模型,該模型可以對指令資料進行 4 檔打分,一方面可以自動化過濾低質資料,另一方面在自進化迭代過程中可以有效提升被選 response 的質量。

我們使用 32k 長度進行 SFT 訓練,另外在訓練過程中為了防止過擬合,我們開啟了 0.1 的 attention dropout 和 0.2 的 hidden dropout;我們發現相比 Dense 模型,MoE 架構的模型透過開啟合理的 dropout,能有效提升下游任務評測的效果。另外為了更高效的利用大規模指令資料,我們對指令資料進行了質量分級,透過從粗到精的分階段訓練,有效提升了模型效果。

  • RLHF 訓練

為了使模型能夠生成與人類偏好接近的回答,我們進一步使用直接偏好最佳化(DPO)對齊演算法對 SFT 模型進行強化訓練。與離線 DPO 演算法不同的是,我們在強化學習二階段採用的是線上強化 pipeline,這一框架裡整合了使用固定 pair 資料的離線 DPO 策略,和使用訓練過程中更新的策略模型迭代式取樣的線上強化策略。具體來說,每一輪模型只使用少量資料進行取樣訓練,訓練完一輪之後的模型會對新的一批資料取樣出多個回答,然後利用獎勵模型(RM)打分,排序出最好的回答和最差的回答來構建偏好對。

為了進一步增強強化學習階段的訓練穩定性,我們隨機篩選了一定比例的SFT資料用於計算 sft loss,由於這部分資料在 SFT 階段已經學過,DPO 階段加 sft loss 是為了保持模型的語言能力,且係數較小。此外,為了提升 dpo pair 資料裡面的好答案的生成機率,防止 DPO 透過同時降低好壞答案的機率的方式來走捷徑,我們也考慮加入好答案的 chosen loss 。透過以上策略的有效結合,我們的模型在 RLHF 訓練後各項效果得到了明顯的提升。

圖片

5、訓練和精調

騰訊混元 Large 模型由騰訊全鏈路自研,其訓練和推理均基於騰訊 Angel 機器學習平臺。

針對 MoE 模型 All2all 通訊效率問題,Angel 訓練加速框架(AngelPTM)實現了 Expert 計算和通訊層次 overlap 最佳化、MOE 運算元融合最佳化以及低精度訓練最佳化等,效能是 DeepSpeed 開源框架的 2.6 倍。

騰訊混元 Large 模型配套開源的 Angel 推理加速框架(AngelHCF-vLLM)由騰訊 Angel 機器學習平臺和騰訊雲智慧聯合研發。在 vLLM 開源框架的基礎上適配了混元 Large 模型,持續透過疊加 NF4 和 FP8 的量化以及並行解碼最佳化,在最大限度保障精度的條件下,節省 50% 以上視訊記憶體,相比於 BF16 吞吐提升 1 倍以上。除此之外,Angel 推理加速框架也支援 TensorRT-LLM backend,推理效能在當前基礎上進一步提升 30%,目前已在騰訊內部廣泛使用,也會在近期推出對應的開源版本。

相關文章