返回首頁

GitHub Repo

Ollama 0.34.4 將思考模型結構化輸出改為單次生成

新版延後施加格式限制,省去思考與答案之間的第二次預填充。工具呼叫組合與串流解析仍須驗證,官方尚未公布端到端加速數字。

Mattruffoni · CC BY-SA 4.0 · Image source
zh-Hant

Ollama 九月二十三日發布 0.34.4,將思考模型的結構化輸出改為單次生成,涵蓋 MLX 與 llama-server 路徑。這項更新直接影響本機資料擷取與代理流程:應用程式需要可解析的 JSON,推論引擎也必須正確分隔思考與答案。[發布說明](https://github.com/ollama/ollama/releases/tag/v0.34.4)

舊流程先讓模型自由生成,解析器偵測到答案內容後取消,再把思考結果放回提示,以格式限制重新生成。維護者指出,重啟會增加第二次預填充,丟棄跨越分界的輸出片段;MLX 還可能把多餘字元帶進 JSON。已有使用者回報,開啟思考後答案前方出現句點,令嚴格解析失敗。[實作說明](https://github.com/ollama/ollama/pull/18479)、[問題回報](https://github.com/ollama/ollama/issues/18441)

新版讓解析器提供思考結束字串,執行引擎在同一次生成中,等到分界後才施加格式限制。MLX 使用結構標籤,llama-server 則把結束字串包進由 schema 轉出的文法。提示只需預填充一次,也省去兩次請求間的計量拼接。[合併變更](https://github.com/ollama/ollama/pull/18479)

開發者仍透過 `format` 傳入 JSON Schema,並可用 Pydantic 或 Zod 驗證回傳資料。官方文件目前列明,Ollama Cloud 尚未支援結構化輸出;本次本機引擎更新不能直接外推至雲端服務。[介面文件](https://docs.ollama.com/capabilities/structured-outputs)

串流整合仍需把思考片段與答案內容分開。官方介面分別回傳兩者,前端可在答案開始後切換顯示,下游解析器則應只接收答案欄位。工程測試還須區分思考耗時與正式答案的生成耗時,才能看出這次流程調整的效果。[思考輸出文件](https://docs.ollama.com/capabilities/thinking)

單次生成也有邊界:模型可能在思考階段就結束,未必產生格式化答案;格式限制生效後,工具呼叫通常不能取代答案,Harmony 格式則有例外。團隊若同時使用思考、工具與固定 schema,應把這些組合納入升級測試。[實作說明](https://github.com/ollama/ollama/pull/18479)

發布說明未提供可比較的端到端測速。工程上值得追蹤的是完整 JSON 通過率、答案開始延遲及重試次數,並固定模型、提示與輸出上限,比較新舊版本。依流程變更推估,省下第二次預填充可能有利於長提示,但實際收益仍取決於負載;格式正確也仍須配合欄位內容的業務驗證。

來源

  1. Ollama v0.34.4 發布說明
  2. PR #18479:思考模型的單次生成結構化輸出
  3. Issue #18441:MLX 思考輸出在 JSON 前加入多餘句點
  4. Structured Outputs
  5. Thinking