開源、長期主義與DeepSeek的技術愿景
?作者|格林
來源|神州問學
導入:Deepseek在早期就開源了許多優秀的指令模型與對話模型,并發布了多篇論文。以下,我們將基于Deepseek在早期發布的6篇論文,來梳理Deepseek公司的技術路徑與主張。
Deepseek的這幾篇論文都和大模型基礎結構、預訓練相關,其中涉及到Scaling Law以及MoE等多種新穎結構,也包括數據合成這類模型周邊技術;在訓練模型過程中,更加關注預訓練,而后續的微調步驟除了指令微調,還包括RLHF,DPO等對齊流程。在數據集上,DeepSeek使用的是自己收集的數據,包括預訓練的文本以及微調的問答對;
1.擴展法則貫徹落實:
DeepSeek在大語言模型的研究中,重點探索了如何在有限的計算資源下高效地擴展模型,在早期就提出了新穎且有實際指導意義的非傳統擴展法則(Scaling Law)。
【23年11月29日】DeepSeek LLM?Scaling Open-Source Language Models with Longtermism(DeepSeek LLM)
23年11月,DS發布了第一篇通用語言模型的論文,其中的核心創新點就在于擴展法則的實踐。論文中提到,開源社區中擴展法則存在不一致性,先前的研究對于如何在不同的計算預算、數據和模型規模下進行模型擴展得出了不同的結論。此外,對于高效擴展所需的最佳超參數和模型配置尚無明確的指導,這對推動開源大模型向通用人工智能(AGI)發展構成了障礙。
因此,DS在論文中提出了新的擴展法則:基于超參數(如批量大小和學習率)以及模型/數據,構建了一個經驗框架,用于在模型規模和數據量之間的計算資源的最佳分配,即非嵌入FLOPs/詞元來精確表述模型規模。
基于這些擴展法則,DS團隊開發了DeepSeek LLM,這是一種開源的大型語言模型,具有兩種配置:一個較小的7B參數模型和一個較大的67B參數模型。值得一提的是,當時67B的模型DS已在嘗試使用分組查詢注意力機制 (GQA),而非常規的多頭注意力機制 (MHA)。
該模型使用了一個獨特的預訓練數據集,總計2T個詞元,并采用了如監督微調(SFT)和直接偏好優化(DPO)等技術來提高性能。在測試中,DeepSeek LLM顯示出優越的性能,尤其是在代碼、數學和推理等領域,其67B模型在多項評估中超越了LLaMA-2 70B。
論文中還強調了高質量數據的重要性以及計算預算的合理分配,以開發更高性能的模型,可見從23年底開始,DS就強調精簡計算預算以及數據規模,而不是存粹堆疊算力與數據,暴力提升模型的性能表現。
2.MoE模型的深度研究:
DS在混合專家(MoE)架構方面的研究也取得了重要進展。他們開發了DeepSeekMoE架構,通過引入細粒度專家分割和共享專家隔離策略,解決了傳統MoE架構中存在的知識混雜和冗余問題,從而實現了更高效的專家激活和模型專化。這種創新設計大幅提升了模型的性能和效率,同時降低了計算成本。
【24年1月11日】DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
24年1月,DS聯合來自北大、清華還有南京大學的實驗室團隊,共同發布了MoE V1版本的模型以及相應論文,主要改進MoE結構,讓專家激活更加靈活,避免“專家不夠專”問題。
研究團隊發現,傳統的MoE框架有一定局限性,經常存在有限數量專家間知識混雜和知識冗余等問題,阻礙了專家的專化,導致每個專家無法獲得獨特且不重疊的知識,從而降低了模型的有效性和性能(又是一項關于增加效能的研究)。
為此,DeepSeekMoE架構在這篇文章中首次亮相,采用了兩個主要策略,能夠實現真正的專家專化:
細粒度專家分割:此策略將專家分割成更精細的片段,允許更靈活的專家激活組合。通過為每個專家分配更具體的知識,這種方法旨在增強知識獲取的準確性和專化程度。
共享專家隔離:指定某些專家為共享專家,用于捕獲和整合公共知識,從而減少其他專家之間的冗余。
基于大量實驗,團隊證明了DeepSeekMoE確實能夠有效降低計算量并提升表現,從一個具有20億(2B)參數的小規模模型開始,就能以顯著更少的計算量實現與較大規模MoE模型(如GShard)相當或更好的性能。
此外,當模型擴展到160億(16B)和1450億(145B)參數時,依然顯示出其相對于傳統MoE架構的優勢。其中,2B參數的DeepSeekMoE模型匹配了GShard 2.9B模型的性能,16B參數的DeepSeekMoE模型優于LLaMA2 7B模型,而只使用了大約40%的計算量。有趣的是,在一代的MoE模型中,DS就嘗試了64個專家(1個共享專家以及63個路由專家,共享專家總是被激活)的MoE結構,為三代的256個專家系統打下基礎。
從這篇論文開始,DS團隊就意識到了MoE結構的重要性,能夠在擴大模型參數時管理計算成本。在后續的語言模型訓練中,DS沿用了其DeepSeekMoE架構并不斷優化。
【24年5月】DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(MoE LLM)
在V2版本,模型的參數規模有了一定提升,包含了 236B 個參數,其中每個 token 激活 21B,支持 128K token 的上下文長度。
V2論文的核心在于,如何更好地平衡模型性能與訓練和推理效率。團隊發現使用多頭注意力機制(MHA)的模型,在推理過程中由于需要大規模的鍵值(KV)緩存,效率不高。由此在DeepSeek-V2 時,DS就開始采用多頭潛在注意力 (MLA) ,并在由 8.1T 標記組成的高質量多源語料庫上對 DeepSeek-V2 進行了預訓練,并進一步執行監督微調 (SFT) 和強化學習 (RL) 以充分釋放其潛力。V2依然沿用了DeepSeekMoE的架構設計,通過稀疏計算以較低的成本訓練強大的模型。它采用細粒度的專家分割和共享專家隔離,允許更高的專化度并減少冗余,優于傳統的MoE架構如GShard。
基于架構以及注意力機制上的創新,與DeepSeek 67B相比,訓練成本節省了42.5%,并且由于KV緩存的內存需求減少,支持更大的批次大小。模型的生成吞吐量也顯著提高,使其在實際應用中更具實用性。在表現評測上,DeepSeek-V2模型在多個基準測試中實現了開源模型中的領先表現,在英語、代碼和數學基準測試中優于Qwen1.5 72B和Mixtral 8x22B等模型,并在中文任務中表現出色,在LMSYS的Chatbot Arena 超越了當時所有的開源模型。
對于V2版本,DS依然選擇開源:通過將DeepSeek-V2及其較小版本DeepSeek-V2-Lite發布到開源社區,并鼓勵進一步研究和實驗MLA和DeepSeekMoE架構。在DS提供的API服務中,V2版本模型能夠對標 GPT-4-Turbo 的性能,但價格只要 1塊錢/百萬輸入,這是 GPT-4-Turbo 的 1/70。因此DS在當時 成了業內知名的“價格屠夫”,并掀起了一波模型降價潮。
3.基于代碼和定理證明的推理能力研究:
DeepSeek-Coder系列模型是DS在代碼生成和編程任務領域的開源模型,旨在縮小開閉源之間的性能差距。DS通過使用自己收集的大規模高質量數據集和創新的預訓練策略,顯著提高了模型代碼生成和補全的能力。
除此之外,DeepSeek-Prover模型代表了DeepSeek公司在自動定理證明領域的創新,通過生成大規模合成數據來克服訓練數據稀缺的挑戰。這種方法大大增強了模型在正式數學證明任務中的性能,并在多個基準測試中取得了優異的表現。
【23年11月2日】DeepSeek-Coder: When the Large Language Model Meets Programming--The Rise of Code Intelligence
這是DS團隊最早開源的模型之一,除了代碼相關的研究以外,這篇論文在背景介紹中就奠定了DS的研究基調:開源與閉源在性能上的差距,閉源模型(如OpenAI的Codex和GPT-3.5)在代碼生成和其他編程相關任務中表現出了顯著的能力,但由于其專有閉源性質,限制了更廣泛的研究和開發社區的使用。
為此,DS推出了coder系列,這是一個開源代碼模型集合,參數規模從1.3B到33B不等。
這些模型從頭開始訓練,使用了來自87種編程語言的2T個令牌的龐大數據集。訓練過程中采用了創新的方法,包括使用16K上下文窗口的中間填充(FIM)任務,以增強模型的代碼生成和補全能力。值得一提的是,在V3模型的訓練中,也使用了FIM策略,有別于一般自回歸式的語言建模訓練集。除此之外,在在預訓練過程中還引入了一種獨特的代碼庫級別數據組織方法,提高了模型對項目中跨文件依賴關系的理解能力。
在當時的評估中,DeepSeek-Coder模型在多個基準測試中優于現有的開源模型,包括HumanEval、MBPP、DS-1000和LeetCode比賽基準。DeepSeek-Coder-Base 33B模型在多語言和單語言基準測試中的準確性優于CodeLlama-Base 34B。此外,DeepSeek-Coder-Instruct 33B模型在許多編碼任務中超越了OpenAI的GPT-3.5 Turbo,縮小了開源和專有模型之間的性能差距。
【24年5月】DeepSeek-Prover: Advancing Theorem Proving in LLMs through Large-Scale Synthetic Data Challenge
在24年5月,DS發布了一篇有趣但沒有受到廣泛關注的文章,主題是關于通過大規模合成數據推進大型語言模型(LLMs)的定理證明。顯然在早期,DS就嘗試了數據合成,為后續V3和R1系列的數據蒸餾打下基礎。這篇論文主要討論了在正式定理證明領域中,大語言模型(LLMs)缺乏訓練數據的問題。與自然語言或代碼不同,正式證明的訓練數據集非常有限。
由此,論文提出了一種在Lean 4證明環境中生成大規模合成數據的新方法。通過將主要來自高中和本科競賽問題的非正式數學問題轉化為正式陳述,并過濾低質量的陳述、生成證明,并使用Lean 4驗證器進行驗證。DS以此生成了一個包含800萬個正式陳述及其對應證明的數據集,顯著擴展了大模型在定理證明訓練中的可用數據,并以此微調得到了DeepSeek-Prover模型,在各種基準測試(如miniF2F和FIMO數據集)超越了GPT-4和其他模型,得到了領域內最佳的訓練結果。例如,DeepSeek-Prover在miniF2F測試中以64個樣本達到了46.3%的完整證明生成準確率,而GPT-4僅為23.0%。
Coder和Prover模型系列的成功,也讓DS在早期積累了一定關于模型推理能力的訓練經驗。在后續V3以及R1模型的構建以及訓練過程中,也可看到一些用于Coder和Prover模型訓練的相似方法。
4.多模態領域探索:
在視覺-語言理解領域,DeepSeek公司在早期開發了DeepSeek-VL系列模型,這些模型通過混合視覺編碼器和創新的訓練策略,能夠高效處理高分辨率圖像和復雜的多模態任務,顯示出在真實世界應用中的強大能力。
【24年3月11日】DeepSeek-VL: Towards Real-World Vision-Language Understanding
其實視覺是DS選擇去處理真實世界多模態信息理解的第一步,在其中主要探討如何處理高分辨率圖像并保持強大的語言能力。當時開源模型由于訓練數據的多樣性不足、處理復雜視覺-語言任務的模型架構不夠理想,以及無法有效平衡視覺和語言理解的訓練策略,常在實際應用中落后于專有模型。
VL系列的預訓練數據集主要來自于網頁截圖、PDF、OCR、圖表,以及來自教科書和專家知識的知識型內容。此外,研究團隊還創建了一個用例分類體系來指導指令微調,提升模型在真實世界環境中的用戶體驗。
在模型架構上,DeepSeek-VL采用了一種混合視覺Encoder,將低分辨率文本對齊Encoder與高分辨率Encoder相結合,使模型能夠高效處理詳細圖像。此設計在保持各種任務中的重要語義和詳細視覺信息的同時,平衡了Token預算和計算成本。
除此之外,DS還嘗試了一種新的訓練方法,在發展多模態能力的同時保持強大的語言能力。該策略包括“模態預熱”階段,逐步將視覺-語言數據納入訓練,以平衡這兩種模態。DeepSeek-VL家族,包括1.3B和7B模型,均采用此方法進行訓練,確保其在視覺和語言中心基準測試上具有穩健的表現。
DeepSeek-VL模型在各種基準測試中表現出最先進或具有競爭力的性能。7B模型的表現優于許多相似規模的開源模型,甚至在某些基準測試中接近專有模型如GPT-4V,顯示出其在真實世界應用中的有效性。例如,DeepSeek-VL在SeedBench上取得了70.4的得分,接近GPT-4V的71.6,并在數學邏輯和自然圖像理解任務中表現優異。
DS在VL一代模型上的成功,讓其選擇繼續探索多模態模型。在24年12月13日,DS開源了第二代的VL系列模型,架構和訓練方法上類似于一代模型。今年1月27日,在V3以及R1系列模型之后,推出了DS Janus-Pro多模態模型。
總結
我們可以看出,在今年DS的V3、R1以及Janus-Pro大爆發之前,其實DS已經深刻研究了核心的算法、訓練以及數據的優化方式,每篇先前發布的論文都導向現如今其在推理模型訓練上的成功,并且基本都強調了開源,和伙伴一起共建社區生態。DS的成功也證明了,實質的社區開源與堅定的技術主張是真正的長期主義。