【大模型理論篇】最近大火的DeepSeek-R1初探系列1

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 系列模型(包括基準測試)時遵循以下配置,以達到預期性能:

  1. 將溫度設置在 0.5-0.7 之間(推薦 0.6),以避免無限重復或不連貫的輸出。

  2. 避免添加系統提示(system prompt);所有指令應包含在用戶提示中。

  3. 對于數學問題,建議在提示中加入如下指令:“請逐步推理,并將最終答案放在 \boxed{} 中。”

  4. 在評估模型性能時,建議進行多次測試并取平均值。

????????此外,觀察到 DeepSeek-R1 系列模型在響應某些查詢時可能會跳過思考模式(即輸出?<think>\n\n</think>),這可能會影響模型的性能。為了確保模型進行充分推理,建議強制模型在每次輸出時以?<think>\n?開頭。因為輸出的think同樣會作為后續的輸入,這樣才能更好地推理結果。

5. 參考材料

【1】DeepSeek-R1

【2】DeepSeek_V3

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894515.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++哈希表深度解析:從原理到實現,全面掌握高效鍵值對存儲

目錄 一、核心組件與原理 1. 哈希函數&#xff08;Hash Function&#xff09; 2. 沖突解決&#xff08;Collision Resolution&#xff09; 3. 負載因子&#xff08;Load Factor&#xff09;與擴容 二、C實現&#xff1a;std::unordered_map 1. 模板參數 2. 關鍵操作與復…

Pandoc, Zotero, JabRef 管理論文引用,生成參考文獻 | 撰寫論文 paper

書接上回&#xff0c;使用 Obsidian, Zotero, JabRef, Pandoc, Markup-Markdown | 撰寫論文 paper 管理論文引用&#xff0c;生成參考文獻 TL; DR導出 bibliography 文件JabRefZotero 參考文獻引用語法reference-docLinks TL; DR 安裝 pandoc v3.6.2. 使用一下命令&#xff0c…

為AI聊天工具添加一個知識系統 之85 詳細設計之26 批流一體式 與數據提取器

Q843、批流一體式 統一數據處理框架 "批流一體式統一數據處理框架" 這一概念通常指的是一種將批處理&#xff08;Batch Processing&#xff09;和流處理&#xff08;Stream Processing&#xff09;結合在一起的數據處理架構。它的目標是提供一個統一的框架&#xff…

深入理解 `box-sizing: border-box;`:CSS 布局的利器

深入理解 box-sizing: border-box;&#xff1a;CSS 布局的利器 默認行為示例代碼 使用 box-sizing: border-box;示例代碼 全局應用 box-sizing: border-box;示例代碼 實際應用場景1. 表單布局2. 網格布局 總結 在 CSS 中&#xff0c;box-sizing 屬性決定了元素的總寬度和高度是…

CSDN原力值提升秘籍:解鎖社區活躍新姿勢

在 CSDN 這個技術交流的大舞臺上&#xff0c;原力值不僅是個人活躍度的象征&#xff0c;更是開啟更多權益與福利的鑰匙。最近&#xff0c;我出于自身需求&#xff0c;一頭扎進了提升原力值的研究中&#xff0c;經過多方探索與資料整理&#xff0c;現在就迫不及待地把這些干貨分…

計算機網絡——流量控制

流量控制的基本方法是確保發送方不會以超過接收方處理能力的速度發送數據包。 通常的做法是接收方會向發送方提供某種反饋&#xff0c;如&#xff1a; &#xff08;1&#xff09;停止&等待 在任何時候只有一個數據包在傳輸&#xff0c;發送方發送一個數據包&#xff0c;…

2024美團春招硬件開發筆試真題及答案解析

目錄 一、選擇題 1、在 Linux,有一個名為 file 的文件,內容如下所示: 2、在 Linux 中,關于虛擬內存相關的說法正確的是() 3、AT89S52單片機中,在外部中斷響應的期間,中斷請求標志位查詢占用了()。 4、下列關于8051單片機的結構與功能,說法不正確的是()? 5、…

【C語言入門】解鎖核心關鍵字的終極奧秘與實戰應用(三)

目錄 一、auto 1.1. 作用 1.2. 特性 1.3. 代碼示例 二、register 2.1. 作用 2.2. 特性 2.3. 代碼示例 三、static 3.1. 修飾局部變量 3.2. 修飾全局變量 3.3. 修飾函數 四、extern 4.1. 作用 4.2. 特性 4.3. 代碼示例 五、volatile 5.1. 作用 5.2. 代碼示例…

Kafka分區策略實現

引言 Kafka 的分區策略決定了生產者發送的消息會被分配到哪個分區中&#xff0c;合理的分區策略有助于實現負載均衡、提高消息處理效率以及滿足特定的業務需求。 輪詢策略&#xff08;默認&#xff09; 輪詢策略是 Kafka 默認的分區策略&#xff08;當消息沒有指定鍵時&…

c++ stl 遍歷算法和查找算法

概述&#xff1a; 算法主要由頭文件<algorithm> <functional> <numeric> 提供 <algorithm> 是所有 STL 頭文件中最大的一個&#xff0c;提供了超過 90 個支持各種各樣算法的函數&#xff0c;包括排序、合并、搜索、去重、分解、遍歷、數值交換、拷貝和…

2.2 實現雙向鏈表的快速排序

實現一個雙向鏈表的快速排序。 1>程序代碼 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h>…

力扣動態規劃-19【算法學習day.113】

前言 ###我做這類文章一個重要的目的還是記錄自己的學習過程&#xff0c;我的解析也不會做的非常詳細&#xff0c;只會提供思路和一些關鍵點&#xff0c;力扣上的大佬們的題解質量是非常非常高滴&#xff01;&#xff01;&#xff01; 習題 1.矩形中移動的最大次數 題目鏈接…

Gurobi基礎語法之 addConstr, addConstrs, addQConstr, addMQConstr

在新版本的 Gurobi 中&#xff0c;向 addConstr 這個方法中傳入一個 TempConstr 對象&#xff0c;在模型中就會根據這個對象生成一個約束。更重要的是&#xff1a;TempConstr 對象可以傳給所有addConstr系列方法&#xff0c;所以下面先介紹 TempConstr 對象 TempConstr TempC…

五子棋對弈

問題描述 "在五子棋的對弈中&#xff0c;友誼的小船說翻就翻&#xff1f;" 不&#xff01;對小藍和小橋來說&#xff0c;五子棋不僅是棋盤上的較量&#xff0c;更是心與心之間的溝通。這兩位摯友秉承著"友誼第一&#xff0c;比賽第二"的宗旨&#xff0c;決…

使用 HTTP::Server::Simple 實現輕量級 HTTP 服務器

在Perl中&#xff0c;HTTP::Server::Simple 模塊提供了一種輕量級的方式來實現HTTP服務器。該模塊簡單易用&#xff0c;適合快速開發和測試HTTP服務。本文將詳細介紹如何使用 HTTP::Server::Simple 模塊創建和配置一個輕量級HTTP服務器。 安裝 HTTP::Server::Simple 首先&…

在AI技術深度滲透的背景下,2025年傳媒互聯網行業的哪些細分場景和產品形態將迎來爆發式增長?

一、AI技術重構傳媒互聯網行業版圖&#xff1a;從底層邏輯到應用場景 近年來&#xff0c;AI技術已從實驗室走向商業化落地&#xff0c;而傳媒互聯網行業因其龐大的用戶基數、高頻交互場景和豐富的數據積累&#xff0c;成為AI應用的主戰場。根據華源證券最新行業周報&#xff0…

Docker Hub 鏡像 Pull 失敗的解決方案

目錄 引言一、問題二、原因三、解決方法四、參考文獻 引言 在云原生技術火熱的當下&#xff0c;Docker可謂是其基礎&#xff0c;由于其簡單以及方便性&#xff0c;讓開發人員不必再為環境配置問題而傷腦筋&#xff0c;因為可將其看作一個虛擬機程序去理解。所以掌握好它可謂是…

neo4j-community-5.26.0 create new database

1.edit neo4j.conf 把 # The name of the default database initial.dbms.default_databasehonglouneo4j # 寫上自己的數據庫名稱 和 # Name of the service #5.0 server.windows_service_nameneo4j #4.0 dbms.default_databaseneo4j #dbms.default_databaseneo4jwind serve…

unity實現回旋鏢函數

最近學習unity2D&#xff0c;想實現一個回旋鏢武器&#xff0c;發出后就可以在角色周圍回旋。 一、目標 1.不是一次性的&#xff0c;扔出去、返回、沒有了&#xff1b;而是扔出去&#xff0c;返回到角色后方相同距離&#xff0c;再次返回&#xff1b;再次返回&#xff0c;永遠…

【C++基礎】字符串/字符讀取函數解析

最近在學C以及STL&#xff0c;打個基礎 參考&#xff1a; c中的char[] ,char* ,string三種字符串變量轉化的兼容原則 c讀取字符串和字符的6種函數 字符串結構 首先明確三種字符串結構的兼容關系&#xff1a;string>char*>char [] string最靈活&#xff0c;內置增刪查改…