🦙較早收集於 8h

Qwen 3.5 聊天模板快取問題曝光

PostLinkedIn
🦙閱讀原文: Reddit r/LocalLLaMA

💡修正 Qwen 3.5 工具呼叫中的隱藏效能殺手—每回合節省 10k+ token(30字元)

⚡ 30-Second TL;DR

有什麼變化

聊天模板中空 <think> 區塊導致快取遺漏

為什麼重要

提升本地 Qwen 3.5 部署中工具代理的延遲和運算效率。對依賴推論引擎前綴快取的工作流程至關重要。

下一步行動

在除錯快取問題前,以一行修正修補 Qwen 3.5 聊天模板。

誰應關注:Developers & AI Engineers

關鍵要點

  • 聊天模板中空 <think> 區塊導致快取遺漏
  • 工具使用後重新處理數萬 token
  • 修正:在模板迴圈新增 'and reasoning_content' 條件
  • 跨 oMLX.ai、llama.cpp 和 OpenCode.ai 等代理重現
  • 官方 Qwen3.5 Hugging Face 儲存庫開 PR

🧠 深度解析

AI-generated analysis for this event.

🔑 增強重點摘要

  • 此問題源於 Qwen 3.5 的 Jinja2 聊天模板在處理工具呼叫(Tool Call)時,未能正確處理推理模型(Reasoning Model)特有的 <think> 標籤,導致在多輪對話中產生不必要的空標籤。
  • 快取遺漏(Cache Miss)的根本原因在於 KV 快取(KV Cache)的鍵值依賴於輸入提示的精確匹配,空 <think> 區塊的動態插入導致了提示詞雜湊值(Hash)的改變,迫使模型重新計算整個上下文。
  • 社群開發者指出,此問題不僅影響推理效能,還會顯著增加 API 呼叫的延遲與計算成本,特別是在長上下文(Long-context)場景下,效能損失可達數倍。
📊 競品分析▸ Show
特性Qwen 3.5 (受影響)DeepSeek-R1Llama 3.3
推理架構混合式推理原生推理基礎模型
聊天模板Jinja2 (含 )專用推理模板標準 ChatML
授權Apache 2.0MITLlama 3 授權
基準測試高效能/長上下文推理能力領先廣泛生態支援

🛠️ 技術深入

  • 問題核心:Jinja2 模板中的 {% if message.reasoning_content %} 邏輯判斷在工具呼叫後,因 reasoning_content 為空字串或 None,導致模板引擎渲染出 <think></think> 結構。
  • KV 快取機制:在 llama.cpp 等推理引擎中,KV 快取是基於 Token ID 序列的。即使是空標籤,也會被 Tokenizer 轉換為特定的 Token ID,從而導致快取失效。
  • 修正方案:將模板邏輯修改為 {% if message.reasoning_content or (message.reasoning_content is not none and message.reasoning_content != '') %},確保僅在存在實際推理內容時才渲染 <think> 標籤。

🔮 前景展望AI analysis grounded in cited sources

推理模型標準化將加速
此次事件凸顯了推理模型在聊天模板定義上缺乏統一標準,將推動社群制定針對 <think> 區塊的通用處理規範。
推理引擎將強化模板驗證機制
為避免類似的快取效能問題,主流推理框架(如 vLLM, llama.cpp)將在載入模型時增加對聊天模板輸出一致性的預檢查。

時間線

2025-12
Qwen 3.5 系列模型正式發布,引入原生推理能力與 `<think>` 標籤支援。
2026-03
社群開發者開始在 GitHub 與 Reddit 回報 Qwen 3.5 在工具呼叫場景下的效能異常。
2026-04
開發者定位問題根源為聊天模板的快取遺漏,並於 Hugging Face 提交修正 PR。
📰

AI 週報

閱讀本週精選 AI 大事摘要 →

👉相關動態

AI 策展新聞聚合。所有內容版權歸原始發布者所有。
原始來源: Reddit r/LocalLLaMA