AI News HubLIVE
站内改写

Show HN:Thaw – 執行中大語言模型的 Git 分支(分叉代理,跳過預填充)

Thaw 是一個開源工具,能夠將執行中的大語言模型(LLM)會話分叉到多個分支,跳過昂貴的預填充階段,實現 AI 代理的並行探索。在 H100 GPU 上,它實現了次秒級的分叉時間(中位數 0.88 秒),相比之下冷啟動需要約 340 秒。Thaw 支援 vLLM 和 SGLang,使用場景包括代理分支、強化學習訓練、並行編碼代理和會話遷移。

文章情報

工程師進階

要點

  • Thaw 提供了一種分叉原語,允許 AI 代理從執行中的會話分支,無需重做預填充。
  • 效能演示:在 H100 GPU 上首次分叉僅 1.16 秒,後續中位數 0.88 秒,相比冷啟動加速約 400 倍。
  • 應用場景包括代理推理分支、RL 後訓練(如 PPO、DPO)、並行編碼代理和跨 GPU/資料中心會話遷移。
  • 開源(Apache-2.0),與 vLLM 和 SGLang 整合,支援多種恢復模式(磁碟、預存 RAM、插槽熱交換)。

為什麼重要

這條新聞值得關注,因為Thaw 提供了一種分叉原語,允許 AI 代理從執行中的會話分支,無需重做預填充。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

Thaw 是一個為 AI 代理提供分叉原語的開源工具。它允許你像 Git 分支一樣,將一個執行中的大語言模型(LLM)會話快照並分叉到多個並行子程序,共享權重和 KV 快取,從而跳過昂貴的預填充階段。該專案已在 GitHub 上釋出,許可證為 Apache-2.0。

Thaw 的核心是一個預熱的子程序池(ForkPool),引擎只啟動一次,後續每次呼叫 fork_completions() 僅快照 KV 快取。在 H100 80GB PCIe GPU 上使用 Llama-3.1-8B 模型時,首次分叉耗時 1.16 秒,中位數分叉僅 0.88 秒,而冷啟動需要約 340 秒,加速比約 400 倍。所有分支在分叉邊界處位元一致且互異。

Thaw 的應用場景廣泛:代理分支允許在推理過程中將對話分叉為多個並行假設,選擇最佳結果;強化學習後訓練(如 PPO、DPO、樹狀 GRPO)將每個分支的預填充時間替換為記憶體複製時間,大幅降低成本;並行編碼代理可讓 8 個代理探索 8 種解決方案,而無需為每個分支支付完整的預填充開銷;會話遷移則允許在不丟失狀態的情況下,將即時推理會話遷移到其他 GPU、叢集或資料中心。

技術實現上,Thaw 組合了四個原語:凍結權重、凍結 KV 快取、凍結排程器狀態,以及將三者恢復到新程序中。它可以將完整的引擎狀態儲存為兩個二進位制檔案(.thaw 和 .thawkv),並透過雙緩衝流水線 DMA 從磁碟或預存記憶體中快速恢復。Thaw 支援三種恢復模式:磁碟模式(使用 O_DIRECT 繞過核心快取)、預存 RAM 模式(透過 mmap + cudaHostRegister 實現零複製路徑)、以及插槽熱交換模式(thaw serve 將 mmap 釘住,後續交換僅需純 PCIe DMA,對 8B 模型僅需 0.29 秒)。KV 快取快照是技術上最困難的部分——thaw 序列化塊內容、雜湊表和排程器檢視,使得父程序中快取的請求字首在子程序中立即命中快取。

Thaw 還與 vLLM 的睡眠模式整合(RFC #34303),支援在 GPU 記憶體釋放後透過 LLM.sleep(level=2) 和 LLM.wake_up() 組合實現位元一致的恢復。對於 70B 模型(TP=2),睡眠釋放 72.67 GiB/rank,喚醒恢復時間約 53.6 秒。

專案架構基於 Rust,包含多個 crate:thaw-core(檔案格式和 I/O)、thaw-cuda-sys(CUDA FFI 繫結)、thaw-runtime(編排流程,支援模擬 CUDA 以便在 Mac 上測試)、thaw-py(Python 繫結)、thaw-cli(基準測試工具)。Python 層提供 vLLM 和 SGLang 整合,以及引擎池和 OpenAI 相容 API 伺服器。

快速開始只需 pip install thaw-vllm[all],然後即可使用 ForkPool 進行分叉。更多詳情和基準測試方法請參閱專案文件。