騰訊在 AI 上信什麽?
一個是開源,一個是 MoE (混合專家模型)。
開源好理解,在大模型火熱之後,加入戰局的騰訊已經按照它自己的節奏開源了一系列模型,包括混元文生圖模型等。
某種程度上,ChatGPT 是一個意外的發布,意味着所有人在大模型上都 " 落後 " 了,開源是追趕的一種方式,也是快速建立存在感吸引更多社區參與者來共建的方式。
而騰訊對 MoE 的笃信,此前則并沒太被外界意識到。事實上,這家從廣告業務到推薦功能等,一直在生産環境裏大規模使用着 AI 算法的公司,在技術上對 MoE 的笃信到了某種 " 信仰 " 的程度。
許多細節此前并不太爲人所知。比如,在生成式 AI 大模型火熱之前,騰訊的許多模型就在使用 MoE 架構,包括 2021 年騰訊訓練的 T5 模型,整個模型參數已經很大,不過與今天的 MoE 相比,每個專家的參數量較小。而 2024 年 11 月 5 日,騰訊再次開源了最新的 MoE 模型 Hunyuan-Large(混元 Large),一個至今全行業公開發布出來的最大參數的 MoE 架構的模型。
據騰訊介紹,騰訊混元 Large 模型總參數量 389B,激活參數量 52B ,上下文長度高達 256K,公開測評結果顯示,騰訊混元 Large 在 CMMLU、MMLU、CEval、MATH 等多學科綜合評測集以及中英文 NLP 任務、代碼和數學等 9 個領域取得領先,超過 Llama3.1、Mixtral 等一流的開源大模型。同時,它已經在騰訊業務場景中落地應用,經過實踐的檢驗,是面向實用場景的應用級大模型。
MoE 是一種相對于稠密(dense)模型架構的設計。簡單理解,稠密模型就是通過大力出奇迹訓練出一個全知全能的神,來解決所有問題,它也是今天大模型火熱背後,大家對大模型機制的樸素直覺的理解。而 MoE 放棄了造一個單獨唯一的神,轉而由多個各有所長分工明确的專家組來解決問題,也就是所謂的專家們的混合(Mixture of Experts)。
從這個簡單的描述可以看出,MoE 似乎更符合今天訓練遇到規模化瓶頸時的技術選擇。不過,在今天的開源模型領域,最強模型 Llama 3 在當時發布時最讓業内驚訝的技術選擇之一,就是沒有使用 MoE 模型架構。這也讓很多跟随 llama 體系的開源模型也繼續堅持着稠密模型的路線。而現在騰訊顯然不想跟着 llama 跑了。
在各種實驗裏尋找 MoE 的 Scaling Law
在 MoE 架構的開源模型裏,最吸引開源社區注意的是 Mistral。這家公司成立于 2023 年 5 月,之後開始訓練 MoE 架構的模型并提供給開源社區。據騰訊介紹,MoE 架構的模型在 2021 年已經成爲騰訊訓練大模型的選擇。
在大模型因 ChatGPT 火熱之後,騰訊并沒有第一時間公布它的技術路線和模型,而之後,在 2024 年 3 月發布财報的電話會上,騰訊高管第一次透露了混元已經是一個萬億級别參數的 MOE 架構模型,而在那個時間點前後,業内也開始廣泛達成共識,認爲 OpenAI 使用的也是 MoE 架構。
在混元 Large 的發布會上,騰訊機器學習平台總監,騰訊混元大語言模型算法負責人康戰輝表示,如果 scaling law 的本質是追求模型更大的規模以實現更強的能力,那麽 MoE 是必定會走向的路線。他形容騰訊這麽多年已經在 MoE 路線上摸索了很久。與過往大家圍繞稠密模型建立的 scaling law 不同,因爲模型架構上的改變,MoE 模型也有自己的 Scaling Law。
" 如果你隻是想把模型撐的非常大,那麽專家你可以 8 個,16 個,32 個甚至 64 個都可以。" 康戰輝說。" 但如何找到最好的平衡配方,是需要很多的理解和積累的過程。我們從 21 年一路走來花了很多精力就是在理解這件事情。"
"MoE 模型的變量更多,我們需要找到 MoE 自己的 Scaling Law。" 他說。
騰訊爲此做了大量的實驗,具體方法是,設置了一套自己的中小模型簇,做大量的各種模型組的實驗,而不是幾個模型的實驗。" 我們堅持用一種實驗機制來保障它。"
而這次開源的過程,騰訊也把技術 " 秘方 " 做了總結。
它包括幾個方面:
共享專家路由策略:混元 Large 有一個共享專家,也就是負責處理共享的通用能力和知識的專家模型,和 16 個特殊專家,負責處理任務相關的特殊能力,這些專家模型動态激活,利用稀疏的神經網絡來高效率的進行推理。而訓練這些不同的專家時,會遇到數據負載的挑戰,在回收路由策略上,混元通過大量實驗找到有效激活每個專家的方式,使其保持相對均衡的負載,根據 Batch size 縮放原則,匹配不同的學習率,充分利用訓練數據,保證模型的訓練穩定性和收斂速度。
高質量合成數據:今天自然數據開始出現瓶頸,根據 Gartner 報告預測,到 2030 年,合成數據在 AI 模型中的使用将完全超過真實數據。但合成數據目前的問題是,它的質量參差不齊,缺乏多樣性,部分能力 / 任務相關數據稀缺。騰訊的方法是在天然文本語料庫的基礎上,利用混元内部系列大語言模型構建大量的高質量、多樣性、高難度合成數據,并通過模型驅動的自動化方法評價、篩選和持續維護數據質量,形成一條完整數據辣取、篩選、優化、質檢和合成的自動化數據鏈路。目前,它在數學和代碼領域獲得了超過 10% 的提升。
長上下文處理能力:預訓練模型支持高達 256K 的文本序列,Instruct 模型支持 128K 的文本序列,顯著提升了長上下文任務的處理能力。騰訊還爲此做了一個更接近真實世界的評測集,名字叫做 " 企鵝卷軸 ",也即将開源。
此外,在推理加速上,騰訊也使用了 KV 緩存壓縮的技術:使用 Grouped-Query Attention (GQA)和 Cross-Layer Attention (CLA) 兩種 KV Cache 壓縮策略,從 head/layer 兩個維度聯合壓縮 KV cache。同時再搭配上量化技術,提升壓縮比。據騰訊數據,通過 GQA+CLA 的引入,最終将模型的 KVCache 壓縮爲 MHA 的 5%,大幅提升推理性能。
同時,在預訓練之外,後訓練階段,騰訊在對齊上也做了很多技術優化。
據騰訊介紹,今天 SFT 通用領域繁多,數學、代碼高質量指令數據獲取困難,業界廣泛采用的離線 DPO,強化策略效果上限不高,泛化性弱等挑戰,騰訊混元 Large 模型分門别類提升數學、邏輯推理、代碼等能力,另外在一階段離線 DPO 的基礎上引入了二階段在線強化策略。
目前混元 large 已經在 HuggingFace 上線,也同步上架了騰訊雲 TI 平台。
壯大 MoE 的朋友圈
Llama3 系列當初之所以沒有采用 MoE,在它的技術報告裏給出的理由,主要指向了模型訓練的穩定性。而這種穩定性不僅與模型訓練的方法成熟度相關,也和整個訓練生态對 MoE 架構的支持有關。比如,在 Llama 背後,支持它訓練的 Meta 的計算集群裏,像是基于 RoCE 的集群其實對 MoE 這類架構的運作方式有一定的适配問題,會帶來控制上的問題從而導緻效率的降低。
而據騰訊介紹,它自己的底層訓練架構就是爲支持 MoE 設計的。而且,這一次開源過程裏,騰訊不隻開源了模型,還把配套設施也提供了出來。
據騰訊介紹,本次開源提供了配套 Hunyuan-Large 模型的 vLLM-backend 推理框架。" 我們在 vLLM 開源框架的基礎上适配了 Hunyuan-Large 模型,新增的 CLA 結構可以很大程度節約顯存 ( KV-Cache 部分節省 50% ) ,保障超長文本場景。此外通過 FP8 的量化優化,相比 FP16/BF16 常規量化,在最大限度保障精度的條件下,節省 50% 顯存,吞吐提升 70%。"
此外,Hunyuan-Large 也已經支持 huggingface 格式,支持用戶采用 hf-deepspeed 框架進行模型精調。" 我們也支持利用 flash-attn 進行訓練加速,爲此,我們把相關的訓練腳本和模型實現也開放給到社區,方便研發者在此基礎上進行後續的模型訓練和精調的操作。"
在此次混元 Large 背後,它的訓練和推理均基于騰訊 Angel 機器學習平台。爲了使得混元大模型具備更好的訓練和推理性能,騰訊也将陸續開源混元 AnglePTM 和 AngeIHCF 等大模型工程框架。
這是要通過全套的服務來壯大 MoE 的朋友圈。
其實,這次混元 large 的開源,最有意思的并不隻是模型本身,而是對于一向低調的騰訊,難得展示了它在大模型這個技術發展上内部所确定的理念和方向。
首先在技術路線選擇上,面對 MoE 尚未有充分的生态支持,Llama 路線依然占據主流,并且追随它是 " 出成績 " 更直接的選擇時,它依然認定一直堅持的路線是對的。如果相信有一天大家都要走向 MoE,那麽更早的通過開源和生态建設來讓開發者聚攏在它這裏就是個正确的決定。
這讓它看起來有點像堅持 MoE 版的 Meta ——實打實的把大量資源用在了最強的開源模型上。甚至它比 Meta 更笃信它所開源的技術方案—— Meta 的 Llama 在它的 AI 掌舵人 Yann LeCun 眼裏,看起來是個 " 過渡方案 ",他領導的研究部門 FAIR 要追求的世界模型,甚至被形容爲是和開源 Llama 完全不同的方向。而騰訊正在開源的,自己業務裏使用的,以及長期投入的方案都是一套。
" 我們内部說,我們不急于爲了開源而開源,在内部業務打磨好後再開源。" 康戰輝說。同一天,騰訊還開源了混元 3D 生成大模型,這是業界首個同時支持文字、圖像生成 3D 的開源大模型。
" 要開就要有誠意,它必須是與我們自己用的模型同宗同源的。接下來我們還會繼續基于 MoE 架構發布更多的模型。"