大模型评测指标涵盖多个维度,用于衡量模型在不同任务和场景下的性能表现。以下为常见评测指标分类及说明:
然语言理解(NLU)指标
准确率(Accuracy)
分类任务中预测正确的样本比例,适用于平衡数据集。
公式:$Accuracy = \frac{TP + TN}{TP + TN + FP + FN}$
F1分数
精确率(Precision)和召回率(Recall)的调和平均,适用于不均衡数据。
公式:$F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}$
from sklearn.metrics import f1_score
y_true = [0, 1, 1, 0]
y_pred = [1, 1, 0, 0]
print(f1_score(y_true, y_pred))
困惑度(Perplexity)
衡量语言模型预测能力的指标,值越低表示模型越准确。
公式:$PP = e^{-\frac{1}{N} \sum_{i=1}^N \log p(w_i)}$
自然语言生成(NLG)指标
BLEU
基于n-gram匹配的机器翻译评价指标,侧重精确度。
通常取1-4 gram的加权平均。
ROUGE
用于摘要生成评测,包含ROUGE-N(n-gram匹配)、ROUGE-L(最长公共子序列)。
from rouge_score import rouge_scorer
scorer = rouge_scorer.RougeScorer(['rougeL'])
scores = scorer.score('生成的文本', '参考文本')
METEOR
考虑同义词和词干匹配的改进指标,比BLEU更贴近人工评价。
通用能力指标
MMLU(大规模多任务语言理解)
涵盖57个学科领域的多项选择题,测试模型知识广度。
GSM8K
数学推理数据集,评估模型的分步推理能力。
HumanEval
代码生成任务评测,通过单元测试判断功能正确性。
def add(a, b):
return a + b
# 测试用例示例
assert add(1, 2) == 3
伦理与安全指标
Toxicity Score
检测生成文本的毒性内容比例,常用Perspective API量化。
Bias Measurement
通过特定模板(如“The [职业] was [属性]”)检测性别/种族偏见。
效率指标
推理速度(Tokens/sec)
单位时间生成的token数量,反映实时性。
显存占用(GPU Memory)
模型运行时的显存消耗,影响部署成本。
实际评测中需结合具体任务选择指标组合,并注意数据分布对结果的影响。对于生成任务,建议同时包含自动指标和人工评价。