1. 背景介紹
????????這一整個春節,被DeepSeek-R1刷屏。各種鋪天蓋地的新聞以及老板發的相關信息,著實感受到DeepSeek-R1在國外出圈的震撼。
????????DeepSeek推出了新的推理模型:DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一個在沒有經過監督微調(SFT)作為預處理步驟的情況下,通過大規模強化學習(RL)訓練的模型,在推理任務上展現出了卓越的性能。借助強化學習,DeepSeek-R1-Zero 涌現出許多強大的推理行為。不過,DeepSeek-R1-Zero 也存在一些挑戰,比如無盡的重復、可讀性差以及語言混雜等問題。為了解決這些問題并進一步提升推理能力,引入了 DeepSeek-R1,在強化學習之前融入了冷啟動數據。DeepSeek-R1 在數學、編程和推理任務上的表現可與 OpenAI-o1 相媲美。
? ? ? ? 這一次DeepSeek的最大轟動,其實是把一種接近O1的實現方案給開源了,并且采用純RL訓練實現接近O1的能力,成本大幅降低。如果沒有開源,其實可能不太會有這么大的沖擊。據我所知,12月份智譜也上線了GLM-ZERO-Preview的強化推理版本,但沒有開源,效果也很不錯。強化學習我們之前也給出了相關文章進行討論,可以參考《大模型中的強化學習RLHF(PPO)、DPO(Direct Preference Optimization)等概念的理解與解析》。
? ? ? ? DeepSeek一口氣開源了 DeepSeek-R1-Zero、DeepSeek-R1 以及基于 Llama 和 Qwen 從 DeepSeek-R1 蒸餾出的六個密集模型。其中,DeepSeek-R1-Distill-Qwen-32B 在多個基準測試中超越了 OpenAI-o1-mini,刷新了密集模型的最新技術水平。
2. DeepSeek-R1的訓練方案
2.1 后訓練
????????DeepSeek為了降低訓練成本,并沒有選擇在預訓練階段進行相應的動作,而是在基模型上進行大規模強化學習,這是否也意味著目前的基模型其實已經具備足夠的能力,只需要進行多步推導就可以達到相當有效的推理結果?值得我們思考。關于這個問題其實DeepSeek也給出了一定程度的回答,通過強化學習可以激發出大模型的能力。
????????DeepSeek直接在基模型上應用強化學習(RL),而不依賴于監督微調(SFT)作為前置步驟。這種方法使模型能夠探索思維鏈(CoT),從而解決復雜問題,并最終發展出 DeepSeek-R1-Zero。DeepSeek-R1-Zero 展現出了自我驗證、反思以及生成長思維鏈等能力,驗證了大語言模型(LLM)的推理能力可以完全通過強化學習激發,而無需依賴監督微調。關于思維鏈可以參考《思維鏈(Chain Of Thought)、思維樹(Tree Of Thought)等概念解析》。
? ? ? ? 此外開發 DeepSeek-R1 的流程,我們將會在系列文章2中進行介紹,該流程包括兩個強化學習階段,用于發現更優的推理模式并對齊人類偏好,同時包含兩個監督微調階段,為模型的推理和非推理能力提供基礎。
2.2?蒸餾:小模型也可以很強大
????????DeepSeek證明大模型的推理模式可以被蒸餾到小模型中,從而使其性能優于通過強化學習(RL)在小模型上發現的推理模式。利用 DeepSeek-R1 生成的推理數據,對廣泛使用的多個稠密模型進行了微調。評估結果表明,經過蒸餾的小型稠密模型在基準測試中表現非常出色。開源的基于 Qwen2.5 和 Llama3 系列的蒸餾模型檢查點,包括 1.5B、7B、8B、14B、32B 和 70B 版本。我們曾在《模型蒸餾、大模型變小、移動端小規模大模型SLM、小模型趨勢討論》中討論了大模型蒸餾的發展趨勢,DeepSeek證明了這一個猜想的合理性和正確性。并且在《深度學習模型知識蒸餾Torch實踐》中給出了相應的模型蒸餾實踐。
2.3? 基模型DeepSeek-V3
????????DeepSeek-R1-Zero 和 DeepSeek-R1 是基于 DeepSeek-V3-Base 訓練的。?有關DeepSeek-V3模型架構如下,本質上還是和主流的大模型架構一致,都利用了transformer的基礎單元,可以參考《通用大模型架構分類及技術統一化》。另外DeepSeek給出了其MoE的結構,新增了Shared Expert,這個其實也容易理解,除了專門的專家,還需要有一些通用的專家,來捕捉一些跨任務的共享知識,學習到一些通用特征,增強模型的通用能力,同時還可以起到一定的負載均衡、專家數量控制以及兜底策略等功能。關于MoE的探討可以參考《Mixture of Experts(混合專家模型, MOE)》。其實這種結構的引入,也是一種實驗性的結果,實驗證明有效。另外DeepSeek-V3還引入了Multi-Head Latent Attention, MLA是用于高效推理的注意力機制。MLA 通過低秩聯合壓縮技術,減少了推理時的鍵值(KV)緩存,從而在保持性能的同時顯著降低內存占用。
3. 評估結果
????????DeepSeek-R1 評估,對于所有模型,最大生成長度設置為 32,768 個 token。對于需要采樣的基準測試,使用溫度為 0.6,top-p 值為 0.95,并為每個查詢生成 64 個響應以估計 pass@1。可以看到R1相對于o1-mini是有優勢,但與o1-1217還是存在差距。現在DeepSeek-R1被吹到天上,也需要看到差距,繼續進步。而且openai在一月底二月初推出了o3,各方面表現都優于R1。?
4. DeepSeek-R1使用
4.1 聊天網站與 API 平臺
????????可以在 DeepSeek 官方網站?chat.deepseek.com?上與 DeepSeek-R1 進行聊天,并開啟“DeepThink”按鈕。????????
????????另外也提供了與 OpenAI 兼容的 API 平臺:platform.deepseek.com,不過發現目前API平臺在維護中,暫時無法使用,應該是最近太火可能資源啥的跟不上,或者有別的因素考慮暫時做了關閉(2月3日)。
4.2 如何本地運行
DeepSeek-R1 模型
????????有關在本地運行 DeepSeek-R1 ,可以直接參考DeepSeek-V3 倉庫。
DeepSeek-V3 可以通過以下硬件和開源社區軟件進行本地部署:
DeepSeek-Infer Demo:我們提供了一個簡單輕量級的 FP8 和 BF16 推理演示。
SGLang:全面支持 DeepSeek-V3 模型的 BF16 和 FP8 推理模式,多 token 預測功能即將推出。
LMDeploy:支持高效的 FP8 和 BF16 推理,適用于本地和云端部署。
TensorRT-LLM:目前支持 BF16 推理和 INT4/8 量化,FP8 支持即將推出。
vLLM:支持 DeepSeek-V3 模型的 FP8 和 BF16 模式,支持張量并行和流水線并行。
AMD GPU:通過 SGLang 在 AMD GPU 上以 BF16 和 FP8 模式運行 DeepSeek-V3 模型。
華為昇騰 NPU:支持在華為昇騰設備上運行 DeepSeek-V3。
DeepSeek-R1-Distill 模型
????????DeepSeek-R1-Distill 模型可以像 Qwen 或 Llama 模型一樣使用。
????????例如,可以使用 vLLM 啟動服務:? ? ? ?
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B --tensor-parallel-size 2 --max-model-len 32768 --enforce-eager
使用建議
????????建議在使用 DeepSeek-R1 系列模型(包括基準測試)時遵循以下配置,以達到預期性能:
將溫度設置在 0.5-0.7 之間(推薦 0.6),以避免無限重復或不連貫的輸出。
避免添加系統提示(system prompt);所有指令應包含在用戶提示中。
對于數學問題,建議在提示中加入如下指令:“請逐步推理,并將最終答案放在 \boxed{} 中。”
在評估模型性能時,建議進行多次測試并取平均值。
????????此外,觀察到 DeepSeek-R1 系列模型在響應某些查詢時可能會跳過思考模式(即輸出?<think>\n\n</think>
),這可能會影響模型的性能。為了確保模型進行充分推理,建議強制模型在每次輸出時以?<think>\n
?開頭。因為輸出的think同樣會作為后續的輸入,這樣才能更好地推理結果。
5. 參考材料
【1】DeepSeek-R1
【2】DeepSeek_V3