DeepSeek 於 8 月 21 日將 V4 接入 API 後,外界僅能觀察到其多模態能力的提升,而隨著權重與參考推理程式碼的公開,V4 的視覺處理鏈路首次得以完整剖析。圖片不再只是被簡單編碼,而是直接融入 V4 原有的 Token 序列,參與長上下文 Attention、MoE 路由及後續的 Agent 推理,甚至注意力視窗與專家路由都為視覺 Token 專門調整了規則。
視覺前端採用 32 層 ViT,隱藏維度 1024,16 個 Attention Head,patch size 為 14。圖片先被切分為 14×14 的 patch,每個 patch 對映為 1024 維向量,並使用二維 RoPE 編碼空間位置,這對網頁、GUI 等依賴空間關係的場景尤為關鍵。然而,V4 主幹的隱藏維度為 4096,視覺側僅 1024,且 patch 數量偏大,因此 DeepSeek 在兩者之間插入了一個 Aligner,將相鄰 3×3 的視覺特徵合併,經 9216→4096→4096 的兩層對映壓縮後進入主幹。這一設計相當於在視覺編碼完成後進行序列壓縮,前端保留高密度觀察,主幹前削減視覺 Token 數,配置中的 vision_max_n_token = 384 即指進入 V4 序列後的單圖預算。
視覺 Token 並非按普通逐行順序進入 V4,而是通過 build_image_block() 加入特殊標記並重新交織相鄰行,同時通過 COMPRESS_PAD_TO = 4 與主幹中 compress_ratio = 4 的壓縮層對齊。進入主幹後,merge_image_embeddings() 將視覺 embedding 寫入圖片佔位區域,文字與圖片進入同一 4096 維隱藏空間,但視覺 Token 的身份被保留——影像特殊 Token 位於詞表範圍之外,主幹可通過檢查 input_ids 判斷來源。
在 Attention 層面,V4 的普通區域性滑窗僅 128 Token,而一張圖片可佔近 384 Token,若按文字規則處理,同一張截圖可能被切碎。為此,程式碼加入 get_image_visible() 擴充套件圖片內部的可見範圍,並要求整段圖片在 prefill 階段一次寫入。MoE 方面,V4 擁有 256 個路由專家,每個 Token 啟用 6 個,視覺 Token 使用獨立的 bias_vl 調整專家選擇,而 Hash-MoE 層則跳過 Token ID 對映,根據隱藏狀態重新選擇專家。這種設計使視覺與文字共享主幹與專家池,但保留不同的可見關係與專家分配路徑。
視覺 Agent 的工作負載與普通聊天不同:每產生一次環境觀察,就需要重新執行圖片縮放、patch 化、ViT 與 Aligner,再送進 V4 做 prefill。任務執行時間越長,視覺編碼與反覆 prefill 的佔比越高。V4 支援超 100 萬 Token 上下文,但容量大不等於計算可忽略,連續幾十輪觀察後,歷史中會積累大量視覺狀態,且相鄰截圖可能僅區域性變化,卻仍被重新編碼,造成重複計算。這成為後續最佳化的重點方向,包括快取 ViT 中間結果、視覺差分、混合環境表示等。
DeepSeek 此舉已超出為語言模型增加圖片輸入,而是將環境狀態納入上下文定義。視覺資訊被壓進 V4 隱藏空間後,DFlash 需理解圖片邊界,MoE 需識別視覺 Token,長上下文需容納連續環境變化。當這套鏈路接上 Agent,模型形成“讀取環境—產生行動—工具改變環境—再推理”的完整迴圈。開放權重後,外部可從視覺壓縮、Attention 可見範圍、專家路由與多輪推理效率等層面直接研究。行業對多模態模型的評價標準,正從“能否識別圖片內容”轉向“視覺是否原生參與推理閉環”。