本文定位與證據級別

證據級別:深度音訊轉錄整理。原影片沒有公開字幕;本文在使用者明確「深度」授權後,暫時下載公開音訊並以本機語音辨識轉錄。來源為 AI觀模者的影片〈建议收藏:大模型死循环怎么办!三招教你驯服本地大模型!〉,長約 15 分 59 秒。文中的介面名稱、模型版本與數字均以影片轉錄為基礎,語音辨識可能誤讀專有名詞;具體行為應以你實際版本的官方文件和日誌為準。

先分辨:你遇到的是哪一種循環?

  1. 工具重試循環:同一工具失敗後,模型反覆以相近輸入重試,沒有轉為文字回覆或要求更多資料。
  2. 思考黑洞:模型在推理階段不斷自我推演,遲遲不輸出正式答案。
  3. 輸出復讀:已進入正式回答,卻重複同一句、同一段或相似結構,直到耗盡輸出 token 或使用者中止。

三類問題可能同時出現,但止損位置不同:工具循環要在工具編排層處理;思考黑洞要約束推理預算和上下文;輸出復讀則要看採樣、最大輸出與重複懲罰。

第一招:為工具失敗加上硬性退出規則

影片指出,工具循環通常是模型得到失敗結果後仍不斷重試。最直接的處理是為每個工具與每個任務設定可觀察的上限:

  • 同一工具、同一或近似參數最多重試 1 至 3 次;
  • 達到上限後停止呼叫,改為文字說明失敗原因、已做嘗試和下一個需要使用者提供的資料;
  • 在框架或編排器層面實作計數器,比只依賴提示詞可靠;
  • 系統提示可作第二道保險,例如:工具呼叫失敗後最多重試一次,再次失敗必須停止重複呼叫並以文字回覆。

影片以 vLLM 類部署框架和 LM Studio 的 system prompt 位置作示例。無論用哪個前端,關鍵是保留工具名稱、輸入、錯誤類型、重試次數和退出原因;否則無法判斷是工具本身、權限、網絡、schema 還是模型決策出了問題。

第二招:限制思考長度,而不是無限加長

影片把簡單任務卻長時間推理稱為思考黑洞,建議設定 reasoning budget 或等價的推理 token 上限。它的立場是:思考鏈不是越長越好;對小型或 MoE 模型而言,過長推理反而可能讓答案品質、速度和穩定性變差。

影片提出的參考數字(非通用保證)

  • 轉錄中提到某 27B 推理模型可先試約 2048–4096
  • 某 35B MoE 模型可先試約 1536–3072
  • 7B/14B 等較小模型,影片建議最高約 2048
  • 不需要深度推理的聊天、資訊提取或格式轉換,可直接關閉 thinking 功能。

上述數字是影片作者的經驗值,不代表模型官方推薦。更安全的做法是以固定測試集跑三組小範圍設定,記錄完成率、平均延遲、平均輸出 token、工具成功率和復讀率,再挑選最穩定而非最長的設定。

第三招:從採樣、停止條件與輸出上限壓制復讀

  • 避免過度貪心解碼:影片認為推理模式下的貪心取樣可能令模型困在局部模式。可在小範圍內測試 temperature、top-p、top-k 等採樣設定,但一次只改一項。
  • 設定 stop sequences:把實際對話模板中需要終止的特殊標記放入停止序列,避免模型生成到下一輪角色或模板格式。具體字串取決於模型和 chat template,不能照抄其他模型。
  • 限制每次輸出長度:影片提醒 max tokens 是單次生成上限,不等於上下文長度。對一般回答可先使用保守上限;長文寫作才逐步增加。

上下文策略:保留最近內容,但不要無限制堆積

影片討論了超過最大上下文後的幾種處理:截斷中間、滾動窗口和到達限制即停止,並偏好滾動窗口。如果對話目標已改變,早期訊息可能比近期任務和工具結果更不重要。

不過,滾動窗口不應視為萬用解法。早期內容可能包含身份、核心約束、資料 schema 或安全規則。較好的工程做法是將內容分層:固定系統規則、可摘要的歷史、近期原文工具結果與當前任務;在壓縮前保留必要事實與驗收條件。

重複懲罰:小幅調整,不是越高越好

影片建議用 repetition penalty 壓低重複輸出,並以約 1.101.15 作為常見起點,提醒不要超過 1.20。作者認為過高可能打斷正常推理,導致跳步或答案殘缺。這是合理的調參方向,但數值仍與 tokenizer、模型、提示模板及採樣策略綁定;應把不重複和不漏關鍵詞一起評估。

更可靠的三層防線

  1. 編排層:工具 timeout、次數計數器、重複輸入偵測、總步數與總 token 預算、可中止的任務狀態機。
  2. 模型層:適當 chat template、thinking 開關、reasoning budget、採樣參數、stop sequences、最大輸出與重複懲罰。
  3. 觀測層:保存結構化日誌,包含模型版本、量化、模板 hash、提示、工具輸入輸出、token 用量、停止原因與錯誤碼。

只調模型參數通常只能減少發生率;真正令系統不會卡到無限的是編排層硬限制和可觀測日誌。

一個可實作的止損規格

每個任務可先設定 max_steps 為 12;同一工具的相同呼叫最多重試 2 次;每次模型輸出以 2048 tokens 作保守起點;只在需要規劃、除錯或程式推理時啟用思考模式。工具失敗兩次後,應停止工具呼叫並回覆錯誤摘要與所需資料;偵測到連續近似輸出時,應中止生成並要求模型以短格式重述結論。所有中止都要記錄原因、最後工具錯誤與 token 用量。

對影片提及模型與客戶端的查核限制

影片提到 Qwen 3.6、LM Studio、vLLM 以及多個 Agent 客戶端或前端。部分名稱在語音轉錄中不清楚,本文不把它們當作固定兼容清單,也不宣稱某個客戶端必然不會死循環。Agent 前端可預設一些保護參數,但仍要檢查其本地模型接入方式、工具協議、上下文管理和版本差異。

結論

本地模型死循環不是單一模型太笨的問題,而是模型、模板、採樣、工具回饋和任務編排共同造成的失控。影片最有用的主張是把問題拆開:工具循環加重試上限,思考黑洞加推理預算,正式復讀加停止條件與溫和重複懲罰。再加上滾動上下文與完整日誌,才能把偶發問題變成可重現、可修復的工程問題。

來源與限制

本文依公開影片的本機音訊轉錄整理,無官方字幕;模型名稱、版本號、UI 欄位與推薦數字可能受 ASR 誤差或版本變化影響。請不要把文章中的參數直接用於生產環境,應先在可回復測試工作負載上驗證。