Jeeves:透過推理與擴散草稿提升決策模型
概述
Jeeves 是一種具備推理能力的分類器,旨在提升「Jev 類型」決策模型的準確性。透過在最終決策前整合推理鏈,Jeeves 解決了決策模型中常見的權衡問題——即雖提供校準過的機率,但往往以低準確率為代價。
基於 Qwen3.5-9B,搭配 LoRA 與指標頭(pointer head),Jeeves 利用監督微調(SFT)與 CISPO,使模型能在決策前「思考」,進而在跨領域任務與 JevBench 難題基準上表現卓越。
性能基準
Jeeves 在複雜或未見情境中,顯著超越先前的決策模型如 Jev 與 Kev-9B。
準確性對比
| 基準 | Kev-9B | Jev | Jeeves |
|---|---|---|---|
| 測試整體(跨領域/保留) | 0.822 | 0.857 | 0.889 |
| JevBench 整體(231 個公開項目) | 0.715* | 0.866 | 0.935 |
| JevBench 難題(111 個公開項目) | 0.451* | 0.730 | 0.865 |
| PAWS | 0.763 | 0.788 | 0.875 |
| 保留的規則結構 | 0.896 | 0.885 | 1.000 |
| 對比性策略 | 0.900 | 0.963 | 1.000 |
註:JevBench 的 Kev-9B 數據基於 Kev-8B(Qwen3)資料。
權衡與限制
儘管 Jeeves 在準確性上表現出色,但推理過程帶來了延遲成本。
- 知識差距:在純知識基準上,Jeeves 落後於 Jev,例如 MMLU(0.793 對 0.900)與 MMLU-Pro(0.739 對 0.840)。
- 延遲:完整的推理鏈可能導致 p90 延遲高達 17 秒。若不進行推理,模型回應時間約為 0.3 秒。
- 可解釋性:由於訓練期間未使用語言一致性獎勵,推理鏈的可解釋性較低。
技術架構
決策機制
Jeeves 使用特定提示格式,將狀態、指令與選項分離。模型在 </tool_call> 標籤內生成推理鏈。推理區塊結束後,模型再次接收指令與選項,並以 <decide> 標籤結束。
隨後,指標頭透過計算 <decide> 標籤處隱藏狀態的查詢投影與對應選項 </opt> 標籤處隱藏狀態的鍵投影之間的縮放點積,得出決策。最終機率透過對這些分數進行 softmax 並以開發集擬合的溫度調整得出。
訓練流程
- SFT:在 Qwen3.5-9B 與指標頭上,使用 LoRA(r=16)進行兩輪監督微調,利用來自公開資料集與合成策略資料的 19,126 個問題。
- CISPO:使用 9,992 個強化學習問題,每題 8 次滾動,上限為 2,560 個思考 token。
- 校準:在開發集上進行最終溫度擬合,以確保機率校準。
擴散草稿器
為降低貪婪解碼的延遲,Jeeves 實作了一種受 Orthrus 啟發的擴散草稿器。此草稿器支援 Qwen3.5 的 Gated DeltaNet 層,允許遮罩 token 跨注意力至卷積後的鍵與值。
速度提升:
- 原始貪婪解碼(單一問題):109 tokens/sec
- Block 4 草稿器(單一問題):176 tokens/sec(提升 1.6 倍)
- Block 8 草稿器(單一問題):193 tokens/sec(提升 1.76 倍)
實作與使用
Jeeves 兼容 Jev API,並支援單一請求中的三種問題類型:
- noul:是/否問題,回傳校準機率。
- choice:多選題。
- score:根據提供之圖例進行評分。
延遲優化
使用者可透過以下選項調整速度與準確性的平衡:
think:切換推理開關。max_think:限制推理 token 數量(例如 768 token 可將中位延遲從 3.3 秒降至 2.0 秒)。nothink_threshold:若初始「無思考」信心超過此值,則跳過推理。
社群見解
開發者之間的討論凸顯了推理模型的高準確性與決策模型對速度的需求之間的矛盾。
"如果 p90 延遲高達 17 秒,那這有什麼意義?乾脆直接用 LLM。Jev 的美就在於它便宜又極快。"
其他貢獻者建議,採用混合模式——以 Jev 類模型處理簡單任務,以 Jeeves 類推理模型處理複雜任務——可能是最可行的生產路徑。部分使用者報告,在消費級硬體(如 M5 Pro)上,推理過程顯著緩慢,於特定諷刺檢測基準中,處理 100 篇推文需超過 30 分鐘。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch