1. Deepseek V3 是什麼?
Deepseek V3 本質上和 ChatGPT 一樣,都是 LLM(大型語言模型)。你可以把它想像成一個巨大的函數:
$y = F(x)$
其中,x 是你的輸入,每次運算 F 會產生一個字 y,然後把這個字接到 x 後面,再重新運算 F,生成下一個字。如此循環下去,直到模型生成代表結束的符號。
而你使用的 deepseek chat 介面,和 chatGPT 一樣,都是 LLM 經過一些中間層處理才會回傳到你看到的介面的,因此在後面討論到言論審查機制時會分成 API (或 deepseek chat 介面) 和模型本身兩個部分。
2. Deepseek V3 和 R1 的關係
R1 是 V3 的一個特化版本,主要針對「需要推理的場景」進行調整。
兩者的 inference 原理完全一致,都是 1. 提到的接龍,但差別在於輸出的格式:
- V3:直接生成答案。
- R1:在正式回答前,先生成一段「思考過程」,並用
<think>
標籤區隔,然後再生成回答內容。但對於模型來說,他都是不斷生成下一個字的過程。
至於 R1 是如何基於 V3 訓練的,相關細節可以參考官方論文(這段才是R1論文的精華XD)。
3. Deepseek 的成本節省在哪裡?
可以分為 訓練 和 inference 兩部分:
(1)訓練成本的降低
降低訓練成本的方法包括:
- 優化訓練資料:在過往的論文中已經不斷指出,高品質的訓練資料能讓模型達到相同 performance 的運算量降低,至於甚麼是高品質資料,在這裡先不討論,之後應該會有一系列文章說明。在論文中,也只提到了 Deepseek V3 使用了 14.8T 的 tokens(約等於 LLaMA3 的規模)。
- 平行運算效率:他們做了非常多工程上的事情想辦法榨乾GPU的性能,這部分論文中講的還挺詳細的,我對這方面不太熟悉,就不獻醜了,有興趣可以參考論文。
- 參數精度的壓縮:與傳統的 bfloat16(16 位浮點數)不同,Deepseek 採用了 fp8(8 位浮點數)進行訓練,這大幅減少了模型訓練過程的儲存需求、計算負擔、通訊成本。
(2)推理成本的降低
Deepseek 使用了 MoE(Mixture of Experts)架構、MLA、多 token 預測 方法:
- MoE 架構:模型參數量雖高達 671B,但每次推理只需要啟用相當於 32B 模型的計算量。
- MLA (Multi-head Latent Attention): 基於傳統 multi-head attention 機制的修改,主要目的是為了降低 inference 過程中需要紀錄過往 kv-cache 的開銷(簡單說就是在 inference 要放在GPU裡的東西變少了)。
- 多 token 預測(Multi-token prediction):傳統 LLM 每次只能預測一個字,但 Deepseek 可以一次預測多個字,大幅提升效率。
雖然這些技術確實節省成本,但實際需求仍十分高,比如僅推理就需要16張 H100 顯卡,訓練更是高不可攀,台灣的團隊大多玩不起。
4. 什麼是 MoE 架構?
MoE(Mixture of Experts)可以理解為「由多個專家組成的模型」,但這裡的專家指的不是針對不同任務的專業模型,而是將 LLM 的部分模組拆分成多個子模組。
- 每次生成文字時,只啟用部分專家參與計算,從而降低運算量。
- 但即使運算負擔減少,整個 671B 模型仍需完整載入 GPU(例如 16 張 H100 顯卡才能運行)。
- 此外,這種拆分需要在設計模型架構時就考慮,並非訓練完成後再進行拆分。
5. Deepseek 和 OpenAI 的關係是?
我個人所知,R1會有人說是站在巨人的肩膀上的原因是他是從deepseek-v3 train來的,這顆模型會說我是openai的ai助理。不過這個問題是無法知道是因為他們真的用了openai的模型做資料生成,還是因為爬網路資料的時候有混到一點類似描述的資料。
個人是覺得,就算他們用了openai的模型產資料,也不要就這樣抹殺 deepseek 團隊的努力,他們還是開發了一套成本比以往 open source 還要低的方法,就達到和o1接近的performance了。有興趣的人可以看一下deepseek v3和R1的論文,這還只是冰山一角,一定有很多沒講的insight、細節是try出來的。
6. 言論審查機制
言論審查機制各家LLM都有(可以試試看歐美敏感議題問問 LLaMA 或 ChatGPT),只是剛好這次是 “中國”模型,所以有些人特別敏感,不過我還是簡單說明一下以下幾點:
審查機制會不會訓練到模型裡面:簡單來說,不管哪家的LLM都會有類似的拒絕回覆動作,LLM 訓練最後,通常會進行一段人類價值觀對齊,這段有非常多種演算法,例如: DPO / RLHF / GRPO(deepseek 用的方法),不論哪種算法,目的是讓模型價值觀和回答方式區向於訓練者期待的方向,例如: 甚麼問題要拒絕回答、甚麼敏感問題要怎麼回答之類的。但再次重申,這種機制各家LLM都有,只是剛好這次是 “中國”模型,所以特別不適合台灣人的價值觀。
API 層級的保護:有些人使用 Deepseek 的 chat 介面時,應該有經驗模型吐了幾個字後突然整串消失,換成拒絕回答,這應該是觸發了 API層級的拒絕回覆機制。會有這層機制是因為即便模型本身有價值觀對齊,仍然不是100%完美的,API 平台仍會加一層防護,過濾危險關鍵字,避免不必要的問題。
此外,這不僅僅是 Deepseek 的做法,OpenAI 等公司也有類似機制,這種輸出幾個字就拒絕回覆的狀況和 ChatGPT 早期還蠻類似的。
7. 關於問 LLM 一些奇怪的問題
LLM 會回答甚麼問題,取決於訓練時看過了甚麼資料,所以別再問任何 LLM:
- 你有沒有使用 OpenAI 資料?
- 你用了多少 GPU 訓練?
這種問題了,拜託,他只會隨機回答你,沒有人會這麼無聊冒著 performance 降低的風險在訓練時混入這種資料,好嗎?
8. 蒸餾技術(Knowledge Distillation)的應用
Deepseek R1 的論文中提到了一種蒸餾技術:
- 知識蒸餾指的是從一顆模型學習另外一顆模型的能力的過程,在這裡會是由小模型學習 R1 推理能力的過程。大致上又可以分成兩種方法: soft label 和 hard label,前者指的是複製強模型的輸出機率分布,後者是直接學習文字輸出。
- 在這裡的蒸餾指的是 hard label,利用訓練好的 R1 模型生成高品質數據,然後用這些數據訓練小型模型,發現推理性能大幅提升。這說明,只要資料品質足夠,即便是簡單的微調,小模型也能具備強大的推理能力。
看到網路上有人說 R1 是從 ChatGPT 蒸餾來的,關於這種蒸餾方式算不算抄襲、偷竊: 照 OpenAI 條款,我記得說法是: 不可以拿來訓練與 OpenAI 競爭的模型,模糊地帶其實蠻大的,這就是等法院判決了。
不過我還是要說一下,向 ChatGPT 知識蒸餾其實這個方法已經行之有年了,非常多的開源模型、paper (包含台灣的實驗室) 都是用類似的方法從ChatGPT拿資料,再訓練到模型上,所以,要在道德上譴責的話,一起罵吧 XDD
9. 關於論文的有效性
Deepseek 在開源社區貢獻已經很久了,過往的論文技術含量非常高,而且也確實開源了模型權重,我是不認為他們會有任何造假的問題。
但如果您還有任何懷疑的話,這裡有個 project TinyZero,是用小模型常是復現 DeepSeek R1 Zero 的結果。在訓練過程中,小模型和 DeepSeek R1 Zero 一樣展現出 aha moment的現象。這種現象是指模型在訓練到一定階段後,開始展現出反思自身思考過程的能力。這應該只是初步的reproduce,有蠻多限制,離R1的效果還非常遠。不過這是個重要發現,除了初步證實R1訓練方法的有效性外,也代表也許小模型還有很多 reasoning 的能力還沒開發。
最後:對各家願意開源的公司致敬
LLM 是燒錢的技術,但仍有不少公司願意開源,這對整體發展是極大的貢獻。例如 Deepseek 團隊、Meta(LLaMA)、Mistral AI、阿里巴巴(Qwen)等。
希望大家能理性看待技術,別因地緣政治等因素否定這些團隊的努力。
希望以上內容能幫助大家在討論其他衍生議題前,更正確理解 Deepseek 的技術背景!有任何討論,歡迎一起交流。
如果覺得這篇文章不錯,給我點鼓掌吧,也可以追蹤我的 medium,之後會更新一些關於 LLM 訓練的分享~
參考資料:
DeepSeek-V3/DeepSeek_V3.pdf at main · deepseek-ai/DeepSeek-V3
[2501.12948] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning