Teaching LLMs to reason like Bayesians
Teaching LLMs to reason like Bayesians
Bayesian teaching enables probabilistic reasoning in large language models | Nature Communications
白話解釋
想像你在跟一個旅行助理對話,每說一個新需求,他應該要越來越了解你。
普通 LLM:「我猜你想要這個,而且我不打算改。」
→ 不管你說什麼新資訊,推薦結果幾乎不變。
Bayesian LLM:「根據你剛說的,我更新我的判斷……」
→ 每輪對話都像偵探收集線索,越說越準。
動機
LLM 做不好「隨對話輪次更新信念」這件事。它更像是「一次性預測」機器,而不是「持續推理」機器。
問題核心:如何教模型學會在不確定中推理,而不只是記住答案?
傳統 SFT 只告訴模型「這一輪的答案是 X」,沒有教它「當我多知道一個資訊,信念應該怎麼變化」。
這篇的解法:拿 Bayesian assistant 的行為當示範資料去 SFT,讓模型學會「更新規則」本身。
兩種 Supervision 方式
第一種:Oracle teaching
直接知道使用者真實偏好,每輪都給正確答案
→ 教的是「正解」,但沒教推理過程
第二種:Bayesian teaching
不知道真實偏好,只看使用者的選擇去推測
前幾輪可能猜錯,但每輪都根據新證據更新信念
→ 教的是「正確的更新規則」⭐
流程圖
flowchart TD
A["🧑 模擬使用者\n有隱藏偏好(不告訴模型)\n每輪從 3 個航班中選一個"] --> B["📋 產生互動軌跡\n5 輪對話 / 每輪一個選擇"]
B --> D1["🔮 Teacher 1: Oracle\n直接知道使用者真實偏好\n每輪都給正確答案\n→ 教的是「答案」"]
B --> D2["🧠 Teacher 2: Bayesian\n不知道偏好,只看選擇\n每輪更新自己的推測\n→ 教的是「更新規則」⭐"]
D1 --> G["🔧 SFT Fine-tune\nGemma 9B / Llama 8B / Qwen 7B\n1 epoch, lr=2e-6"]
D2 --> G
G --> H["✅ 結果:Bayesian teaching 更好\n因為能泛化到沒見過的任務\n(Hotel / Web Shopping)"]訓練細節
fine-tune 三個中型開源模型:Gemma 2 9B、Llama 3 8B、Qwen 2.5 7B(full fine-tuning)
- learning rate:2e-6
- batch size:128
- max sequence length:2048
- 訓練:1 epoch
- loss 只算在模型回應上
驗證方式
- 模型是否從第 1 輪到第 5 輪持續變好(隨資訊累積越來越準)
- 模型決策是否更接近 Bayesian Assistant(兩者做出相同預測的比例)
- 能否泛化到沒訓練過的任務(Hotel / Web Shopping)