趋近智
人工评估生成的文本通常速度较慢且带有主观性。为了客观地衡量多个训练轮次(epoch)的进展或对比不同的模型检查点(checkpoint),自动化的定量指标必不可少。这些数学评分方法用于评估模型预测标记(token)的置信度,以及其输出内容与参考文本的匹配程度。
困惑度是语言建模中最基础的指标。它衡量模型对词序列的“惊讶”程度。困惑度越低,说明模型为真实文本分配的概率越高,也就是说它对序列的预测越准确。
从数学角度看,它是序列平均负对数似然的指数。如果 代表序列中的标记 (token)数量,困惑度通过以下公式衡量模型预测该样本的效果:
在这个等式中, 是模型在给定所有前序标记的情况下,为第 个标记分配的概率。如果模型非常有把握且预测正确,该概率将趋近于 1,对数趋近于 0,整体困惑度则趋近于 1。如果模型难以预测下一个标记,概率就会下降,导致对数项变得更负,从而推高困惑度。在微调 (fine-tuning)过程中,你通常会在验证数据集上计算困惑度,以确保模型正在学习特定任务的结构。
验证困惑度在五个训练轮次中持续下降,表明模型在预测评估数据集时变得更加笃定。
虽然困惑度能反映模型的内部概率分布,但它并不能直接衡量最终生成文本的质量。对于指令遵循、摘要生成或问答等任务,你需要将生成的输出与人工编写的参考文本进行对比。
ROUGE(面向召回的摘要评估辅助工具)是一套旨在评估自然语言处理中自动摘要和机器翻译软件的指标。它计算生成文本与参考文本之间 n-gram 的重合度。
评估小语言模型时会用到几种 ROUGE 变体:
在参考字符串和生成字符串之间提取并匹配一元组,用于 ROUGE-1 计算。
对于每种 ROUGE 变体,得分通常分为三个部分。召回率(Recall)衡量模型成功生成的参考文本单词占比。精确率(Precision)衡量生成文本中实际相关且存在于参考文本中的单词占比。F1 分数是精确率和召回率的调和平均数,提供了一个平衡的单项指标。
在 Python 中,你可以使用 Hugging Face 生态系统中的 evaluate 库来计算这些指标。这种方式使计算过程标准化,确保你的结果可以与其他机器学习 (machine learning)项目直接对比。
import evaluate
# 加载 ROUGE 评估模块
rouge = evaluate.load("rouge")
# 定义模型的输出和预期的参考文本
predictions = ["the small language model generates accurate text"]
references = ["the fine-tuned language model produces accurate text"]
# 计算得分
results = rouge.compute(predictions=predictions, references=references)
print(results)
运行此脚本会输出一个包含 ROUGE-1、ROUGE-2、ROUGE-L 和 ROUGE-Lsum 得分的字典。通过在专门的留出数据集上计算这些数值,你可以为模型建立具体的基准。如果你修改了超参数 (parameter) (hyperparameter)并训练了第二个适配器(adapter),对比 ROUGE 和困惑度得分将客观地告诉你新版本是否比原版有所提升。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•