聊聊 DeepSeek
這是鼎叔的第一百二十三篇原創文章。行業大牛和剛畢業的小白,都可以進來聊聊。
歡迎關注公眾號《敏捷測試轉型》,星標收藏,大量原創思考文章陸續推出。
透過這些天的學習,鼎叔嘗試用大白話聊聊截止目前對於 DeepSeek 的理解,包括原理、優勢、侷限和擴充套件思考。
DeepSeek 的常識
DeepSeek 目前推出了三個方向的產品:
V3,對標 GPT4o,代表了基礎大模型的通用智慧水平。V3 在推理成本遠小於 GPT4o 的前提下,在一些領域達到甚至超越了 GPT4o。
R1,可以對標 OpenAI o1,代表最熱門的研究方向成果。API 呼叫收費價格不到 OpenAI o1 的 4%。普通使用者可以在https://chat.deepseek.com/R1 模型,否則就是使用 V3 模型。這裡使用,勾選 “深度思考” 就是使用
在上篇文章聊聊使用大語言模型的技巧說過,提示工程可以把目標拆解為多個步驟,讓機器循序漸進完成任務。而 DeepSeek 的 R1 則是自動補全這些拆解過程(推理),無需使用者指引。
注意,"你是誰"這個背景角色資訊,對 DeepSeek 推理結果影響是挺大的,就像我們寫使用者故事一樣,建議輸入清楚。角色會改變結果的表達風格和理解門檻。
R1 另外一大功能就是 RAG(聯網搜尋並融入推理過程中)。R1 可以根據使用者提問的關鍵詞去網上搜尋最新資料,然後生成特定風格的結果。R1 會反覆強調資訊的時效性,並能夠推斷搜到的資訊應不應該納入後繼的思考過程。
Janus,補充了多模態能力。這個本文暫不展開。
用純強化學習提高邏輯推理能力
DeepSeek 邁出了使用純強化學習(RL)提高語言模型推理能力的第一步,在不借助任何監督資料的情況下,發展出推理能力的潛在可能性。具體來講,使用 DeepSeek-V3-Base 作為基礎模型,並採用 GRPO 這種強化學習框架以提高模型在推理方面的自我進化。
在訓練過程中,DeepSeek-R1-Zero 展現出諸多強大且有趣的推理行為。經過數千個強化學習步驟之後,R1-Zero 在推理基準測試上表現出超強的效能。
R1-Zero 放棄了僱傭人類標註的監督部分,純粹採用強化學習,從而大幅降低了訓練成本。DeepSeek 為該模型提供一組數學、編碼和邏輯問題,並設定了兩個獎勵函式:其一用於獎勵最終正確的答案,其二用於獎勵思考過程中的正確格式。
DeepSeek 並不會對過程進行獎勵,因為它認為過程獎勵很容易被濫用(reward hacking)。DeepSeek 也不會搜尋所有潛在答案(AlphaGo 就屬於這一類),而是鼓勵模型一次嘗試多個不同答案,再根據兩條獎勵函式對其進行評分。
一款能夠自主開發推理與思維鏈(CoT)的模型就此誕生,DeepSeek 團隊甚至在其中觀察到了牛逼的 “頓悟時刻”:不需要教 AI 如何推理,只需提供充足的計算和資料資源,它自己就能掌握!模型僅僅只是為了得到正確的結果,就會自發地進行越來越長的思考!
思維鏈論文這裡也有介紹過:聊聊使用大語言模型的技巧 https://mp.weixin.qq.com/s?__biz=MzkzMzI3NDYzNw==&mid=2247484797&idx=1&sn=7ab567ff6cec2555bb9e61febdafd454&scene=21#wechat_redirect
把思維推理過程展示出來很有意思,它提升了模型的可解釋性,加強了使用者的信任感。
R1-Zero 也遇到了可讀性、語言雜糅等挑戰。最終的 R1 版本,就是將數千條 “高質量冷啟動思維鏈式資料”,輔以 V3 在寫作、事實問答和自我認知等領域的監督資料進行微調,充分考慮到各類提示詞應用場景,最終得到能力上與 o1 不相上下的強大推理模型。
當強化學習提示詞涉及多種語言時,思維鏈常常出現語言混雜(language mixing)的現象。
為了減輕這個問題,DeepSeek 在 RL 訓練過程中引入了「語言一致性獎勵」,計算 CoT 中目標語言詞彙的比例。OpenAI 最新產品推理中大量出現中文,可能就是缺乏這種一致性獎勵。
當前,R1 的推理過程正在產生大量高質量的訓練資料,而且這些資料是由使用者付費產生的,這種新模式可能徹底改變 AI 資料經濟的運作方式。
DeepSeek 的降本增效
這麼多年的行業激烈競爭,中國工程師團隊在摸爬滾打中琢磨出了各種極致的降本增效手段,效能最佳化永無止境,但主要就是三板斧,比較容易理解。
去 IOE 化就是當初國內團隊自研提效的經典成果。DeepSeek 的行動也是一個很好的剪影。它用到的主要的降本增效手段有:
採用 MoE 混合專家技術架構提高平行計算能力,採用 MTP 提高並行預測速度。
用 MLA 和 FP8 方法大幅壓縮訓練中的資料。
利用新的負載均衡方法和底層通訊最佳化,提升處理效能
這些技術突破手段在 V3 版本正式成熟,使得訓練成本低廉到令人震驚。這些創新也可能是為了克服 DeepSeek 手中的 H800 記憶體頻寬不足這一先天頑疾。
相對於國內其他公司的 “跟進型微創新”,DeepSeek 也是少有的在框架層面進行底層改動的團隊,在大模型這種訓練費用昂貴的領域,這種深度探索(正好也是公司名)可能會帶來大量金錢的損失,這也是 DeepSeek 難能可貴的地方。
MoE 混合專家技術架構
這是 DeepSeek V2 模型就引入的重大突破。MoE 架構是基於分治思想的深度學習模型,大幅提升平行計算規模,讓更多的計算單元同時處理不同的高負載資料任務。
MoE 分為兩部分,一部分是 “專家”,每個專家都是一個小的神經網路, 另一部分是路由,它決定每個 token 交給哪個專家來處理。DeepSeek 將模型拆分為多個 “專家”,只針對特定問題啟用必要的專家,以更細粒度方式對專業專家和通用型共享專家進行區分。
MLA 多頭潛在注意力
也是 V2 模型就引入的重大突破。推理過程中最大的一個限制就是記憶體佔用量:除了需要將模型載入到記憶體中,我們還需要載入整個上下文視窗。上下文視窗特別消耗記憶體,因為每個 token 都對應一個鍵及其對應值。DeepSeek 的 MLA 能夠壓縮鍵值儲存量,透過動態合併相鄰層的特徵,大大降低推理期間的記憶體佔用,使得系統能夠更快速地處理大量併發的使用者檢索請求。
訓練最佳化- FP8 混合精度訓練
對於訓練而言,V3 引入的 FP8 混合精度訓練框架是最引人注目的,首次在超大規模模型上驗證了其有效性。
FP8 就是用 8 個二進位制位來表示數字的格式,相比傳統的 32 位(FP32)和 16 位(FP16)格式,精度低了很多,但是佔用空間小,計算快。雖然引數是以 BF16 或 FP32 的精度進行儲存,但在計算時會降低至 FP8 精度。
FP8 可以帶來視訊記憶體的節省,有利於更好的並行策略。
就好像高爾夫球選手,球局開始時用木杆進行遠距離擊球,當球距離目標比較近,再依次用鐵桿和推杆進行精細化的擊球控制。犧牲一些精度來換取效率,在很多場景下已經夠用了。
在大模型計算中很容易出現累積誤差,導致最後的結果天差地別,DeepSeek 在每次計算一定次數後就轉移到高精度的計算程序中,降低累積誤差,這點很巧妙。
新的負載均衡方法和底層通訊最佳化
1 引入了新的自適應的負載均衡策略,儘可能降低對模型效能的負面影響。
2 增加訓練中的通訊開銷以換取更高的推理效率。
為了讓計算和通訊能夠儘可能同時進行,資料包在傳輸過程中儘可能減少空閒等待(就好像成熟的持續交付流水線),DeekSeek 引入了 “雙重流水線” 機制,在等待資料傳輸時,計算單元會馬上處理另一批資料。
DeepSeek 專門對每張 H800 上的 20 個處理單元進行了程式設計,專門用於管理跨晶片通訊。這在 CUDA 層面根本就做不到,所以 DeepSeek 不得不下探到 PTX,也就是英偉達 GPU 的低階指令集,類似於組合語言。這樣的最佳化深度堪稱瘋狂。
透過 “雙重流水線” 和 “跨節點通訊最佳化”,DeepSeek 減少了一半的計算等待和 20% 的通訊開銷。
創新的負載均衡策略,根據 MoE“專家” 的歷史利用率來動態調整任務接收量。當某個專家持續過載時,系統會自動降低接到新任務的機率,反之亦然。
MTP-多 token 預測目標
傳統大模型的序列生成過程,都是 token by token 的,每生成一個 token 都要頻繁進行記憶體互動和計算,容易形成訓練的瓶頸。
而 MTP 能一次生成多個預測的 token,保證生成內容時,能夠加速輸出,還能讓模型能夠更好地捕捉 token 之間的依賴關係,進一步實現訓練步驟密集化,把開銷壓得更低。
其中會有一些預測不準確,那也沒關係,打回重新預測即可,整體效率還是提升了。
類似的策略在 LLM 領域並不稀奇。語言模型的本質是文字接龍,不一定都要一個字一個字接龍,也可以一次輸出一句話,發現問題再回頭修改。
對主流頂尖模型的知識蒸餾
使用功能強大、價格昂貴的模型(教師)來生成資料,藉此提升其他功能稍弱、但價格更便宜的模型(學生)的效能,這樣的過程被稱為蒸餾。作為一類常規實踐,蒸餾技術能夠幫助 AI 廠商改進其小體量模型,順利擺脫對於高成本預訓練的過度依賴。
各家大模型的服務條款確實可能限制潛在競爭對手對自己模型進行蒸餾,但除了封禁 IP 和限速等手段,很難阻止這類行為,更何況閉源模型沒法證實這點,它本身就是個黑盒子。
當然,搭便車蒸餾這種行業普遍行為,會削弱大金主投入海量資金打造頂尖模型的意願。
DeepSeek 可能面臨的侷限性
跨硬體移植能力弱
PTX 通常是針對特定硬體型號最佳化的,除非專門編寫適配邏輯,否則很難在不同硬體間移植。
如果中國難以獲得先進的 NVIDIA 算力,那 DeepSeek 目前採用的眾多能力特性可能受到影響。
需要創造力的生成領域,效果一般
程式碼和數學題是 DeepSeek AI 驗證能力的最佳領域,非常適合自我強化學習的落地,這塊水準不在其他頂尖大模型之下。
但是創意內容生成就相對遜色了,開放性任務的表現一般。知識蒸餾過程雖然保障了推理和解題能力的水準,但這個能力能難被泛化到其他領域。
深度思考(CoT)不一定會提高正確率
深度思考雖然給人更靠譜的感覺,但是有可能把原本能答對的題給答錯了(尷尬),有句話說的好,大多數日常問題應用不到太聰明的模型。
更多延伸思考
DeepSeek 的組織文化
成功不是偶然。DeepSeek 的願景和文化令人頗有感觸。
從人才招聘上,最看重好奇心和對研究的熱愛,每個人有獨特的經歷和想法。創新型組織支援自下而上地把靈感變成實踐成果,如果靈感顯示出潛力,公司提供非常靈活的卡資源調配。
這是誰的戰爭?
DeepSeek 在中美的火爆,並不意味著這是中美之前的戰爭(雖然吃瓜群眾喜歡這麼想),本質上還是開源與閉源的路線戰爭。
一方是壟斷封閉的巨頭,藉助政府禁令護城河的巨頭,以及拿著天量投資的 AI 生態位佔領者,另一方是擁抱開源的創新公司和科學研究組織。
前者的爆款推出速度會越來越慢,因為要給商業化能力留足付費空間,從而傾向於雪藏新版本,保持在行業的技術領先優勢;
後者可以讓更多人基於現有成果進行創新,透過不斷試錯加速系統發展,甚至公攤計算成本,還可以獲得國際上普遍的好口碑,最終形成生態。
開源才是吸引人才的關鍵。
DeepSeek 會導致算力供應商崩盤麼?
深入思考下,模型訓練需要的算力大幅下降,長期來看對算力供應方是利好,因為門檻下降了,更多中小廠家和研究機構會加入到模型訓練中,算力依舊是繞不開的資源。科技巨頭也因此大幅降低經營成本(尤其是推理成本),迅速擴張受眾群體。
這也就是網上說的傑文斯悖論(Jevons)。
短期來看,DeepSeek 打破了之前 “AI 屬於有錢人的遊戲,越有錢就肯定越牛” 這種思維定勢,算力寡頭企業的 “昂貴” 泡沫估值可能會戳破,迴歸合理價格。
通往 AGI(通用人工智慧)之路
R1 在推理過程中,模型可能湧現出推翻自己當前方案的自我反思(Self reflection),並且發出情不自禁的感嘆(挺可愛的)!
自我反思是實現 AGI 的前提。參考鼎叔之前的文章:聊聊機器的情感和意識 https://mp.weixin.qq.com/s?__biz=MzkzMzI3NDYzNw==&mid=2247484372&idx=1&sn=a9e91066c7771d0fd0ef54fbece7a80b&scene=21#wechat_redirect
最後一個想法:AI 時代人類最需要什麼能力
當將來的 AI 透過強化學習取代人工標註,當 AI 的推理能力比人更強,做到以理服人,人類還有什麼能力是最值得堅守的?
正如工程界大佬 Kent Beck 所說:大模型讓他 90% 的技能價值變為零,但是剩餘的 10% 將會產生 100 倍的槓桿。
從研發效能的老本行來思考,鼎叔認為是 “問題域” 的精準定義能力,截止目前,AI 發展的技術都是圍繞著如何高效能地解決問題來進行,一切有章可循,AI 並沒有脫離 “工具” 範疇。
“定義好問題” 仍然是一個難題,很多時候,“決定做什麼” 比 “做出來” 更有意義;“使用者心裡想要什麼” 比 “使用者嘴上說的想要什麼” 更有價值;“哪個答案最匹配使用者的需求” 比 “無數的答案可供選擇” 更有吸引力。
此外,人類自身的創造力仍需保持和發揚。AI 的訓練,搜尋和推理依然是基於海量人類的知識積累。
如果長期沒有人類新的知識貢獻,會發生什麼?不少文章揭示了其負面效應:
大模型的回答將越來越了無新意,和時代脫節;
與此同時,劣質的 AI 生成內容會充斥網路中,汙染網路環境。現在我們感受還不深刻,是因為 AI 生產的汙染內容還不夠多。
相關文章
- 自有歪果仁為DeepSeek「辯經」:揭穿圍繞DeepSeek的謠言
- 前端使用大模型DeepSeek前端大模型
- 聊聊ContextContext
- 聊聊JWTJWT
- 聊聊JedisFactory
- 聊聊 NoSQLSQL
- 聊聊 VaporVapor
- 聊聊模板
- 聊聊ViewControllerViewController
- 聊聊ChatGPTChatGPT
- 聊聊 ReactReact
- Deepseek AI 與外掛Continue程式碼智慧助手AI
- 聊聊架構架構
- 聊聊 clean code
- 聊聊Docker映象Docker
- 好好聊聊原型原型
- 聊聊長膠
- 聊聊 Redis StreamRedis
- 聊聊SWIM ProtocolSWIMProtocol
- 聊聊 rel=noopenerOOP
- 聊聊Spring核心Spring
- 創造歷史!DeepSeek超越ChatGPT登頂中美AppStoreChatGPTAPP
- 簡單聊聊WebSocketWeb
- 聊聊flink的ParallelIteratorInputFormatParallelORM
- 聊聊jvm的CompressedClassSpaceJVM
- 聊聊flink的SourceFunctionFunction
- 聊聊flink的NetworkBufferPool
- 聊聊flink的RestClusterClientConfigurationRESTclient
- 聊聊flink的ConnectionManager
- 聊聊字元編碼字元
- 聊聊flink的FsCheckpointStorage
- 聊聊flink的RichParallelSourceFunctionParallelFunction
- 聊聊WS-Federation
- 聊聊eureka的ZoneAffinityServerListFilterServerFilter
- 聊聊arthas的ArthasBootstrapboot
- 聊聊arthas的HttpTermServerHTTPServer
- 聊聊PowerJob的AppInfoControllerAPPController
- 聊聊PowerJob的ServerControllerServerController
- 聊聊PowerJob的InstanceStatusCheckService