假如你刚拿到新房钥匙,准备开启人生第一次装修。你会怎么做?聪明人不会等装修队撤场才去验收——墙歪了要砸,水管漏了要刨,那时候的返工费足够让你后悔当初省下的监工费。正确做法是:动工前在合同里写清“什么叫装得好”,施工中请监理盯紧每一道工序,每装完一个房间就验收一道,最后才整体收房。AI 项目的质量保证,本质就是把这套“装修管质量”的思路,搬进算法和模型交付的每一个环节。接下来,我们顺着这条装修主线,走一遍质量保证的七步:先认清质量保证的本质,再做质量规划,用审计与评审守住过程,用质量门控制结果,选对瀑布或敏捷的节奏,搭建组织级保障体系,最后用风险与度量给整个项目上保险。
掌握质量保证方法论,是 AI 项目经理从“救火队长”升级为“质量掌舵人”的核心分水岭,也是技术 Leader 带团队稳定交付、让业务方安心放行的前提能力。
可视化演示
通过技术采纳曲线和决策矩阵两种模式,展示AI技术从引入到成熟的采纳路径与影响-成本权衡决策过程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
AI技术采纳曲线 五项技术按S曲线增长:LLM、CV、NLP、RL、多模态 LLM采纳率领先,多模态处于早期阶段 A(t) = 1 / (1 + e^(-k(t-t₀)) S曲线反映技术从引入到饱和的完整周期
质量保证概述
装修时,业主和施工队对“质量”的理解往往南辕北辙。业主要的是“住二十年不出问题”,施工队说的是“按图施工,符合甲方要求”。双方各说各话,最后验收必起争执。质量保证的第一课,就是先把“质量”从一句口号,变成可管理、可计价、可问责的对象。
项目管理里有两个容易混淆的词:质量保证(Quality Assurance, QA)和质量控制(Quality Control, QC)。QA 关注“过程”——团队有没有按既定的流程做事,好比监理盯着施工工序是否规范;QC 关注“产物”——交付的东西达不达标,好比验房师拿着仪器量墙面平整度。两者一个管过程、一个管结果,缺一不可。
要管好质量,先得算清质量的账。质量成本(Cost of Quality, CoQ)把为质量付出的代价分为三类:预防成本、评估成本和失败成本。预防成本是培训、规范制定、评审的花费;评估成本是测试、检查的花费;失败成本则是返工、赔偿、事故处置的花费。行业经验表明:预防阶段投入 1 元,平均能避免 5 到 10 元的返工损失——这就是“预防胜于补救”的量化依据。
回到装修:请监理、买检测仪器花的是预防和评估成本;入住半年发现漏水砸瓷砖、赔楼下邻居的损失,则是失败成本。真正会算账的业主从不在监工费上抠门,因为他们知道——最贵的质量,是发现得太晚的质量。
- 质量成本的含义$\mathrm{CoQ}$ 是“为达到质量付出的总代价”,装修中等于“监理费 + 材料质检费 + 返工赔偿金”的总和。
- 预防成本$C_{\text{预防}}$ 指培训、规范制定、评审会议等事前投入,相当于装修里请设计师和监理的钱。
- 评估成本$C_{\text{评估}}$ 指测试、检查、质量审计等“确认质量”的花费,相当于验收时的各项检测费用。
- 失败成本$C_{\text{失败}}$ 指返工、赔偿、事故处置等“质量没做好”的代价,相当于砸墙重做、漏水理赔。
质量规划
装修动工之前,成熟的业主会签一份厚达几十页的合同:地板品牌、瓷砖规格、墙面平整度误差、水电走线间距,白纸黑字写得明明白白。有了这份合同,工人不能“差不多就行”,验收时也不用靠吵架解决分歧。质量规划,就是项目开工前那份“质量合同”。
在 AI 项目里,质量规划要回答三个问题:给谁做?标准是什么?怎么验证?给业务方做的智能客服,标准是“常见问题准确率达到 95%”;给风控用的反欺诈模型,标准是“误杀率低于 0.5%”。这些数字不能拍脑袋,要从业务目标层层分解而来,像装修合同一样写进迭代计划。
质量规划的关键产出是可测量指标和验收计划。一个经典指标是缺陷逃逸率(Defect Escape Rate, DER),衡量一批缺陷里有多少漏到线上才被发现。漏得越少,说明上线前的测试与评审拦得越干净。AI 团队通常把 DER 控制在 2% 到 5%,具体阈值取决于业务对风险的容忍度。
装修合同里写“墙面平整度误差不超过 3 毫米”,AI 项目里写“缺陷逃逸率不超过 3%”。两者本质相同:把模糊的“质量要好”翻译成可测量的数字。有了尺子,验收才有依据,团队才有方向。
- 线上缺陷$D_{\text{线上}}$ 是上线后用户才发现并报告的缺陷数,类比入住后才发现漏水。
- 测试缺陷$D_{\text{测试}}$ 是上线前测试阶段拦下的缺陷数,类比收房验房时发现的问题。
- 缺陷总量$D_{\text{线上}} + D_{\text{测试}}$ 是项目生命周期产生的全部缺陷,构成公式的分母。
- 逃逸占比两者相除再乘以 $100\%$ 得到逃逸率,数值越小说明测试阶段拦得越干净。
质量保证活动
装修公司嘴上说“我们质量你放心”,但有经验的业主依然会定期跑工地。看什么?看水泥标号是否符合合同、管线走向是否横平竖直、防水层涂了几遍——这些细节决定房子十年后的模样。这种“不看出品看过程”的检查,就是装修版的过程审计。
质量保证活动发生在交付之前、过程之中,核心是确保团队说的和做的一致。AI 项目最常见的三种活动:过程审计,按计划抽查团队是否遵守规范;同行评审,请资深同事交叉检查需求文档、模型设计、评估方案;持续改进,把发现的问题沉淀成下一轮行动。
过程审计的量化指标是过程符合率(Process Adherence),即抽查环节中合规项的占比。审计中发现不合规项,不是扣工资了事,而要追根因:是规范太复杂、培训不到位,还是流程本身有问题。随后用 PDCA 循环让每轮发现转化为改进——计划改进点、执行动作、检查效果、沉淀为新制度。
监理不会因为“施工队看起来挺认真”就免检——他会随机抽 100 道工序,记下几道不合规,算出符合率。过程符合率低于红线,说明队伍该重新培训、制度该重新打磨。过程守住一分,结果就少崩一分。
- 审计总项$N_{\text{审计}}$ 是一次过程审计抽查的环节总数,如随机挑选的 20 个代码提交、10 份评审记录。
- 合规项数$N_{\text{符合}}$ 是其中完全遵守规范流程的环节数,类比监理检查 100 道工序时的合格数。
- 符合比例两者相除再乘以 $100\%$ 得到过程符合率,衡量团队“按规矩办事”的程度。
- 阈值判断若 $\mathrm{PA}$ 低于预定阈值(如 90%),说明流程执行走样,需要补强培训或精简规范。
质量控制
每装完一个房间,业主会拿着验收清单逐项打钩:强电通不通、排水堵不堵、门窗开合顺不顺。打钩通过,才让工人进下一个房间;发现打钩不过,当场返工,绝不留到整屋交付。这个“逐间验收、不达标不继续”的关卡,就是质量门。
质量控制关注的是可交付物本身。在 AI 项目里,控制对象包括模型版本、训练数据包、代码发布版本。质量控制的目标不是“发现所有问题”——那不可能也不划算,而是“把高风险问题拦在上线之前”,并让缺陷的发现与修复形成闭环。
衡量控制成果的核心指标是缺陷密度(Defect Density),即每千行代码(或每千条训练样本)包含多少缺陷。缺陷密度不是越低越值得炫耀,而要与项目风险匹配:给医院用的影像诊断模型,缺陷密度红线必然比内部工具严得多。质量门则把指标变成强制力:任何指标不达标,版本禁止进入下一阶段,如同水位没过红线就关闸。
装修的质量门是“这间房不达标,下间房不开工”;AI 项目的质量门是“这个版本不达标,不发布、不上线”。有人觉得质量控制太麻烦,但比起上线后用户替我们测 bug,验收清单上的钩子才是最便宜的质检员。
- 缺陷数量$N_{\text{缺陷}}$ 是某版本中确认的缺陷总数,包含测试发现与评审发现的全部缺陷。
- 规模分母$\mathrm{KLOC}$ 是千行代码数(Kilo Lines of Code),装修里相当于“待验收的房间面积”。
- 密度计算两者相除得到每千行代码的缺陷数,可跨模块、跨版本比较质量水平。
- 趋势判定缺陷密度持续下降说明质量保证起效;反弹则要警惕回归,及时复查最近改动。
开发模式选择
装修界有两条截然不同的路:一条是全包给大公司,设计图纸先画完整,三个月后一次性交付——瀑布式;另一条是自己当包工头,客厅先住着,厨房边用边改,一个区域一个区域地验收——敏捷式。
瀑布模式适合需求稳定、合规严苛的 AI 项目,比如银行风控系统的版本升级,需求提前冻结、评审逐层把关;敏捷模式适合需求快速演进、效果需要反复试错的场景,比如大模型应用的提示词调优、推荐系统的特征实验。选择哪条路,关键看变更成本有多高。
变更成本曲线是选择模式的底层依据:缺陷或需求变更被发现的时间越晚,修改成本越高。需求阶段改一行描述只要 1 个工时;设计阶段要 10 个;开发阶段要 100 个;上线后要 1000 个。这条指数曲线解释了为什么瀑布项目格外重视前期评审,也解释了为什么敏捷项目要把质量门放进每个冲刺。
装水电最怕“入住后才改”,那时砸墙刨地花的钱是装修时的十倍。无论你选全包还是 DIY,聪明的业主都会在图纸阶段多花三倍时间反复确认——因为改得越晚,贵得越狠。开发模式可以不同,前置质量投入的道理都一样。
- 初始成本$C_0$ 是需求阶段修改的成本基线,比如改一行需求描述只花 1 个工时。
- 时间变量$t$ 是缺陷被发现时离需求阶段的“时间距离”,阶段越靠后数值越大。
- 指数因子$e^{kt}$ 是指数增长因子,$k$ 是放大系数,现实中每跨一个阶段成本扩大约 10 倍。
- 整体含义$C(t)$ 表示缺陷越晚修越贵,所以质量保证要在早期前置投入,别让账单滚到上线后。
质量保障体系
单靠业主自己盯工地,力量终归有限。幸运的是,小区物业管装修时间,住建部门管施工资质,行业协会定质量标准——装修质量从来不是业主一个人的孤军奋战。AI 项目的质量也不能只靠项目经理个人人品,而要长在组织里。
质量保障体系是组织层面的系统安排,三大支柱缺一不可:组织职责架构,让质量有人管——质量负责人、测试团队、架构评审委员会各司其职;规范制度文件,让质量有章可循——编码规范、评审流程、发布检查清单;工具平台支撑,让质量有器可用——CI/CD 流水线、缺陷跟踪系统、模型评估平台。
体系要有效,关键交付物必须纳入评审范围。评审覆盖率(Review Coverage)衡量“应该评审的交付物里,实际评了多少”。体系成熟度的标志是:质量不是某个人的 KPI,而是每一条流水线、每一份文档里都长着“质量基因”。
物业规定、行业标准、监理资质,这些看不见的“体系”才是装修质量的底牌。AI 团队也一样:代码提交有流水线自动检查,模型发布有平台强制评估,不是靠某位大神把门,而是靠体系让每个人都在门里。
- 应评对象$S_{\text{应评审}}$ 是关键交付物清单,如需求文档、架构方案、模型评估报告。
- 已评对象$S_{\text{已评审}}$ 是实际完成同行评审的交付物数量,类比合同里规定“每道隐蔽工程必须验收”。
- 覆盖率计算相除乘以 $100\%$ 得到评审覆盖率,衡量制度防线是否漏了环节。
- 红线管理关键交付物覆盖率应达 $100\%$,低于红线说明保障体系出现缺口,需立即补位。
风险与度量
装修最怕两件事:材料涨价和工期拖延。精明的业主会预留 10% 到 20% 的预算余量,合同里写明延期赔偿,甚至提前锁定主材价格。这些事前安排,就是装修的风险预案。
AI 项目的质量风险五花八门:训练数据被污染、模型上线后分布漂移、核心算法工程师中途离职。风险管理的第一步是识别并评估:风险暴露度 = 发生概率 × 影响程度。概率高、影响大的风险排在最前面,优先配置应对资源。
应对策略有四种:规避——换掉有风险的技术方案;减轻——增加评测与监控降低发生概率;转移——把标注环节外包给有资质的服务商;接受——对低影响风险登记在册、保持观察。同时,用质量度量持续监控全过程:交付指标看缺陷逃逸率、故障率,过程指标看评审覆盖率、测试通过率;度量数据反过来校准下一轮质量规划,形成年度大闭环。
预算余量是装修的安全垫,质量账本是业主的备忘录。前者让意外发生时心里不慌,后者让每一分钱都花在刀刃上。风险与度量,就是 AI 项目质量保证的“安全垫”和“备忘录”——有了它们,项目才敢放心冲刺上线。
- 发生概率$P$ 是风险发生的可能性,取值 0 到 1,如数据标注错误率估计为 20%。
- 影响程度$I$ 是风险发生造成的损失评级,可用人天、金额或严重度等级量化。
- 暴露度乘积$R = P \times I$ 用于给风险排序;装修中“漏水”概率不高但影响巨大,也要重点设防。
- 决策依据暴露度高的风险优先安排应对措施——规避、减轻或转移,低风险则登记观察。
AI 应用场景
大模型应用的发布质量门
阶段:交付验收与上线管控(对应“质量控制”)
解决的问题:传统做法靠人工抽查聊天记录来评估模型效果,主观且滞后,上线后才发现对话质量差、引发客诉。质量门把“效果过关才能发布”变成流水线上的强制规则,不达标直接红灯拦截。
具体案例:某智能客服项目维护 2000 条黄金评测用例,每次迭代用自动化脚本跑分。回答准确率低于 95% 或缺陷逃逸率超过 3% 时,发布流水线立即拦截,模型版本无法部署到生产环境——像装修时“这间房不达标,下间房不开工”。
数据标注过程审计
阶段:数据生产与质量保证活动(对应“过程审计”)
解决的问题:标注团队质量参差不齐,脏数据悄悄混进训练集,把模型带偏。靠终验抽检只能事后补救,过程审计才能让问题在发酵前被喊停。
具体案例:自动驾驶标注项目每周随机抽取 500 条标注结果,与专家标注比对计算一致率。过程符合率低于 90% 的标注组立即回炉培训,标注一致率纳入团队月度质量仪表盘,评审覆盖率从 62% 提升到 96%。
敏捷迭代中的变更成本预警
阶段:需求变更管控(对应“开发模式选择”与“风险管控”)
解决的问题:业务方频繁改需求,算法团队沦为“需求翻译机”,返工浪费大量算力和人力。变更成本曲线让团队看清“越晚改越贵”,倒逼需求在评审阶段敲定。
具体案例:某推荐算法团队引入变更成本统计:记录每个需求在各阶段变更的耗时,按月输出“变更成本曲线”。当上线阶段变更占比超过 20%,项目例会强制复盘变更源头,三个月后该占比降到 8%。
Python 演示
# -*- coding: utf-8 -*-"""AI项目质量保证演示:质量门检查器 用装修验收的思路,对每次迭代交付物做"质量门"检查:缺陷密度超标或评审覆盖率不足的版本,一律拦截不放行。"""from dataclasses import dataclass @dataclassclass QualityGate: """质量门:定义一次迭代交付必须满足的硬指标""" name: str defect_rate_limit: float # 缺陷密度上限(个/千行代码) review_coverage_min: float # 评审覆盖率下限(0~1) @dataclassclass IterationReport: """迭代报告:记录本次迭代的过程与结果原始数据""" commits: int # 提交的代码变更数 bugs_found: int # 发现的缺陷总数 kloc: float # 代码规模(千行) reviewed_commits: int # 经过评审的提交数 def check_gate(gate, report): """返回 (是否放行, 未达标原因列表)""" defect_rate = report.bugs_found / report.kloc review_coverage = report.reviewed_commits / report.commits failed = [] if defect_rate > gate.defect_rate_limit: failed.append("缺陷密度 %.2f 高于上限 %.2f" % (defect_rate, gate.defect_rate_limit)) if review_coverage < gate.review_coverage_min: failed.append("评审覆盖率 %.0f%% 低于要求 %.0f%%" % (review_coverage * 100, gate.review_coverage_min * 100)) return len(failed) == 0, failed def simulate(): """模拟 4 轮迭代:QA 活动介入后,缺陷密度与覆盖率逐步改善""" gate = QualityGate(name="v1.0 发布质量门", defect_rate_limit=0.35, review_coverage_min=0.8) reports = [ IterationReport(commits=45, bugs_found=18, kloc=3.2, reviewed_commits=15), IterationReport(commits=52, bugs_found=14, kloc=3.8, reviewed_commits=30), IterationReport(commits=40, bugs_found=10, kloc=4.1, reviewed_commits=34), IterationReport(commits=38, bugs_found=6, kloc=3.5, reviewed_commits=33), ] for idx, report in enumerate(reports, 1): passed, failures = check_gate(gate, report) print("迭代 %d:%s" % (idx, "放行" if passed else "拦截")) for item in failures: print(" - %s" % item) if __name__ == "__main__": simulate()
def check_gate(gate, report):质量门检查函数,像验房员拿着合同逐项打钩。defect_rate = report.bugs_found / report.kloc计算缺陷密度,对应墙上每平方米的裂缝数。review_coverage = report.reviewed_commits / report.commits计算评审覆盖率,对应监理抽查的工序占比。if defect_rate > gate.defect_rate_limit:密度超标即记入拦截原因,绝不口头放行。gate = QualityGate(name="v1.0 发布质量门", ...)发布前把标准钉死,像装修合同的验收条款。for idx, report in enumerate(reports, 1):逐轮迭代闯关,像每个房间逐一验收。print("迭代 %d:%s" % (idx, "放行" if passed else "拦截"))输出质量门结论,红灯亮就停下补课。
常见误区
误区很多初学者把质量保证等同于测试——多招几个测试工程师、多跑几轮用例,质量就上来了。
正解测试只是质量控制(QC)的一部分,而且在缺陷已经产生时才介入。真正的质量保证是前置的:制定标准、评审设计、审计过程,让缺陷在产生前就被预防。比喻:测试是验房师量墙面,质量保证是监理看每一铲水泥——量墙面只能发现问题,盯工序才能减少问题。
为何常见:因为测试效果看得见、摸得着,而过程管理是慢功夫,容易被“反正最后测一遍”的心态掩盖。
误区项目预算吃紧时,第一个被砍的常常是评审、测试和工具建设,觉得这些是“不必要的开销”。
正解质量成本中,失败成本通常是预防成本的 5 到 10 倍。砍掉 10 万预防成本,很可能换来 100 万的返工和赔偿。比喻:省下监理费,换来砸墙费,这是最不划算的装修生意。
为何常见:预防成本是显性支出、看得见账本,失败成本是隐性损失、发生在项目后期,两者时间上错开,给人“省了钱”的错觉。
误区敏捷讲究快,写文档、做评审都是拖后腿,直接写代码上线再说。
正解敏捷不是不要评审,而是把评审变成小步快跑:每次冲刺有同行评审、质量门和回顾会,缺陷在两周内就被拦截,而不是攒到上线前一次爆发。比喻:DIY 装修也要有验收清单,只是清单从“三个月验收一次”变成“每装完一间就验收一次”。
为何常见:把“轻文档、重交流”误读成“零文档、零评审”,忽略了敏捷仪式中的评审环节。
误区把缺陷逃逸率定为 0%、评审覆盖率定为 100%,觉得数字越漂亮项目质量越可靠。
正解质量要和业务风险、项目成本匹配。追求完美指标会让团队把时间耗在边际收益极低的事务上,拖慢交付。比喻:要求装修零瑕疵不现实,业主真正该做的是把防水、电路等关键区域的标准定高,次要区域合理宽松。
为何常见:人对“完美”有天然偏好,且指标好看在汇报时很有面子,容易忽视过度质量带来的隐性成本。
面试题
Q1. 质量保证(QA)与质量控制(QC)的关键区别是什么?
- A.QA 盯过程,QC 查产物← 正确答案
- B.QA 查产物,QC 盯过程
- C.QA 只测代码,QC 只写文档
- D.QA 与 QC 的含义完全相同
答案:A。QA 与 QC 的分工好比装修中的监理与验房师:QA 盯施工过程是否规范,QC 查交付产物是否达标。B 把两者说反了,C 把职能窄化成测试与文档,D 混淆了概念。选 A。
Q2. 返工与线上事故属于质量成本中的哪一类?
- A.预防成本,补足规范建设
- B.评估成本,检查测试投入
- C.失败成本,返工事故损失← 正确答案
- D.机会成本,预算分配取舍
答案:C。质量成本三类中,返工与线上事故是“质量没做好的代价”,属于失败成本。预防成本是开工前的投入,评估成本是测试检查的花费,机会成本不属于经典质量成本框架。选 C。
Q3. 缺陷逃逸率(DER)的完整计算公式是?
- A.线上缺陷除以测试缺陷总数
- B.线上除以线上与测试之和再乘百分比← 正确答案
- C.测试除以线上与测试之和再乘百分比
- D.全部缺陷除以代码规模总行数
答案:B。DER = 线上缺陷 ÷ (线上缺陷 + 测试缺陷) × 100%,衡量漏网缺陷占全部缺陷的比例。A 只比线上和测试,没有构成“逃逸占比”;C 算的是“测试拦截率”;D 是缺陷密度公式。选 B。
Q4. 敏捷模式相比瀑布模式,质量把控上的主要特点是?
- A.全部迭代结束后统一验收
- B.每个迭代设质量门快速把关← 正确答案
- C.完全取消测试和评审活动
- D.必须沿用瀑布文档和流程
答案:B。敏捷把大项目切成多个冲刺,每个冲刺结束都设质量门,像装完一间房就验收一间。A 是瀑布的做法,C 荒诞,D 并非敏捷必需。选 B。
Q5. 变更成本曲线说明了什么规律?
- A.越早变更付出的成本越高
- B.越晚变更付出的成本越高← 正确答案
- C.变更成本与时间不存在关系
- D.变更成本始终保持固定不变
答案:B。变更成本曲线揭示“越晚改越贵”——需求阶段改 1 个工时,上线后可能 1000 个。A 与事实相反,C、D 忽略了时间对成本的数量级放大作用。选 B。
Q6. PDCA 循环中 Act(处理)阶段的重点是?
- A.制定新一轮的改进计划
- B.落实本轮改进动作并记录
- C.沉淀经验并启动新循环← 正确答案
- D.对照指标检查本轮执行效果
答案:C。PDCA 中 Act 不是简单制定新计划,而是把本轮经验教训沉淀成制度,再启动下一轮 Plan。A 是 Plan 的工作,B 是 Do,D 是 Check。选 C。
Q7. 质量门(Quality Gate)的核心价值是什么?
- A.记录并统计项目全部缺陷
- B.不达标就拦截交付物放行← 正确答案
- C.替代全部自动化测试工作
- D.只对线上事故承担责任
答案:B。质量门的价值在于强制执行——指标不达标就拦截交付物进入下一阶段。A 只是记录功能,C 夸大替代关系,D 把范围窄化为线上事故。选 B。
Q8. 质量保障体系的三大组成是哪些?
- A.组织职责架构与分工安排← 正确答案
- B.规范制度文件的沉淀积累← 正确答案
- C.工具平台的自动化支撑← 正确答案
- D.市场推广经费的预算分配
答案:ABC。保障体系三支柱是组织职责、规范制度、工具平台,对应“人、规矩、家伙什”。D 的市场推广预算与质量保障无关。选 [0,1,2]。
Q9. 对于高风险质量风险,可采取哪些应对策略?
- A.规避风险调整项目方案← 正确答案
- B.减轻风险降低发生几率← 正确答案
- C.转移风险外包或买保险← 正确答案
- D.忽略风险不做任何处理
答案:ABC。风险应对四策略为规避、减轻、转移、接受,D 的“忽略”不是策略而是失职。比喻:装修对漏水风险要“防水多做两遍”(减轻)、“买装修险”(转移)、“换掉隐患水管”(规避)。选 [0,1,2]。
Q10. 某 AI 团队因训练数据标注错误导致线上事故,为从根源治理,应在质量保证体系中采取哪些组合措施?
- A.标注一致率纳入过程度量← 正确答案
- B.数据阶段设置质量门拦截← 正确答案
- C.只扩测试集并调低下限
- D.标注错误样本进缺陷库闭环← 正确答案
答案:ABD。数据质量问题要从源头治理:标注一致率进过程度量(A)、数据质量门拦截脏数据(B)、缺陷闭环跟踪(D)构成完整保障。C 说反了——扩大测试集却降低门槛,会让更多脏数据混进模型。选 [0,1,3]。