成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析 原創(chuàng) 精華

發(fā)布于 2025-4-21 11:21
瀏覽
0收藏

編者按: 這篇技術(shù)解析詳細闡述了 DeepSeek-V3-Base 的預(yù)訓(xùn)練階段所采用的關(guān)鍵技術(shù)。

文章重點介紹了三項核心技術(shù):Document Packing 技術(shù)有效解決了輸入序列長度差異導(dǎo)致的資源浪費問題;Fill-in-the-Middle(FIM)采用 PSM 框架和特殊 tokens,使模型具備上下文感知的中間內(nèi)容生成能力;基于 YaRN 的長上下文窗口擴展技術(shù)則通過頻率插值策略解決了位置編碼的擴展挑戰(zhàn)。

隨后,文章詳細描述了 DeepSeek-V3-Base 的預(yù)訓(xùn)練過程,包括數(shù)據(jù)構(gòu)建、訓(xùn)練策略和評估結(jié)果。

評估顯示,這些技術(shù)組合使 DeepSeek-V3 每訓(xùn)練 1T token 僅需 180K NVIDIA H800 GPU 小時數(shù),并在“大海撈針”測試中展現(xiàn)卓越的長文本理解能力,為后續(xù) RL 階段奠定了優(yōu)質(zhì)基座。

作者 | Shirley Li

編譯 | 岳揚

這是 DeepSeek 系列文章的第五篇,也是首篇聚焦 DeepSeek-V3 [1, 2] 訓(xùn)練流程的文章。

如下圖所示,DeepSeek-V3 的訓(xùn)練分為多個階段:

  • 產(chǎn)出 DeepSeek-V3-Base 基礎(chǔ)模型的預(yù)訓(xùn)練階段
  • 基于 DeepSeek-V3-Base,通過大規(guī)模強化學(xué)習(xí)(RL)分別訓(xùn)練出 DeepSeek-R1-Zero(無需監(jiān)督式微調(diào)冷啟動)和 DeepSeek-R1(含有監(jiān)督式微調(diào))
  • 利用 DeepSeek-R1 生成推理數(shù)據(jù),用于 DeepSeek-V3 的監(jiān)督式微調(diào)(SFT),接著是未在圖中展示的 RL 階段。

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 1. DeepSeek-V3 訓(xùn)練流程示意圖(由原文作者繪制)

本文將重點關(guān)注產(chǎn)出 DeepSeek-V3-Base 的預(yù)訓(xùn)練階段,闡述該階段實現(xiàn)高效預(yù)訓(xùn)練的關(guān)鍵技術(shù)。后續(xù)文章將涵蓋:

  • 群組相對策略優(yōu)化(GRPO)[7]
  • DeepSeek-R1-Zero 和 DeepSeek-R1 的訓(xùn)練細節(jié)
  • DeepSeek-V3 的后訓(xùn)練階段(監(jiān)督式微調(diào)與 RL 階段)

目錄

  • 技術(shù)背景:解析 DeepSeek-V3 預(yù)訓(xùn)練階段的相關(guān)技術(shù),包括 Document Packing,F(xiàn)ill-in-Middle 和 long context extension。
  • 預(yù)訓(xùn)練階段:詳解如何構(gòu)建預(yù)訓(xùn)練數(shù)據(jù)、強調(diào)一些關(guān)鍵的訓(xùn)練策略,并回顧評估結(jié)果。
  • 總結(jié)
  • 參考文獻

01 技術(shù)背景

本節(jié)將介紹預(yù)訓(xùn)練 DeepSeek-V3 過程中使用的幾種技術(shù),包括 document packing、Fill-in-the-Middle(FIM)和基于 YaRN 的長上下文窗口擴展技術(shù)。

1.1 Document Packing

要理解為什么需要 document packing,我們首先需要回顧一下 Transformer 模型是如何構(gòu)建輸入序列 tokens 的。

Transformer 模型默認情況下需要固定長度的 token 序列作為輸入,然而同一 batch 的文本輸入往往長度不同。為了適應(yīng)這種情況,文本輸入通常需要經(jīng)過以下預(yù)處理步驟:

  • 將所有原始文本輸入分詞為 token 序列
  • 將 token 序列截斷或填充到預(yù)定義的固定長度(max_seq_len):若原始序列過長則截斷,否則用特殊 [PAD] token 進行填充
  • 生成掩碼 IDs 使模型在訓(xùn)練時能忽略填充的 token

為了更清晰地展示這個過程,以下這個示例我們將使用 GPT-2 [10]的分詞器處理兩個句子:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

運行上述腳本后,會得到如下輸出,其中:

  • 第一句話被填充了 4 個額外的 padding token,體現(xiàn)在 input_ids 和 mask_ids 中;
  • 第二句被截斷,因此無需添加 padding token。

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 2. 填充操作示例(此圖由作者繪制)

上述截斷和填充方法雖然能讓模型處理不同長度的輸入,但當(dāng)輸入序列長度差異過大時(這在 LLM 訓(xùn)練中非常常見)會引發(fā)一系列問題:

  • 對超長序列,截斷可能導(dǎo)致有用信息丟失
  • 對較短的序列,填充過多 token 會造成計算資源浪費

因此,LLM 訓(xùn)練通常采用 document packing 技術(shù)來處理輸入序列。

更具體地說,如果給定若干長度不同的文檔,我們首先將其分割為較小的塊(chunk),如下圖所示(用不同顏色代表不同文檔):

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 3. 文檔分割(圖片改編自文獻[3])

隨后,我們將不同文檔的塊(chunk)進行拼接,以避免對長文檔進行截斷和對短文檔進行填充:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 4. 傳統(tǒng)拼接方式(圖片改編自文獻[3])

在上例中:

  • 第一個輸入(譯者注:圖 4 第一行)僅包含文檔 1 的 tokens
  • 第二個輸入(譯者注:圖 4 第二行)拼接自文檔 1 和文檔 2 的 tokens
  • 第三個輸入(譯者注:圖 4 第三行)拼接自文檔 2 和文檔 3 的 tokens
  • 第四個輸入(譯者注:圖 4 第四行)拼接自文檔3、4、5 的 tokens

這種方法雖能在一定程度上避免進行填充和截斷,但由于僅按數(shù)據(jù)中的相對順序拼接來自不同文檔的塊(chunks),無法控制最終輸入序列的構(gòu)建方式。 例如:文檔 3(紫色)被不必要地分割為兩部分,盡管其實際長度小于 max_seq_len,可以完整放入。

為了解決這個問題,文獻 [3] 提出了 Best-fit Packing 技術(shù),通過兩個步驟完全消除不必要的分割:

  • Step 1:將每個文檔分割為更小的塊。
  • Step 2:以一種智能的方式將這些塊(chunks)分組為訓(xùn)練序列,確保在不進一步分割任何塊(chunks)的前提下生成最少量的序列。

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 5. Best-fit packing技術(shù)(此圖改編自文獻[3])

1.2 Fill-in-the-Middle(FIM)

在傳統(tǒng)的自回歸生成中,只能以從左到右的方式訓(xùn)練模型,即模型只能根據(jù)前面的 tokens 預(yù)測下一個 token。然而在實際應(yīng)用中,模型常需根據(jù)上下文生成中間缺失的內(nèi)容。 尤其在代碼生成場景中 —— 我們常會給定輸入/輸出和部分代碼片段,要求模型填充中間邏輯,如下例所示:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

為了適配此類需求,文獻 [4] 提出了一種簡單有效的方法,稱為 “fill-in-the-middle”:即將文檔隨機切分為 prefix、middle 和 suffix 三部分,然后將 middle 部分移至末尾:

由于數(shù)據(jù)組織形式為 "Prefix-Suffix-Middle",該方法常被稱為 PSM 框架。實際實現(xiàn)時通過添加特殊 token 來標(biāo)記各部分的邊界:

其中:

  • <|fim_begin|>和<|fim_hole|>標(biāo)記 prefix 部分
  • <|fim_hole|>和<|fim_end|>標(biāo)記 suffix 部分
  • <|fim_end|>和<|eos_token|>標(biāo)記 middle 部分

以如下輸入為例:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

若需模型預(yù)測第二行代碼,可將該行作為 middle 部分,并構(gòu)造 FIM 輸入如下:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 6. PSM 框架示意圖(此圖由作者繪制)

此時模型的預(yù)期輸出應(yīng)為:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

1.3 基于 YaRN 的長上下文窗口擴展技術(shù)

現(xiàn)代 LLM 常需處理極長的提示詞(如整個代碼倉庫),但直接使用 128K 等長上下文窗口進行預(yù)訓(xùn)練并不現(xiàn)實。多數(shù) LLM 采用分階段漸進式擴展策略:先在較小的上下文窗口進行預(yù)訓(xùn)練,再分多個階段逐步擴展到更長的上下文窗口,從而大大降低訓(xùn)練成本。

例如,在 DeepSeek-V3 中,模型首先使用 4K 的上下文窗口完成預(yù)訓(xùn)練,然后再分兩階段擴展到 128K:

  • 第一階段:從 4K 到 32K(1000 steps)
  • 第二階段:從 32K 到 128K(再 1000 steps)

需特別指出的是,這種擴展不能通過簡單調(diào)大上下文窗口實現(xiàn),而需借助基于旋轉(zhuǎn)位置編碼(RoPE)改進的 YaRN(Yet another RoPE extensioN)技術(shù)對位置編碼進行修改。

關(guān)于 RoPE 的詳細介紹,請參閱我們之前的文章《「DeepSeek-V3 技術(shù)解析」:多頭潛在注意力機制(MLA)》。

RoPE 是一種相對位置編碼方法,其核心思想是通過使用復(fù)雜的旋轉(zhuǎn)嵌入修改 Query 和 Key,使得二者的內(nèi)積依賴于它們的相對位置:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

然而,由于余弦函數(shù)和正弦函數(shù)是周期性的,(pos_i, pos_j) 之間的內(nèi)積可能看起來與 (pos_i, pos_k) 之間的內(nèi)積相似,因此在固定 θ 的情況下,僅使用 1K tokens(即位置索引 1~1000) 進行預(yù)訓(xùn)練的模型在測試時可能會混淆,因為測試時遇到的位置索引(如 5K 或 10K)可能遠遠超出了預(yù)訓(xùn)練時的上下文窗口。

下圖展示了這種現(xiàn)象:當(dāng) 32K 上下文窗口的預(yù)訓(xùn)練模型在超出該窗口的位置測試時,困惑度(Perplexity)急劇上升

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 7. 困惑度與上下文窗口的關(guān)系(此圖由作者繪制)

那么,YaRN 是如何應(yīng)對這一挑戰(zhàn)的呢?

既然外推法(extrapolate)效果欠佳,YaRN 轉(zhuǎn)而采用插值頻率(interpolate the frequency)的策略。

假設(shè)我們有一個在 4 個 token 長度的輸入上訓(xùn)練的模型,希望將其擴展到 8 個 token,且基礎(chǔ)頻率 θ=0.5。

對于原始 RoPE,直接使用 cos(θ×pos) 和 sin(θ×pos) 對 Query 和 Key 進行旋轉(zhuǎn)即可。

而對于 YaRN:

  • 首先,計算擴展后的上下文長度與原始長度的比值作為縮放因子,本例中為 2。
  • 然后,生成新頻率 θ' = θ / 2 = 0.25。
  • 再使用新頻率對 Query 和 Key 進行旋轉(zhuǎn),即 cos(θ'×pos) 和 sin(θ'×pos)。

下圖對比了 RoPE 與 YaRN 的 cos 和 sin 值:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 8. YaRN 工作原理示意圖(此圖由作者繪制)

通過該圖可觀察到:

  • 在 RoPE 中,cos 和 sin 值會隨位置索引的增加而快速振蕩,導(dǎo)致擴展到更長的上下文時出現(xiàn)問題。
  • 而在 YaRN 中,原始的余弦和正弦函數(shù)通過頻率縮放被插值到擴展后的上下文長度(如藍色高亮區(qū)域所示),實現(xiàn)了更平滑的過渡,使得模型能夠更有效地處理長序列。

下圖展示了 DeepSeek-V3 在"大海撈針"(Needle In A Haystack,NIAH)測試中的表現(xiàn),表明其在 128K 以下的上下文窗口長度中均表現(xiàn)出色:

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

圖 9. DeepSeek-V3 的"大海撈針"測試結(jié)果(引自文獻[2])

02 預(yù)訓(xùn)練階段

本節(jié)將介紹 DeepSeek-V3-Base 的訓(xùn)練方法,重點解析數(shù)據(jù)構(gòu)建流程,并強調(diào)預(yù)訓(xùn)練階段中的一些關(guān)鍵策略。

2.1 數(shù)據(jù)構(gòu)建

數(shù)據(jù)規(guī)模與質(zhì)量對 LLM 訓(xùn)練至關(guān)重要。DeepSeek-V3 的預(yù)訓(xùn)練語料庫通過持續(xù)優(yōu)化策略構(gòu)建,具體優(yōu)化路徑如下:

  • 在 DeepSeek 67B [8] 中,訓(xùn)練語料采用去重-過濾-再混合策略構(gòu)建。首先對 Common Crawl 語料進行去重,隨后通過嚴(yán)格的文檔質(zhì)量評估標(biāo)準(zhǔn)進行過濾,最后通過數(shù)據(jù)再混合階段解決數(shù)據(jù)不平衡問題。
  • 在 DeepSeek-V2 [9] 中,通過以下方式擴展訓(xùn)練語料:1)增加更多中文數(shù)據(jù)及來自不同來源的高質(zhì)量數(shù)據(jù);2)通過優(yōu)化數(shù)據(jù)清洗流程,恢復(fù)大量此前在文獻 [8] 的策略中被刪除的數(shù)據(jù)。同時,通過改進基于質(zhì)量的過濾算法提升數(shù)據(jù)質(zhì)量。
  • 在 DeepSeek-V3 [2] 中,預(yù)訓(xùn)練語料進一步擴充,加入更多數(shù)學(xué)與編程樣本,以及除中英文之外的多語言樣本。

收集的預(yù)訓(xùn)練語料會通過前文提出的 Prefix-Suffix-Middle(PSM)框架結(jié)合 FIM(Fill-in-Middle)策略進行預(yù)處理,并應(yīng)用 document-packing 技術(shù)。

2.2 訓(xùn)練策略

原論文[2]對預(yù)訓(xùn)練參數(shù)進行了詳細描述,此處我們僅強調(diào)幾個關(guān)鍵點:

  • 長上下文窗口擴展:首先在 14.8T token 上以 4K 上下文窗口進行預(yù)訓(xùn)練,隨后通過 1000 steps 擴展到 32K 上下文,最終再通過 1000 steps 擴展到 128K 上下文。
  • 多詞元預(yù)測:如我們本系列前一篇文章《「DeepSeek-V3 技術(shù)解析」:多詞元預(yù)測技術(shù)(Multi-Token Prediction, MTP)》所述,DeepSeek-V3 采用了優(yōu)化版的多詞元預(yù)測機制,允許模型同時解碼多個詞元(tokens),以加速訓(xùn)練中的解碼過程。
  • 以 FP8 精度進行訓(xùn)練:DeepSeek-V3 采用混合精度計算提升效率,對部分計算使用低精度格式(如 8-bit 浮點數(shù)),在不過度影響精度的前提下減少內(nèi)存占用并加速計算。
  • 學(xué)習(xí)率的調(diào)度:在前 2K steps 中,學(xué)習(xí)率(learning rate)從 0 線性增長至 2.2e–4,并在 10T token 的訓(xùn)練過程中保持恒定;隨后在 4.3T token 的訓(xùn)練過程中按照余弦曲線下降至 2.2e-5;在最后 500B token 的訓(xùn)練過程中,前 333B token 保持恒定的學(xué)習(xí)率,剩余 167B token 進一步降至 7.3e-6。
  • Batch size 的調(diào)度:在前 469B token 的訓(xùn)練過程中,Batch size 從 3072 逐步提升至 15360,后續(xù)訓(xùn)練中保持恒定。

2.3 評估結(jié)果

下表對比了 DeepSeek-V3 與其他開源基座模型在不同任務(wù)上的表現(xiàn)。其中 DeepSeek-V3 在多數(shù)數(shù)據(jù)集上都取得了最佳性能,尤其是在數(shù)學(xué)與代碼相關(guān)的任務(wù)中表現(xiàn)突出。

需特別說明,得益于本系列文章中介紹的各項創(chuàng)新技術(shù),DeepSeek-V3 的優(yōu)異性能是在極高的訓(xùn)練效率下實現(xiàn)的。具體而言,DeepSeek-V3 每訓(xùn)練 1T token 僅需 180K H800 GPU hours,遠低于訓(xùn)練 72B 或 405B 稠密模型的成本。

「DeepSeek-V3 技術(shù)解析」:DeepSeek-V3-Base 預(yù)訓(xùn)練階段解析-AI.x社區(qū)

文獻[2]中的表 3

文獻 [2] 還通過全面的消融實驗驗證了無輔助損失函數(shù)的負載均衡、多詞元預(yù)測等關(guān)鍵技術(shù)。由于我們已在前文中討論過相關(guān)內(nèi)容,此處不再贅述。

03 總結(jié)

本文探討了 DeepSeek-V3 預(yù)訓(xùn)練策略中的關(guān)鍵創(chuàng)新,旨在提升效率、可擴展性與性能。由此產(chǎn)生的 DeepSeek-V3-Base 模型成為更高級推理模型(如 DeepSeek-R1-Zero 和 DeepSeek-R1)的基礎(chǔ),而這些模型又通過知識蒸餾反哺優(yōu)化 DeepSeek-V3。

除此前討論的架構(gòu)創(chuàng)新 —— 多頭潛在注意力(Multi-head Latent Attention)、DeepSeekMoE、無輔助損失函數(shù)的負載均衡及多詞元預(yù)測(Multi-token Prediction)外,本文還引入了包括 document packing、Fill-in-the-Middle(FIM)和基于 YaRN 的長上下文窗口擴展在內(nèi)的多項技術(shù)。

這些技術(shù)共同推動了大語言模型效率與可擴展性邊界的突破,為高性能 AI 模型設(shè)立了新標(biāo)桿。

參考文獻

[1] DeepSeek(??https://www.deepseek.com/)??

[2] DeepSeek-V3 Technical Report(??https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf)??

[3] Fewer Truncations Improve Language Modeling(??https://arxiv.org/abs/2404.10830)??

[4] Efficient Training of Language Models to Fill in the Middle(??https://arxiv.org/abs/2207.14255)??

[4] DeepSeek-Coder: When the Large Language Model Meets Programming — The Rise of Code Intelligence(??https://arxiv.org/abs/2401.14196)??

[5] DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intelligence(??https://arxiv.org/abs/2406.11931)??

[6] YaRN: Efficient Context Window Extension of Large Language Models(??https://arxiv.org/abs/2309.00071)??

[7] DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models(??https://arxiv.org/abs/2402.03300)??

[8] DeepSeek LLM: Scaling Open-Source Language Models with Longtermism(??https://arxiv.org/pdf/2401.02954)??

[9] DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(??https://arxiv.org/abs/2405.04434)??

[10] Language Models are Unsupervised Multitask Learners(??https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)??

Thanks for reading!

Hope you have enjoyed and learned new things from this blog!

About the author

Shirley Li

I am a Machine Learning Engineer working on building multi-modality models to solve real-world problems.

END

本期互動內(nèi)容 ??

?當(dāng)前位置編碼方案(RoPE/YaRN)已支持 128K 上下文,但人類書籍平均長度約 200K tokens。要實現(xiàn)真正無損的長文檔理解,您認為下一代位置編碼需要突破哪些理論瓶頸?

原文鏈接:

??https://medium.com/data-science-collective/deepseek-explained-5-deepseek-v3-base-86c078ed5504??


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦
主站蜘蛛池模板: 国产精品亚洲成在人线 | 精品久久久久一区二区国产 | 中文字幕在线视频免费视频 | 美国av片在线观看 | 国产激情视频网站 | 精品一二区 | 日韩欧美成人精品 | 精品久久久久久亚洲精品 | 91精品一区二区 | 日本精品在线播放 | 久久久久国色av免费观看性色 | 91亚洲精华国产 | 欧美一区二区三区一在线观看 | 亚洲一区在线日韩在线深爱 | 欧美1区2区 | 欧美精品日韩精品 | 成人免费观看男女羞羞视频 | 黄片毛片免费观看 | 国产精品一区二 | 成人影院在线视频 | 久久精品无码一区二区三区 | 亚洲精品成人av久久 | 色狠狠一区 | 黄色三级免费 | 婷婷91 | 在线视频一区二区三区 | 激情久久网 | 久久国产精品色av免费观看 | 精品国产欧美 | 精品久久久久久久久久 | 三区在线观看 | 国产福利视频在线观看 | 国产精品18久久久久久白浆动漫 | 亭亭五月激情 | 丝袜一区二区三区 | 综合久久av | 日韩中文字幕一区二区 | 国产精品日日摸夜夜添夜夜av | 成年人网站在线观看视频 | 国产成人在线免费 | 国产一级片免费在线观看 |