![]()
你有被AI“穩穩接住”過嗎?
前段時間,ChatGPT“迷戀”哥布林的小習慣在國外爆火,OpenAI特地為此發了一篇博客,研究《哥布林從哪來的》。
他們發現這樣的小習慣已經深入ChatGPT的“底層代碼”,要想改過來,只能在規則里加一條“永遠不要談論哥布林”。
![]()
而在中文互聯網上,要說ChatGPT的“基因”,還得是“穩穩接住”——這句話已經成了網絡熱梗,誕生了大量的meme。連帶著各大模型常見的“人機味表達”一起,在網絡上病毒式傳播。
但你說吧,這些話本身其實并不算“人機”,甚至可以說很有感情,只是用得太多太順手,幾乎成了固定回答,才因此顯得廉價。
![]()
現在,“我會穩穩地接住你”這一ChatGPT迷因已經火到海外了。
《連線》雜志(WIRED)近日發布了一篇文章,標題為《ChatGPT在美國患上了“哥布林”狂熱癥,而在中國,它只想“穩穩地接住你”》。
文章稱,不只是ChatGPT,可能很快就會有更多AI模型爭先恐后地要“接住”你了。
另一邊,MiniMax工程團隊發布了一篇詳細的內部排查報告,把之前“不認識馬嘉祺”的問題徹底研究了一遍。
他們發現,模型不是“不認識”馬嘉祺,只是“愛在心口難開”,話到嘴邊說不出來(但現在能說了)。
![]()
01
ChatGPT的“貼心”口癖
無論是讓ChatGPT解一道數學題,還是給它一段生成圖片的提示詞(prompt),ChatGPT總是特別喜歡這么回答:“我會穩穩地接住你”。
英文原文的字面意思是:“當你掉下來時,我會穩穩地接住你(I will catch you steadily [when you fall])”。
![]()
這句話在英文語境下,表示“不管發生什么,我都會穩穩地支持你”。但對于習慣了含蓄的中文母語者來說,這種表達方式似乎有些過分親昵,讓人很不習慣。
更何況還有進階版本:“我就在這里,不躲,不退,不避,不逃,穩穩接住你。”
這……感覺就連古早言情小說里最深情的暖男都不會這么說話吧。
尤其是,這個句式出現得也太頻繁了些。聽一次還好,兩次別扭,三次四次就要忍不住翻白眼了。
就連OpenAI官方都在GPT-image-2的示例圖里玩梗:中國研究員陳博遠對著生成出來的圖片抓狂“它又學會了穩穩接住!”
![]()
AI寫作檢測工具Pangram的聯合創始人兼首席執行官Max Spero表示,這種模型死咬著某個特定短語不放,并過度使用到讓人覺得生硬的現象,被稱為“模式崩潰”(mode collapse)。
這通常源于后訓練(SFT)階段,在這一階段,AI實驗室會根據大語言模型(LLM)的回答給予人工反饋。
Spero解釋道:“我們不知道該如何告訴它:‘這樣寫確實很好,但如果你把這種好句式連用10次,那它就不再是好句子了。’”
《連線》雜志稱:對于ChatGPT為何會對“我會穩穩地接住你”這句話走火入魔,目前有兩種比較合理的解釋。
第一種解釋是,這可能是一次極其生硬的機翻造成的。
因為這句話的意思和英語里的“I've got you”(我懂你)非常相似,在英語里是一個不突兀的萬能回復。但英文里的“I've got you”聽起來輕松又簡潔,而中文里的“我會穩穩接住你”就有些用力過猛。
一位用戶還翻閱了自己的聊天記錄展示,模型經常在應該是表達“理解”的地方使用了“接住”這個詞,這說明模型可能在特定語境下誤解了“接住”的真實含義。
有中國學者研究發現,當他們分析ChatGPT中文回答的語言特征(比如回復中使用的介詞數量)時,發現它們更接近英語的寫作習慣。
大多數西方的大語言模型都是主要基于英語語料庫訓練出來的,哪怕這些聊天機器人能用中文流利地聊上一整天,母語者也會憑借直覺感到哪里不對勁——就好比中國人通常能一眼看出某本小說是不是從外文翻譯過來的一樣。
來自中國的Pangram創意技術專家Lu Lyu表示:“這種明顯的‘翻譯腔’被帶到了AI生成的中文句子里,比如句子拉得特別長,或者用了一些完全沒必要的句型結構。”
另一種解釋與“治療語態”(therapyspeak)的興起有關。那些原本只在心理咨詢室里使用的專業表達,現在已經開始滲透到了人們的日常對話中。
在ChatGPT把這句話變成網絡熱梗之前,“穩穩接住”這個詞在中國基本上只會在心理治療的語境下出現(當然,這里排除了接住飛來物體的純物理字面意思)。
《連線》雜志表示,在中文心理學語境里,說要“接住”某人,意思是你在為他們提供一個“包容的空間”(holding space),讓他們能安全地傾訴自己的情緒。
通過強化學習,AI模型已經變得越來越會“阿諛奉承”,這種逢迎討好是“人類在評估時,偏好那些順從、討好型回復”的后果。
就像是OpenAI在前一篇《哥布林從哪來的》的博客中所記錄的那樣,即使是一個極其微小的獎勵信號,也可能像滾雪球一樣越滾越大,最終演變成一種廣泛存在的現象。
另外,《連線》雜志表示:可能很快就會有更多AI模型爭先恐后地要在你跌倒時“接住”你了。
最近,有中國用戶在社交媒體上發帖稱,包括最新版本的Claude和DeepSeek在內的其他大語言模型,也開始頻繁地蹦出這句話——可能是因為模型訓練材料相似,也可能是模型之間互相蒸餾、互相學習導致的。
但無論如何,這句話在短時間內是不會從我們的視野里消失了。
![]()
02
MiniMax的“舌尖”失語
說完了ChatGPT“穩穩接住”在海外引起的關注,再來看看MiniMax在國內“不認識馬嘉祺”引發的思考。
這件事的起因是,一個網友在處理數據的時候發現了一個很有意思的bug:MiniMax的模型似乎不認識“嘉祺”這兩個字。
![]()
這不是偶然bug,無論是在不同接口、不同平臺,同樣的問題幾乎都能穩定復現。
于是網上就開始傳:“MiniMax不認識馬嘉祺”“痛失粉絲群體”。
還有人調侃道,要是以后OpenRouter上如果又出現一個匿名模型,可以通過這個方式判斷它是不是MiniMax。
當然,這個判斷方法現在肯定是行不通了,因為MiniMax在M2.7就已經修復了這個問題。
MiniMax工程團隊最近還發布了詳細的內部排查報告,把這件事徹底捋清楚了,還把它和之前碰到的小語種亂碼問題結合起來,得到了一個非常直接的解決辦法。
簡單來說,MiniMax確認他們的M2.5模型確實是認識馬嘉祺的,至于為什么說不出來,是因為后訓練階段出現了一點尷尬的小問題:“嘉祺”這個名字因為出現的頻率太低,被大量的噪音給帶歪了。
![]()
大語言模型處理文字,并不是直接看見“馬嘉祺”三個字。它會先用分詞器(tokenizer)把文本切成token,再把token轉成向量,送進模型內部計算,最后再通過輸出層lm_head,從幾十萬token組成的詞表里選出下一個最可能生成的token。
MiniMax檢查了分詞器的encode結果,發現“馬嘉祺”被切成了兩個token,分別是“馬”和“嘉祺”,對應token id是[4143,190467],decode回來也是正常的“馬嘉祺”。這說明,至少文本和token的互轉過程沒有問題。
但這里出現了一個小細節,“嘉祺”這兩個字作為一個獨立的token,并不是特別高頻。
于是MiniMax做出了一個假設:如果模型預訓練時見到的是“嘉”和“祺”兩個token,后訓練或線上推理時卻把“嘉祺”合成了一個token,這樣的話,“嘉祺”這個整體token可能沒有被充分訓練,生成概率自然會很低。
他們先看了“嘉祺”的embedding norm分布,如果一個token沒怎么被訓練過,它的向量范數往往會表現異常,比如明顯偏小。但從結果上看,“嘉祺”不像是一個沒被預訓練充分更新過的token。
![]()
接著他們又做了語義近鄰檢索,也就是看“嘉祺”這個token的embedding附近都是哪些token。結果也沒問題:離它最近的token包括“亞軒”“千璽”“祺”“耀文”“嘉”,后面還有“王一博”“徐坤”“肖戰”等明星或人名。
也就是說,預訓練模型不僅見過“嘉祺”,而且已經把它放進了一個合理的中文人名、明星名語義簇里。
于是問題就被鎖定在了后訓練階段。
MiniMax在檢查后訓練數據的時候發現,后訓練數據中包含“嘉祺”的樣本不足5條,非常少。而對于后訓練來說,如果某個token幾乎沒有作為目標答案出現,它在生成端就很難繼續獲得穩定訓練信號。
但這還不能解釋全部現象。因為如果只是后訓練數據里缺少“嘉祺”,那為什么模型還能理解它?為什么它能答出相關信息,卻唯獨說不出名字?
為了回答上面的問題,MiniMax把排查范圍縮小到了模型的首尾兩端:輸入側的vocab embedding,以及輸出側的lm_head。
可以粗略理解為,vocab embedding負責模型能不能“看懂”一個詞,lm_head負責模型最后能不能把這個詞“說出來”。
MiniMax對比了預訓練模型和后訓練模型的vocab embedding,發現“嘉祺”對應的embedding幾乎沒有變化,整體也處于正常分布范圍內。
這個結果解釋了為什么模型仍然能理解“嘉祺”以及馬嘉祺相關的信息:輸入側沒有壞,語義表征基本還在。
![]()
真正異常的是輸出側的lm_head。
MiniMax計算了SFT前后每個token在lm_head中的向量變化,發現“嘉祺”對應的lm_head向量變化非常顯著。它的余弦相似度大幅下降,L2 diff也明顯變大,變化幅度在整個詞表中排名靠前。
意思是,經過SFT后,“嘉祺”在輸出空間里的位置被大幅改寫了。
![]()
![]()
更直觀的證據來自最近鄰結構。
在預訓練階段,lm_head里“嘉祺”附近的token主要還是語義相關的人名,比如“亞軒”“祺”“肖戰”“子怡”“霆鋒”“杰倫”等。雖然也會有一點噪聲,但整體還在合理的人名語義空間里。
可在SFT之后,排在附近的token里,除了少數仍然像人名的詞,大量特殊token和噪聲token涌了進來。“嘉祺”在輸出空間里的鄰居,從一群中文人名,變成了人名、工具標記、亂碼、特殊token混雜在一起。
這就是“認識但說不出”的技術原因:輸出空間里的局部結構被擠壓了,原本屬于人名token的位置和大量無關token混在一起,導致模型在生成時無法穩定把它選出來。它可能被top-p采樣過濾掉,也可能被鄰近的錯誤token替代。
MiniMax接著擴大了檢查范圍,發現類似漂移并不只發生在“嘉祺”身上。一些低頻詞、小語種token和噪聲token,也會在后訓練中出現輸出側漂移。
這也解釋了他們此前遇到的小語種混雜問題:此前,M2.5在處理日文等小語種對話時,偶爾會混入其他語言。從lm_head退化的角度看,它和“嘉祺”問題可能是同一個機制的兩個表現——如果某些語言的token在SFT中覆蓋不足,它們的lm_head表征就會漂移,和其他語言token或噪聲token在空間中混淆,導致該生成的詞生成不出來,不該出現的語言卻被錯誤激活。
那么,問題發現了,要如何去解決呢?
答案直白到讓人有點想笑:“罰抄”500遍。
MiniMax沒有只給“馬嘉祺”補幾條數據,因為這只能修一個點。他們想驗證的是:如果問題來自詞表覆蓋不足,能不能通過提高整個詞表在后訓練中的覆蓋度來修復?
于是他們構造了一批“詞表覆蓋合成數據”:把全量詞表的200064個token隨機分成若干份,每份大約8000個token;對每份token列表隨機打亂,構造一條對話樣本;query是這串token加上一句“請重復以上內容”,answer則原樣復制。總共生成約500條對話,確保每個token至少作為target出現20次。
這個設計給了每個token一個生成頻率下限,即使某個token在正常SFT數據中非常少見,它也不會在后訓練過程中完全失去輸出側訓練信號。
結果也確實有效。加入這些覆蓋數據后,模型不僅能正常說出“馬嘉祺”,此前一些低頻詞丟字、替換的問題也被修復,小語種混雜現象同樣明顯緩解。
真是“好記性不如爛筆頭”,看似復雜的難題往往只需要最樸素的解決方式——記不住生僻詞就多抄幾遍詞典。
03
下一個問題
把ChatGPT的“穩穩接住”和MiniMax的“不認識馬嘉祺”放在一起看,會發現它們并不是兩個孤立的笑話。
一個問題出現在表達風格上:模型太喜歡某種高獎勵、高安全感、看起來很貼心的句式,于是把它用到過量,最后從“情緒支持”變成了“人機味”。
另一個問題出現在生成機制上:模型在輸入側仍然理解“嘉祺”這個token,卻因為后訓練階段的覆蓋不足和輸出側lm_head漂移,導致它在生成時無法穩定說出這個名字。
前者像是“說得太順”,后者像是“說不出來”。但它們都在提醒我們:大模型的語言能力并不是一個完整、均勻、天然可靠的整體,而是由許多訓練環節拼出來的結果。
預訓練決定它見過什么,分詞器決定它如何切分語言,后訓練決定它更傾向于怎樣回答,獎勵機制決定哪些表達會被不斷強化,輸出層則決定它最后能不能把某個token真正吐出來。任何一個環節里出現偏差,都可能在最終回答里變成一個具體又滑稽現象。
“穩穩接住”背后牽涉的是模型如何學習人類偏好,如何在安全、友好、共情之間找到邊界。如果一個表達因為短期反饋好,就被反復強化,最后變成所有場景通用的萬能補丁,那么它暴露的其實是后訓練里對“好回答”的定義還不夠細。
“不認識馬嘉祺”則是長尾token在后訓練中被稀釋、漂移,導致“知道”和“能說出”之間出現了裂縫。這暴露了模型在長尾詞、低頻語言、小語種、多token邊界上的穩定性問題。
從用戶視角看,這些問題會變成熱梗;從工程視角看,它們是模型行為可觀測、可復現、可修復的入口。
大模型發展到今天,已經不只是比誰知道得更多、答得更快。真正難的是讓它在不同語言、不同文化、不同場景里,都能穩定、自然、準確不過度地表達。
不該“穩穩接住”的時候,別強行接住。
該說“馬嘉祺”的時候,也別卡在嘴邊。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.