DeepSeekV3、R1、Janus-Pro系列模型技術解讀

👉 這是一個或許對你有用的社群
🐱 一對一交流/面試小冊/簡歷最佳化/求職解惑,歡迎加入芋道快速開發平臺知識星球。下面是星球提供的部分資料:
👉這是一個或許對你有用的開源專案
國產 Star 破 10w+ 的開源專案,前端包括管理後臺 + 微信小程式,後端支援單體和微服務架構。
功能涵蓋 RBAC 許可權、SaaS 多租戶、資料許可權、商城、支付、工作流、大屏報表、微信公眾號、ERPCRMAI 大模型等等功能:
  • Boot 多模組架構:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • Cloud 微服務架構:https://gitee.com/zhijiantianya/yudao-cloud
  • 影片教程:https://doc.iocoder.cn
【國內首批】支援 JDK 17/21 + SpringBoot 3.3、JDK 8/11 + Spring Boot 2.7 雙版本 

一句話:大模型界的拼夕夕,模型本身確實也有創新點,比如MLA、純RL預訓練、FP8混合精度,但更重要的是讓我們看到了開源對閉源的生態挑戰、中國對美國主導的有效追趕、極致工程最佳化的顯著受益。

DeepSeek-V3

https://github.com/deepseek-ai/DeepSeek-V3

DeepSeekV3模型結構

基礎架構

1. MoE結構:

混合專家模型 :三個臭皮匠勝於諸葛亮的思想,基本上目前各大模型都在用。簡單來說就是包含多個“專家”網路,其中每個專家都是一個相對獨立的神經網路,都有各自的引數,每個擅長於處理特定型別的輸入或者在資料的某個子空間上表現良好。透過門控網路(Gating Network)調整權重,把不同的輸入按照機率路由給不同的專家網路。各個專家網路對分配到的輸入進行處理,產生各自的輸出,最後根據門控網路分配的權重,將這些專家網路的輸出進行組合,得到最終的輸出結果。
優點:可以在不顯著增加模型整體引數量的情況下,利用多個專家網路的並行處理能力來處理不同型別的輸入模式,比如這裡DeepSeekV3一共671B引數,實際每個token推理啟用的37B的引數就行。
DeepSeekMoE: 使用了更細粒度的專家,並將一些專家隔離為共享專家 ,這裡的Topk就是由第 位 token 和所有路由專家計算出的Affinity得分中最高的 個分組成的集合。

2. MLA (Multi-head Latent Attention) 多層潛注意力架構:

注意力機制 :神經網路中的一種重要技術,它允許模型聚焦於輸入資料的不同部分。在傳統的注意力機制中,模型會計算輸入元素之間的關聯權重,然後根據這些權重對輸入進行加權組合。
多頭Multi-head :每個注意力頭可以學習到輸入資料不同方面的表示。例如,在處理自然語言處理任務中的一個句子時,一個注意力頭可能聚焦於句子中的語法結構,另一個可能聚焦於語義資訊,還有一個可能關注於詞彙的情感傾向等。這些不同的注意力頭並行工作,最後將它們的結果進行組合。
MLA是DeepSeek這裡新提出的,核心是對注意力 key 和 value 進行低秩聯合壓縮 ,這樣在生成過程中只需要快取對映到潛空間的這兩個藍框向量,從而顯著減少鍵值 (KV) 快取

3. 無輔助損失的負載均衡 auxiliary-loss-free strategy:

傳統 :對於 MoE 模型,不平衡的專家負載會導致路由崩潰,並在具有專家並行的場景中降低計算效率。傳統解決方案通常依靠輔助損失來避免負載不平衡 ,但是過大的輔助損失會損害模型效能。
無輔助損失的負載平衡策略 :目標是在負載平衡和模型效能之間取得更好的平衡,這裡的方法是為每個專家引入一個偏差項 ,並將其新增到相應的affinity分數 , 中以確定topK 的路由:
注意這裡的偏差項僅用於路由 ,與 FFN 輸出相乘的門控值仍然來自原始affinity得分 , 。在訓練期間持續監控每個訓練step對應的整個batch上的專家負載。在step結束時,如果其對應的專家超載,則將偏差項減少 ,如果其對應的專家負載不足,則將偏差項增加 ( 是一個稱為偏差更新速度的超引數)。透過動態調整,DeepSeek-V3 在訓練期間保持專家負載平衡,並且比透過純輔助損失來鼓勵負載平衡的模型能獲得更好的效能。
節點限制路由Node-Limited Routing :使用受限路由機制來限制訓練期間的通訊成本,確保每個 token 將被髮送到最多 個節點,這些節點是根據分佈在每個節點上的專家的最高 / 的affinity得分之和來選擇的。這樣 MoE 訓練框架幾乎可以實現完全的計算-通訊重疊。

4. MTP (Multi-Token prediction)多token預測:

傳統 :Next-Token-Prediciton方式,每次預測未來的一個token(文字中的基本單元)。
實現 :MTP方法最早時 Gloeckle 提出,使用獨立輸出頭並行預測多個連續的token,但是DeepSeek這裡按順序預測token並在每個depth都保留其完整的因果鏈。
優點 :一方面MTP 目標使訓練訊號密集化 並可能提高資料效率,另一方面MTP 可以讓模型預先規劃 ,保留token之間的依賴關係,從而更好地預測接下來的token。

高效訓練

5. DualPipe跨節點通訊:

目標 :實現高效的流水線並行。
方法 :用更少的流水線bubbles,並透過計算通訊重疊隱藏了訓練期間的大部分通訊,也就是將計算和通訊階段重疊在前向和後向過程中 ,從而解決了跨節點專家並行性帶來的沉重通訊開銷。這種重疊的意義在於隨著模型進一步擴大,只要保持恆定的計算與通訊比率,仍然可以在節點之間使用細粒度experts,同時實現接近零的全對全通訊開銷。資料傳輸和通訊同時進行,資料傳輸提速50%,通訊減少20%。
工程最佳化 :開發了高效的跨節點all-to-all通訊核心 ,以充分利用 IB 和 NVLink 頻寬並節省專用於通訊的流多處理器 (SM)。並在訓練過程中精心最佳化記憶體佔用,最後是在不使用昂貴的張量並行性 (TP) 的情況下訓練出來的 DeepSeek-V3。

6. FP8 混合精度訓練框架

資料精度 :FP8(Floating – Point 8 – bit)是一種8位的浮點數表示格式,與傳統的FP32和FP16相比,它使用更少的位數來表示數字,在表示範圍和精度上較差,但是可以減少資料儲存和計算的開銷。
混合精度訓練 :在FP8混合精度訓練中,通常會將FP8與其他精度(如FP32)的資料結合使用。因為FP8的精度相對較低,在訓練過程中可能會導致一定程度的精度損失,從而影響模型的效能。為了應對這個問題,可以透過精度損失管理或者演算法適配來達成效率&效果的均衡 ,如在關鍵的計算步驟(如梯度更新)中使用更高精度的資料(如FP32)進行計算,以確保模型的收斂性和準確性。
實現 :整體框架如圖所示,首先,為了加速模型訓練,大多數核心計算核心,即通用矩陣乘法GEMM 操作,都是以 FP8 精度實現的。這些 GEMM 操作接受 FP8 張量作為輸入,並以 BF16 或 FP32 產生輸出。與線性運算元相關的所有三個 GEMM,即 Fprop(前向傳遞)、Dgrad(啟用後向傳遞)和 Wgrad(權重後向傳遞),都在 FP8 中執行。與原始 BF16 方法相比,這種設計理論上使計算速度翻倍。此外,FP8 Wgrad GEMM 允許將啟用儲存在 FP8 中以用於後向傳遞。這顯著減少了記憶體消耗。同時為以下元件保持原始精度 BF16 或 FP32:嵌入模組、輸出頭、MoE 門控模組、規範化運算元和注意運算元。
效果 :與 BF16 baseline相比,這裡 FP8 訓練模型的相對損失誤差始終保持在 0.25% 以下,這一水平完全在訓練隨機性的可接受範圍內。

其他細節

資料 :Pretrain使用了14.8T token
128k的推理視窗長度 :對 DeepSeek-V3 進行了兩階段的上下文長度擴充套件。在第一階段,最大上下文長度擴充套件到 32K,在第二階段,進一步擴充套件到 128K
SFT :用DeepSeek-R1 模型生成資料,雖然 R1 生成的資料表現出很強的準確性,但它存在過度思考、格式不佳和篇幅過長等問題。所以目標是要平衡 R1 生成的推理資料的高準確性和常規格式的推理資料的清晰度和簡潔性。最後生成了1.5M的涵蓋各個領域的資料。
RL :基於規則的獎勵模型 (RM) + 基於模型的 RM
  • 基於規則的 RM :對於可以使用特定規則驗證的問題,採用基於規則的獎勵系統來確定反饋。例如,某些數學問題具有確定性結果,要求模型在指定的格式提供最終答案,用規則來驗證正確性。對於 LeetCode 問題,使用編譯器根據測試用例生成反饋。
  • 基於模型的 RM :對於具有自由形式真實答案的問題,依靠獎勵模型來確定響應是否與預期的真實答案相匹配。對於沒有明確真實答案的問題,例如涉及創意寫作的問題,獎勵模型的任務是根據問題和相應的答案作為輸入提供反饋。獎勵模型是從 DeepSeek-V3 SFT 訓練的,為了提高其可靠性,還構建了偏好資料,不僅提供最終獎勵,還包括導致獎勵的思路鏈。

成本統計

競品的效果對比

以相對低的訓練成本躋身第一梯隊效果
基於 Spring Boot + MyBatis Plus + Vue & Element 實現的後臺管理系統 + 使用者小程式,支援 RBAC 動態許可權、多租戶、資料許可權、工作流、三方登入、支付、簡訊、商城等功能
  • 專案地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 影片教程:https://doc.iocoder.cn/video/

DeepSeek-R1

https://github.com/deepseek-ai/DeepSeek-R1

模型定位

對標OpenAI-o1模型,Deepseek-R1 透過大規模強化學習 (RL) 訓練,無需監督微調 (SFT) 作為初步步驟,展示了卓越的推理能力。
透過純 RL進行自我進化,模型能夠自然而然地出現許多強大而有趣的推理行為。然而,之前的Deepseek-R1-zero遇到了可讀性差和語言混雜等挑戰。為了解決這些問題並進一步提高推理效能,DeekSeek-R1提出了在 RL 之前結合多階段訓練和冷啟動資料。最終DeepSeek-R1 在推理任務上實現了與 OpenAI-o1-1217 相當的效能。同時開源了 DeepSeek-R1-Zero、DeepSeek-R1 和基於 Qwen 和 Llama 從 DeepSeek-R1 提煉出的六個密集模型(1.5B、7B、8B、14B、32B、70B)。

openAI-o1模型

OpenAI 的 o1 系列模型首次透過引入思維鏈推理 CoT ,透過推理時間的延長提升邏輯推理的效果,達成了 inference-time scaling。這種方法在數學、編碼和科學推理等各種推理任務中取得了顯著的改進,模型透過思維鏈進行推理、反思,一步步得出最後的結論,但是作為取捨需要較長的推理耗時。

純RL訓練步驟:

Deepseek-R1 使用少量冷啟動資料 + 多階段訓練流程:
首先收集數千個冷啟動資料來微調 DeepSeek-V3-Base 模型;
然後,執行類似 DeepSeek-R1Zero 的面向推理的 RL,以下是 RL 中涉及到的一些基本原理:
Group Relative Policy Optimization (GRPO群體相對策略最佳化):是一種在強化學習領域中的最佳化策略,與傳統的僅考慮個體的策略最佳化不同,GRPO將多個智慧體(或策略)視為一個群體。在這個群體中,每個智慧體的策略評估和最佳化不是孤立進行的,而是相對其他智慧體的策略進行。
最終的 (advantage),透過對應輸出的一組獎勵 reward group { 1, 2, . . . , } 計算:
Reward modeling獎勵模型 :獎勵是訓練訊號的來源,決定了強化學習的最佳化方向。DeepSeek-R1-Zero 採用了基於規則的獎勵系統,主要包含兩種型別的獎勵:
  • 準確度獎勵 :評估響應是否正確。例如,對於具有確定性結果的數學問題,要求模型以指定的格式(例如,在框內)提供最終答案,從而實現可靠的基於規則的正確性驗證。同樣,對於 LeetCode 問題,可以使用編譯器根據預定義的測試用例生成反饋。
  • 格式獎勵 :強制模型將其思考過程置於“”和“”標籤之間。
  • 在 DeepSeek-R1-Zero 訓練中沒有用結果或過程神經獎勵模型。
訓練 :設計了一個簡單的模板,指導基礎模型遵循指定的指令。如圖所示,此模板要求 DeepSeek-R1-Zero 首先生成一個推理過程,然後給出最終答案。
在 RL 過程接近收斂後,透過對 RL 的 ckpt 進行拒絕取樣 (rejection sample) 建立新的 SFT 資料:
  • 在上一階段,只用了那些可以使用基於規則的獎勵進行評估的資料。但是,在此階段,合併較多其他資料來擴充套件資料集,其中一些資料使用生成獎勵模型,將基本事實和模型預測輸入 DeepSeek-V3 進行判斷。
  • 由於模型輸出有時比較混亂,難以閱讀,這裡過濾掉了混合語言、長段落和程式碼塊的思路鏈。對於每個prompt都抽取多個響應並僅保留正確的響應。最紅一共收集了大約 60 萬個與推理相關的訓練樣本。
  • 對於非推理資料,例如寫作、事實問答、自我認知和翻譯,採用 DeepSeek-V3 的 pipeline 並重用 DeepSeek-V3 的 SFT 資料集。總共收集了大約 20 萬個與推理無關的訓練樣本。
  • 即共計約 80 萬個精選樣本對 DeepSeek-V3-Base 進行兩階段的微調。
在使用新資料進行微調後,模型會再用到來自各種場景的prompt來進行額外的 RL 。

Deepseek-R1蒸餾

從 DeepSeek-R1 到較小的 dense 模型的蒸餾:使用 Qwen2.5-32B 作為基礎模型,從 DeepSeek-R1 直接蒸餾的效果優於在原本小模型上進行 RL。這表明,更大的基礎模型所發現的推理模式對於提高推理能力至關重要。
DeepSeek-R1 開源了蒸餾後的 Qwen 和 Llama 系列。蒸餾後的 14B 模型的表現遠勝於最先進的開源 QwQ-32B-Preview ,同時蒸餾後的 32B 和 70B 模型在dense模型的推理 benchmark 上也創下了新紀錄。
基於 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的後臺管理系統 + 使用者小程式,支援 RBAC 動態許可權、多租戶、資料許可權、工作流、三方登入、支付、簡訊、商城等功能
  • 專案地址:https://github.com/YunaiV/yudao-cloud
  • 影片教程:https://doc.iocoder.cn/video/

Janus-Pro

https://github.com/deepseek-ai/Janus/blob/main/janus_pro_tech_report.pdf

理解&生成統一聯合建模:

也就是使用一個統一的多模態大模型,同時進行理解+生成的任務。
Transfusion:比較主流的來自 meta 的工作,將語言建模(next-token預測)與擴散相結合,在混合模態序列上訓練單個Transformer。
  • 雙重訓練目標 :在模型的訓練過程中,文字部分透過預測下一個單詞的方式進行訓練,而影像部分則使用擴散方法進行處理。
  • 資料混合與表示 :模型在處理混合資料時,將影像切割成多個小塊,並將這些塊編碼為連續的向量,然後插入到文字序列中。這使得模型能夠在同一時間處理文字和影像。
  • 多模態注意力機制 :為了提高模型的生成效果,Transfusion結合了兩種注意力機制,一是因果注意力機制來計算損失和梯度;二是影像patch塊之間相互“注意”,提高了影像生成的質量。

Janus:

大多數現有的聯合建模方法使用相同的 visual encoder 視覺編碼器來處理多模態理解和生成任務的輸入。由於這兩個任務所需的表示不同,這通常會導致多模態理解的效能不佳。
為了解決這個問題,Janus 提出了分離視覺編碼的方法,這緩解了多模態理解和生成任務之間的衝突,在兩個任務中都取得了出色的表現。然而,由於訓練資料量有限,模型容量相對較小,依然存在一些缺點,例如在短提示影像生成上效能不佳,文字到影像生成質量不穩定。

Janus-Pro:

Janus 的增強版本,它在三個維度上進行了改進:
最佳化訓練策略
  • 延長第一階段的訓練時間 :增加了第一階段的訓練step,以便在 ImageNet 資料集上進行充分的訓練。研究結果表明,即使固定了 LLM 引數,該模型也可以有效地模擬畫素依賴性並根據類別名稱生成合理的影像。
  • 第二階段的重點訓練 :在第二階段放棄 ImageNet 資料,直接利用普通的文字轉影像資料來訓練模型,使其基於密集描述生成影像。這種方法使第二階段能夠更有效地利用文字轉影像資料,從而提高訓練效率和整體效能。
  • 調整第三階段 SFT 不同型別資料集的比例 :將多模態資料、純文字資料和文字轉影像資料的比例從 7:3:10 更改為 5:1:4。透過略微降低文字轉影像資料的比例,來保持強大的視覺生成能力,同時實現更好的多模態理解效能。
擴充套件的訓練資料
  • 多模態理解 :對於第二階段的預訓練資料,參考 DeepSeek-VL2 添加了大約 90M 個樣本。這些包括影像標題資料集(例如 YFCC )以及用於表格、圖表和文件理解的資料(例如 Docmatix)。對於第三階段的監督微調 SFT 資料,結合了來自 DeepSeek-VL2 的其他資料集,例如 MEME 理解、中文對話資料和旨在增強對話體驗的資料集。這些新增功能擴充套件了模型的功能,豐富了其處理各種任務的能力,同時改善了整體對話體驗。
  • 視覺生成 :先前的 Janus 版本中使用的真實世界資料質量不佳且包含大量噪音,會導致文字到影像生成不穩定,從而導致輸出的美觀度較差。在 Janus-Pro 中,整合了大約 72M 個合成美學資料樣本,在統一的預訓練階段將真實資料與合成數據的比例提高到 1:1。實驗表明,在合成數據上訓練時,模型收斂速度更快,並且產生的文字到影像輸出不僅更穩定,而且美學質量也顯著提高。

擴充套件到更大的模型尺寸

Janus-Pro 系列包括兩種模型大小:1B 和 7B,展示了視覺編碼解碼方法的可擴充套件性。
當使用更大規模的 LLM 時,與較小的模型相比,多模態理解和視覺生成的損失的收斂速度都有顯著提高。在多個基準上對 Janus-Pro 進行了評估,展現出了卓越的多模態理解能力和顯著提高的 Text2Img 指令跟蹤效能。

侷限性

在多模態理解方面,輸入解析度限制為 384 × 384,會影響在 OCR 等細粒度任務中的表現。對於文字到影像的生成,低解析度加上視覺標記器引入的重建損失,導致影像雖然語義內容豐富,但仍然缺乏精細的細節。例如,佔據有限影像空間的小面部區域可能看起來細節不足。增加影像解析度 可以緩解這些問題。

case展示


歡迎加入我的知識星球,全面提升技術能力。
👉 加入方式,長按”或“掃描”下方二維碼噢
星球的內容包括:專案實戰、面試招聘、原始碼解析、學習路線。
文章有幫助的話,在看,轉發吧。
謝謝支援喲 (*^__^*)

相關文章