[控场AI]
· 7 分钟阅读· 3,776 字

AI大模型测试从入门到实战:评估三层体系全解析

AI大模型测试从入门到实战:评估三层体系全解析

AI时代测试从"断言对错"转向"评估打分",本文梳理了AI评估的核心概念、版本管理与三层评估体系。

随着AI应用大量涌现,软件测试正从传统的确定性断言范式转向基于评分的"评估"范式。文章系统梳理了这一转变的底层逻辑:大模型因Transformer架构的概率性输出,无法用"相等/不相等"断言衡量,必须引入连续打分机制,同时仍需划定及格线来给出最终通过与否的结论。AI评估还要求固定"被测版本"和"评估版本"两个维度,才能保证对比结论的有效性。评估对象分三层递进——大语言模型、知识库(RAG)、智能体(Agent),复杂度依次递增。工具层面推荐Promptfoo,其PyTest风格、YAML驱动、支持LLM-as-a-judge,且已被OpenAI收购。掌握这套底层逻辑框架,比单纯熟悉工具操作更能决定从业者的深度与竞争力。

从测试到评估:AI时代软件质量保障的范式转移

软件行业正在经历一场深刻的角色重构。测试可以做开发,开发也得懂测试——这位从测开转向JS项目开发的B站UP主直言,行业变化太快,学习不能停下来。而在测试领域,AI的落地已经从半年前的"辅助测试提效"迅速走向"AI主导测试",甚至衍生出全新的方向:对AI本身进行测试。

UP主将AI时代的测试体系归纳为三种形态:用AI测试(借助AI辅助提效)、和AI测试(人与AI各司其职分工协作)、对AI测试(针对内含AI功能的软件进行验证)。前两者随着腾讯、阿里、字节以及DeepSeek广告等头部厂商推进工程化落地,已基本成为现实。而随着AI客服、AI算命、AI视频生成等应用大量涌现,如何对这些AI应用进行质量保障,成为测试从业者必须面对的新课题。

这都是可以的

为什么AI不能用断言,而要用评估

传统软件测试的核心是断言——结果要么对、要么错,要么通过、要么失败,没有第三种可能。断言状态码、断言返回字段、断言数据内容,输出确定、结果稳定可靠。但AI大模型彻底打破了这种确定性。

UP主从两个角度解释了概率性的来源。原理层面,主流大模型基于Transformer架构,其在输出时天然带有概率选择机制——同一个问题可能得到不同回答,这是刻在"血统"里的特性。结果层面,即便一个确定的结果(比如数字"2"),也存在中文大写、小写、阿拉伯数字、二进制、十六进制、ASCII等多种表现形式,加上模型参数、上下文的任何微小改动都会引发结果的巨大变化。

正因如此,简单粗暴的"相等"或"不相等"断言不再适用——相等的场景可能是对的,但不相等的场景有几千万种可能。于是行业引入了"评估"这一国际惯例术语。就像判断一个人不能只说好人或坏人,判断疾病也要通过评分而非二元结论,对模仿人的AI同样需要用打分的方式来衡量"有多好"或"有多差"。

Transformer架构的概率性输出机制源于其解码阶段的"采样"策略。模型在生成每个词(Token)时,并非直接选择概率最高的选项,而是根据概率分布进行随机采样——这个随机程度由"温度"(Temperature)参数控制:温度越高,输出越随机多样;温度越低(趋近于0),输出越稳定收敛。此外,Top-p(核采样)等参数同样会影响输出分布。这意味着即便输入完全相同的提示词,每次调用模型得到的回答也可能存在差异,这是模型设计层面的预期行为,而非缺陷。正因如此,传统单次运行、单点断言的测试方式无法可靠捕捉这类概率性系统的真实质量,必须通过多次采样、统计分布的方式进行评估。

评估不等于抛弃测试

值得澄清的一个误区是:AI评估领域并非只有评估、彻底放弃测试。UP主强调,评估指的是"打分"这个概念,而测试则是为分数划定及格线。

就像高考有录取分数线,肿瘤、抑郁症的诊断也有分数阈值一样,AI产品能否上线、能否发布,最终仍需要一个明确的结论判定,而这个结论的依据正是对评估分数的测试判定。

评估与测试的关系

在具体打分方式上,AI领域一般采用0到1的连续值(如0.1、0.2、0.9、0.999)。但连续值也可以离散化:用0表示不通过(0分),用1表示满分,从而回归到传统断言式的通过/失败逻辑。实际项目中,既可能遇到连续分值,也可能遇到0/1的二元结果,两种方式都要掌握。

版本固定:AI评估比传统测试更严格

传统测试有版本号概念——测哪个版本、哪个版本有bug、版本间做了什么改动,测试报告只对特定版本负责。而AI评估因为结果模糊、可能波动,对版本的要求更加严格,需要固定两个版本。

被测版本,即被测系统本身的版本,包括使用了什么模型、传了什么参数、用了什么提示词、添加了什么上下文——任何一项变化都意味着被测版本的变化。比如从DeepSeek换成GPT,版本就变了,结果需要重新评估解读。

评估版本,即用什么手段来测试,包括数据集、断言、提示词、门槛。数据集或门槛变了,结果也会不同。就像同一个人考江苏卷和全国卷,结果可能不一样。

只有固定其中一个版本、变化另一个,才有横向对比价值——固定评估手段换模型可对比模型质量,固定被测系统换门槛可对比门槛效果。若两个版本同时变化,就失去了对比意义,只能作为独立的全新结果解读。

此外,UP主还建议用性能测试来类比理解AI评估:性能测试同样不关心简单的对错,而是在特定条件下通过一组数据发现问题,且需要至少两轮对比才能提交结论。这种"比较"的思路与AI评估高度相似,有性能测试经验的同学会更容易上手。

AI评估到底评什么:三层递进体系

评估的前提是明确评估对象,不同对象的目的和指标各不相同。UP主将常见评估对象分为三层,且这三层是递进关系而非三选一。

评估对象与指标

第一层:大语言模型(LLM)。主要评估生成内容的正确性、完整性、安全性和稳定性。对DeepSeek这类以模型为产品的公司是必测项;对普通公司而言,则可用于模型选型(哪个更好、更快、更聪明)、提示词优化,以及小模型微调后的效果验证。

第二层:知识库(RAG)。原理是先检索正确资料,再结合资料回答问题。因此评估要覆盖各个环节:检索是否准确、忠诚度(生成结果是否有对应参考资料支撑)如何,召回率等指标主要用在这一层。

第三层:智能体(Agent)。包含任务规划、工具使用、任务推进等环节。客服Agent、数据Agent已较常见,未来旅游、法律、医疗等领域的Agent会越来越多。智能体的复杂度最高,因为它同时包含工具选择、任务编排、知识库使用,最根本还要调用大模型。

三者复杂度递增,学习路线也随之清晰:先掌握大模型评估,再到知识库,最后到智能体。UP主表示本次实战只覆盖第一层(大模型),后两层留待后续课程。

RAG(检索增强生成,Retrieval-Augmented Generation)是目前企业落地AI应用最主流的架构之一。其核心思路是:将私有知识库(如公司文档、产品手册)切分成文本片段并向量化存储,用户提问时先在知识库中检索最相关的片段,再将这些片段作为上下文拼入提示词,让大模型基于检索到的资料生成回答。这种方式的优势在于无需重新训练模型即可注入最新私有知识,但也引入了新的失效环节:检索不准会导致模型"巧妇难为无米之炊",而即便检索准确,模型若未能忠实依据资料作答(即"幻觉"问题)也会导致质量下降。因此RAG评估需要分别对检索质量(如召回率、精确率)和生成质量(如忠诚度、答案相关性)进行独立衡量。

工具选型:为什么选择Promptfoo

最后一个关键问题是用什么工具测。UP主重点推荐了Promptfoo,理由有几点。

工具选型与实战

它是PyTest风格的工具,面向有代码基础、尤其有PyTest自动化经验的同学非常友好。它由命令行(CLI)和YAML驱动——这一点很有趣:这个用来评估AI的工具,因为支持CLI,反过来又可以被AI自己使用,为"AI评估AI"的未来场景埋下伏笔。

在评估方法上,人工评估仍是当下的"金标准"(因为行业通识仍认为AI还没有人聪明),而该工具支持通过YAML编写用例断言,实现零代码封装,同时支持批量调用和Python自定义扩展,扩展性强、前景好。更重要的是,它已被OpenAI收购,其优秀程度得到了头部AI公司的背书。

UP主也给出了差异化选型建议:做学术性指标研究可选专注指标数据的工具;做线上面向用户的智能体、需要生产监控可选相应监控工具;而对大多数以"验收上线"为目的的测试同学,Promptfoo更合适,且能覆盖大模型、知识库、智能体三层评估需求。

Promptfoo的核心工作模式是:在YAML文件中定义被测提示词模板、测试用例输入以及断言规则(assert),然后通过CLI批量运行,对模型输出逐条评分并汇总报告。其断言类型覆盖面广,既支持传统的字符串匹配、JSON Schema验证等确定性断言,也支持基于另一个LLM作为"裁判"来评判输出质量的LLM-as-a-judge模式——后者正是"AI评估AI"思路的具体体现。这种裁判模式下,用户只需用自然语言描述评估标准,由LLM自动打分,大幅降低了为复杂开放性问题编写评估逻辑的门槛,也是当前业界在大规模自动化评估场景中的主流解决方案之一。

写在最后

这堂课最枯燥却也最有价值的部分,恰恰是这些方向性、概念性的内容。UP主特别提醒:后续的工具操作和YAML配置只是执行层面的"看一眼就会",真正决定你能否在项目中站稳、面试时能否聊出深度的,是对"AI为什么要评估、评估什么、用什么评估"这套底层逻辑的理解。当你真正动手做事、陷入方向层面的困惑时,回过头看这套体系框架会格外有帮助。

分享:

相关推荐