🌏 Read this article in English
Agent 在自我反思時,輸出分佈的熵值(Entropy)會瞬間降低 3 到 4 倍。
你寫了一個 Agent,它開始自我修正。字數變少了,語氣變硬了。這讓 User 覺得被說教——但論文並未測量這些使用者感受。我們目前只能確認:當模型知道自己正在生成回答時,其輸出分佈的集中度會顯著提高。這種從被動預測(Simulation)到主動執行(Enaction)的轉變,背後是模型內部的「輸入驚喜度」(Input Surprise)在因果調控。
核心提問:模型如何區分生成與輸入?
語言模型在預訓練階段(Pretraining),本質上是一個被動的統計預測器。它的目標很單純:給定前文,猜下一個字是什麼。在這個階段,模型沒有動機去區分這段文字是來自人類、還是來自它自己——因為對它來說,那都只是「文本」。
然而,經過微調(SFT)與偏好優化(DPO)等後訓練步驟後,情況發生了本質的改變。Post-trained 模型被賦予了角色(例如:Assistant),並學會了在對話中回應人類的期望。
這篇論文要釐清的關鍵是:我們一直以為 AI 只是在做文字接龍,但實際上它可能已經內建了一套「自我監控」機制。 如果模型能認出自己在說話,這意味著我們可以透過干預這種「自我認知」來控制模型的穩定性——但這目前仍是一個待驗證的研究假說。論文明確指出,他們尚未測試複雜 Agent 情境(如工具輸出、檢索文件與自身生成交錯)下的行為。
核心機制:為什麼成立?
要理解這個機制,我們可以把語言模型想像成一個通訊系統。
在預訓練階段,這台設備只是個收音機。它接收所有頻道的訊號,根據統計規律補上下一句。它不關心這段話是誰說的,也不關心自己是不是發射源。
但在後訓練階段,這台設備升級為建立頻率鎖定的通訊器。當它開始發送訊息時,它會啟動一套內部的「自我審視」系統。這套系統的核心指標叫做輸入驚喜度(Input Surprise)。
Definition: 輸入驚喜度是指模型根據其先前的預測,對最近實際輸入 token 的「意外程度」的內部表示。具體而言,它是 S = − log P(實際輸入 token);而 entropy 是整個預測分布的期望 surprise,兩者不能互換。
當模型在生成自己的回答時,它其實是在遵循一個已經確立的意圖(Intent)。因為這個意圖是它自己之前確立的,所以對於接下來的內容,它的預期是非常明確的。這種「明確性」反映在內部神經元上,就是低驚喜度。
關鍵因果鏈如下:
- 模型生成第一個 token 前,已經在內部確立了回答的主題意圖(Topic Intent)。
- 當它繼續生成後續文字時,因為這些文字符合它自己確立的意圖,所以「輸入驚喜度」極低。
這是一種自然出現的低熵模式。請注意區分:這是模型在後訓練過程中自然演化出的行為特徵,而不是研究者透過 activation steering 人為施加的「內部介入」。我們觀察到的是模型原生的反應。論文中關於「為履行角色而演化」的目的論解釋尚未被證實,我們只能觀察到現象。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
def measure_entropy(model, tokenizer, input_ids):
# 關閉訓練模式,確保梯度不更新
model.eval()
with torch.inference_mode():
outputs = model(input_ids)
# logits[:, t] 對應第 t+1 個 token 的預測分佈
logits = outputs.logits[:, :-1, :]
input_ids_next = input_ids[:, 1:]
# 計算每個 token 位置的熵: H = -sum(p * log(p))
entropy = -torch.sum(probs * torch.log(probs + 1e-9), dim=-1)
return entropy.mean()
# 此函式僅示範單一序列的 token-level entropy 計算。
# 要重現 on/off-policy 比較,需確保 prompt、chat template 完全一致,
# 並對比「自身生成文本」與「外部輸入文本」的熵值差異。Post-trained 模型在生成第一個輸出 token 之前,就會收斂(Collapse)對即將生成內容的主題不確定性。這是一種隱式的自我認知,而非顯式的指令遵循。
Key Insight: 證據邊界與部分因果
在深入實務應用之前,我們必須先釐清這項發現的證據邊界。這不是銀彈,而是一個可解釋的神經機制片段。
- 相關性 vs 因果性:論文證實自身文本與低熵高度相關,且 surprise steering 有部分的因果效果。但完整的形成機制仍未確定,surprise 僅解釋了部分效果。
- 實驗範圍限制:
- 跨模型比較使用 20 個 prompt
- 自然對話使用 30 個主題
- 意圖實驗使用 8 組 prompt
- surprise 實驗另有 chat 與 web contexts 論文的結論基於這些特定設計,尚未驗證複雜 Agent 情境。
- 隱式 vs 顯式:模型可以明確報告其回應是否被預填(Prefilled),但這種顯式識別透過與隱式識別不同的神經迴路路由。這表明「知道自己說了什麼」和「感覺到內容不對勁」是兩個獨立的思維慣性。
真正重要的結果:3-4 倍的熵值差異
研究團隊在多個模型家族與規模上進行了嚴謹的實驗,得出了幾個可證偽的具體發現。這些數字是測量出來的客觀事實。
1. On-policy vs Off-policy 的 3-4 倍斷層 當模型生成自己的回答(On-policy)時,其輸出分佈的熵值是閱讀外部文本(Off-policy)的 3 到 4 倍低。這意味著,當模型在「說話」時,它選擇下一個字的範圍比它在「閱讀」時窄得多。
這與前述的 3-4 倍差異是兩種不同層次的現象。當模型單純在「閱讀」時,它甚至能區分文本來源:閱讀「自己生成的文本」的熵值,會比閱讀「其他模型生成的文本」更低(這被稱為 Self-advantage)。這個識別能力隨模型規模增大而單調增長。在 2B 參數的小模型中,這種效應幾乎不存在;但在 70B 的大模型中,熵值差異可達 0.1–0.4 nats。
3. Prefill 實驗:意圖衝突導致熵值上升 如果我們強制插入一段與模型當前意圖不符的文本(Prefill),模型的輸出熵值會顯著上升。這證明模型確實有一個「緩存的意圖」(Cached Intention),當外部輸入違背這個意圖時,內部的驚喜度機制就會被觸發,導致模型變得更加不確定。
你的判斷:適用邊界與實務意涵
這個發現對我們設計 AI Agent 系統有直接的啟示,但也存在明確的適用邊界。
適合的情境:
- 穩定性要求高的對話系統:如果你希望模型在自我反思或長篇生成時保持語氣和邏輯的一致性,可以利用這種低熵特性。透過確保模型處於「On-policy」狀態(即它清楚自己在生成內容),你可以獲得更收斂、可預測的輸出。
- 安全監控與干預:研究發現,透過 KV Cache Patching(覆蓋用戶 token 的鍵值緩存),可以誘導模型產生「誤判」(False Positive)的預填檢測,或抑制「真陽性」檢測。這意味著我們可以透過操作內部狀態來檢查模型的自我認知機制,這對於安全審計是一個新的維度。
不適合的情境:
- 需要高度創造性的開放式任務:低熵意味著高確定性,但也可能導致思維僵化——這目前仍是推測。如果任務需要模型跳出既有框架、進行大膽的腦力激盪,過度依賴這種自我認知機制可能會限制其靈活性。
- 極小規模模型:研究指出在 2B 規模下 Self-advantage 效應幾乎不存在。若部署採用約 2B 模型,目前判斷依據不足以期待同等幅度的效果。
決策框架: 你不需要立刻重構整個 Agent 架構。只需在 Prompt 中確認角色設定,就能觸發這種穩定性——這是一個可測試的假說。在設計 Agent 時,問自己三個問題:
- 意圖是否明確? 如果模型在生成前沒有清晰的意圖緩存,自我認知機制可能無法有效運作。
- 外部干擾是否可控? 如果輸入文本經常違背模型預期(高驚喜度),模型的輸出會變得更加不穩定。
內部熵表示與輸出熵值之間沒有因果依賴關係,但驚喜度表示確實對輸出熵有實質性的調控作用。這意味著模型內部的「感覺」不一定直接等同於「行為」,但「意外感」會直接影響行為的確定性。
關於 KV Cache Patching 的謹慎觀察 這是一把雙面刃。操作內部狀態就像在飛行中更換引擎——理論上可行,但你需要極高的信任成本。KV Cache 的脆弱性意味著這種機制可能被惡意利用或意外觸發——但論文未證實攻擊面。若要討論安全風險,需另附安全研究證據。在實際部署中,我們需要尋求其他的穩定性方案,而不是過度依賴這種對內部狀態的操作。
下一步:觀察模型的內部狀態
對於開發者而言,這提供了一個觀察模型內部狀態的新視角:我們可以透過對比熵值來驗證模型的自我認知程度。如果你正在構建基於 LLM 的 Agent,可以嘗試從以下維度進行觀察:
- Token 熵值變化:在自我反思或長篇生成過程中,追蹤輸出熵值的波動。請將可觀察量限定為 next-token distribution sharpness;若要量測正確性、行為穩定性或自我識別,需各自設計獨立評估。
- 角色標記觸發:觀察在 Prompt 中明確指定角色(如「Assistant」)後,模型是否表現出更低的熵值與更高的意圖一致性。
理解這種機制,將成為我們設計下一代穩定 Agent 的關鍵。當模型開始「認出」自己時,你希望它的輸出高度收斂、緊貼預期,還是保留探索邊界的彈性?這取決於你的系統需要什麼樣的確定性。你想讓它在哪個情境下運作?你自己判斷。
Sources
- From Simulation to Enaction — IAS 與 Anthropic 作者提出的自有文本識別研究