返回首頁

GitHub Repo

Transformers 社群提出串流錯誤序列化修補,避免 JSON 解析失敗掩蓋原始異常

10 月 24 日的 Transformers 社群回報指出,serve CLI 的串流錯誤訊息若含引號、反斜線或換行,可能產生無效 JSON。社群已提出涵蓋三類處理器的修補,但截至查核時尚未合併。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Transformers 社群於 10 月 24 日回報,transformers serve 在串流生成失敗時,可能連錯誤訊息都無法正確傳給用戶端。問題出在錯誤事件的 JSON 組裝方式:若例外文字包含雙引號、反斜線或換行,直接插入字串便可能破壞格式,讓用戶端先遇到 JSON 解碼異常,掩蓋真正的生成失敗原因。問題回報

回報者使用主分支的 5.21.0.dev0,在 CPU 環境提供小型重現程式:將帶有 foo 參數名稱與雙引號的錯誤送入完成請求的串流處理器,再以 json.loads 解析事件內容,即出現解析失敗。這個案例直接測試錯誤傳遞路徑,無須下載模型;但它並未證明所有已發布版本或所有串流端點都受影響。重現程式與環境

同日提出的 PR #49958,將聊天完成、傳統文字完成及語音轉錄處理器改用 json.dumps 序列化錯誤物件,並加入特殊字元往返解析的回歸測試。修補保留 SSE 事件框架,重點是讓其中的 JSON 內容正確跳脫。截至查核時,提案仍為開啟狀態,頁面顯示 CI 等待維護者核准,尚不能視為已通過驗證的正式修復。修補提案

這項問題與自架模型整合有直接關係。官方將 serve CLI 定位為評測、實驗及中等負載部署的輕量伺服器,提供相容 OpenAI SDK 的介面,包含聊天、文字完成及語音轉錄端點。採用這類介面的應用,也需要可靠接收失敗訊息,才能協助使用者修正請求。官方文件

從工程角度推論,若原始異常被解析錯誤取代,日誌診斷與重試判斷都可能失去資訊。整合團隊可將含特殊字元的失敗事件納入相容性檢查,並追蹤維護者審查、測試結果及修補首次進入的版本;目前證據支持的是錯誤回報路徑缺陷,尚無資料顯示它會改變成功請求的模型輸出。

來源

  1. Streaming error events are not valid JSON when the error message contains quotes — Issue #49954
  2. Fix invalid JSON serialization for streaming error events in serve CLI — PR #49958
  3. Transformers Serve CLI 官方文件