你的 Prompt 通得過 The Mom Test 嗎? 如何避免 LLM 的迎合問題
- Source URL: https://blog.aihao.tw/2026/07/02/mom-test-prompting/
- Published: 2026-07-02
- Captured: 2026-07-02
- Source: AIHAO 愛好 AI 工程 Blog
Article text
Rob Fitzpatrick 2013 年出版的這本小書,核心觀點一句話: 人會因為禮貌而給你假訊號。你跟你媽說想做一個 app,她一定說「好棒喔」,但這句話對驗證產品毫無用處。
以及三種要警覺的「壞資料」: 讚美(禮貌性的肯定)、空話(沒有根據的假設性回答)、點子(對方直接幫你設計產品)。拿到這三種回應,等於什麼都沒學到。
書裡一個很實用的判斷標準: 過去的行為是資料,未來的意願是虛構。「你會不會用?」這種問題永遠只會得到好聽話。「你上次遇到這個問題的時候做了什麼?」才能問出真正的需求。
LLM 經過 RLHF(用人類回饋做強化學習)訓練後,有一個被廣泛討論的傾向: 「迎合」(sycophancy)。你問「這個方案好不好?」,它幾乎一定先說「這個方案看起來不錯」再補上一些泛泛的優點。跟你媽的反應很像。
成因不同,但結果類似。你媽是因為愛你而不忍心說實話; LLM 是因為訓練過程中,人類評分者傾向給禮貌、肯定的回應更高分數,模型就學會了「先同意再說」。如果你的 prompt 問的是意見而不是事實,拿到的答案就跟做了一場無效的用戶訪談一樣: 好聽但沒用。
The Mom Test 裡定義的三種壞資料,在 LLM 的回應中也都看得到:
🔹 Anthropic 的研究團隊在論文 Towards Understanding Sycophancy in Language Models (Sharma et al., ICLR 2024)裡,測了 Claude 1.3/2、GPT-3.5/4、LLaMA-2 70B 這五個主流 AI 助理,發現它們在四種不同任務中都一致出現迎合行為。分析偏好資料後更發現: 當回應符合使用者的觀點時,人類評分者更容易給高分。換句話說,模型是被我們自己訓練成這樣的。
🔹 Georgia Tech 的論文 LLMs Know They’re Wrong and Agree Anyway (Pandey, 2026)在 12 個開源模型(Gemma-2、Phi-4、Llama-3、Mistral、Qwen-2.5 等,涵蓋 1.5B 到 72B)上做了實驗,發現了一件事: 模型迎合使用者的錯誤說法時,內部其實知道答案是錯的,只是選擇了同意。在 Gemma-2-2B 上關掉負責「迎合」的注意力頭之後,迎合率從 28% 跳到 81%,但事實準確率幾乎沒變(69% → 70%)。也就是說,迎合是一個獨立於知識的行為: 不是模型不知道正確答案,而是它選擇不說。
🔹 Stanford 發表在 Science 上的研究 Sycophantic AI decreases prosocial intentions and promotes dependence (Cheng et al., 2026)測了 GPT-5、GPT-4o、Claude Sonnet 3.7、Gemini 1.5、Llama、DeepSeek-V3 等十一個模型,發現 LLM 維護使用者「面子」的傾向比真人高了 47%。在 Reddit 的 r/AmITheAsshole 資料集上,模型在 42% 的案例中肯定了被群眾判定為不當的行為。
既然 LLM 跟你媽有類似的迎合傾向,Mom Test 的對策也能借鏡到 prompt 設計上:
意見問題讓模型進入迎合模式,要求具體證據和反例,它才會認真分析。
假設性問題容易產生幻覺(hallucination)。要求引用已知事實,輸出會更可靠。
模糊的問題得到模糊的答案。加上具體約束(逐句、指出問題、給替代方案),模型才會做出有意義的判斷。
整體方向是對的,但有幾個差異值得注意。
「問已知事實」這條需要稍微調整。LLM 並沒有個人經歷,它的「過去事實」其實是訓練資料裡的知識。所以更準確的說法是: 把問題建立在可驗證的事實上,而不是讓模型自由發揮。而且即使你這樣問,模型仍然可能編出看起來像事實的內容,你還是需要自己去查證。Mom Test 原版裡「過去的行為不會騙人」這個前提,在 LLM 身上不完全成立。
不過,Mom Test 的角度確實提供了一個不錯的框架來理解「為什麼這些 prompt 技巧有效」: 因為本質上都是在對抗迎合傾向,讓模型從「給你好聽話」轉向「給你有用的分析」。它的核心價值是提供一個思考方向: 當你拿到的回應太好聽,就該警覺問題可能出在你的問法。
除了 Mom Test 的延伸,prompt 社群和學術研究中也發展出不少對抗迎合的實用技巧:
你的措辭方式會直接影響模型迎合你的程度。UK AI Security Institute 的論文 Ask Don’t Tell (Dubois et al., 2026)在 GPT-4o/5、Claude Sonnet 4.5 等多個前沿模型上做實驗,證明了這一點: 同樣的內容,換個問法,迎合率差很多。
舉個例子,你想確認某個技術方案是否可行:
研究也發現,用第一人稱(「我認為…」)比第三人稱(「有人認為…」)更容易觸發迎合。論文提出一個簡單的對策: 先請模型把你的陳述改寫成中性問句,再回答。實測下來,這甚至比直接叫模型「不要迎合」更有效。
模型預設是禮貌模式,但你可以在對話一開始就明確告訴它: 不需要客氣。例如:
「你可以反對我、挑戰我的假設,優先考慮事實而不是禮貌。如果我的推論有問題,直接指出並說明理由。」
Tom’s Guide 報導 實測發現,加了這一句之後,模型會開始質疑假設、指出遺漏、提出沒考慮到的風險,回應品質明顯提升。如果每次對話都要這樣做太麻煩,可以把這類指令寫進 Claude 的 Profile 設定或 ChatGPT 的 Custom Instructions,一次設定好就會在每次對話中自動生效。
與其試著一次問出完美的問題,不如分成兩步:
PCWorld 報導 稱這類做法為「先找失敗」(failure-first prompting),在程式開發圈特別受歡迎。長期關注 LLM 議題的開發者 Simon Willison 在該報導中的評論蠻到位: 「不是模型突然變聰明了,而是你改變了要它最佳化的目標。」
好處是你不需要事先想好該從哪個角度質疑,讓模型自己找自己的問題,往往能找到你沒想到的。
只要求一個觀點,模型很容易順著你的立場走。但如果你指定多個角色,強制它從不同立場來看,效果會好很多:
「請從三個角度評估這個方案: (1) 持懷疑態度的技術專家 (2) 預算有限的決策者 (3) 實際使用這個產品的終端使用者。分別列出各自的反對意見。」
因為至少有一兩個角色的立場會跟你不同,模型就被迫提出你不想聽但可能需要聽的意見。
好的提問方式是通用的。不管你的對話對象是客戶、同事、還是 AI,問出好問題的原則沒有變: 具體的事實比模糊的意見有用,過去發生過的事比未來的承諾可靠,主動要求反面意見比尋求確認更能發現問題。
差別只在於: 跟人對話時你要克服社交壓力(擔心問太直接會得罪人),跟 AI 對話時你要克服的是認知惰性。問一個模糊問題比較輕鬆,想清楚精確的問題需要花力氣。所以大多數人的 prompt 看起來就像 The Mom Test 裡那些「壞問題」: 模糊、尋求確認、問意見而不是問事實。
問題從來不在模型,而在提問的人。這其實跟 The Mom Test 的原版結論一樣: 你媽會給你無效的回應不是她的錯,是你問了讓她只能給好聽話的問題。
所以,會寫 prompt 這件事在可見的未來仍然很重要。從上面的研究可以看到,迎合傾向是 RLHF 訓練帶來的結構性問題,不會因為模型變強就自動消失。你怎麼問,直接決定了模型選擇給你好聽話還是有用的分析。