【大模型基础_毛玉仁】1.5 语言模型的评测

时间:2025-03-11 07:03:51

【大模型基础_毛玉仁】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=1NP(wiw<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=1NlogP(wiw<i))

左边是条件概率的熵,右边是交叉熵。因为 P ( w i ​ ∣ w < i ​ ) ≤ 1 P(w_i​∣w_{<i​})≤1 P(wiw<i)1,所以 l o g P ( w i ​ ∣ w < i ​ ) ≤ 0 logP(w_i​∣w_{<i}​)≤0 logP(wiw<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=1NP(wiw<i)logP(wiw<i)N1i=1NlogP(wiw<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=1SgengnSgeniCount(gn)i=1SgengnSgeniCountmatch(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