llm_entropy - cccbook/py2gpt GitHub Wiki
ChatGPT 對話 -- https://chatgpt.com/c/674fbf83-4e44-8012-8a21-82b56341a687
ccc: LLM 預測下一個 token 時,會有 P(token[t]|token[t-w,..,t-1]) 的預測機率,如果用這個當基礎,對原本 token 的 Entropy 進行計算,應該會得到『無模型 Entropy』與『有模型加入後的條件熵』對比。請用這樣的構想寫一篇論文
ccc: 我想說的是,LLM 可以代表那個 Markov Model,然後對下一個 token 進行預測,於是造成 Entropy 的下降,請用數學描述這個 LLM 的影響
好的,我們可以用數學方式描述 LLM 如何降低序列的熵,將其視為一個條件機率分佈 $P(token_t | token_{t-w}, \ldots, token_{t-1})$ 的學習模型。
1. 無模型熵 $H_{unconditional}$
在無模型的情況下,每個 token $token_t$ 被視為獨立同分佈(i.i.d.),因此文本序列的總體熵是所有 token 熵的總和:
$$ H_{unconditional} = - \sum_{t=1}^n \log P(token_t) $$
此時 $P(token_t)$ 通常基於整體語料庫的統計頻率計算。
2. 加入 LLM 的條件熵 $H_{conditional}$
當引入 LLM 時,每個 token 的生成被認為是基於其上下文的條件機率分佈決定的,即:
$$ P(token_t | token_{t-w}, \ldots, token_{t-1}) $$
條件熵可以表述為:
$$ H_{conditional} = - \sum_{t=1}^n \log P(token_t | token_{t-w}, \ldots, token_{t-1}) $$
這表示 LLM 的效能與其對條件機率的準確建模能力密切相關。
3. 熵差 $\Delta H$ :LLM 的影響
LLM 的目標是通過上下文學習,降低序列的整體不確定性(熵)。無模型熵和條件熵的差值 $\Delta H$ 定義如下:
$$ \Delta H = H_{unconditional} - H_{conditional} $$
將其具體化為序列的對數機率分佈後,可得:
$$ \Delta H = \sum_{t=1}^n \big( \log P(token_t) - \log P(token_t | token_{t-w}, \ldots, token_{t-1}) \big) $$
這項熵差 $\Delta H$ 可以視為模型透過學習上下文資訊而減少的序列不確定性。
4. LLM 的條件機率建模影響
4.1 信息增益的解釋
從信息理論的角度,熵的降低可以解釋為上下文提供的信息增益(Information Gain, IG):
$$ IG = H_{unconditional} - H_{conditional} $$
這表示每個 token 的上下文對於預測下一個 token 的貢獻。
4.2 理想情況:極限熵
在理想情況下,LLM 能完美地學習文本序列的分佈,對於每個 token 的條件機率 $P(token_t | token_{t-w}, \ldots, token_{t-1})$ 精確到 1 或 0,導致條件熵趨近於 0:
$$ H_{conditional} \to 0 $$
4.3 現實情況:熵壓縮程度
實際中,條件熵的大小取決於 LLM 的表達能力和上下文窗口大小 $w$ 。當 $w$ 增大時,模型能利用更多上下文降低條件熵,但此效應可能呈現遞減回報。
5. 數學上的效能度量:Perplexity 與 熵
5.1 Perplexity 與條件熵的關係
Perplexity(困惑度)是一種常用於語言模型的效能指標,與條件熵相關:
$$ \text{Perplexity} = 2^{H_{conditional}} $$
Perplexity 直接反映了模型對序列的壓縮能力,數值越小,模型越能準確預測序列。
5.2 熵下降率
為了衡量模型的效能提升,我們可以計算熵下降率 $\eta$ :
$$ \eta = \frac{\Delta H}{H_{unconditional}} = \frac{H_{unconditional} - H_{conditional}}{H_{unconditional}} $$
$\eta$ 表示 LLM 對序列熵的相對壓縮比率。
6. 結論
LLM 作為一個馬爾可夫模型的高階擴展,其核心作用在於通過條件機率分佈學習來降低文本序列的不確定性。熵的下降量 $\Delta H$ 直觀地描述了模型的學習效果,而熵下降率則提供了一種標準化的量化方式來比較不同模型的效能。
ccc: LLM 中的 perplexity 定義是什麼?
ChatGPT: https://chatgpt.com/c/674fc4f0-4a7c-8012-9153-c7d71c313a75