Source
-
X/Twitter: Akshay https://twitter.com/akshay_pachaar/status/1728028273010188483
-
https://en.m.wikipedia.org/wiki/Perplexity
-
https://www.youtube.com/watch?v=XfpMkf4rD6E&t=1395s&ab_channel=StanfordOnline
-
(22) The Key Equation Behind Probability - YouTube a good youtube video
Takeaways
-
一般 LLM training/validation 使用 cross-entropy $\mathcal{L}$ = dataset distribution entropy + KL divergence of model generation distribution vs. dataset distribution. 在model 有充分能力產生近似 dataset distribution,KL divergence 會接近 0, cross-entropy loss 會接近 dataset entropy. 實際上因爲 LLM 的能力和 dataset training noise (SGD, data truncation),不同的 LLM 和訓練的手法得到的 cross-entropy loss 都不同。一般很難直覺抓到 cross-entropy loss 的意義。
- 更容易的詮釋是用 perplexity
- Perplexity 介於 1 (delta distribution) 和 vocab size (uniform distribution) 之間
- Perplexity 是猶豫的程度。如果是 1 (完美), 就是只有 1 個字猶豫,也就是沒有猶豫。如果是 6, 就是 6 的字的猶豫程度。如果是完全沒有 idea, 就是 vocab size 的猶豫程度,每個字皆有可能 :)
-
Perplexity 和 loss, self-entropy 的關係 (wrong), 看下面: \(P P L\left(x_{1,...N}\right) = 2^{\frac{1}{N} H\left(x_{1, ...L}\right)}=\Pi\, p\left(x_i \mid x_{1, ...i-1}\right)^{-1 / N} \approx e^{\frac{1}{N} \mathcal{L}\left(x_{1, ...L}\right)}\)
- Perplexity (以及 cross-entropy loss) 和 LLM and dataset 有關。一般用 Wikitext-2 dataset.
- $\frac{1}{N} \mathcal{L}(x_1,…x_N)$ 是 avg cross-entropy loss per token (~independent of length)
- $\frac{1}{N} H(x_1, …x_N)$ 是 avg self-entropy of joint pdf of $p(x_1, …, x_N)$. 注意不是 datset self-entropy, 而是 LLM model generated samples avg self-entropy.
-
Exponentiate $=>$ units independent of log base
- 如果 P 可以無限接近 Q, 當然 H(P, Q) ~ H(P) + 0
- 實務上 H(P, Q) = H(P) + KL(P//Q) 可以用 H(Q)?
| Dataset True Distribution, P | LLM Generation Distribution, Q | Difference | |
|---|---|---|---|
| Entropy | never know $H(P)$ | use samples $H(Q) = \ln(PP)$ | Cross-entropy loss, $H(P, Q) = H(P) + KL(P//Q)$ |
| Exp domain | Perplexity, PP |
Perplexity 的直觀意義
- Perplexity 介於 1 (delta distribution) 和 vocab size (uniform distribution)
- 其實就是猶豫幾個字的程度。如果是 1, 就是只有 1 個字猶豫,也就是沒有猶豫。如果是 6, 就是 6 的字的猶豫程度。如果是完全沒有 idea, 就是 vocab size 的猶豫程度,每個字皆有可能 :)
- 一般人在作文或說話,基本都會有幾個可能的選擇。 perplexity = 1 太理想也不一定最好,沒有創造力?但是 perlexity 太大 ( > 20) 一定不好。比較合理的 perplexity 大於是 10 以下。
- Perplexity depends on tokenizer (because vocab size is upper bound!), LLM and the dataset!
![[Pasted image 20240828225324.png]]
Perplexity 定義 [Wiki]
在信息理论中,困惑度 (perplexity) 是对来自离散概率分布的样本值不确定性的度量。困惑度越大,观察者猜测从分布中抽取的值的可能性就越小。困惑度最早是在1977年由Frederick Jelinek、Robert Leroy Mercer、Lalit R. Bahl和James K. Bake在语音识别的背景下引入的。
因為熵 (entropy) 也是對於离散概率分布的样本值不确定性的度量。所以兩者之間應該有關係?答案是肯定的。
Perplexity of a (1 random variable) probability distribution
定義:Perplexity (PP) of a discrete probability distribution $p$ Is: \(PP(p):=2^{H(p)}=2^{-\sum_x p(x) \log _2 p(x)}=\prod_x p(x)^{-p(x)}\)
- 其中 $H(p)$ 是 $p$ 的熵。 Perplexity 就是 2 的熵次方。因爲離散分佈的熵 $H \ge 0$, 所以 perplexity $\ge$ 1.
- Perplexity = 1 代表 deterministic, 沒有任何不確定性。
- 此處的 $\log$ 的 base 是 2. 改變 base 不影響 Perplexity.
- Entropy 越大,perplexity 越大。
- 一個 random variable $X$ 的 perplexity 是其 probability distribution 的 perplexity.
-
Binary distribution (Bernoulli) 的 perplexity 最大值是 2. $k$-value uniform distribution 有最大的 entropy 和 perplexity: $H(p) = \log_2k$ and $PP(p) = 2^{H(p)} = k$.
- 以英文爲例
- English text (26 letters and a space): $H(X) = -(\log_2 1/27) = 4.75$ bits, $PP(X) = 27$
- 實際每個 letter 出現頻率/機率不同: $H(X) = 4.219$ bits, $PP(X) = 18.6$
- 實際每個 letter 之間不是獨立。考慮 digrams, 或是 trigrams: $H(X) = 2.77$ bits, $PP(X) = 6.8$
Perplexity of n independent random variable probability distribution
一個 random variable 的 perplexity 顯然沒有什麼有趣的點。再來是多個 random variables or random sequence.
最簡單的 case 是 independent random sequence, ${x_1, x_2, \cdots, x_n}$.
$H(X_1, X_2, ..X_n) = H(X_1) + H(X_2) + … + H(Xn)$
直觀的定義: $PP(p(x_1, …x_n)) = 2 ^ {H(X_1, X_2, .. X_n)} = 2 ^{n H(X)}$
Perplexity 有什麼物理意義?可以參考 typical set and AEP principle in Appendix A.
$N$ 個 binary variables 最多有 $2^N$ 個 possible outcomes. 或是 $2^N$ 路徑。
以上的 $N$ variable Perplexity $2^{n H(X)}$定義就是 equal probability outcome/path 的數目。
- 如果 $H(X) = 0, PP(p(x_1, …x_n)) = 1$, 只有唯一 outcome/path, 機率 = 1.
- 如果 $H(X) = 1, PP(p(x_1, …x_n)) = 2^N$, 所有 outcome/path 都有同樣機率 $2^{-N}$.
- $H(X)$ 越接近 0, $PP(p(x_1, …x_n))$ 約接近 1 outcome/path, 都有同樣機率。
直觀的定義有個問題就是 $N$, 一般還是會 normalized to N. 例如在 data compression 就是 $log_2 2^{H(X_1,…X_n)}/n = H(x)$
修正的 (平均) perplexity 定義: $PP(p(x_1, …x_n)) = 2 ^ {H(X_1, X_2, .. X_n)/n} = 2 ^{H(X)}$
好像太單純了?
Perplexity of n general random variable probability distribution, fixed-length language model
LLM 定義 perplexity 的問題是: 我們並不知道語言模型的 distribution, 稱爲 $p(x)$. 我們只有 sample sequence.
Perplexity 在 LLM 的定義是: \(\operatorname{PP}(X)=\exp \left\{-\frac{1}{t} \sum_i^t \log p\left(x_i \mid x_{<i}\right)\right\}\)
這裏 Perplexity 的定義就比較抽象: 對於一個 tokenized sequence $X = (x_0, x_1, …, x_t)$ , perplexity is the exponentiated average negative log-likelihood of a sequence.
以上式來看,log 的 summation and average 對應是機率倒數的幾何平均值!不是 entropy 的單位。
-
PPL 内部的條件機率: \(p(x_1) p(x_2\|x_1) p(x_3\|x_2,x_1) p(x_4\|x_3,x_2,x_1)\cdots p(x_t \| x_{t-1},\cdots x_1) = p(x_1) \frac{p(x_1,x_2)}{p(x_1)} \frac{p(x_3,x_2,x_1)}{p(x_1,x_2)} \cdots = p(x_1, x_2, ... x_t)\)
- 接下來 exp 和 log 互相抵銷,PPL 是條件機率的幾何平均值的倒數 = $\sqrt[t]{p(x_1,\cdots,x_t)^{-1}}$. 因此 PPL 的最小值是 1. 對應所有條件機率 = 1. 當然實務上機率必然小於 1, 所以倒數大於 1. 除非 joint distribution 是 delta function,不然 PPL 一定大於 1. 如果 joint distribution 的 entropy 越大, PPL 就越大。注意這裏的 joint distribution 是指 sequence sample 的機率。
-
上述是用 natural log 和 exponential function 而不是用 2 為底。不過這完全沒有問題,應爲 log 的 exp 互相抵消。所以底是 2 或是 e 沒有差別。
- 上式指數部分: $-\frac{1}{N} \sum_{i=1}^N \log p\left(x_i\right)$ 既不是和 N 成比例,也不是平均。但可以用 cross-entropy 解釋:
\(H(\tilde{p}, p)=-\sum_x \tilde{p}(x) \log p(x)\) where $\tilde{p}$ denotes the empirical distribution of the test sample (i.e., $\tilde{p}(x)=n / N$ if $x$ appeared $n$ times in the test sample of size $N$ ).
- Cross-entropy $H(\tilde{p},p)$ 的定義是 $\tilde{p}$ 和 $p$ 的接近程度。如果 $\tilde{p} = p$, $H(\tilde{p},p) = H(p)$
- By the definition of $\mathrm{KL}$ divergence, it is also equal to
\(H(\tilde{p})+D_{K L}(\tilde{p} \| p)\) which is $\geq H(\tilde{p})$. Consequently, the perplexity is minimized when $q=\tilde{p}$.
- (TOTALLY WRONG!!) LLM perplexity 假設 $\tilde{p}(x) = 1/t$, 可以視爲 lower bound!
-
Correct interpretation: sample 本身就已經反映 $\tilde{p}(x)$!!!
- 如果 sequence 的每個 token 都是獨立: $PP(X) = p(x)^{-1} \ne 2^{H(X)}$? 注意這和 uniform distribution 不同。待會我們看到。
- 如果所有的 token 都完全 depends on previous token: $PP(X) = 1$
Appendix A: Typical Set and AEP Principle
這和 Information theory 的內容 : typical set $A_{\varepsilon}^n$ 的定羲如下: \(A_{\varepsilon}^n=\left\{\left(x_1, \cdots, x_n\right):\left|-\frac{1}{n} \log p\left(x_1, \cdots, x_n\right)-H(X)\right|<\varepsilon\right\} .\)
-
AEP 的 typical set 有 $\left \mathcal{A}^n\right =2^{n H(X)}$ sequences, 每一 sequence 都是 equal probability, i.e. $2^{-n H(x)}$, - 檢查一些特例: 。 $p(H)=0$ (or 1) $\rightarrow H(X)=0, n H(X)=0$. 所以 $p(H H H \ldots H)=1$ or $p(T T \ldots T)=1$ ,其他 $2^n-1$ sequences 機率都是 0 . 因此 AEP 只有一條 sequence, $\left|\mathcal{A}^n\right|=2^{n H(x)}=1$. 。 $p(H)=0.5 \rightarrow H(X)=1, n H(X)=n$. 所有 $2^n$ sequences 機率都是 $2^{-n} .\left|\mathcal{A}^n\right|=2^{n H(x)}=2^n$.
- AEP 所佔的機率, 當 $n \rightarrow \infty \mathrm{P}(\mathrm{AEP}) \rightarrow 1$.
- AEP 的䚐念是從統計力學而來, 在熱平衡態, 每一個分子的平均能量都是 $\frac{3}{2} k T$.
