開發者工具 / AI

Kimi K3 vLLM OOM:2026 調參還是擴容?

MacHTML Lab2026.08.16 約7分鐘閱讀
Kimi K3 vLLM OOM:2026 調參還是擴容?

症狀:權重尚未完成初始化就 OOM,先不要調並發;模型已啟動、首個請求或高峰流量才 OOM,才從上下文、並發與 prefix caching 下手。
最快解法:驗證團隊先縮小負載完成最小復現;生產 Agent 團隊若在目標流量下仍沒有穩定記憶體餘量,就改用符合官方拓撲的多節點或臨時算力,不要無限犧牲業務參數。

這篇適合三類人:個人研究者與 POC 團隊,要確認現有資源是否只夠功能驗證;小型 Agent 團隊,要找出上下文、並發與 prefix caching 的穩定邊界;平台與生產交付團隊,則要判斷繼續改集群,還是直接擴展合規的雲端算力。

先記住一條判斷線: 權重載入期 OOM 是環境或模型容納能力問題;請求執行期 OOM 才通常屬於容量配置問題。兩者不能用同一套參數處理。

最後更新於 2026 年 8 月 16 日,資料核實自 vLLM Kimi K3 官方 recipe(2026 年 8 月 14 日更新)及官方發布文章。 官方頁面目前列出 Kimi K3 專用 Docker 映像、CUDA 13 建置、R580 以上 NVIDIA 驅動,以及生產流量的多節點建議。(官方 Kimi K3 recipe)

先分清 OOM 發生在哪一段

不要先看到 CUDA out of memory 就降低 --max-num-seqs。你要先看日誌位置、模型初始化狀態,以及第一個請求能否回傳。

觀察證據 比較可能的故障類型 第一個決策
權重載入、引擎初始化或 worker 建立期間 OOM 載入期 OOM 先核對映像、驅動、硬體拓撲與並行方式
模型完成初始化,但第一個長提示或多模態請求 OOM 執行期 OOM 先縮短測試上下文,再檢查 KV cache
低負載能回應,高並發或多輪 Agent 才 OOM 容量餘量不足 用同一組真實請求比較並發、上下文及快取策略
只有跨節點啟動或通訊時失敗 拓撲、互聯或驅動問題 不要把它當成單純顯存不足

目前官方 recipe 將 Kimi K3 描述為 2.8 兆參數的 MoE 模型,每個 token 啟用 16 個專家,模型上下文上限為 1M tokens;recipe 亦要求使用 Kimi K3 專用映像,NVIDIA 路徑需要 R580 以上驅動。這些是部署前提,不是你可以靠降低並發繞過的普通 KV cache 壓力。(官方硬體與部署要求)

如果模型根本沒有完成初始化,降低並發通常不會觸及主要問題。你最多只能證明啟動命令曾被執行,不能證明目前環境有能力承載服務。

個人研究者與 POC:先求流程跑通

這類團隊的目標是驗證 API、工具呼叫、推理鏈路及基本多模態流程,不是提前模擬生產吞吐。你的最小復現應該固定模型、映像與啟動方式,只縮小一個負載變數,避免同時改動太多設定。

建議順序如下:

  1. 保存完整啟動命令、容器標籤、驅動版本及 OOM 前後日誌。
  2. 先用純文字、短輸入及單一請求驗證 API 是否能完成初始化。
  3. 再加入工具定義、工具結果及多輪訊息,確認工具呼叫格式沒有另行造成失敗。
  4. 每次只改一項,例如上下文上限或測試並發,不要同時更換快取、並行與映像。
  5. 以「模型完成初始化、首個請求正常回傳」作為 POC 通過條件。

vLLM 官方發布文章的快速啟動示例包含 tensor parallel、--enable-prefix-caching、工具選擇及 Kimi K3 parser;官方 recipe 亦提醒工具呼叫偶爾可能出現 parser 不預期的格式,需要 schema 驗證與重試。這表示「能回應」與「Agent 流程完整可用」仍是兩個驗收層次。(vLLM 官方 Kimi K3 發布文章)

停止條件很重要: 如果你已確認是權重載入期 OOM,而且現有 GPU 拓撲不在官方支援路徑內,就不要繼續堆疊零散的顯存參數。轉到合規映像、驅動與硬體環境做對照驗證,通常比在不相容集群上反覆重建更快。

小型 Agent 團隊:保留前綴收益,再壓縮負載

多輪 Agent 服務的記憶體壓力不只來自單次提示。固定系統提示、工具定義、歷史對話、工具結果和多個同時進行的 session,會共同影響 prefill、KV cache 及 prefix caching 的收益。

因此,Kimi K3 開啟 prefix caching 後仍然 OOM,不代表快取一定應該關閉。官方說明 Kimi K3 的混合架構同時管理完整注意力層的 paged KV 與 KDA recurrent state;快取保留策略需要在重算成本與快取佔用之間取捨。官方文章也以每隔 32K tokens 的 checkpoint 作為 interval retention 範例,並說明設定為 0 可停用週期性 checkpoint,只保留 prompt-end state。這些是官方機制與例子,不是適合所有工作負載的固定答案。(官方 prefix caching 說明)

你的復測應該保留真實請求分布,而不是拿一個很短的提示證明「問題已解決」:

  • 固定同一批 system prompt、工具 schema、對話歷史及輸出上限。
  • 先降低並發,觀察峰值記憶體和請求穩定性。
  • 再縮短上下文,確認 OOM 是否只在長 prompt 出現。
  • 保留 prefix caching,調整 retention 策略後再跑同一批請求。
  • 記錄 cache hit、等待請求、重算比例、峰值記憶體及錯誤率。
  • 若降低負載後仍只剩極少餘量,將它標記為「可驗證」而不是「可生產」。

你應把命中率與記憶體峰值一起看,單看命中率沒有容量意義。對小型 Agent 團隊而言,真正可接受的結果不是「某次短提示成功」,而是同一組真實 session 在固定條件下,經過多輪請求仍沒有記憶體尖峰失控。

平台團隊:先查環境控制權,再談自構建

如果你管理的是既有 GPU 集群,真正的第一個問題不是「還有哪個參數能試」,而是你能否修改宿主機驅動、容器映像、節點互聯與並行拓撲。

官方 recipe 指出,Kimi K3 專用 NVIDIA 映像是 CUDA 13 建置,沒有 CUDA 12.9 對應標籤;若宿主機仍是 CUDA 12.9 與 R575 路徑,官方建議升級驅動,或自行從 K3 分支以 cu129 建構 vLLM。後者會把維護責任轉移到你的團隊,不能視為與官方映像等價。(官方 CUDA 13 與驅動要求)

環境控制能力 可接受做法 不應直接下的結論
可升級宿主機驅動及替換映像 先對齊官方 CUDA 13、R580+ 與映像 不要把舊映像啟動失敗當成容量不足
只能改容器,不能改宿主機 評估自構建的測試及維護成本 不要直接宣稱長期生產可支援
可調整節點互聯與 RDMA 按互聯條件選 all-to-all backend 不要按 GPU 數量簡單外推吞吐
無法修改網路、NCCL 或節點配置 先租用合規環境做對照 不要在現有集群上反覆高風險改動

跨節點部署還要核對 all-to-all backend。官方 recipe 建議 RDMA 使用 deepep_v2,NVLink 使用 flashinfer_nvlink_one_sided;對跨節點 NVLink 的 DEP 路徑,官方另建議 deep_gemm_mega_moe,並提醒它不相容於跨節點 RDMA。這些是拓撲相關選擇,不能抽離硬體互聯單獨複製。(官方多節點 backend 建議)

vLLM 的分散式文件也指出,單節點多 GPU、跨節點 tensor parallel、pipeline parallel 及 MoE 的 expert parallel,解決的是不同層次的問題。若單一節點放不下模型,才進入多節點並行;若是 MoE 生產流量,還要考慮資料、專家與張量並行的組合。(vLLM 分散式並行文件)

生產交付團隊:目標流量不足時就該擴容

生產判斷不能只問「模型能不能啟動」。你至少要把以下四項寫進容量測試:

  1. 預期上下文長度與長短請求比例。
  2. 同時在線的 Agent session 數量。
  3. system prompt、工具定義及歷史訊息的重複程度。
  4. 節點故障、請求重試及 rolling update 時所需的記憶體餘量。

如果只是單一使用者低負載測試,縮短上下文或限制並發可能足以讓服務穩定。但如果目標流量下,任何合理降載都會造成業務不可接受的等待、截斷或工具失敗,答案就不是繼續調參,而是擴展符合官方拓撲的環境。

官方發布文章展示過 16 張 NVIDIA GB300 上的 Kimi K3 單使用者效能:不使用 DSpark 為 118 tok/s,使用 DSpark 為 370 tok/s,約為 3.14 倍;這是特定 SPEED Bench 測試與拓撲,不能拿來推算你的集群吞吐。官方同時指出,tensor parallel 偏向互動延遲,但有效 KV cache 容量可能限制總吞吐;大規模 expert parallel 則可能受網路頻寬影響。(官方效能測試與拓撲說明)

高吞吐環境可評估 prefill/decode 分離。官方已描述以 TEP prefill 對 DEP decode 的驗證拓撲,並使用 NIXL 傳輸 KV;但這要求 KDA state、完整注意力 KV 及 block table 正確交換。若你的 RDMA、NVLink 或節點映像不一致,增加節點反而可能把 OOM 變成通訊與部署故障。(官方 prefill/decode 分離說明)

Kimi K3 Agent 的擴容觸發線

你可以用以下清單作為生產前的決策工具:

  • [ ] 權重載入已在官方映像、CUDA 13 及 R580 以上驅動環境完成。
  • [ ] 已保存 tensor、expert、pipeline 或 data parallel 的實際拓撲。
  • [ ] 已用同一組真實 Agent 請求比較低並發、短上下文與快取策略。
  • [ ] 已記錄每個 rank 的峰值記憶體,而不是只看平均值。
  • [ ] prefix caching 的命中情況已與重算時間及快取佔用一併觀察。
  • [ ] 高峰測試後仍保留故障重試、部署更新及流量波動的餘量。
  • [ ] 若現有集群不能達成以上條件,已在合規雲端環境完成對照復測。
  • [ ] 若只有降低業務上下文或並發才能避免 OOM,已把這項代價交由產品負責人確認。

只要最後三項無法完成,你就不應把「低負載啟動成功」寫成生產容量結論。

復測結果:調參、遷移與擴容的分界

以下三張表不要用來推算固定 GPU 數量,而是用來整理你的證據與下一步。Kimi K3 官方 recipe 目前列出 NVIDIA 路徑至少 8 張 GB300、AMD 路徑至少 8 張 MI355X 或 MI350X,並明確建議生產流量使用多節點;這些是官方列出的支援路徑,不等於任何硬體組合都能承載你的目標流量。(官方硬體拓撲與多節點要求)

復測結果 可下的結論 下一步
低負載完成初始化並能回應 最小驗證環境可行 保留環境,暫不宣稱生產就緒
合理降低並發後,在真實請求集下穩定 服務有可控降載邊界 進入監控,明確限制流量
只有極短提示才能運作 業務容量不足 評估遷移或擴容
權重載入期始終 OOM 可能是環境或拓撲不合規 先換合規環境,不要繼續微調並發
prefix caching 命中但快取造成壓力 策略與容量不匹配 調整 retention,重跑同一請求集
跨節點出現通訊錯誤 互聯或驅動鏈問題 先修正網路與映像一致性
團隊類型 可接受的降載 擴容觸發條件
個人研究者、POC 短上下文、單請求、少量工具 官方支援拓撲外仍無法初始化
小型 Agent 團隊 限制並發、保留高價值前綴、調整 retention 真實 session 下無穩定餘量
平台團隊 更換映像、驅動及並行配置 宿主機或網路層無法配合
生產交付團隊 只接受不影響核心 SLA 的降載 目標流量、故障恢復或更新期間仍 OOM
必須保存的項目 用途
容器映像與 vLLM 版本 追蹤更新後的行為變化
NVIDIA 驅動、CUDA 與 NCCL 鏈 排除環境不相容
啟動參數與並行拓撲 重建相同測試條件
請求樣本、上下文及工具 schema 保持前後復測可比
每個 GPU 的峰值記憶體與 cache 指標 判斷調參是否真的有效
測試日期與節點互聯方式 避免把不同硬體結果混在一起

如果你要在現有集群上大改驅動、容器或網路層,先閱讀部署與支援說明,把「環境不兼容」與「容量不足」拆成兩個變更項。需要比較週期性算力成本時,再查看MacHTML 的方案頁面,不要只用單次啟動成功作為租用或採購依據。

現有方案若是舊 CUDA 映像、無法升級的宿主機驅動,或只有單節點且沒有合適互聯,缺點通常不只是一次 OOM:你會同時承擔自構建維護、跨節點通訊不穩,以及每次 vLLM 更新都要重新驗證的成本。這時,短期租用一個可按週期交付的合規算力環境,先用同一組 Kimi K3 Agent 請求做對照,往往比直接改動生產集群更容易得到可核對的升級、遷移或擴容答案。

為 Kimi K3 vLLM OOM 找到合適的 Mac 算力

需要先驗證模型配置?使用 MacHTML 遠端 Mac,快速建立獨立環境測試記憶體需求與推理效能。 當調參仍無法穩定承載工作負載時,可按團隊需求升級 MacHTML 算力,減少反覆排查硬體不足的時間。 透過 MacHTML 控制台管理遠端 Mac 資源,方便重現 OOM、保留測試證據,並比較不同配置的實際表現。 無論是個人驗證、Agent 團隊還是生產交付,MacHTML 都讓您以彈性租用方式取得合適的 Apple Silicon 運算環境。

租用雲端 Mac mini
Apple Silicon 雲端 Mac