如何测试模型能力 [草稿]

在构建 AI Agent 之前,先用系统化方法测试模型的核心能力。本文提供从零开始的模型测试框架,包括测试样本准备、评估维度设计和结果分析方法。


构建 AI Agent 之前,先测试模型能否完成核心任务。随意扔几个 prompt 看着输出还行就以为模型没问题,投入两周开发后会发现模型根本无法理解任务结构。AI 时代代码生成已经不是问题,问题是如何判断模型能力边界。

系统化测试模型能力需要三个步骤:准备测试样本、设计评估维度、分析结果边界。AI 工具可以大幅加速执行,但核心的思考和判断仍然需要人类完成。

准备测试样本

测试样本不是随手写的几个例子,而是覆盖任务全貌的代表性数据。你需要包含三种情况:典型场景、边界情况、失败案例。

典型场景代表最常见的使用模式。比如测试代码审查能力,从你的代码库中提取 10 个真实代码片段,涵盖不同语言和复杂度。或者让 AI 根据你的项目特征生成候选样本,你来做最终筛选。关键是样本要反映真实任务的分布,而不是人工构造的理想案例。

边界情况检验模型的极限。代码很短怎么办?代码逻辑错误但语法正确怎么处理?注释和代码混杂时能否区分?可以让 AI 帮你头脑风暴边界场景,然后你来筛选最有价值的那些。这些边缘场景往往是 Agent 系统崩溃的根源。

失败案例同样重要。故意包含一些模型「应该拒绝」的任务,比如要求审查不完整代码、或者超过上下文长度限制的文件。让 AI 生成各种可能的异常输入,你来判断哪些值得测试。观察模型是否能识别这些异常并给出合理反馈。

样本数量建议:至少 20 个,涵盖 3-5 种不同类型。太少无法得出可靠结论,太多则浪费时间。重点是多样性,而不是单纯的数量堆砌。

准备样本时还要注意避免过拟合。不要使用模型训练数据中已有的样本,也不要针对特定模型调整样本。测试样本应该独立于任何特定模型,这样测试结果才能真正反映模型在任务上的泛化能力。

设计评估维度

模型输出不是「好」或「不好」的二元判断,而是多维度质量的综合评估。你需要从四个维度衡量:准确性、一致性、鲁棒性、可解释性。

准确性判断输出是否正确。代码审查是否找出了真正的 bug?文本分析是否识别了关键信息?这个维度最直观,但要注意参考标准的一致性。如果是主观任务,需要明确评分标准。可以让 AI 根据任务描述生成评分标准的初稿,你来调整和完善。典型的 1-5 分量表:1 分完全错误,2 分部分正确但有重大遗漏,3 分基本正确但细节不准确,4 分准确且完整,5 分超出预期。团队协作时,一人用 AI 生成评估框架,其他人快速对齐重点,而不是各自独立评估。

一致性检查模型在不同情况下是否稳定。同一个代码片段换一种表述方式,审查结论应该相似。多次运行同一输入,结果不应出现大幅波动。不一致的输出会让后续的 Agent 逻辑难以设计。

鲁棒性评估模型对扰动的容忍度。输入中包含错别字、格式不规范、或者部分信息缺失时,模型能否仍给出合理回答?这个维度直接决定了 Agent 系统在真实环境中的可靠性。

可解释性关注模型能否说明推理过程。为什么认为这段代码有问题?基于什么特征做出的判断?可解释的输出不仅有助于调试,也能在 Agent 架构中被其他模块理解和利用。

分析结果边界

拿到测试结果后,不要只看平均准确率,更要深入分析失败模式。哪些类型的样本模型处理不好?哪些错误是可以容忍的,哪些是致命的?

分类错误模式很重要。如果模型在简单任务上表现完美,但在复杂逻辑推理上频繁出错,这说明推理能力不足。如果在代码风格判断上不稳定,可能是训练数据中这个领域的样本不均衡。理解失败的根本原因,才能决定是继续优化 prompt,还是换个模型,或者接受这个局限。

设定通过标准。不是所有任务都需要 100% 准确率。有些错误可以通过后续的工具链修复,有些则会导致整个系统失败。明确哪些是必须达到的硬性指标,哪些是可以接受的软性要求。

记录测试过程。保存所有的输入输出对、评估结果和分析笔记。这些数据不仅帮助当前决策,也能在模型升级时作为对比基准。更重要的是,当团队其他成员质疑「这个模型真的行吗」时,你有客观依据支持你的判断。

使用工具简化流程。promptfoo 可以批量测试不同 prompt 变体并对比结果,让 AI 生成 promptfoo 的配置文件,你只需要定义测试样本和评估标准。ChainForge 提供可视化界面进行多模型对比。简单的测试可以用 CSV 或 JSON 记录,让 AI 生成模板,你填充实际数据。工具的选择取决于复杂度,AI 编程工具可以让你在几分钟内搭建起测试框架,核心是保持记录的结构化和可追溯性。

从测试到决策

测试结果会指向三个可能的方向:模型能力足够,可以直接进入 Agent 开发;模型在核心任务上有明显缺陷,需要换模型或者放弃这个方向;模型基本可行但需要 prompt 优化或额外工具支持。

如果模型在核心任务上表现稳定且准确,说明基础能力已经具备。这时可以开始设计 Agent 架构,逐步引入工具调用和多步骤推理。

如果模型在关键维度上严重不足,比如完全无法理解代码结构,或者输出一致性极差,那么继续开发 Agent 只是浪费资源。考虑换个更强大的模型,或者重新定义任务范围。

如果模型能力介于两者之间,可以尝试优化 prompt 或引入外部工具。比如模型本身无法准确判断代码风格,但可以通过调用 linter 工具获得辅助信息。这种情况下,测试阶段的发现会直接指导 Agent 的工具选择和架构设计。

系统化测试看起来增加了前期工作量,但 AI 工具已经把执行成本降到很低。样本准备让 AI 生成候选集,你筛选调整(1-2 小时)。批量测试用自动化工具运行(30 分钟)。结果分析让 AI 总结失败模式,你做最终判断(1-2 小时)。总共半天时间,就能对模型能力边界有清晰认知。这种认知是构建可靠 AI 系统的基础,比盲目开发两周要高效得多。

One More Thing

我准备了一个模型评估测试台。定义 prompt 模板和测试用例,AI 自动执行并评分。每次换模型或换 prompt 时跑一遍,比凭感觉判断靠谱。

参考来源

更新记录

  • 追加 One More Thing 小节,链接到配套工具「模型评估测试台」