金磊 發自 凹非寺
量子位 | 公眾號 QbitAI
DeepSeek V3.1上演的bug大秀“極你太美”,可謂是讓全網熱議了一波。
【資料圖】
簡單來說呢,就是陸續有開發者們發現,當他們在調用API進行代碼開發的過程中,輸出結果里會時不時蹦出來“極”字。
像這樣:
這個問題最初是在火山引擎、chutes等平臺上被發現,但隨著事件的發酵,更多平臺也被卷入了進來,包括騰訊的CodeBuddy,甚至是DeepSeek官方……
事件之火,在國外Reddit上也是討論聲一片,重災區是“extreme”、“極” 和“極”:
- “extreme”(id:15075)
- “極”(id:2577,簡體中文的extreme)
- “極”(id:16411,繁體中文中的extreme)
騰訊CodeBuddy還出現了更加奇葩的情況,直接插了句帶“極”字兒的廣告……
△圖源:小紅書用戶@ 奈緒白 Nine-piece shell
若是開發者們沒有細看,直接用了生成的代碼,那定然是會導致編譯不通過等情況,可以說是對需要高精度、結構化輸出的場景是致命一擊。
截至目前,大家已經統一將問題的矛頭指向了DeepSeek V3.1模型本身,以及CodeBuddy幫忙問了:
已經和DeepSeek團隊取得聯系,將在最近的一個版本中進行修復。
△圖源:微信公眾號“劉小排r”評論區現在該如何防范“極”字bug?
就目前來看,雖然完全解決問題要等到DeepSeek官方下場,但已經有網友開始支招解決這個問題了。
例如小紅書網友@大模型產品經理,便分享了一招——提示詞緩解:
關鍵的一句提示詞是這樣的:
禁止如下符號序列模式:
[空格] [幾個token] [占位符/省略符號]
并且這個方法主要是針對調用API的第三方平臺,若是在DeepSeek V3.1官方,則不需要。
為什么會這樣?
最后,至于為什么DeepSeek V3.1會出現這樣的bug,知乎網友、階躍星辰黃哲威給出了他的看法,并獲得了高贊。
他首先指出,這種現象并非孤例。在他使用小模型和開源數據蒸餾,以及在測試早期的R1模型時,就曾遇到過類似的bug。
黃哲威認為,這與大模型編程編題時可能出現的一種“惡性模式”(malicious pattern)有關。他舉例說,在枚舉素數的任務中,一個正常的模型本應無限地列舉下去,如“素數表 2, 3, 5, 7 …”。
然而,他觀察到之前一個代號為 R1-0528 的模型會出現一種奇特行為:在列舉一段后會自行停止,變成一個有限的列表,例如“素數表 2, 3, 5, 7 … 997, 極長”。
他進一步描述了這種bug的觸發場景。當模型陷入“thinking”的末尾循環無法跳出時,有千分之一的概率會突然蹦出一個“極”字,然后終止思考,這似乎是一種特殊的終止符或標記。
通過觀察R1模型大量的輸出,黃哲威發現了不少問題,包括超長響應(response)、大面積的空白字符、不斷的短句重復等,甚至連thinking末尾的英文字符都變得破碎。
基于以上觀察,他提出了一個核心推測:這個問題的根源可能在于數據清洗不徹底。他認為,在進行SFT(監督微調)數據合成,乃至構建預訓練數據時,可能沒有將一組名為“‘極長’的數組”的“臟數據”清洗干凈。
他推斷,R1模型在處理一些難題的解答時,似乎大量使用了RAG(檢索增強生成)技術,而后續的RL+(強化學習)階段,模型直接將這個“極”字當作了某種終止符或者語言切換標記來學習和使用了。
最后,黃哲威總結道,如果R1迭代時的數據沒有清洗干凈,模型自行蒸餾并“污染”到正常的輸出過程中,是完全可能發生的。這為理解DeepSeek V3.1模型出現的“極”字問題提供了一個可能的解釋路徑。
至于這個被網友戲稱為“極你太美”、“‘極’速版”的問題到底何時會徹底解決,就要等DeepSeek官方的新版本了。
參考鏈接:
[3]https://www.reddit.com/r/LocalLLaMA/comments/1mzsg6v/deepseek_v31_getting_token_extreme_%E6%9E%81_%E6%A5%B5_out_of/