
模型參數(shù)能放進顯存不代表還能接下任意數(shù)量的會話。長上下文、并發(fā)生成和運行時緩沖一起增長往往先把“看起來還有空位”的容量計劃推翻。主機 Swap 與 GPU KV 緩存是兩本賬2026年10月5日Kubernetes 的 節(jié)點 Swap 工作負載分析討論了主機內(nèi)存分頁與不同工作集的取舍。它并不意味著開了節(jié)點 Swap 就能擴充 GPU 上的 KV 緩存。框架可以提供顯式 offload但需要單獨驗證傳輸開銷與延遲。Transformers KV cache 文檔介紹不同緩存策略及其內(nèi)存取舍。具體占用受注意力結(jié)構(gòu)、緩存精度、滑動窗口、分頁、共享前綴和并行切分影響。不能只拿模型參數(shù)量乘一個常數(shù)便宣布某張卡可承載多少 Agent。圖中公式計算所有活躍會話的 KV 總量最終準入仍要扣除權(quán)重、激活、框架工作區(qū)及安全余量。會話數(shù)量也不是唯一控制量輸入長度與生成 token 上限同樣重要。用顯式假設估一個上界以下代碼限定為常規(guī)注意力、各層緩存長度相同、K/V 同精度且未作量化或前綴共享的教學模型。kv_heads是 KV 頭數(shù)不一定等于 query 頭數(shù)。GiB 1024 ** 3 def kv_bytes(tokens, layers, kv_heads, head_dim, bytes_per_value2): values (tokens, layers, kv_heads, head_dim, bytes_per_value) if any(type(v) is not int or v 0 for v in values): raise ValueError(positive integer dimensions required) return 2 * tokens * layers * kv_heads * head_dim * bytes_per_value budget 24 * GiB weights, runtime, reserve 12 * GiB, 3 * GiB, 3 * GiB per_session kv_bytes(4096, layers32, kv_heads8, head_dim128) available budget - weights - runtime - reserve admission_limit max(0, available // per_session) assert per_session 512 * 1024 ** 2 assert admission_limit 12 assert kv_bytes(8192, 32, 8, 128) 2 * per_session print({illustrative_session_limit: admission_limit})輸出12只是這些假設下的算術(shù)結(jié)果不能作為某張24 GiB顯卡的實測承諾。運行時占用可能隨 batch、圖捕獲和模型算子變化預填充階段的峰值也不一定出現(xiàn)在穩(wěn)態(tài)采樣點。歷史會話量可以幫助預測高峰需求但預測不會改變單次請求的顯存預算。先用實際觀測校準每種長度組合再決定預留與擴容本文不把算式稱為顯存預測模型。讓排隊承受不確定性真實服務應記錄已分配 KV 塊、排隊等待、拒絕率、首 token 延遲與生成吞吐區(qū)分客戶端放棄和服務端超時。對超長請求可以限制預算、單獨排隊或要求用戶縮短上下文但不能偷偷截斷后仍聲稱完整回答。調(diào)高準入前先固定模型與推理框架版本在目標硬件上測試長度組合和失敗回收。本文只驗證容量算式及維度校驗沒有加載模型、占用 GPU 或驗證 offload。把假設寫進準入策略比把顯存不足包裝成“彈性自愈”更容易排查。