LLM(大语言模型)常用评测指标-困惑度(Perplexity)

困惑度(Perplexity)

是自然语言处理(NLP)中常用的一种评估语言模型的指标。它衡量的是模型对测试数据的预测能力,即模型对测试集中单词序列出现概率的预测准确度。困惑度越低,表示模型对数据的预测越准确。

计算方法

困惑度通常定义为测试集上的交叉熵的指数。对于一个语言模型,如果给定一个长度为 N N N 的词序列 W = w 1 , w 2 , ... , w N W=w_1,w_2,\ldots,w_N W=w1,w2,...,wN,其困惑度可以表示为:

P P ( W ) = 1 P ( w 1 , w 2 , ... , w N ) n PP(W)=\sqrt[n]{\frac1{P(w_1,w_2,\ldots,w_N)}} PP(W)=nP(w1,w2,...,wN)1

其中, P ( w 1 , w 2 , ... , w N ) P(w_1,w_2,\ldots,w_N) P(w1,w2,...,wN)是模型赋予该词序列的概率。在实际计算中,为了避免数值下溢,通常使用对数概率,并将公式转化为:

P P ( W ) = 2 − 1 N ∑ i = 1 N log ⁡ 2 P ( w i ∣ w 1 , w 2 , ... , w i − 1 ) PP(W)=2^{-\frac1N\sum_{i=1}^N\log_2P(w_i|w_1,w_2,\ldots,w_{i-1})} PP(W)=2−N1∑i=1Nlog2P(wi∣w1,w2,...,wi−1)

这里, ∑ i = 1 N log ⁡ 2 P ( w i ∣ w 1 , w 2 , ... , w i − 1 ) \sum_{i=1}^N\log_2P(w_i|w_1,w_2,\ldots,w_{i-1}) ∑i=1Nlog2P(wi∣w1,w2,...,wi−1)表示对整个测试集的对数似然,并且 N {N} N是测试集中的单词总数。

应用场景

困惑度常用于比较不同的语言模型或评估同一模型在不同数据集上的性能。它广泛应用于语言模型的训练和评估、机器翻译、语音识别等自然语言处理领域。

示例

假设一个简单的语言模型,给定一个测试集包含三个词的序列 "the cat sat",模型对这三个词的预测概率分别为 0.5, 0.4, 0.3。则该序列的困惑度计算如下:

P P ( W ) = 2 − ( 1 3 ( log ⁡ 2 0.5 + log ⁡ 2 0.4 + log ⁡ 2 0.3 ) ) ≈ 2.45 PP(W)=2^{-\left(\frac13(\log_20.5+\log_20.4+\log_20.3)\right)}\approx2.45 PP(W)=2−(31(log20.5+log20.4+log20.3))≈2.45

这意味着在这个简单的例子中,模型对测试集中单词序列的预测平均每个位置的不确定性相当于二进制选择中的2.45个选项。

当我们说模型对测试集中单词序列的预测平均每个位置的不确定性相当于二进制选择中的 2.45 个选项时,我们是在尝试将困惑度的数值转化为一个更直观的概念。具体来说,假设你面前有一个盒子,里面有若干个按钮,每个按钮代表一个不同的单词。每次你要预测下一个单词时,就需要按下一个按钮。如果模型对下一个单词的预测非常准确,那么你每次基本上只需要在少数几个按钮中选择。如果模型的预测非常不准确,那么你可能需要在很多按钮中进行选择。

困惑度的数值可以告诉我们,平均来看,你需要在多少个按钮中进行选择。在上面的例子中,困惑度为 2.45,这意味着平均每次预测时,你需要在大约 2.45 个按钮中进行选择。这个数值越小,表示模型的预测越准确,你需要在越少的选项中进行选择。

换句话说,困惑度可以被理解为模型在预测下一个单词时的平均"不确定性"。如果困惑度是 2.45,那么就好像你在进行二进制选择时平均有 2.45 个选项一样,这反映了模型对单词序列的预测能力。

相关推荐
985小水博一枚呀13 分钟前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
白熊18828 分钟前
【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
人工智能·计算机视觉·开源·文生图·音视频
weixin_5145488933 分钟前
一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting
人工智能·计算机视觉·3d
四口鲸鱼爱吃盐1 小时前
BMVC2023 | 多样化高层特征以提升对抗迁移性
人工智能·深度学习·cnn·vit·对抗攻击·迁移攻击
Echo``1 小时前
3:OpenCV—视频播放
图像处理·人工智能·opencv·算法·机器学习·视觉检测·音视频
Douglassssssss2 小时前
【深度学习】使用块的网络(VGG)
网络·人工智能·深度学习
okok__TXF2 小时前
SpringBoot3+AI
java·人工智能·spring
SAP工博科技2 小时前
如何提升新加坡SAP实施成功率?解答中企出海的“税务合规密码” | 工博科技SAP金牌服务商
人工智能·科技·制造
闭月之泪舞2 小时前
OpenCv高阶(八)——摄像头调用、摄像头OCR
人工智能·opencv·ocr
終不似少年遊*2 小时前
【从基础到模型网络】深度学习-语义分割-ROI
人工智能·深度学习·卷积神经网络·语义分割·fcn·roi