Transformer 模型训练完成后,如何评估其性能和效果?
Transformer 模型训练完成后,如何评估其性能和效果?
这道题考的是 Transformer 模型评估的完整体系,包括预训练指标、下游任务指标、推理效率指标三大维度。面试官想看你能不能根据不同任务场景选择合适的评估方法,而不是只会背几个公式。
我从评估指标全景、困惑度、下游任务评估、效率评估、常见坑点五个方面来讲。
评估指标体系全景图
评估 Transformer 模型不是只有一个指标打天下。模型训练分预训练、微调、部署三个阶段,每个阶段看的东西不一样。
预训练阶段,主要看模型学语言学得怎么样。常用指标是 Perplexity(困惑度),这个指标越低越好,说明模型预测下一个词的能力越强。
微调阶段,要看模型在具体任务上的表现。分类任务看 Accuracy(准确率)和 F1 分数,翻译、摘要这种生成任务看 BLEU、ROUGE。
部署阶段,得看模型跑得快不快、省不省显存。这个后面会单独讲。
就像学生考试,语文作文和数学解题的评分标准完全不同。你不能让模型做翻译任务,却只拿困惑度来评估。
下面这张图展示了三个阶段对应的评估指标:
Perplexity 与困惑度评估
困惑度是 NLP 领域最基础的评估指标。你要能把这个概念讲清楚。
困惑度的本质是衡量语言模型预测能力的指标。数值越低,表示模型对语言的理解越准确。
具体怎么算?假设有个句子 "I love natural language processing",模型依次预测每个词:
- 第一个词 I:模型预测概率 P(I)
- 第二个词 love:模型预测概率 P(love|I)
- 第三个词 natural:模型预测概率 P(natural|I love)
- 第四个词 processing:模型预测概率 P(processing|I love natural)
把这些概率乘起来,再取倒数,最后开 N 次方(N 是词的数量),就是困惑度。公式大概长这样:
PP = exp(-1/N * Σ log P(w_i|w_1...w_{i-1}))
别被公式吓住,我换个说法。想象你在做英语完形填空,正确答案的概率越高,你的得分就越高。困惑度就是这个"正确概率"的倒数——概率越高,困惑度越低,模型越好。
BERT 这类 Encoder-only 模型不做生成,所以一般不用困惑度评估。GPT、T5 这类做生成的模型才用困惑度。
困惑度虽然直观,但有局限性。它只能说明模型"说得像不像人话",不能说明模型"说得对不对"。一个语法完美但事实错误的回答,困惑度可能很低。
下游任务综合评估
微调之后的模型,必须在下游任务数据集上做评估。这个阶段才是真正检验模型能不能干活。
分类任务用这几个指标:
- Accuracy:预测正确的样本占总样本的比例。简单直接,但当类别不平衡时可能失真。
- Precision(精确率):预测为正类中有多少是真的正类。
- Recall(召回率):所有正类中有多少被预测出来了。
- F1 Score:Precision 和 Recall 的调和平均,兼顾两者。
BERT 在 IMDB 影评分类任务上达到了 95% 的准确率,这就是典型的分类任务评估。
生成任务用这几个指标:
- BLEU:机器翻译领域用的,看生成文本和参考译文有多少 n-gram 重叠。n-gram 就是连续的 n 个词,BLEU-4 用的是 1-4 元语法。
- ROUGE:摘要任务用的,主要看召回率。ROUGE-L 是最长公共子序列,ROUGE-1/2 是基于 unigram/bigram 的召回率。
生成任务的评估比较难,因为"说得好不好"本身就没有标准答案。BLEU 分数高不代表生成质量高,可能只是和参考译文撞词多了。
数据集划分这块一定要说清楚:
训练集用来学参数,验证集用来调超参,测试集用来最终评估。比例大概是 70%/15%/15%,具体看数据量大小。
注意:测试集只能用一次,用完就封存。你不能拿测试集调参然后再用同一个测试集评估,那样是作弊。
效率与工程落地评估
模型光性能好还不够,部署到生产环境还得看效率。
参数量:模型有多少参数。GPT-3 有 1750 亿参数,BERT-base 有 1.1 亿。参数量大意味着显存占用高、推理慢。
推理延迟:模型处理一个请求花多长时间。Transformer 的核心计算量在 Attention 机制上,是 O(n²) 复杂度。输入序列越长,延迟越高。
显存占用:推理时需要多少 GPU 显存。除了模型参数,还有 KV Cache、激活值等开销。
吞吐量:单位时间内能处理多少请求。BERT-base 在 A100 上大概能跑到 300-500 QPS。
效率评估经常被面试者忽略,但你要是能说出来,面试官会觉得你做过实际部署。
有个核心概念叫精度-效率权衡。大模型效果好但慢,小模型快但效果差。帕累托最优就是指在给定效率约束下效果最好的模型。
比如在某个延迟要求下,ResNet-50 效果最好但跑不满延迟要求,这时换成 MobileNet,虽然精度降了 2%,但能在延迟限制内完成任务——这个 MobileNet 就是帕累托最优解。
评估实战避坑指南
实际评估中最容易踩的坑,说三个最常见的。
坑1:数据泄露
这是最致命的坑。你在训练时不小心用了测试集的数据,模型考试作弊,分数当然高。
比如你做了数据预处理,把测试集的统计特征(如 TF-IDF 向量)混进了训练集。或者你在验证集上做了 early stopping 后,忘了锁住测试集,又用测试集调了一轮超参。
隐蔽的数据泄露更难发现。有些比赛数据集本身就带隐藏测试集,选手反复提交看分数来反向猜测测试分布——这本质上也是作弊。
坑2:评估集分布不一致
训练数据和测试数据分布不同。比如你用英文新闻训练的模型,拿来评估中文社交媒体文本,结果肯定差。
还有个常见问题:类别不平衡。99% 是负样本,1% 是正样本,模型全部预测负样本就能达到 99% 准确率,但这模型毫无意义。这时候要用 F1 或者 AUC-ROC 来评估。
坑3:单一指标偏颇
只盯着一个指标看,忽略其他维度。模型 BLEU 分数提高了,但生成的内容开始重复、或者逻辑不通——这种情况叫做"指标过拟合"。
真实业务中,往往需要多个指标加权求和,或者根据业务优先级设定指标门槛。
面试怎么答
基础版(100字左右):
Transformer 模型评估分三个阶段。预训练阶段用困惑度衡量语言建模能力,数值越低越好。微调阶段根据任务类型选择指标:分类任务看 Accuracy 和 F1,生成任务看 BLEU 和 ROUGE。部署阶段还要评估推理延迟、显存占用、吞吐量等效率指标。评估时必须严格划分训练集、验证集、测试集,防止数据泄露。
加分版(可以扩展的点):
除了上述内容,还可以补充:困惑度和交叉熵的关系——困惑度是交叉熵的指数,本质上衡量的是模型预测概率分布与真实分布的差异。BLEU 只能评估 n-gram 重叠,有局限性,生成质量还需要人工评估补充。效率评估中,精度-效率权衡存在帕累托前沿,要根据业务延迟要求选择最优点。数据泄露的隐蔽形式包括预处理阶段的信息泄漏、重复数据未去重、预训练语料与下游任务数据重叠等,需要在实验设计时严格审查数据划分。
一句话总结
Transformer 评估核心就一句:困惑度看预训练,下游任务按类型选指标,部署必须看效率,同时严防数据泄露。
