【大模型基础_毛玉仁】1.5 语言模型的评测
- 1.5 语言模型的评测
- 1.5.1 内在评测
- 1.5.2 外在评测
- 1)基于统计指标的评测
- 2)基于语言模型的评测
1.5 语言模型的评测
评测语言模型生成能力的方法可以分为两类。
-
内在评测(IntrinsicEvaluation):不依赖具体任务,通过模型输出评测模型的生成能力。
-
外在评测(ExtrinsicEvaluation):通过具体任务,如机器翻译、摘要生成等,评测模型处理具体生成任务的能力。
1.5.1 内在评测
在内在评测中,测试文本通常由与预训练中所用的文本独立同分布的文本构成,不依赖于具体任务。
- 同分布 :指多个随机变量具有相同的概率分布。
最为常用的内部评测指标是困惑度(Perplexity)。其度量了语言模型对测试文本感到“困惑”的程度。
设测试文本为 s t e s t = w 1 : N s_{test} =w_{1:N} stest=w1:N。语言模型在测试文本 s t e s t s_{test} stest上的困惑度PPL可由下式计算:
P P L ( s t e s t ) = P ( w 1 : N ) − 1 N = ∏ i = 1 N 1 P ( w i ∣ w < i ) N PPL(s_{test}) = P(w_{1:N})^{-\frac{1}{N}} = \sqrt[N]{\prod_{i=1}^{N} \frac{1}{P(w_i | w_{<i})}} PPL(stest)=P(w1:N)−N1=Ni=1∏NP(wi∣w<i)1
可以看出,如果语言模型对测试文本越“肯定”(即生成测试文本的概率越高),则困惑度的值越小。而语言模型对测试文本越“不确定”(即生成测试文本的概率越低),则困惑度的值越大。
对困惑度进行改写,其可以改写成如下等价形式:
P P L ( s t e s t ) = exp ( − 1 N ∑ i = 1 N log P ( w i ∣ w < i ) ) PPL(s_{test}) = \exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_{<i})\right) PPL(stest)=exp(−N1i=1∑NlogP(wi∣w<i))
左边是条件概率的熵,右边是交叉熵。因为 P ( w i ∣ w < i ) ≤ 1 P(w_i∣w_{<i})≤1 P(wi∣w<i)≤1,所以 l o g P ( w i ∣ w < i ) ≤ 0 logP(w_i∣w_{<i})≤0 logP(wi∣w<i)≤0,这意味着交叉熵总是大于或等于熵。
− 1 N ∑ i = 1 N P ( w i ∣ w < i ) log P ( w i ∣ w < i ) ≤ − 1 N ∑ i = 1 N log P ( w i ∣ w < i ) -\frac{1}{N} \sum_{i=1}^{N} P(w_i | w_{<i}) \log P(w_i | w_{<i}) \leq -\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_{<i}) −N1i=1∑NP(wi∣w<i)logP(wi∣w<i)≤−N1i=1∑NlogP(wi∣w<i)
1.5.2 外在评测
在外在评测中,测试文本通常包括该任务上的问题和对应的标准答案,其依赖于具体任务。
通过外在评测,我们可以评判语言模型处理特定任务的能力。
外在评测方法可分为:
-
基于统计指标的评测方法,
-
基于语言模型的评测方法。
1)基于统计指标的评测
基于统计指标来评测语言模型的输出与标准答案间的契合程度,以此为评测模型生成能力的依据。
(1)BLEU(Bilingual Evaluation Understudy)
用于评估机器翻译(MachineTranslation,MT)的质量,其在词级别上计算生成的翻译与参考翻译间的重合程度。
原始的n-gram 精度的定义如下:
P r ( g n ) = ∑ i = 1 ∣ S g e n ∣ ∑ g n ∈ S g e n i C o u n t m a t c h ( g n , S r e f i ) ∑ i = 1 ∣ S g e n ∣ ∑ g n ∈ S g e n i C o u n t ( g n ) Pr(g_n) = \frac{\sum_{i=1}^{|S_{gen}|} \sum_{g_n \in S_{gen}^i} Count_{match}(g_n, S_{ref}^i)}{\sum_{i=1}^{|S_{gen}|} \sum_{g_n \in S_{gen}^i} Count(g_n)} Pr(gn)=∑i=1∣Sgen∣∑gn∈SgeniCount(gn)∑i=1∣Sgen∣∑gn∈SgeniCountmatch(gn,Srefi)
-
S g e n S_{gen} Sgen: 生成的翻译文本集合。 S r e f S_{ref} Sref: 对应的参考翻译集合。 S g e n i S_{gen}^i Sgeni 和 S r e f i S_{ref}^i Sref