【评估指标】困惑度 Perplexity
创作时间:
作者:
@小白创作中心
【评估指标】困惑度 Perplexity
引用
CSDN
1.
https://m.blog.csdn.net/a13545564067/article/details/144540723
困惑度(Perplexity)是机器学习和自然语言处理中常用的一个概念,尤其在语言模型的评估中。它用于衡量一个模型对文本数据的预测能力,直观上表示模型对数据“不确定”的程度。
1. 定义
对于语言模型而言,Perplexity 的公式如下:
- N:文本中单词的数量。
- wi:文本中的第 ( i ) 个单词。
- P(wi∣w1,w2,…,w i−1):模型在给定前面单词的情况下,预测当前单词的概率。
2. 直观理解
- 低 Perplexity:意味着模型对数据的预测更加准确,即模型更“确信”它的预测。
- 高 Perplexity:表示模型对数据的预测更加不确定,表现更差。
示例:
- 如果一个模型对句子有 4 个单词的概率估计为 0.5, 0.25, 0.125, 0.125,Perplexity 反映了模型的“平均猜测”不确定程度。结果越低,模型效果越好。
取值范围
- PPL 的取值范围是 [1, +∞)。
- PPL = 1:模型完全确定地正确预测所有单词(理论最优)。
- PPL > 1:模型有一定的不确定性或错误。
- PPL 越大:表示模型对序列的预测不确定性越高,质量越差。
3. 为什么重要?
- Perplexity 是一种常见的语言模型评价指标。在训练语言模型时,目标是最小化 Perplexity。
- 一个较低的 Perplexity 表示模型能更好地预测文本的概率分布,也就意味着它对语言的建模更加精准。
4. 关系到实际应用
- 语言模型:如 GPT、BERT 等模型的训练过程中使用 Perplexity 来衡量性能。
- 语音识别和机器翻译:Perplexity 也是这些领域中衡量模型质量的重要指标之一。
简单来说,Perplexity 就是衡量模型对文本“预测难度”的一种量化指标。
Python代码实现
import transformers, torch, os
from math import exp
MODEL_PATH = "/kaggle/input/gemma-2/transformers/gemma-2-9b/2"
class PerplexityCalculator:
def __init__(self,):
self.tokenizer = transformers.AutoTokenizer.from_pretrained(MODEL_PATH)
self.model = transformers.AutoModelForCausalLM.from_pretrained(MODEL_PATH, device_map="auto", torch_dtype=torch.float32,)
self.loss_fct = torch.nn.CrossEntropyLoss(reduction='none')
self.model.eval()
def get_perplexity(self, text: str) -> float:
with torch.no_grad():
text_with_special = f"{self.tokenizer.bos_token}{text}{self.tokenizer.eos_token}"
model_inputs = self.tokenizer(text_with_special, return_tensors='pt', add_special_tokens=False,)
logits = self.model(**model_inputs, use_cache=True)['logits']
shift_logits = logits[..., :-1, :].contiguous()
shift_labels = model_inputs['input_ids'][..., 1:].contiguous()
loss = self.loss_fct(
shift_logits.view(-1, shift_logits.size(-1)),
shift_labels.view(-1))
sequence_loss = loss.sum() / len(loss)
loss_list = sequence_loss.cpu().item()
return exp(loss_list)
热门推荐
泰勒展开:函数的局部线性化神器——像“微观镜”下的函数近似
纣王:一把王炸,打成对三一样的垃圾效果!
大一女生寒假不躺平反做家务,放下娱乐扛起责任,才是成长的真谛
氧化铁颜料和水泥比例是多少?
抗浮锚杆专项施工方案
胃炎患者不能吃菠萝?医生告诫:这3种水果不要贪嘴,身体更健康
亚冬会开幕式为十五运会和残特奥会提供了哪些参考?
FFmpeg:多媒体处理的瑞士军刀
扦插繁殖花草总黑杆成活难?防止黑杆的5种有效方法,提高扦插成活率
黑洞吞噬一切,为什么连光线都无法逃脱?
关于基督徒美学和艺术观的10个想法
马卡洛夫PM:苏联经典手枪的辉煌与传承
中药中的双胞胎:竹叶、淡竹叶
武汉新人“整顿婚礼”:中巴当婚车,珍珠奶茶敬亲友
德法并举”规范大学生直播
船用发电机维护方式:保障航行安全与可靠性
同样是TPU隐形车衣,芳香族和脂肪族有多大差距!
端午节为什么要驱五毒?所谓五毒到底是什么?
乒乓球技巧分享:步法动作要领详解
深挖《九重紫》:古偶里的平权觉醒,人物在权力枷锁下咋选?
冬季吃水果原来有这些讲究,很多人不知道!
股票买卖怎样决策更明智?这种决策的依据是什么?
先进的水井钻探:全球水资源管理的创新与可持续策略
孕妇载脂蛋白A1和高密度脂蛋白偏高怎么办?
贝因美:业绩盈亏交替,昔日巨头辉煌不再
琼海徒步的经典户外线路有哪些?琼海20个景美人少的徒步的好去处推荐
梦见出车祸
怀孕期胆固醇6.98是否严重?专家解读孕期胆固醇水平变化
嫡长子继承制:宗法制的核心,却被别有用心者曲解为长房继承制
学会这几招,外出就餐也不怕体重增长!