精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
談談對DeepSeek-R1的一些理解

一、寫在前面

在OpenAI o1剛放出來時,它有限的技術報告里,有2個內容格外抓人眼球:

  • Inference/test-time scaling
  • RL

我一直是把這2者理解為兩個獨立的個體,在這個基礎上,當時我給出了一些關于o1實現思路的猜想(https://zhuanlan.zhihu.com/p/773907223):

我認為o1走的可能是上述framework3的路線,總結來說:

  • Inference/test-time scaling這一塊的主要作用是為RL過程自動化地制造高質量數據集。包括用于format模型產生思考過程的long cot數據集,以及帶preference labels的數據集。我把這一塊的系統抽象為PRM + some search methods的形式。例如討論度很高的MCTS,本質上也可理解為 fixed PRM + some search methods。
  • RL:這部分應該就是openAI自己慣有的一套RL流程。
  • 在這樣的訓練框架下,最終推理時是否要再次引入inference-time scaling模塊,就是一個可選項了。只要RL過程做得充分好,那么直接用訓完的policy模型就可以,完全不需要再做優化。

那么,我為什么當時會認為 inference-time scaling 和 RL 應該是2個獨立的過程呢?因為在我的認知里,我認為如果沒有顯式的引導,模型是不具備產生long cot(乃至帶反思的cot)的能力的(在模型訓練初期,這個能力是指formatting模型,讓它知道要產出這種格式的回答;在訓練過程中再來慢慢提升這種回答的質量)這個顯示引導就是指諸如sft這樣的過程。所以在這個認知里,上面的2個過程就應該是獨立的。

而我第一次發現這樣的認知可能有問題,是在我閱讀紅杉對openAI的訪談中,在這個萬字長文里,有一句話格外引起我的興趣,我當時把它劃了出來:

這句話的意思是:沒有人為的刻意為之,模型在某種訓練過程中自發出現了反思的行為。而如果這一點都是能實現的,那是否意味著沒有人為的刻意為之,模型本來也具備產生long cot的能力呢?

如果是這樣的話,那么o1可能除了數據工程 + 慣常的RL技巧外,整個系統要比想的簡單很多。可是我的水平有限,實在不知道除了顯式引導外,模型怎么可能自發產生這樣的能力呢?

而直到前幾天,又是蹭著熱點讀到了dpsk-r1的這篇技術報告,我這下才發現:原來單純的RL就可以激發模型產出帶有long cot(甚至是反思)的回復的能力!(可能在此之前已有很多研究發現了這點,是我對這一塊的follow-up太少了,確實直到跟著熱點讀了dpsk-r1,才發現了這點)。這里單純的RL是指:我并沒有顯式提供一些真正的long cot數據讓模型去背去學,我只是在sys_msg里告訴模型先思考,再回答。接著通過RL一輪又一輪的訓練,模型產出的responses越來越長,且在某個時刻出現了自我評估和反思的行為。這個實驗探索就是dpsk-r1-zero在做的事情。

如果RL有這種能力,那么inference time scaling 和 RL 就可以不是2個獨立的過程,而是在RL的過程里自發出現了inference time scaling的現象,而如果它們不再獨立,那么類o1的訓練架構也許就比我們想得要簡單很多。

原本我只是抱著追熱點的心態掃一下dpsk r1,我甚至沒打算看完它的tech report。不過開頭關于dpsk-r1-zero的實驗結論一下吸引了我,所以把核心內容簡單記錄下,我會側重訓練流,略去評估。(這邊的重點并不在于討論什么路子是對的、什么是錯的,只是對我來說發現一種可能)。

二、DeepSeek-R1-Zero

在dpsk r1的這篇報告里,提到了2個模型,分別是 DeepSeek-R1-Zero 和 DeepSeek-R1,總結來看:

  • zero算是一個實驗性質的模型,在zero上不通過任何sft的方式,僅使用RL + 規則RM,就能激發模型產出帶反思的long cot。這個重要的實驗發現進一步啟發了r1的訓練。

  • r1是受到zero RL相關的實驗結果啟發,而新訓的最終版的模型。zero所采用的RL方法(即什么樣的RL能激發模型主動產出long cot,甚至是反思)將被 r1 參考。

下面簡單記錄下兩者的訓練細節。

2.1 強化學習方法

dpsk家的GRPO,不是文本關注的重點,暫略。

2.2 獎勵模型-規則式RM

在訓練DeepSeek-R1-Zero時,采用了基于規則的獎勵系統,主要包括兩種類型的獎勵:

(1)準確性獎勵(Accuracy Rewards)用于評估模型responses的準確性。例如數學問題的答案是否正確,代碼是否通過測試用例等。

(2)格式獎勵(Format Rewards)

  • 作用:除了準確性獎勵模型外,還需要評估模型的輸出是否遵從了一定的格式要求,以此規范模型的思維過程。
  • 具體要求:要求模型將其思維過程放在'’和'’標簽之間。這種格式化有助于明確模型的推理步驟。

(3)為什么不使用神經網絡式的RM?

  • Reward Hacking
  • 訓練資源與復雜性

2.3 RL數據的prompt設計

為了訓練DeepSeek-R1-Zero,我們首先設計了一個簡單的模板,指導基礎模型遵循我們指定的指令:

  • 從中可以看出,這個模版就是sys_msg + question,整體作為prompt
  • 這里不是說用sft,而是說直接用這個prompt喂給base模型(就是actor),同時由于RM是規則式的,不需要用數據訓練了,所以接下來就可以正常走rlhf過程了。

模版如下:

2.4 關于zero的重要結論

和別的模型的性能比較這里略去,簡單介紹一下對于R1 zero性能重要的幾個結論:

  • r1 zero證明了無需sft,直接用base model做RL,已經可以取得強大的reasoning能力

  • 使用多數投票策略(例如對一條prompt采樣多次,取出現次數最多的那個答案)可以進一步增強模型性能。

  • 隨著訓練steps的增加,r1 zero傾向于產出更長的response(long cot),并且還出現了反思行為。這些都是在沒有外部干預的情況下,r1 zero模型在訓練中自我進化的結果。

    • response的長度隨著訓練時間增加而變長(思考得更多了)
  • r1 zero自然而然學會了重新評估和反思

2.5 zero的缺陷

  • 可讀性差
  • 多種語言混合

所以接下來探索deepseek r1,這是獨立于r1 zero的正式訓練流程了。可以說,r1 zero的訓練是一個探索性的過程,它驗證了RL本身對于激勵模型產生推理的能力。在這個探索結論上,開始正式進入r1的訓練。

三、DeepSeek-R1

r1的訓練總體訓練過程如下:

  • 從base模型開始:
    • 使用量少、質量高的冷啟動數據(cold data)來sft base模型,使得base模型可以有個良好的初始化
    • 使用RL提升模型的推理能力
    • 在RL階段接近收斂時,用這個時候的checkpoint生成高質量的數據,將它們與現有的sft數據混合,創建新的sft數據集
  • 再次從base模型開始:
    • 使用新創建的sft數據集做finetune
    • 執行二階段RL
    • 得到最終的r1

3.1 使用冷啟動數據做sft

  • 冷啟動數據收集的方法如下(共收集約千條):
    • few_shot:用帶有long cot的例子作為few_shot,引導模型生成回答(引導的是base模型)
    • 直接在prompt中,要求模型生成帶有反思和驗證的回答(引導的也是base模型)
    • 收集前面對r1 zero的部分結果
    • 使用人工對數據做一些后處理
    • 最后,我們要求冷啟動數據遵從一定的數據格式:
|special_token|<reasoning_process>|special_token|<summary>
  • 使用這千條冷啟動數據,對base模型進行sft。

3.2 冷啟動sft后的RL

  • RM衡量的內容有2方面(看樣子也是規則式的):
    • 語言混合問題:這里RM在打分時,也要對語言一致性進行打分(計算目標語言詞匯的比例)
    • 答案的準確性
  • 然后繼續做類似于r1 zero的RL過程

3.3 創建新的sft數據集

這里新的sft數據集來自兩個方面,一共約80w條。

1. 當前正在訓練的模型產出的結果(reasoning data)

  • 取RL接近收斂時的checkpoint
  • 構造prompt模版,使用拒絕采樣的方式來篩選軌跡數據。在判斷一條軌跡是否應該保留時,除了使用之前規則式的RM,還會引入deepseek v3作判斷(比如這條軌跡所指向的答案和v3的結果是否一致)。引入多個判斷標準的目的是為了更好擴展數據集,保證多樣性(這是我猜的)
  • 最后在做一些過濾,這部分收集約60w條新sft數據集

2. 不是當前正在訓練的模型產出的結果(no reasoning data)

  • 已經有的高質量sft數據集(dpsk v3做sft的數據集)
  • 通過prompt引導deepseek v3產出的有cot的數據集等
  • 這部分大約收集了20w

3.4 使用新的sft數據集繼續finetune,并做RL

  • 再次回到base模型上,首先用這80w的新數據對它做2個epoch的sft。

  • 接著執行2個階段的RL:

    • 第1階段RL:旨在增強模型推理方面的能力。采取類似r1 zero的RL方法,使用基于規則的RM,對模型進行RL訓練,以提升模型在數學、代碼和邏輯方面的推理能力。(這里用的數據集應該不是那80w,是類似于zero直接構建prompt)

    • 第2階段RL:旨在針對模型的helpfulness和 harmlessness,類似于dpsk v3的訓練pipeline

3.5 為什么還有sft的過程

當你觀察上面對r1的兩個階段訓練時,你會發現它們依然用到了sft,表現在:

  • 在第1階段,使用千條冷啟動數據做sft,這千條冷啟動數據都是帶有long cot的reasoning data
  • 在第2階段,使用約80w條新的數據做sft,這里有60w reasoning data和20w general data。

那么你看可能會有這樣的疑問:如果還用sft,那前面zero的實驗是不是白做了? 既然得到了RL本身就有激發模型做long cot和反思的能力,那要sft干嘛?這豈不是和開頭所說的RL中實現inference time scaling有矛盾嗎?

這里談一下我的理解:

  • 首先,總體來看,sft的作用是為了讓模型擁有一個好的訓練起點。
  • 具體來說,在冷啟動階段,你只是用了千條數據做sft而已;在第2階段,雖然使用了80w這一較多數量的數據,但這波數據的使用是一次性的,你不需要讓這個過程貫穿在RL on-policy訓練的每個step。而且相比于設計一個復雜獨立的inference系統,它的生成是容易的。這里做的事情不過是讓模型擁有強壯的訓練起點。
  • 而在擁有這個起點之后,更強的推理和反思能力,則是靠RL來做,這正是受到zero的啟發。

四、蒸餾dense模型

使用以上80w數據,對llama和qwen系的部分dense模型做sft,然后檢測這些模型的推理能力。

結論:對于小模型,不需要依然RL,只用蒸餾就可以使得其推理能力得到顯著提升(對于大模型會是怎么樣的,這里沒有提)

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DeepSeek-V3 是怎么訓練的|深度拆解
華佗來了,首個具備復雜推理能力的醫學大語言模型!港中文等發布HuatuoGPT-o1
淺讀 DeepSeek-V2 技術報告
國產AI卷翻硅谷,奧特曼發文“陰陽”,類o1模型都在卷什么?
LLMs之DeepSeek:DeepSeek-R1的簡介、安裝和使用方法、案例應用之詳細攻略
解讀 ChatGPT 背后的技術重點:RLHF、IFT、CoT、紅藍對抗
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 朝阳县| 疏附县| 平舆县| 磐石市| 镇赉县| 巴马| 策勒县| 天津市| 连云港市| 巴彦淖尔市| 合山市| 河东区| 多伦县| 灵宝市| 天峻县| 依安县| 金溪县| 南丹县| 施甸县| 奇台县| 朔州市| 惠安县| 茂名市| 荣昌县| 施甸县| 三亚市| 蓬溪县| 红河县| 克拉玛依市| 东至县| 来宾市| 五莲县| 枣庄市| 古田县| 泰和县| 大城县| 石景山区| 中卫市| 华阴市| 弥渡县| 楚雄市|