趋近智
困惑度(Perplexity)和 ROUGE 等数值指标为我们提供了模型复现验证数据准确度的基础参考。然而,实际用户很少会完全按照训练数据集中的示例来组织请求。测试提示词 (prompt)泛化能力是为了衡量微调 (fine-tuning)后的模型在处理陌生的措辞、不同的结构以及训练阶段未明确出现的指令时的实际表现。
如果您使用严格的模板微调了一个模型,用于从会议记录中提取行动事项,那么当提示词完全匹配“提取行动事项:”这一字符串时,它的表现可能非常出色。但如果同样是将问题改为“根据这些笔记,我们接下来要做什么?”,模型就彻底失效了,这说明微调过程产生了一种脆弱的表达方式。模型只是死记硬背了模板,而没有学会背后的任务逻辑。衡量这种灵活性是评估语言模型的一个组成部分。
为了有条理地测试泛化能力,您可以构建一个评估集,其中包含针对同一基本任务的多组变体。您可以从数据集中的原始提示词结构开始,生成多个改写版本。
通过将不同的提示词结构输入微调模型并比较输出的一致性,来测试提示词泛化能力的工作流程。
在构建这些变体时,有三种常用的技术:
评估这些测试结果需要从精确匹配指标转向语义指标。像 ROUGE 这样的标准指标对特定词汇的选择非常敏感,如果输出格式发生细微变化,得分就会下降。相反,您可以使用外部嵌入 (embedding)模型(如预训练 (pre-training)的 sentence transformer),将生成的文本转换为稠密向量 (vector)表示。
获得向量嵌入后,您可以计算原始提示词生成的输出与变体提示词生成的输出之间的余弦相似度。如果 代表原始输出的嵌入向量, 代表变体输出的嵌入向量,则余弦相似度计算如下:
较高的余弦相似度得分表明,无论提示词如何措辞,输出的语义含义都保持一致。这说明模型泛化良好。如果提示词变化时相似度得分大幅下降,则说明模型对输入格式过于敏感。
您可以通过编写 Python 评估循环来自动化此过程。加载您的微调模型和另一个独立的 sentence transformer 模型。遍历包含同义提示词列表的 JSON 文件。为列表中的每个提示词生成响应,将响应转换为嵌入向量,并计算每组相似度得分的方差。
如果自动化评估显示泛化能力较差,这通常直接指向数据集准备或训练参数 (parameter)中的问题。一个只对单一特定提示词格式有响应的模型,很可能在训练时对该字符串产生了过拟合 (overfitting)。观察到这些失败情况后,自然会进入下一个评估阶段,即通过将这些输出与原始基座模型的能力进行对比,来检测过拟合和灾难性遗忘的迹象。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•