The Evaluation of Language Model (语言模型的性能评价)

语言模型(Language Model,以下简称LM),直观理解,用于判断一句话是否从语法上通顺。

  • Question 1: 训练好的LM效果是好还是坏,如何评价?

假设,有已经训练好的两个LM,A、B:首先想到的是,让语LM找块地儿(选择一个特定的NLP任务),去干一仗,看谁牛逼(看LM A、B在任务1上的表现,哪一个表现更好)。

大语言模型的对传统语言的挑战与应对 语言模型lm_自然语言处理


这种方法的缺点

1、构建流程,耗时费力。

2、评估结果依赖于特定任务。

3、不适合做横向比较。

  • Question 2 有没有不依赖于特定任务的方式呢 ?
    肯定有的,我们现在就来找这个一个方法。首先,思考问题Question3。
  • Question 3 什么样的语言模型(LM)好?
  1. 根据给定的上文,语言模型的输出 符合语法规范/人的预期;类似于LM要具备不错的 完形填空 的能力;。
  2. 完形填空是一个特定的任务,而我们又不希望 LM的评估依赖于特定任s务;怎么办呢?
  3. 具备不错的完形填空能力,简化的看,即预测下一个单词的能力强。即LM预测的下一个单词符合人类语法规范或惯用表达;
  4. 如何量化LM的这种能力呢?你应该想到了,【极大似然】;
  5. 极大似然估计:用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值(模型已知,参数未知);
  6. 现在已知LM:A、B。我们在特定的语料上,计算语料出现的概率。好的LM,自然地,语料库中的语料出现的概率高。

例如:语料库中有例句:sent = “今天 天气 不错 适合 踏青。”
p(sent)=p(今天)·p(天气|今天)·p(不错|今天,天气)·p(适合|今天,天气,不错)·p(踏青|今天,天气,不错,适合)
LM A :p(sent) = 0.00012
LM B :p(sent) = 0.0000053

那么, 在语料库中,LM A输出符合语法规范的句子的能力就比LM B强,即说人话的本领 A>B。这样,我们就找到了一个,不依赖于特定任务的评价LM的方法。即,在语料库上,计算语料出现的概率,越大,LM越好。

Perplexity = 2^(-x)

x: average log likelihood,x为平均对数似然概率。

把 训练好的语言模型,放到语料库中计算,计算对数似然,越好的语言模型,对数似然越大,即x越大越好,Perplexity越小越好。

以bigram LM为例,计算perplexity:以bigram LM为例。

大语言模型的对传统语言的挑战与应对 语言模型lm_性能评价_02