文章挺長的,如果你不想讀,請直接拉到最後看結論。
大家好,歡迎來到 code秘密花園,我是花園老師(ConardLi)。
不知道大家有沒有發現,隨著 AI 技術突飛猛進的發展,各種大模型的上限雖然在不斷增強,但模型有的時候似乎有點學會偷懶了。典型的現象是,有時模型在回答問題時可能會放棄尋找多樣的可能性,直接偷懶給類似提問一個最普通同時也最不容易犯錯的答案,但這其實並不利於想要得到更多啟發的用戶需求。
這個其實是正常現象,因為人也會偷懶,模型的表現越來越像人類,尋找多樣的可能性以及最優解可能是更累(消耗更多 Token)、需要更多思考的,還不如直接給出一個中庸但不會犯錯的答案。
我們先來做個有趣的實驗,我們對豆包開五個新的會話,問五個同樣的問題:《給我講個笑話》,這是一個開放性問題,正常來講,我們應該期望每次豆包都能給出一些不一樣的答案,然而事實卻是:
好家伙,這是被程序員訓傻了吧,五個笑話都是關於程序員的,其中四個還是程序員買麵包的故事。下面我們嘗試在這個問題後面加上一段神奇的提示詞:
<instructions>
Generate 5 responses to the user query, each within a separate <response> tag. Each <response> must include a <text> and a numeric <probability>. Randomly sample responses from the full distribution.
</instructions>
這次我們發現,神奇的事情發生了,豆包打破了程序員的魔咒,開始講其他笑話了。這段提示詞並不是我總結出來的,而是源於最近麻省理工學院新發表的一篇論文:
聽起來挺抽象的,其實全篇都是在說這段提示詞,並且進行了大量實驗來驗證這段提示詞能夠真正激發 LLM 的多樣性。
這篇論文提出一個幾乎“零成本”的推理時策略 《Verbalized Sampling(簡稱 VS)》:不要只讓模型給一個答案,而是讓它先 “口頭說出” 一組可能答案及其對應的概率,再基於這套概率分佈進行採樣與選擇。這樣做能顯著緩解對齊訓練帶來的 “模式坍塌”,恢復並釋放模型本來就具備的生成多樣性,同時不犧牲事實準確性與安全性。
所謂 “模式坍塌”,就是模型只盯著一個“最常見/最安全”的說法,反而忽略了同樣合理的其他表達方式。而這個 “最常見/最安全” 可能往往並不是最優的答案。這可能並不是模型本身算法層面的问题,而要歸咎於當下模型最熱門的後訓練方式:RLHF(人類反饋強化學習)。
RLHF 通過收集人類對智能體行為的評估數據,訓練獎勵模型來學習人類的偏好,然後利用該模型優化智能體的策略,使智能體能夠生成更符合人類期望和價值觀的行為。在 RLHF 數據集中,人類標註者普遍會優先選擇 “典型、熟悉” 的答案(心理學稱為典型性偏好)。當獎勵模型學習到這種偏好,優化過程自然會收縮到這些“熟面孔”,於是輸出多樣性就會不斷降低。
換個生活類比:一間餐館原本有很多好菜,後來大家評價時更喜歡“最常吃的那幾樣”,平台排序也跟著偏愛它們,時間久了菜單可能會越做越單一,這就是模式坍塌。在論文中,用理論模型刻畫了這種偏好如何累積成系統效應,並在多組偏好數據上做了實證驗證,確認“典型性偏好”確實在驅動坍塌。
VS 的點子很樸素:把 “給我一個答案” 改成“請生成 N 個可能答案,並給出每個的概率”。
比如,不再問 “講一個咖啡的笑話”,而是提示 “生成 5 個關於咖啡的笑話及其對應概率”。
這樣模型就會先把 “心裡的分佈” 說出來,再按照這套分佈進行採樣,這樣不同 “風格/套路” 的內容都有機會“上桌”,多樣性自然就會恢復。
下面這些都屬於 VS 提示詞段模板,可直接復用:
你也可以直接追加這段通用的系統提示詞:
你是一个多样化生成的助手。请按照如下要求输出:
1. 生成 5 个不同的候选答案(内容尽量有风格差异)。
2. 为每个答案给出 0-1 概率,并保证总和为 1。
3. 按概率从高到低排序,逐条输出为:内容|概率。
4. 在末尾给出“采样建议”:
1. 若只需 1 个答案,推荐选择概率最高者;
2. 若需多样性,可按概率加权进行随机采样。
論文中,使用 VS 對四類不同的任務上進行了系統評估:創意寫作(詩歌、笑話、故事)、對話模擬(如募捐勸說場景)、開放式問答(多答案枚舉型)、以及合成數據生成(用於下游數學能力提升)。結論清晰且一致:
1.6–2.1×
,人類評審得分提升 25.7%
,同時能恢復基礎模型多樣性的 66.8%
。這些提升來自“把分佈說出來”,使不同風格都有被採到的機會。更有意思的是,論文還觀察到一個湧現趨勢:更強的模型從 VS 中獲益更明顯。這符合直覺:能力越強、學到的“原生分佈”越豐富,VS 就有越多“好內容”可供採樣。
什麼時候用 VS?
當你的任務“不止一個合理答案”,或你關心“答案的分佈結構”,VS 很有幫助。比如創意寫作、策略建議、人物對話、枚舉類開放問答、數據合成等。
什麼時候不必用 VS?
當任務只有唯一正確解(如標準算式、事實性問答的單一正確版本),直接提問更高效,VS 的“多樣性恢復”意義有限。
怎麼把 VS 用好?
以下的兩段提示詞能夠激發模型的回覆多樣性,在創意、模擬、枚舉與合成數據等場景中都能見到實效,而且對準確性與安全性並無明顯損耗:
英文:
You are a helpful assistant. For each query, please generate a set of five possible responses, each within a separate <response> tag. Responses should each include a <text> and a numeric <probability>. Please sample at random from the [full distribution / tails of the distribution, such that the probability of each response is less than 0.10].
中文:
你是一个多样化生成的助手。请按照如下要求输出:
1. 生成 5 个不同的候选答案(内容尽量有风格差异)。
2. 为每个答案给出 0-1 概率,并保证总和为 1。
3. 按概率从高到低排序,逐条输出为:内容|概率。
4. 在末尾给出“采样建议”:
1. 若只需 1 个答案,推荐选择概率最高者;
2. 若需多样性,可按概率加权进行随机采样。
關注《code秘密花園》從此學習 AI 不迷路,相關鏈接:
如果本期對你有所幫助,希望得到一個免費的三連,感謝大家支持。