AI审计工具号称95%准确率,可它是自己划的及格线,不是考出来的分数
本文目录
- 这个95%,分子和分母各是什么?
- 把公开信息里的数字乘一遍
- 免费版看不见这个数,付费版才会撞上
- 分母不写出来,读者会自己补一个
- 换成你自己的站,这三个数分别是多少
- 试用体验和准确率是两条不相交的线
- 这个95%,到底是测出来的还是筛出来的?
- 一句必然为真的话
- 门槛和成绩同名的三句判据
- 算出来是多少
- 公道话要说在前面
- 同一个结构,在别的工具上长什么样
- 什么时候公布一条准入线是完全正确的
- 为什么删掉的总是限定条件
- 如果你是那个要公布数字的人
- 为什么说“跟人类专家一致”这句话的天花板不在机器身上?
- 启发式评估从来就没有唯一正确答案
- 一致率测的不是准不准,是像不像
- 原文括号里那句自嘲,是全文最重要的一句
- 人和机器共用了同一套底表
- 三个没被回答的问题,各自会带来多大的偏差
- 并入偏倚的三种常见形态
- 这件事其实有个更省事的解法
- 有一类检查天然适合自动化,有一类天然不适合
- 同一个95%,为什么可以是“中等”也可以是“几乎完美”?
- 白送的那部分有多大
- 把白送的部分扣掉之后
- 越是查得细的检查,越容易掉进去
- 顺手把另一个数也算了
- 比卡帕更好用的一把尺子
- 这个基线该怎么估
- 顺带说一下这些数为什么很少被公布
- 把“准确率”这三个字换掉
- 唯一一份规范这类检查的国际标准,通篇没有用“准确率”这个词
- 它用的词不是准确率,是一致性
- 结果不是对错两个值,是五个
- 它把“不准确”拆成了两件根本不同的事
- 它也不允许只报一个数
- 同一个组织对“给一个汇总分数”的正式态度
- “必须把评分方法一起交出去”这句话,两份文件都写了
- 还有一条更细的分类,同样值得抄走
- 规范强制要求你写清楚“我不适用于什么”
- 那篇文章里最值得抄走的一段,是它的架构
- 法律要求公布准确率的时候,到底要求了几样东西?
- 法条要的不是一个数,是四样东西
- 写法条的人自己也承认没人知道该怎么测
- 然后是那个真正的闭环
- 顺手看一眼那79个站是谁
- 那这个数究竟该由谁来查?
- 在没有第三方之前,能做的替代动作
- 但这部法律里有一条今天就管到你的站
- 把这份公示放进医学的报告规范里,能过几条?
- 先看这份规范里最基础的几个概念
- 逐条对一遍
- 缺得最要命的是哪三条
- 规范自己写了它为什么要这30条
- 这份清单本身是怎么来的
- 剩下那些条目里,还有两条对我们特别有用
- 把这十二条压成一页纸
- 那份清单里唯一一条要求画图的
- 不跟厂商谈,自己能验出多少?
- 第一件事:做一个除法
- 第二件事:算一笔核实工时的账
- 第三件事:让它把同一个页面看三遍
- 第四件事:造一个必然会红的例子
- 第五件事:拿随机页面去校准你精挑的那批
- 这五件事该按什么顺序做
- 第六件事:把更新日志当成分母的变更通知
- 把这六件事写成一页自查表
- 为什么这套动作不能交给技术评估去做
- 它提出的那条验收标准,买方其实执行不起
- 一次被验证的正确,最危险的用法是被推广
- 一个看起来最适合上自动化检查的站
- 预警是一次胜利
- 为什么这种预警最难识别
- 后来是怎么发现的
- 后来把闸门挂在了哪儿
- 三种反对,以及怎么答
- 边界要主动说清楚
- 那份季度复盘文档后来怎么处理的
- 预警形态跟前面十四次的差别在哪儿
- 这次真正学到的那一条
- 常见问题解答
- 不同AI审计工具公布的准确率,能不能直接拿来比较?
- 覆盖率这个数在产品页上找不到怎么办?
- 人机一致率和准确率是一回事吗?
- 准确率从95%提到99%,对我的实际工作差别有多大?
- 中文站用这类欧美UX工具,风险主要在哪里?
- 欧盟人工智能法案会不会管到我用的AI分析工具?
- 只有一个免费试用账号,能验证出什么?
- 权威参考资料
摘要:一款AI审计工具公布了95%的准确率,还附上了原始比对数据和79个测试站的截图,这在同类产品里已经算极其坦诚。但把它自己的三句话原文摆在一起看,那个95%并不是从测量里得出的结论,而是决定哪些检查项可以上线的门槛——700多条准则里只有346条跨过了这道线,剩下的354条不是查错了,是根本没查。而在一份没有发现问题的报告上,没查过和查过没问题,长得一模一样。
这个95%,分子和分母各是什么?
先说清楚这件事的来源。Baymard是一家做电商可用性研究的机构,做了十几年,攒了20万小时以上的用户研究,700多条设计准则。2025年10月,他们公布了一款叫UX-Ray的自动化工具,能扫描一个电商网站然后直接给出问题清单,2026年5月又更新了一次数据。核心卖点只有一句:这套自动检查的准确率是95%,跟人类专家审同一批站的结论对得上。
同时他们把话说得很重:市面上那些拿大模型做UX分析和转化率优化建议的工具,公开测出来的准确率只有50%到75%,更糟的是很多根本没有任何准确率文档;任何低于95%或者没有文档的工具,都不适合用在有真实收入的商业站上。这个立场本身站得住,而且整个中文互联网都缺这一课——毕竟连内容优化工具那套评分到底怎么来的,认真拆过的人都不多。
但同意归同意,一个用来判断别人的数字,自己得先经得起同样的追问。追问只有一句话:这个95%,分子是什么,分母是什么。
把公开信息里的数字乘一遍
好消息是,需要的数字他们自己全公布了,不用猜。346条启发式准则,79个测试网站,人和机器看的是完全相同的一批截图,结果逐行手工比对。那么这次测量总共产生了多少个判断点,是一道乘法题。
| 项目 | 公布值 | 推出来的数 |
|---|---|---|
| 参与测量的准则条数 | 346条 | —— |
| 参与测量的网站数 | 79个 | —— |
| 判断点总量 | 未公布 | 346 × 79=27334个 |
| 人机不一致的判断点 | 未公布 | 27334 × 5% ≈ 1367个 |
| 平均每个站的不一致条数 | 未公布 | 1367 ÷ 79 ≈ 17.3条 |
| 准则总量 | 700多条 | 参与测量的占比 ≈ 49.4% |
| 整份测量的花费 | 10万美元以上 | 折合每个判断点约3.66美元 |
17.3这个数是这张表里最该被记住的。它的意思是:你花钱扫描自己的站,拿到一份完整报告,按厂商自己公布的准确率,这份报告里平均有17条左右跟人类专家的判断对不上。不是17条一定是错的——里面既有工具说有问题而实际没问题的,也有工具说没问题而实际有问题的——但你无法知道是哪17条。
免费版看不见这个数,付费版才会撞上
这里有一处很有意思的结构性错位。他们的免费方案是给你的电商站前2条UX建议。2条里出现不一致的期望值是2 × 5%=0.1条,也就是说,十个免费用户里大概只有一个会碰上一条对不上的建议,而且他多半不会察觉。
换句话说,这个工具的误差在免费版里几乎是隐形的,只有做全量扫描的付费用户才会成规模地遇到它。这不是谁设计了陷阱,是概率的自然结果。但它带来一个副作用:产品口碑最容易形成的那一层用户,恰好是最接触不到误差的那一层。他们试用完的感受是“两条都挺准”,而这个感受会被当成对整套系统的评价传出去。
这几年帮客户过工具,越来越警惕这种结构。免费试用不是没用,它验证的是能不能跑通、界面顺不顺手、输出看不看得懂,这些都值得验。但它验证不了准确率——样本太小的时候,任何准确率都测不出来,你只是在看一次运气。
分母不写出来,读者会自己补一个
再回到那个95%。文章从头到尾说的是“准确率”,读者拿到这三个字,脑子里默认补上的分母是:这个工具做出的全部判断。于是95%被读成“它说的每100句话里有95句是对的”。
而真实的分母是另一个东西——参与这次比对的346条准则在79个站上产生的判断。这两个分母之间差着一个从来没被提起的量:它没做的那354条判断。这个差额有多大,下一节专门算。
这类事情有个共同的形状。一个百分数如果只公布分子的性质、不公布分母的边界,读者会自动把分母补成“全部”,而这个补全几乎总是往有利于发布方的方向偏。不是因为读者笨,是因为不写分母的时候,“全部”是唯一一个不需要额外信息就能想到的默认值。这个规律在流量报表、在广告归因、在转化率口径上反复出现,站内讲虚荣指标与北极星指标那篇里的每一个坑,往底下挖两层都能挖到同一件事:分母被省略了。
需要说清楚的是,这家机构是同类产品里唯一一家把原始比对数据放出来的,下面拆的不是它的诚意。拆的是那个数本身,看它究竟测了什么。因为过两年你的桌上会摆着五份这样的公示,每一份都写着一个漂亮的百分数,而你需要一套不依赖厂商配合的手法去分辨它们。
换成你自己的站,这三个数分别是多少
上面那张表是拿别人的公开数据算的,真正有用的是把同一套算法套到你要买的那个工具上。三步,不需要任何人配合。
第一步,找出它一次扫描会产生多少个判断点。这个数等于它实际参与自动检查的项数,乘以你打算扫描的页面数。很多工具的报告页脚会写“本次共检查N项”,没写就看产品文档里的检查清单长度。这个乘积就是这次扫描的分母。
第二步,用它公布的准确率算出误差条数。判断点总量乘以百分之百减去准确率。这个数往往大得让人意外——因为分母是页面数乘以检查项数,两个都不小,乘出来的结果就很大。一个200个页面、150项检查的扫描,按95%算,误差是1500个判断点。
第三步,看这些误差落在哪里。误差不会均匀撒在所有页面上,它会集中在那些界面形态不常见的页面上——自定义组件多的、活动模板做的、第三方插件渲染的。这三类页面在你的站上占多少比例,就大致对应了这份报告里最不可信的那部分有多大。
做完这三步你会得到一句可以写进汇报的话:这次扫描一共下了多少个判断,其中大约多少个可能与专家判断不符,而它们更可能出现在哪一类页面上。这句话比“我们买了一个准确率95%的工具”信息量大一个量级,而且成本是三次乘法。
试用体验和准确率是两条不相交的线
还有一层值得说清楚,因为它影响的是采购决策本身。
试用能验证的事情其实不少:能不能跑通你的站点结构、扫描要等多久、报告读不读得懂、导出格式能不能进你们的工单系统、是不是每条建议都带截图和定位。这些都是真问题,而且试用是验证它们最省事的方式。
唯独准确率不在其中。试用给的样本量太小,小到任何一个准确率都测不出来——2条建议里出现误差的期望值是0.1条,你观察到的不是准确率,是一次运气。这跟A/B测试要先算样本量是同一条道理:样本不够的时候,你看到的差异全是噪声。而人的判断偏偏最容易被这种小样本经验固定下来:两条都挺准,那这工具应该挺准。
试用能替你验掉的是这几件:站点结构跑不跑得通、扫描要等多久、并发有没有限制、报告读不读得懂、导出格式进不进得了工单系统、每条建议带不带截图和元素定位、措辞是不是能直接转给开发。这一串都是真问题,而且换任何别的办法验都更麻烦。
试用替不了的也是几件:准确率是多少、覆盖了你那份检查清单的百分之几、它在你这个品类上准不准、同一个页面跑两次结论稳不稳定、它没报的那些项到底是查过还是根本没查。
右边那一列这五件没有一件是靠免费试用能拿到的,但恰恰是它们决定了这笔钱花得值不值。所以试用的正确用法是排除,不是选择——用它把跑不通、读不懂、导不出的候选踢掉,剩下的用后面几节的方法接着筛。至于工具自己报出来的那些数字该信几分,第三方工具数据的校准方法那篇里的六步同样适用。
这个95%,到底是测出来的还是筛出来的?
把原文里三句话抄下来,按发表顺序排好,这一节要讲的东西自己就浮出来了。
在我们把700多条研究支撑的UX准则放进UX-Ray之前,我们先确保它已经达到了有文档记录的95%以上准确率。
只有当95%的准确率在大量网站上可重复时,一条准则才会被加进UX-Ray。
UX-Ray能够用346条UX准则执行自动化启发式评估,准确率达到95%或更高。
前两句是纳入规则,第三句是测量结论。问题在于,纳入规则里那个数,和测量结论里那个数,是同一个数。
一句必然为真的话
把这三句翻成大白话就是:达不到95%的准则不许上线;上线了346条;这346条的准确率是95%以上。
第三句因此不可能是假的。它跟“这个班里及格的同学,考试成绩都在60分以上”是同一类陈述——你没法反驳它,因为不及格的那批已经不在“这个班里及格的同学”这个集合里了。它没有说谎,它只是没有携带信息。
这不是文字游戏。它带来的实际后果非常具体:这个95%无法用来预测工具在你的站上表现如何,因为它压根不是一个关于表现的测量,是一个关于准入的声明。它回答的是“我们放行的标准有多高”,不是“我们放行之后做得有多好”。
这两个问题的答案在数值上可能很接近,但性质完全不同。前者由发布方单方面决定,想定90%就是90%,想定99%就是99%;后者受现实约束,测出来是多少就是多少。把前者当后者读,等于把别人的自我要求当成了对自己的承诺。
门槛和成绩同名的三句判据
这个坑不只出现在这一款产品上。保哥这两年在客户那儿见过至少四五次同构的情况:某个供应商公布一个亮眼的百分数,追问下去发现它是准入线不是测量值。所以整理了三句用来快速判断的问话,顺序不能反。
| 问什么 | 怎么问出来 | 答案指向哪边 |
|---|---|---|
| 这个数是测出来的还是筛出来的 | 问一句:如果某一项没达到这个数,会发生什么 | 答“我们会记录下来” = 测量值;答“它不会被纳入” = 准入线 |
| 被筛掉的那部分有没有清单 | 问:能不能给一份未纳入项的列表 | 给得出 = 只是能力边界声明;给不出 = 买方无法评估自己的实际覆盖 |
| 分母有没有跟着缩小 | 自己算:纳入项数 ÷ 声称的总项数 | 这个比值才是能带回公司汇报的那个数 |
第三句最狠,因为它是唯一一句不需要对方回答的。前两句要靠追问,对方可以打太极;第三句你自己就能算,而且两个数都是公开的。
算出来是多少
346 ÷ 700=49.4%。这就是覆盖率。
把它跟准确率乘起来:0.494 × 0.95 ≈ 46.9%。这个数的含义是,在那份700多条准则组成的完整检查表上,这套自动化工具能给出正确判断的比例,不到一半。
| 你读到的 | 实际含义 | 差在哪 |
|---|---|---|
| 准确率95% | 纳入统计的那部分判断里,与人类专家一致的占95% | 分母是被挑过的 |
| —— | 覆盖率49.4% | 这个数一次都没出现在文章里 |
| —— | 在完整准则表上给出正确判断的比例46.9% | 需要把上面两个数乘起来才看得见 |
| 剩下的53.1% | 不是判错,是没查 | 而报告上不会写“这一项我没查” |
最后一行是全篇最要紧的一句。没查过和查过没问题,在一份“未发现问题”的报告上,长得一模一样。
如果一份报告在结尾写“共检出23项待优化”,你会自然地把它理解成“其余的都还行”。但正确的理解是“其余的里面,有一半我根本没看”。这两种理解会导向完全不同的动作:前者让你放心去做别的事,后者让你知道还有一半的地形没有被照亮。
公道话要说在前面
必须讲清楚的是,只上线可靠的那一批,这个产品决策本身是对的,而且比大多数同行负责任得多。换个人来做这个产品,多半也会这么干——把一条自己都心里没底的检查放出去,害的是用户。这一点没有任何可指摘的地方。
问题只发生在传播环节。当这个数被写进标题、被写成“95%准确率”这四个字向市场发布时,它经历了一次静默的语义漂移:从“我们只做我们能做好的那些判断”,漂移成了“我们做的判断里95%是对的”。前一句是克制的自我约束,后一句是对买家的能力承诺,中间隔着一整个覆盖率。
顺带说一句,站内讲向量分数与内容对齐那篇的核心是“别把精确当成准确”,那是同一族问题的另一个变种:一个数字给到了小数点后两位,看起来很硬,但它测的东西跟你以为它测的东西不是一回事。精确说的是这把尺子的刻度有多细,准确说的是这把尺子量的是不是你要的那条边。刻度再细,量错了边也没用。
同一个结构,在别的工具上长什么样
门槛和成绩同名这件事,一旦认出来就到处都是。列几个做出海的人天天在用的例子,判断方法完全一样。
按“说法—真实含义—该追问什么”排开:
- 关键词库覆盖某某亿词——入库前过了某条最低搜索量或最低置信度的门槛;没进库的词是按什么标准被排除的
- 内容检测识别准确率某某%——只在文本长度、语种、体裁满足条件时才给结论;不满足条件的样本怎么算
- 翻译质量评分某某分——评分只在有参考译文的句对上计算;没有参考译文的那部分占多少
- 爬虫抓取成功率某某%——超时和被拦截的请求可能不进分母;失败请求算不算一次抓取
- 某某模型在某基准上得分某某——基准题目的分布是被设计过的;这个基准里有多少题跟我的场景像
五行的共同点是:每一个漂亮数字背后都有一道准入门,而门外那部分从来不在分母里。这不是行业黑幕,是任何一个要对外报数的系统都会自然演化出来的形状——因为剔除困难样本能让数字变好看,而剔除的动作在技术上完全正当。做SEO的人对这个形状应该不陌生,关键词难度这个指标在不同工具间对不上,根子也在各家的分母划得不一样。
什么时候公布一条准入线是完全正确的
要防止这一节被读成“公布准入线就是耍花招”,得举一个反例。
汽车行业公布碰撞测试成绩的时候,写的是“五星”,同时会写清楚测试条件:正面64公里每小时偏置碰撞,侧面50公里每小时。没有人会把五星理解成“这辆车在任何速度下都安全”,因为测试条件跟成绩印在同一张纸上,而且条件写在成绩前面。
差别就在这儿。一条准入线只要被明确标成准入线,它就是一条极有价值的信息——它告诉你这家厂商的自我要求有多高,而这恰恰是买家最想知道的事之一。问题从来不是“有门槛”,是“门槛穿着成绩的衣服出场”。
所以正确的公示写法其实很简单,只要加一句:我们的700多条准则中有346条通过了95%的一致性门槛并已上线,其余354条仍由人工审计覆盖。同一批事实,加上这一句之后,读者拿到的信息量翻了一倍,而厂商什么也没损失——除了那个可以被单独摘出来当标题的百分数。
为什么删掉的总是限定条件
最后说一句关于传播的观察,它比这个具体案例更耐用。
一句完整的表述通常是这样的:在某某条件下,用某某方法测量,某某指标达到某某值。这句话有四个成分,而在传播链上,它们的存活率高低差得非常远。
四个成分在传播链上的存活率排下来是这样:数值最短、能当标题、活得最久;指标名稍长,也还能当标题,活得次久;测量方法已经长到当不了标题,很快掉队;适用条件最长、最当不了标题,掉得最早。换句话说,损耗不是随机发生的,它按长度和能不能当标题这两条有序地发生,而适用条件在两条上都排最后。
这条规律有个直接的实践含义:如果你是发布方,适用条件必须跟数值印在一起,不能放在下一段,更不能放在附录;如果你是接收方,看到一个孤零零的数字时,默认它已经掉过限定条件,而且掉的方向对发布方有利。这个默认不是愤世嫉俗,是对传播机制的正确建模。
如果你是那个要公布数字的人
这一节到目前为止都站在买方视角,但读到这儿的人里,有一部分自己就要对外报数——做工具的、做服务的、给客户交报告的。给这部分人三行可以直接抄的写法。
第一行写清参与统计的范围。不是“我们的准确率是某某”,而是“在参与自动检查的某某项中,某某指标为某某”。多写六个字,读者就不会把分母补成全部。
第二行写清未纳入的部分。哪些项没有参与,为什么没有,现在由什么方式覆盖。这一行看起来是自曝其短,实际效果相反——它把“我没做”变成了“我知道我没做,并且我知道该由谁来做”,后者是能力的证明。
第三行写清这个数在什么情况下会变差。哪一类页面、哪一种技术栈、哪一种语言环境下没有测过。这一行的成本最低,因为你本来就知道自己没测过什么。
三行加起来不到一百字,而它们把一份公示从“营销材料”变成了“可以被引用的技术文档”。一份能被别人引用的技术文档,长期价值远大于一个能被截图转发的百分数——前者会被写进采购标准,后者只会在朋友圈里活三天。
为什么说“跟人类专家一致”这句话的天花板不在机器身上?
上一节拆的是分母。这一节拆的是“对”这个字——一个判断被算作正确,依据是什么。
答案原文写得很清楚:跟人类专家审同一批站的结论比对,一致就算对。这个做法在机器学习里叫拿人当参考标准,本身很常规。但它有个前提,那个前提在这件事上恰好不成立。
启发式评估从来就没有唯一正确答案
启发式评估这个方法,1990年由Jakob Nielsen和Rolf Molich在CHI会议上提出。它今天的官方说明由尼尔森诺曼集团维护,其中有一段话,直接写死了这个方法的使用条件。
启发式评估在由一组人而非单个评审员执行时效果最好。这是因为每一个个体,无论多有经验或多专业,都很可能漏掉一部分潜在的可用性问题。理想情况下,应当由3到5个人独立评估同一个界面。
你的团队成员在完成自己的评估之前,不应看到彼此的评估结果。使用多名评审员的意义在于获得独立的观察,所以你不希望成员之间互相影响。
把这两句拆开看,信息量非常大。
第一,方法的发明者承认单个专家不够用,理由不是水平问题,是“无论多有经验”都会漏。第二,它要求评审员互相隔离,看到别人的答案就毁掉了这次评估的意义。第三,也是最关键的,尼尔森诺曼集团在介绍这一族方法的时候用了一个词:问题清单是把若干独立评审员的检查报告合并起来形成的。
合并的意思是取并集。甲发现的加上乙发现的加上丙发现的,去重之后就是这次评估的结果。并集意味着这个方法在设计上就预期评审员之间会大量不重合——如果他们高度重合,用5个人就是浪费钱。
一致率测的不是准不准,是像不像
现在把这两件事并排放:
| 对照项 | 启发式评估这个方法本身 | 一致率这个算法 |
|---|---|---|
| 假设结果是 | 多值的,不同评审员给出不同清单 | 单值的,每个判断点有唯一正确答案 |
| 结果怎么产生 | 把多份独立清单取并集 | 拿一份清单当标尺去比对 |
| 评审员之间不重合 | 是预期内的,正是用多人的理由 | 会被记成误差 |
| 需要几个人 | 3到5个,且必须互相隔离 | 1份参考答案 |
| “正确”的定义 | 没有定义,只有覆盖得全不全 | 与参考答案相同 |
把一个本质上多值的任务压成单值,然后测量另一个系统与这个压扁值的距离,测到的是什么?是这台机器像不像被选中的那一份答案,不是这台机器有多准。
这不是抬杠。差别很实在:假设这个团队的审计员在某一类判断上系统性地偏严,那么一台学会了同样偏严的机器会拿到很高的一致率,同时把同样的偏严带到每一个客户站上,而且带得比人更整齐。一致率越高,参考标准自身的偏差被复制得越彻底。这句话反过来更吓人:一台跟人类专家100%一致的机器,意味着它把人类专家的每一个盲点也学得一模一样。
原文括号里那句自嘲,是全文最重要的一句
文章讲到他们怎么做到95%的时候,写了一段技术说明,然后加了一个括号:
讽刺的是,我们当初开始搭建这个启发式评估工具,是因为我们想提高UX审计服务中人类的评分者间信度和评分者内信度。
评分者间信度,说的是两个不同的人评同一样东西能有多一致;评分者内信度,说的是同一个人在不同时间评同一样东西能有多一致。这句话等于承认:在造这套工具之前,他们自己的审计员彼此之间对不齐,而且同一个人隔一段时间再看也对不齐。
这句话被当成一句自嘲放在括号里,但它其实是整篇文章的地基。因为它直接给出了那个95%的上限在哪儿:“与人类专家一致”这个数,永远不可能超过“人类专家彼此之间的一致”。如果两个审计员在同一批判断上只有80%对得齐,那“与人类一致95%”这句话就必须有个前提——这里的“人类”不是任意一位专家,而是某一个被确定下来的答案版本。
那么这个答案版本是怎么确定的?文章没说。是几个人评?分歧怎么裁决?裁决的时候看不看机器的输出?这三个问题一个都没有答案,而它们决定了那个95%到底意味着什么。
人和机器共用了同一套底表
还有一层,藏在同一段技术说明里。原文说,UX-Ray之所以做得成,是因为他们先造了一套给人类专家用的专有启发式评估工具,花了8年时间,手工把8000多个常见界面组件映射到具体的评估结论上。
读到这里得停一下。人类专家在评这79个站的时候用的工具,和被测量的那台机器,共享同一套映射表。换句话说,参考标准里已经嵌进了待测系统的一部分。
这个情况在医学诊断研究里有专门的名字,叫并入偏倚——待评价的那项检查的结果或它的组成部分,被并进了确立“标准答案”的过程里。它造成的效果是系统性地高估一致性,而且高估的幅度无法从结果里反推出来。要排除它只需要一件事:说清楚人类评审员在做判断时能不能看到机器的输出。这一句话文章里没有。
公平地说,这不代表他们做错了。共用一套底表也可能是最合理的工程安排,因为那套底表本来就是人类专家的经验结晶。但这件事必须被写进报告,理由跟对错无关:读者需要它来判断这个数有多可能被高估,而不是判断做研究的人有多可信。这两件事的区别,下面讲报告规范的时候会再碰到一次。
三个没被回答的问题,各自会带来多大的偏差
前面提到“人类专家的答案版本是怎么确定的”这件事没有说明,具体缺的是三个问题。它们各自影响的方向不一样,值得分开看。
按“问题—最保守的情形—最宽松的情形”看这三条:
- 参考答案由几个人给出——3到5人独立评后合并,符合方法本身的要求;1个人,那么这个数测的是“像不像这一位”
- 分歧怎么裁决——事先定好规则,比如多数通过或第三方仲裁;现场讨论达成一致,讨论本身会把答案往中间拉
- 定答案时看不看机器输出——完全盲评,机器输出在人评完之后才打开;能看到,那么一致率里有多少是被带过去的无法分离
三行里最要紧的是第二行,而它最容易被忽略。现场讨论达成一致这个做法看起来最负责任,实际上它系统性地破坏了独立性——讨论如果发生在每个人交卷之后,没问题;如果发生在交卷之前,那么参考答案已经不是独立观察的合并,而是一次群体收敛的产物。
并入偏倚的三种常见形态
医学里那个词说的是待评价方法的一部分被并进了参考标准的确立过程。它不只有一种长法,实际操作中常见三种,每一种的严重程度不同。
第一种是共用工具。人和机器用同一套界面组件映射表、同一套判定流程、同一套术语。这一种最轻,因为映射表本身可能是客观的;但它仍然会让双方在同一个地方一起犯错,而这种错在比对中显示为一致。
第二种是共用人员。定参考答案的专家,同时也是训练或调优这台机器的人。这一种严重得多,因为专家的判断习惯会通过两条路径同时进入结果。
第三种是共用时间线。机器的输出在参考答案确定之前就已经存在,并且对确定过程可见。这一种最严重,它把比对变成了核对——人不是在独立作答,是在检查机器的答案对不对,而人对着一个现成答案做判断时的宽容度,和从零开始判断时完全不一样。
三种形态里,只有第三种可以用一句话彻底排除:参考答案在什么时候被冻结,机器输出在什么时候被打开。问这一句,比问一堆方法论问题都管用,而且对方要么答得出要么答不出,没有中间地带。
这件事其实有个更省事的解法
说了这么多问题,得给个正面的方案,不然就成了纯挑刺。
解法在报告规范里早就有了,就是把参考答案和被测系统的时间线彻底隔开:先让人类专家评完全部样本、封存结果,再跑机器,然后比对。这个流程叫前瞻性设计,成本比事后回顾高一些,但高的那部分主要是组织成本,不是钱。
而且它有个附带的好处,是任何事后比对都拿不到的:封存过的人类答案本身就成了一份资产,下次换个模型、换个版本、甚至换个供应商,都可以拿同一份答案再比一次,得到的数直接可比。事后比对做不到这一点,因为每次比对的参考答案都是重新生成的,两次之间没有可比性。
做过A/B实验的人对这个道理很熟:先定好判据再看数据,和先看数据再定判据,得到的结论可能一模一样,但可信度差着一个量级。差别不在结论本身,在于前者事先放弃了一部分自由度,而放弃自由度正是可信度的来源。站内讲AI做审计的三个前提那篇里说的人工复核,落到具体流程上就是这件事:复核不是事后挑错,是事先把标准答案封存起来。
有一类检查天然适合自动化,有一类天然不适合
说了这么多“启发式评估没有唯一正确答案”,容易让人以为界面检查这件事整体都不能自动化。不是这样,得把它劈成两半。
尼尔森诺曼集团在梳理这一族方法的时候,列了好几种不同的检查方式,其中两种放在一起看差别特别清楚:
按“方法—判断依据—有没有唯一答案—自动化难度”排开:
- 标准检查——某份界面规范的条文;有,规范怎么写就是什么;低
- 启发式评估——十条通用原则加评审员经验;没有,靠多人合并;高
- 一致性检查——跟自家其他产品比对;有,只要基线明确;中
- 认知走查——模拟新用户完成任务的思路;没有;很高
关键在第三列。有唯一答案的那些方法,自动化是纯工程问题——规范写了对比度要达到4.5比1,量一下就知道;规范写了可点击区域不小于24乘24像素,量一下就知道。这类检查做到99%的准确率不是难事,因为它测的是一个客观量。AI内容检测那类工具之所以争议大得多,正是因为它想测的东西并没有一个客观量。
没有唯一答案的那些方法,自动化面对的是另一种问题:不是算得准不准,是算什么。“这个页面的信息密度是不是太高了”这句话里没有一个可以直接测量的量,任何答案都依赖于这个页面服务的是哪种购买决策。
那么346条准则里,两类各占多少?这个拆分没有公开数据,但从公开的准则举例能看出线索:像“图库用缩略图还是圆点”这种,接近标准检查,形态可以直接识别;像“首屏信息密度过高”这种,接近启发式评估,判断依赖上下文。而一个混合了两类检查的系统,只报一个总准确率,等于把99%的那部分和70%的那部分平均成了95%。
这就给出了一个特别值得追问的问题:能不能按检查类型分组报准确率。能分组,说明他们自己心里有这本账;不能分组,说明这346条在系统眼里是同质的,而它们显然不是。
同一个95%,为什么可以是“中等”也可以是“几乎完美”?
这一节要算一个数,算完之后你看任何“人机一致率”都会多问一句。
问题从一个很土的观察开始:两个人对同一批题各判一遍,就算完全瞎猜,也会有相当一部分答案自动对上。原因不在他们默契,在题目本身——当绝大多数题的正确答案都是同一个选项时,一致是白送的。
白送的那部分有多大
假设一个站在某条准则上“确实有问题”的概率是 p。两个互不通气的评审员,各自独立判断,他们碰巧一致的概率是:两个人都说有问题,加上两个人都说没问题。
期望随机一致率 = p × p + (1 - p) × (1 - p)代进去算一下。假设一个电商站平均在10%的准则上确实有问题——这个假设对电商来说算保守,因为Baymard自己的榜单里没有一个站拿到过“优秀”评级。那么:
0.10 × 0.10 + 0.90 × 0.90 = 0.01 + 0.81 = 0.8282%的一致率,是两个完全瞎猜的人也能拿到的。在这个前提下,95%这个数真正的含金量,是它比82%高出来的那13个百分点,而不是95这个数字本身。
把白送的部分扣掉之后
统计学里处理这件事的标准做法叫科恩卡帕系数,1960年提出,公式只有一行:把实测一致率减去期望随机一致率,再除以剩下的空间。
卡帕 = (实测一致率 - 期望随机一致率) ÷ (1 - 期望随机一致率)它衡量的是:在瞎猜之外,你多拿到了多少。1977年Landis与Koch给出的一套解读分档沿用至今:0.41到0.60算中等,0.61到0.80算较强,0.81以上才算几乎完美。
现在把实测一致率固定成95%,只改变“确实有问题的比例”这一个变量,看卡帕怎么动。
| 确有问题的比例 | 瞎猜也能拿到的一致率 | 卡帕系数 | 按通行分档属于 |
|---|---|---|---|
| 5% | 90.5% | 0.474 | 中等 |
| 10% | 82.0% | 0.722 | 较强 |
| 15% | 74.5% | 0.804 | 几乎完美(刚过线) |
| 20% | 68.0% | 0.844 | 几乎完美 |
| 30% | 58.0% | 0.881 | 几乎完美 |
| 50% | 50.0% | 0.900 | 几乎完美 |
同一个95%,最下面一行是“几乎完美”,最上面一行是“中等”,中间隔着两个完整的评价档次。而决定它落在哪一档的那个变量,从头到尾没有出现在任何一份公示里。
越是查得细的检查,越容易掉进去
这张表还有一层更实用的读法。准则拆得越细,每一条上“确实有问题”的比例就越低,白送的一致率就越高,同一个数字的实际含金量就越低。
346条准则铺在一个站上,其中很多条是相当具体的,比如“图片画廊用缩略图还是圆点指示”、“配送选项旁边写不写预计送达日期”。任何一条这种颗粒度的准则,一个站踩中的概率天然就低。这意味着这次测量大概率落在表格上半部分,而不是下半部分。
这里有个反直觉的地方值得说透:把检查项拆得更细,本来是件好事,它让结论更可操作;但它同时会让“一致率”这个指标自动变得好看,而且是凭空变好看。一个厂商如果把100条准则拆成400条,什么都不改,公布的一致率就会上升。这不是作弊,是记分方式本身的性质。
所以但凡看到“人机一致率”这个说法,正确的追问是两句:你的判断点里,判为“有问题”的占多少;把随机一致扣掉之后还剩多少。第一句对方一定答得上来,因为那是他们的原始数据;答不上来只有一种可能,就是没算过。
顺手把另一个数也算了
原文引用了2025年3月微软两位UX研究员的测试,几款生成式AI工具做启发式评估,准确率分别是50%、62%、67%和75%。原文接着写了一句非常诚实的补充:那个75%只在一款工具上、且只在把它能识别的问题数量大幅调低之后才达成,代价是漏掉了人类专家在同一个页面上识别出的16个问题里的13个。
这句话已经把两个数都给出来了,只是没有把它们相乘。它说的其实是:这个工具说的话里75%是对的,但它只说出了该说的18.75%。
在分类任务里,这两个数分别叫精确率和召回率,把它们调和平均一下得到的综合分数叫F1。算出来是0.300。
三个数按“指标—数值—大白话”摆在一起:
- 精确率——0.750;它开口说的每4句里,3句站得住
- 召回率——0.188;该说的16件事,它只说了3件
- 综合分数F1——0.300;合起来看,只有三成
一个被写成75%的东西,换个记法是0.30。差别不在算法有多高深,只在于公布方可以自由选择公布哪一个数,而这两个数在同一份测试里同时存在。
顺着这条线往回看那个95%会发现一件事:文章用了整整一篇的篇幅要求全行业公布准确率,但它自己也只公布了一个数,召回率同样缺席。UX-Ray在那346条上,人类专家标出来的问题它找回了多少?没有。这个缺口跟它批评的那些工具是同一个缺口,只是数值大概率好看得多。做A/B实验的人对这套账早就熟得不能再熟,站内讲统计功效与最小可检测效应那篇里的道理在这儿完全通用:一个指标只有跟它的对偶指标一起报,才构成信息。
比卡帕更好用的一把尺子
卡帕系数虽然是标准做法,但让厂商去算这个数不太现实——他们没义务算,你也不一定能验。好在有一个更土也更硬的替代品,任何人都算得出来。
问一句:一个永远回答“这里没问题”的系统,能拿到多少分?
答案就是“确实没问题的比例”。如果一个站在10%的准则上确实有问题,那么一个什么都不做、见题就答“通过”的空壳系统,与人类专家的一致率是90%。
| 确有问题的比例 | 空壳系统的一致率 | 95%比它高出 |
|---|---|---|
| 3% | 97.0% | 负2个百分点 |
| 5% | 95.0% | 0个百分点 |
| 10% | 90.0% | 5个百分点 |
| 20% | 80.0% | 15个百分点 |
| 40% | 60.0% | 35个百分点 |
看第一、二行。如果一个站平均只在3%到5%的检查项上确实有问题,那么95%的一致率,跟一台什么都不检测、一律回答“没问题”的机器打成平手甚至还差一点。
这不是在暗示某款工具是空壳——它显然不是,它的公开案例里有大量真实检出。这个算法的用途是别的:它给出了一条底线,让你知道那个数至少要高过多少才算有信息量。而这条底线的高度,完全由你的站有多少毛病决定:站越干净,底线越高,同一个准确率的含金量越低。
有个略带黑色幽默的推论:你把站优化得越好,自动检查工具的准确率数字就越没意义。因为可检出的问题越来越少,而一致率里“一起答对没问题”的部分越来越大。真正需要这类工具的是烂摊子,而烂摊子恰恰是这个数字最能反映真实能力的地方。
这个基线该怎么估
那么“确有问题的比例”到底怎么拿?三条路,从省事到费事。
最省事的是直接问工具。一份完整扫描报告里,报出问题的项数除以总检查项数,就是这台机器认为的比例。它不等于真实比例,但量级不会差太远,用来估基线足够了。
中等费事的是人工抽查。随机挑20个检查项,自己或者请人逐项判断一遍,数一下有几项确实有问题。20个样本的精度当然很粗,但足够把5%和20%区分开,而这个区分正是我们需要的。
最费事也最准的是拿历史数据。如果你的团队之前做过一次人工的可用性审计,那份报告里的问题条数除以检查清单长度,就是最真实的那个比例,而且是在你自己站上的比例。
三条路都不需要厂商配合。拿到这个数之后,工具公布的任何一个一致率都可以立刻被翻译成“它比什么都不做强多少”,而这句翻译是整个选型过程中最有说服力的一句。
顺带说一下这些数为什么很少被公布
不是因为有人想瞒。真实原因更平淡:算这些数需要一份“正确答案”,而正确答案本身就是最贵的那部分。
那份10万美元的测试成本,绝大部分花在人类专家把79个站逐项评一遍上。要算召回率,要额外知道人类找出了多少条机器没找到的——这部分数据其实已经有了,只差把它单独统计出来;但要算置信区间,需要按站分组统计;要算卡帕,需要知道正例比例。这些都是同一批原始数据的不同切法,成本几乎为零。
所以这些数缺席的真正原因,多半不是算不出来,是没有人要求过。市场从没有形成“看到准确率就追问分母”的习惯,那么公布一个数就是充分的,多公布几个数反而给自己添麻烦——因为那些数不一定都好看,而好看的那个已经够用了。
这就是为什么这篇文章值得写:行业的报告习惯不是被监管改变的,是被买家的追问改变的。当足够多的采购问卷上出现“请说明分子分母定义”这一行,公布方式自然会变。在那之前,一个数就是一个数。
把“准确率”这三个字换掉
算到这儿可以下一个结论:“准确率”这个词在这类场景里应该被弃用,不是因为它错,是因为它太笼统,笼统到任何一方都可以用自己的定义填进去而不算说谎。
换成三个各自有明确分子分母的词,沟通成本立刻降下来。
| 换成这个词 | 分子 | 分母 | 它回答的问题 |
|---|---|---|---|
| 覆盖率 | 参与自动检查的项数 | 声称的准则总数 | 它查了我清单上的多少 |
| 检出率 | 被它找出来的真实问题数 | 实际存在的真实问题数 | 该发现的它发现了多少 |
| 误报率 | 它报了但实际不成立的条数 | 它报出的总条数 | 我要白跑多少趟 |
三个数各管一件事,而且互相不能替代。覆盖率高检出率低,说明它什么都看一眼但什么都看不深;覆盖率低检出率高,说明它是个专科医生,在它管的那块很行;误报率高的,无论前两个数多好看,都会把你的团队拖垮。
实际选型的时候,这三个数的优先级还取决于你的处境。刚接手一个从没审过的站,最需要的是覆盖率,先把地形照亮;已经审过好几轮、现在要抓漏网之鱼的,最需要的是检出率;团队人手紧、每条建议都要人去核实的,最需要的是低误报率,因为误报直接吃工时。违禁词检测把正常表述标成高风险那种场景,吃掉的就是这笔工时。
把这三个词写进询价邮件,基本上一轮就能筛掉一半候选。不是因为剩下的更好,是因为答得出这三个数的厂商,至少在内部真的做过这个统计。而做过这个统计和没做过,是两种完全不同的产品成熟度。这跟把指标层做成单一事实来源是同一种功夫,区别只在一个对外一个对内。
唯一一份规范这类检查的国际标准,通篇没有用“准确率”这个词
把一套原本靠人判断的准则,变成机器能跑的检查——这件事不是UX领域首创的。网页无障碍领域做了更久,而且做到了标准化。
万维网联盟有一份叫ACT规则格式的技术规范,目前是1.1版,专门规定一条自动化无障碍检查规则该怎么写、结果该怎么报、以及一个工具声称“实现了这条规则”时要满足什么条件。这是目前唯一一份把这件事写成国际标准的文件。
它对同一个问题给出的答案,跟“公布一个准确率”完全不是一个路子。
它用的词不是准确率,是一致性
规范里描述一个工具的检查与一条规则对齐到什么程度,用的词是一致性。判定标准写得极其死,三个条件必须同时成立:
| 条件 | 规范要求 | 翻成人话 |
|---|---|---|
| 真阳性 | 规则里标为通过和不适用的示例不能被报成失败;标为失败的示例不能被报成通过或不适用 | 不许冤枉好人,也不许放走坏人 |
| 完整性 | 检查报出的结果里不能有任何一个是 untested;且至少有一个失败示例被报成失败 | 不许有“这项我没测”,而且必须真的抓到过东西 |
| 规则映射 | 检查必须声明自己覆盖了这条规则的全部合规要求,实现不支持的等级或标准除外 | 你说自己在查什么,得跟规则说的对得上 |
注意第二条。只要一个检查在任何一条示例上报出“未测试”,它就不算与这条规则一致。这在准确率那套记账法里根本不存在——一个没被测的项,既不算对也不算错,它压根不进分母。
结果不是对错两个值,是五个
规范给一次检查定义了五种可能结果,而且规定了当一次检查对同一个示例报出多个结果时,按下面这个顺序取第一个:
failed > untested > cantTell > passed > inapplicable翻过来是:失败、未测试、判定不了、通过、不适用。其中“未测试”和“判定不了”是两个独立的取值,不是一回事。前者是这个检查没跑到这儿,后者是跑到了但拿不出结论。
这个区分极其要命。一份只能说对错的记分制,把这两种状态往哪儿放?只有三条路:塞进“对”,塞进“错”,或者悄悄从分母里拿掉。三条路里最省事、也最常见的是第三条,而它恰好是唯一一条不会让数字变难看的。
所以当你看到一个“人机一致率95%”的时候,值得问的第三句话是:那些机器没给出结论的判断点,去哪儿了。它们可能占比很小,也可能占比不小,但只要没被单独列出来,你就无法判断这个95%的分母到底装了些什么。
它把“不准确”拆成了两件根本不同的事
规范第5节专门讲规则的准确性,开头一句就把话说死了:示例可以用来判定一条规则是否被正确实现,但它们不保证实现永远不会产出错误结果。接着列了四种致错原因:对被测对象的假设不成立、技术被以罕见且难以预测的方式使用、技术演进了或技术的某些方面被忽略了、无障碍要求本身没有被正确解读。
然后是这一节最有价值的一句:
有两类不准确会产生错误结果。实现层面的不准确可以通过示例来解决,但规则本身的不准确不能。毕竟,规则的不准确来自规则作者没有意识到某个特定的边缘情况。
这句话把“工具跟规则对不对得上”和“规则本身对不对”彻底分成了两个量,并且明确说后者无法靠前者的方法解决。
回到我们讨论的那个95%:它测的完全是第一类——机器的判断跟人的判断对不对得上。第二类,也就是那346条准则本身正不正确、适不适用于你的站,它一个字都没测,也测不了。那部分由“20万小时用户研究”来担保,而研究时长跟准确率是两个不同维度的东西,一个说的是证据有多厚,一个说的是执行有多准。厚的证据加上准的执行是好事,但两者不能互相顶替。
它也不允许只报一个数
同一节里,规范给出了两个百分比的定义,各自的分母不同:
假阳性:被规则判为失败、但实际满足无障碍要求的测试目标所占的百分比。
假阴性:被规则判为通过、但实际不满足无障碍要求的测试目标所占的百分比。
两个数,分开报。整份规范没有任何地方允许把它们合并成一个“准确率”。理由不难想:这两种错的后果完全不一样。假阳性浪费的是人力——有人得去核实一个不存在的问题;假阴性丢掉的是机会——一个真实存在的问题被盖住了,而且没有任何人会知道。
这里出现了一处很微妙的巧合。那篇文章有一节专门讲“安全地失败”,论点是他们的工具错的时候只会错在界面样式识别上,任何人一眼就能看出来,所以不会造成伤害。这个论点方向完全正确,读到那一节的时候是要点头的。
但巧的是,万维网联盟把同样的判断写进了标准的优先级里——一个检查如果不满足一致性,只要“真阳性”这个条件成立,仍然可以算作部分一致;反过来,一个覆盖很全但会误报的检查,直接出局。也就是说,规范认为“不误报”比“查得全”更根本。
这不是巧合的巧合,是同一个工程直觉在两个领域各自被发现了一次。差别在于,一边把它写成了产品页上的差异化卖点,另一边把它写成了六年前就生效的判定条款。一个行业成熟到什么程度,看它把好的直觉留在博客里,还是写进了别人必须遵守的文件里。
同一个组织对“给一个汇总分数”的正式态度
万维网联盟还有一份文件叫网站无障碍一致性评估方法学,规定了怎么评估一整个网站。它的第五步是报告评估结论,下面分了五个子步骤,其中第四个子步骤专门讲“给一个汇总分数”,而且被标注为可选。
这一步的正文只有一段,但每一句都在说同一件事:
虽然汇总分数提供了一个数值指标,有助于沟通一段时间内的进展,但目前还没有任何单一指标被认为能够满足所需的可靠性、准确性和实用性。事实上,汇总分数可能造成误导,并且不能提供足够的上下文和信息来理解一个数字产品的实际无障碍状况。出于这个以及其他原因,WCAG 2不提供评级方案。……无论何时提供了分数,都必须把评分方法记录下来,并随报告一起提供给评估委托方,以便于透明性和可重复性。
这段话值得读三遍。它出自全世界在这件事上最有发言权的组织,讲的是他们自己领域里“给一个分数”这件事该怎么办,结论是:没有可靠的单一指标,分数可能误导,所以我们的标准里不设评级,非要给分数的话必须把算法一起交出去。
把它套回我们讨论的场景,逐句都成立。一个百分数就是一个汇总分数,它把成百上千个异质的判断压成一个数;压缩过程中丢掉的是上下文——哪些项参与了、哪些没有、错的那些集中在哪里、在什么条件下测的。而这些恰恰是使用者做决策需要的东西。
“必须把评分方法一起交出去”这句话,两份文件都写了
这里出现了一个很有说服力的巧合。万维网联盟这份方法学是技术文件,欧盟人工智能法案是法律文件,两者的起草者、目的、约束对象、生效方式完全不同。但它们对同一件事给出了同一条要求。
按“文件—性质—它怎么说”并排看:
- W3C评估方法学——技术方法学,非强制;提供分数时必须把评分方法记录下来并随报告提供
- 欧盟人工智能法案第13条——法律,对高风险系统强制;使用说明中必须包含准确率水平及其指标
- STARD 2015第14条——学术报告规范,期刊执行;必须报告估计或比较准确性所用的方法
三份来源、三个领域、三种约束力,要求的是同一样东西:数和算法必须一起给。
还有一条更细的分类,同样值得抄走
回到ACT规则格式,它把规则分成两类:原子规则和复合规则。原子规则检查一件具体的事,复合规则由若干原子规则组合而成,靠它们的结果推出一个更高层的结论。
这个分类看起来很技术,但它解决了一个实际问题:当一条高层结论出错时,你能不能定位到是哪一条底层检查错了。原子规则可以被单独验证、单独修复、单独统计准确率;复合规则出错时,你必须先拆开才知道毛病在哪儿。
套到选型上,这条给出了一个很实用的追问:你们报出的每一条建议,能不能追溯到一条具体的、可以单独验证的检查?能,那么核实一条建议就是核实一条检查,成本可控;不能,那么每次核实都要把整个推理链重走一遍,成本是不可控的。
这个区别在报告上看不出来,因为两种做法产出的建议长得一模一样。但它决定了你的团队在拿到一条不认同的建议时,是能在五分钟内说清楚“这一条的依据是某某准则第某某条,而这条准则在我们这个品类上不适用”,还是只能说“我觉得这条不对”。前者能进会议纪要,后者只能进吐槽。说到底这是可解释性的问题,AI给的结论敢不敢往上线推,缺的从来不是准确率而是依据。
规范强制要求你写清楚“我不适用于什么”
ACT规则格式里还有一条要求,写得毫不客气:一条规则必须列出评估、测试环境、所用技术或被测对象方面任何已知的假设、限制或例外。
它给的例子非常具体:一条通过检查CSS属性来部分测试对比度准则的规则,应当声明它只适用于可以用CSS设置样式的HTML文本内容,并且这条规则不支持文字图片。
注意这是“必须”,不是“建议”。在这个体系里,一条不声明自己适用边界的规则,根本不算一条合格的规则。而在我们讨论的那份公示里,边界声明这一项完全缺席——上一节说的那个“这个数在什么情况下会失效”,在这里以另一种形式又出现了一次。
三份文件在这一点上的重合已经到了不容忽视的程度:万维网联盟要求规则声明适用限制,欧盟法案要求说明影响准确率的已知情形,医学报告规范要求陈述研究局限与可推广性。三个领域各自独立地得出了同一个结论:一个方法的边界,跟这个方法的效果同等重要,甚至更重要。
那篇文章里最值得抄走的一段,是它的架构
批评了一路,得把它做得最对的那件事单独拎出来讲,因为这一段的工程价值可能超过那个95%本身。
文章说明了UX-Ray是怎么搭的,核心是三句:它不用大模型来产生任何UX分析、推理或判断;它由15个以上相互独立的系统级联而成,其中大多数不是生成式的;大模型在整个系统里只承担一件事——判断某个界面组件采用了哪一种模式,而且可选答案由人类专家预先定好,通常只有2到10个。
举的例子很朴素:给它一张筛选器的截图,问筛选值的样式用的是复选框、链接样式,还是普通文本样式。这是一道选择题,选项是给定的。模型不判断这个选择好不好,也不建议该改成什么,那两件事由研究结论决定。
这个架构里藏着一条可以直接搬走的原则:凡是让模型做开放式判断的地方,准确率就无法被工程化;凡是能把问题收敛成2到10个预定义选项的地方,准确率就可以被逐项测量、逐项改进、逐项上线。
这条原则对做内容工作流的人特别有用。同样是让模型处理一批文章,让它“判断这篇内容质量如何”和让它“判断这篇是教程、清单、评测、新闻中的哪一类”,是两件性质完全不同的事——后者你可以抽100篇人工标注一遍算出准确率,前者你连正确答案都定义不出来。想给内容质量打分的时候这一点最扎眼,六维量表那套打分法之所以要把维度拆得那么细,本质上就是在把问答题改造成选择题。一个工作流里有多少步是前者,就有多少步的质量是不可测量的。
所以搭AI流程时值得做一次这样的盘点:把每一步标成“选择题”还是“问答题”,然后想办法把问答题拆成若干道选择题。拆不动的那几步,就是这条流水线上永远需要人的地方,也是它的产能上限所在。这个盘点做完,通常会发现能拆的比想象中多,而真正拆不动的只有两三步。顺带一提,AI工具栈的年度审计该盘的第一项就是覆盖率,而不是各家的功能对比表。
法律要求公布准确率的时候,到底要求了几样东西?
“应当公布准确率”这句话,欧盟已经写成了法条。而且巧的是,写着这句话的那一章,今天开始生效。
欧盟人工智能法案的最后一条写得清清楚楚:本条例自2026年8月2日起适用。分批生效的例外只有三处,而涉及准确率的第13条和第15条不在例外里——它们属于从今天起开始约束市场的那一批。
所以现在正好是个合适的时点,把法条要求的东西和产品页上写的东西并排放一次。
法条要的不是一个数,是四样东西
第15条第3款一句话,最常被引用:高风险人工智能系统的准确率水平及相关准确率指标,应当在随附的使用说明中声明。
注意它写的是“水平”和“指标”两样。第13条把这句话展开得更细,逐字是这样的:
准确率水平,包括其指标、稳健性和第15条所指的网络安全,该高风险人工智能系统是针对这些指标被测试和验证的、并且是可以被期待的;以及任何已知的和可预见的、可能对该预期准确率水平产生影响的情形。
这一句里塞了四件事,拆开看:
| 法条要求的 | 大白话 | 那篇公示做到了吗 |
|---|---|---|
| 准确率水平 | 那个数是多少 | 做到了,95% |
| 包括其指标 | 这个数是怎么算的,分子分母各是什么 | 只说了“人机逐行比对”,没有定义 |
| 系统是针对这些被测试和验证的、并且可以被期待 | 在什么条件下测的,用户可以指望到什么程度 | 测试条件给了,79个站的截图可下载 |
| 任何已知和可预见的、会影响这个水平的情形 | 这个数在什么情况下会失效 | 一个字都没有 |
第四行是这张表的重点。法律不只要求你说出那个数,还要求你说出它什么时候不管用。这一条对买家的价值远远超过前三条,因为前三条帮你理解这个数,第四条直接告诉你自己算不算在里面。
写法条的人自己也承认没人知道该怎么测
第15条还有一款很少被引用,但它很诚实。第2款说:为处理如何测量第1款所述适当准确率水平及其他相关性能指标的技术问题,委员会应当与计量和基准测试机构等相关方合作,酌情鼓励基准与测量方法学的开发。
翻译一下:我们要求你声明准确率,但怎么算准确率这件事,目前还没有公认的方法,我们正在推动大家去搞一个。
这一款写在要求声明准确率的同一条法律里,隔了一款。它不是漏洞,是立法者知道自己在要求一件还没有标准答案的事,于是先把义务立起来,同时启动标准的制定。但对今天的买家来说,实际处境是:所有人都被要求公布一个数,而没有人被要求用同一种方法算它。这也解释了为什么不同厂商的准确率没法横向比——它们不是同一个量。
然后是那个真正的闭环
上面这些约束,全都只落在“高风险人工智能系统”身上。什么算高风险,法案附件三给了完整清单:生物识别、关键基础设施、教育与职业培训、就业与劳动者管理、基本公共服务与福利、执法、移民庇护与边境管制、司法与民主程序。八大类。
一款分析电商网站界面、给出改版建议的工具,不属于其中任何一类。
于是闭环成立了:法律确实规定了公布准确率的义务,规定得比任何行业自律都细;但这项义务只覆盖八类高风险场景;一款可能改变一个年营收几亿的独立站的核心购买流程、并且它的建议会被工程团队真的实现的工具,在法律上没有任何声明准确率的义务。
这跟保哥上一篇拆导航时碰到的那个结构是同一族的——那次是法条措辞极宽但技术标准把它裁到了AA级,这次是根本没被列进清单。一部法律实际管到谁,不由它写得多严决定,由它的适用范围那张表决定;而那张表是在另一个房间里画的,画的时候没人想到你这个行业。
顺手看一眼那79个站是谁
法条第13条里还有一项要求,是说明系统在预期使用的特定人群或群体上的表现。这条对我们这批读者特别有用,因为那份公示的测试集构成是公开的。
79个站,选自美国、英国和欧洲,覆盖服装、生鲜、电子等常见行业,其中15个是非英语站,语言是德语、法语、波兰语、意大利语、荷兰语、丹麦语和西班牙语。
按“类别—数量—占比”切一下这79个站:
- 英语站——64个;81.0%
- 非英语站——15个;19.0%
- 涉及的书写系统——1种;7种非英语全部使用拉丁字母
- 中文站——0个
- 其他非拉丁书写系统的站——0个;阿拉伯语、日语、韩语、泰语等均无
这不是在挑刺,选择欧美站作为样本对一家欧美研究机构完全合理。但对着这张表,做出海的人应该多想一层:这个95%是在单一书写系统上测出来的。
而中文电商页面的界面构成跟拉丁语系站点差得不小——通栏楼层、腰带图、商品卡上叠三四层促销角标、没有词间空格因而断行规则完全不同、价格区还常常混排两种货币符号。那8000多个被手工映射过的界面组件里,这些形态占多大比例?没人知道,因为没测过。不知道不等于不行,但不知道也确实不等于行。做过跨市场审计的人对这个落差有体感,那次71家站点的身份核验审计里,出问题最集中的也是欧美模板套到别处的那批。
那这个数究竟该由谁来查?
上面说了法律管不到,那退一步问:市场上有没有人在查?
把几个成熟领域拉出来对照一下,会发现一个很扎眼的空缺。
按“领域—谁在验证—结果公不公开”看几个成熟行业:
- 医疗器械——上市前由药监部门审查临床性能评估资料;审查结论公开
- 广告投放数据——第三方监测机构按行业标准做认证;认证名单公开
- 网站无障碍——第三方评估服务商按公开方法学出报告;可由产品方选择公开
- 汽车安全——独立测试机构按公开工况撞给你看;成绩与工况一起公开
- AI界面分析工具——没有
最后一行是空的。这类工具的准确率,目前完全由厂商自证,没有任何第三方在核,也没有一份公开的测试工况可以让不同厂商跑同一套题。
有意思的是,欧盟人工智能法案第15条第2款里出现了一个很具体的词:委员会应当与相关方以及计量和基准测试机构等组织合作,酌情鼓励基准与测量方法学的开发。
“计量机构”这个词的出现不是随手写的。它说明立法者很清楚,这件事最终需要的不是更多的自我声明,而是一个独立的度量权威——就像长度需要有人保管米原器,重量需要有人保管千克原器。目前这个角色在AI分析工具这个赛道上是空的,而且看不出谁会去填。
那份评估方法学倒是给了一个可以现在就用的中间方案。它在目标读者列表里明确写了一类角色:希望评估某个数字产品的代表性样本、以验证其无障碍一致性的评估服务提供方。也就是说,这份方法学从设计上就是准备给第三方用的——它把评估流程写得足够细,细到不同的评估方按它做能得到可比的结果。
这才是“公开方法学”的真正价值:它让第三方验证成为可能。只要方法是公开且可重复的,任何人都可以照着跑一遍,结果能互相印证。而一个只公布结果不公布方法的数字,从定义上就排除了被第三方验证的可能——不是因为别人不想验,是因为无从验起。
在没有第三方之前,能做的替代动作
等一个独立机构出现不现实,但可以做一件低成本的替代:让候选工具跑同一批页面。
具体做法是从自己站上挑10到20个页面,覆盖首页、类目页、商品页、购物车、结账各一到两个,把这批页面固定下来当成自己的私有基准。每评估一款工具就跑同一批,然后比三件事:
比重合部分。两家都报出来的那些条目,可信度天然更高,因为两套独立系统同时出错的概率低于任一套单独出错。这是最便宜的交叉验证,逻辑跟收录数据用三个来源互相校准完全一样。
比独有部分。只有一家报出来的条目最值得人工核实,它们要么是这家的独门能力,要么是这家的误报,两种情况的价值完全相反,但只要核实几条就能分辨。
这套做法的成本,是一次试用额度加上小半天时间。它得不出任何一家的准确率,但它能得出一个更实用的东西:这几家在你的站上分别看得见什么、看不见什么。而这个结论比准确率更接近你真正要做的那个决定。
但这部法律里有一条今天就管到你的站
上面说的是这类工具不受约束,容易读成“这部法案跟做独立站的没关系”。恰恰相反,同一部法案里有一条,从今天起对卖到欧盟的站点直接生效,而且很多人没注意到。
第50条第1款,原文的意思是:旨在与自然人直接交互的人工智能系统,其提供者应当确保该系统的设计与开发方式,能让相关自然人被告知他们正在与一个人工智能系统交互,除非从一个合理知情、善于观察且审慎的自然人的角度看,这一点是显而易见的。
翻成实操语言:你的站上如果挂了AI客服、AI导购、AI尺码顾问、AI搭配推荐这类会跟访客直接对话的东西,得让访客知道对面是机器。
按“是什么—要不要告知—为什么”逐个判:
- AI客服对话窗——要;典型的直接交互场景
- AI导购或选品问答——要;同上
- 写着“智能助手”的机器人——看情况;名字本身可能已构成显而易见
- 推荐位、猜你喜欢——一般不需要;不构成与自然人的直接交互
- 后台用AI生成商品描述——不需要;访客没有在跟它交互
那个“显而易见”的例外写得很有意思——判断标准是一个合理知情、善于观察、审慎的自然人怎么看。这个标准比“我们觉得用户应该看得出来”严格得多,实操上最稳妥的做法就是明写一行,成本几乎为零:对话窗顶部一句“您正在与智能助手对话,可随时转人工”,就同时满足了告知义务和用户体验。
顺便说,这一条跟同一部法案里那些高风险条款的适用范围完全不同:它不看你是不是高风险,只看有没有跟自然人直接交互。所以那些以为自己完全在法案射程之外的独立站,很可能恰好被这一条覆盖,而覆盖它的原因跟AI有多智能无关,只跟“用户知不知情”有关。
这也算是本文那条主线的一个侧面印证:一部法律管到谁,不由主题决定,由它每一条各自的适用条件决定。同一部法案,讲准确率的那两条管不到AI界面审计工具,讲告知义务的这一条却管到了几乎所有做欧盟生意的独立站。读法条不能只读章节标题,得读每一条自己的适用范围那一句。
把这份公示放进医学的报告规范里,能过几条?
“一个自动化方法跟人类专家的判断做对比”——这个问题不是互联网行业先遇到的。医学遇到得早得多,而且被现实教育得非常彻底:一份漏诊的影像报告,代价不是转化率下降。
所以这个领域有一份成熟到近乎苛刻的报告规范,叫STARD,全称是诊断准确性研究报告标准。2003年首版,2015年更新,30个条目,同时发表在三家期刊上。它的30条里有二十几条跟医学本身无关,纯粹是“你打算公布一个准确率,请把这些东西一起写出来”。
先把话说在前面:拿一篇产品博客去对一份学术报告规范,本身不公平。写博客的人没有义务像写论文那样交代。之所以还是做了这次对照,理由只有一个——这篇文章不是普通的产品介绍,它主动向全行业提出了一条验收标准,要求所有同类工具都公布准确率。一旦你开始为别人定标准,你自己那份公示就事实上承担了报告的职能。
先看这份规范里最基础的几个概念
规范的说明部分定义了三样东西,逐字很有意思:
被评价其准确性的那项检查称为指标检查。参考标准是确立目标状况存在与否的最佳可得方法。
如果检查结果被归为阳性或阴性,那么指标检查结果与参考标准结果的交叉列表可以用来估计指标检查的敏感度和特异度。由这张交叉表(有时称为列联表或2乘2表),还可以估计出阳性预测值和阴性预测值等若干其他准确性统计量。围绕准确性估计值的置信区间随后可以计算出来,用以量化测量的统计精度。
注意“最佳可得”四个字。这份规范在定义参考标准的那一刻,就已经承认参考标准本身不是真理,只是目前能拿到的最好的那个替代品。这跟上一节说的天花板是同一件事,只不过医学把它写进了定义里。
还要注意,规范里没有“准确率”这个笼统的词。它列的是敏感度、特异度、阳性预测值、阴性预测值、受试者工作特征曲线下面积——每一个都有明确的分子分母,每一个都必须带置信区间。
逐条对一遍
从30条里挑出跟这次讨论直接相关的12条。判定标准是:这一项的信息,读者能不能从那篇公开文章里拿到。
| 条目 | 规范要求 | 能不能拿到 |
|---|---|---|
| 第1条 | 用至少一种准确性度量标识这是一项准确性研究 | 部分。标题有数,但用的度量不在规范列举的任何一种里 |
| 第5条 | 数据收集是在检查执行之前计划的还是之后 | 没有 |
| 第9条 | 样本是连续系列、随机系列还是便利系列 | 没有。原文只说选了大中型店铺的组合 |
| 第10b条 | 参考标准的细节足以允许复现 | 部分。说了是自家审计团队,几个人、怎么裁决分歧没说 |
| 第11条 | 选择该参考标准的理由 | 有 |
| 第13a条 | 做指标检查的人能否看到参考标准的结果 | 没有 |
| 第13b条 | 定参考标准的人能否看到指标检查的结果 | 没有。这一条是这张表里最关键的 |
| 第17条 | 准确性变异性的分析,区分预先指定与探索性 | 没有。79个站之间的分布、最差的那个站是多少,均未给 |
| 第18条 | 预期样本量以及是怎么确定的 | 没有。为什么是79个站 |
| 第23条 | 指标检查结果与参考标准结果的交叉列表 | 文章里没有。称有逐行原始数据可查 |
| 第24条 | 准确性估计及其精度,例如95%置信区间 | 没有 |
| 第26条 | 研究局限,包括潜在偏倚来源、统计不确定性与可推广性 | 没有 |
12条里,明确能拿到的1条,部分能拿到的2条,拿不到的9条。
缺得最要命的是哪三条
不是全部9条都同等重要。真正影响读数的是三条。
第13b条,也就是盲法。定参考标准的人有没有看过被测系统的输出,这一句话决定了整个数字要不要打折。上一节已经说过,人类专家用的是同一套底表;如果他们在给答案的时候还能看到机器的答案,那这个95%里有多少是真的一致、多少是被带过去的,无法分离。补上这一句的成本是零,就是一句话的事。
第24条,置信区间。95%后面没有正负号。79个站看起来不少,但如果那1367个不一致集中在少数几个站上,说明存在某种系统性的失效模式;如果均匀分布在79个站上,说明是随机噪声。这两种情况对买家的意义天差地别——前者意味着“你可能就是那种站”,后者意味着“你大概率还行”。一个没有区间的点估计,等于告诉你天气预报说明天气温25度,但不告诉你误差是正负1度还是正负15度。
第26条,局限性声明。整篇文章里没有一句“这个数在什么情况下不适用”。这一条跟上一节欧盟法条要求的第四样东西是同一件事,两份完全不同来源的文件不约而同地把它列成必需项,说明它不是学究的洁癖。
规范自己写了它为什么要这30条
说明部分的最后一段,把这份清单的制定原则写了出来:
制定STARD的指导原则是,挑选那些一经报告就能帮助读者判断该研究存在偏倚的可能性、评估研究发现的适用性、以及评估结论与建议之有效性的条目。
三件事,全部是关于读者的,没有一件是关于研究者的。这份清单不是用来让研究做得更好,是用来让别人能判断这项研究有多大可能是错的。
这句话把整篇文章要说的道理压成了一句:公布一个数,和让别人能够检验这个数,是两件不同的事。前者是营销动作,它降低的是买家的疑虑;后者是方法学动作,它降低的是买家的风险。两者看起来都叫“透明”,但只有后者能在你真的踩坑的时候帮到你。
再说一次公道话:主动公布准确率、还附上原始比对数据和全部测试站截图的,这个赛道里目前只见到这一家,它已经是那条曲线上最右边的点。这次对照真正的用处也在这儿——它标定了行业目前的天花板在哪儿,顺便告诉你,下次有人拿着一个百分数来找你时,该问的十二个问题分别是什么。
这份清单本身是怎么来的
值得花两段说一下这份规范的来历,因为它解释了为什么它长这样。
第一版发布于2003年,2015年出了更新版,30个条目由一个国际专家组确定,成员包括方法学家、研究者和期刊编辑。期刊编辑在里面,这一点很关键——它意味着这份清单从一开始就不是学术理想,是给审稿人用的工具。投稿时附上填好的清单,编辑照着核,缺项要么补要么解释。
它还同时发表在三家期刊上,并且被翻译成了多种语言。一份报告规范能不能起作用,取决于它有没有被嵌进某个必经环节。嵌进投稿流程,它就有效;只是挂在网上供人自愿参考,它就不会有人用。这一点跟前面说的“把可选项改成必填”是同一个道理,只是发生在另一个行业。AI内容的人机质检清单能不能活下来,判据也是同一条:它有没有被嵌进发布流程里。
剩下那些条目里,还有两条对我们特别有用
第15条:不确定的检查结果是怎么处理的。规范原话是“指标检查或参考标准出现不确定结果时如何处理”。这一条跟万维网联盟那五个结果取值里的“判定不了”是同一件事,两份来自完全不同领域的文件都专门为它留了一项,说明这类结果在实践中数量不小。
而在一个只报单一准确率的公示里,这类结果的去向是完全不可见的。它们可能被判给了“一致”,可能被判给了“不一致”,也可能被直接从分母里剔除——第三种做法在技术上最正当,在效果上最抬高数字。
第30条:资金来源与其他支持,以及资助方的角色。这一条看起来是走过场,实际上它处理的是整份报告里最根本的一个结构问题。
在我们讨论的这个案例里,情况是:测量方、被测量方、参考标准的定义方、以及测量费用的出资方,是同一家机构。10万美元是他们自己出的,79个站是他们自己选的,参考答案是他们自己的团队给的,被评价的系统是他们自己的产品。
这不是指控。一家公司为自己的产品做性能验证,天经地义,而且愿意花10万美元做这件事的公司少之又少。规范要求披露资助方角色,也不是为了怀疑研究者的人品,而是因为读者需要用这条信息去调整自己对结果的信心水平。这跟前面说的“帮助读者判断偏倚的可能性”是同一句话——判断的是可能性,不是事实。
把这十二条压成一页纸
逐条对照太重了,实际工作里用不上。压缩成一页纸的话,那12条其实可以合并成4个问题,每个问题对应它下面的三四条。
按“问题—覆盖哪几条—答不上来说明什么”排开:
- 这次测量是先定方案还是先出结果——第5条、第12a条、第17条;结论可能是从数据里挑出来的
- 参考答案怎么产生的、什么时候冻结的——第10b条、第13a条、第13b条;无法排除双方互相带节奏
- 样本怎么选的、为什么是这么多个——第9条、第18条;无法判断这个数能不能推广到你的站
- 数的旁边有没有区间和局限说明——第23条、第24条、第26条;无法判断这个数有多稳
四个问题,第一个和第二个是关于方法的,第三个是关于适用性的,第四个是关于精度的。把这四句话打印出来贴在采购评估表旁边,比记住30个条目实用得多,而且它们对任何一个声称有准确率的工具都通用,不限于界面审计。
那份清单里唯一一条要求画图的
30个条目里有一条很特别,它要求的不是文字而是一张图——第19条:用流程图展示参与者的流转。
为什么单独给它一张图的待遇?因为文字最容易在这里含糊过去。一张流转图会强迫你写出每一个环节进来多少、出去多少、因为什么出去。候选一百个,实际纳入七十九个,那消失的二十一个去哪儿了,图上必须有个框写着原因。
这一条防的正是最难被发现的那种偏差:中途悄悄剔掉难做的样本。剔除本身往往有正当理由——页面加载不出来、站点改版了、语言不支持——但如果被剔掉的恰好都是最复杂的那些站,剩下的样本就系统性地偏简单,而算出来的数会好看不少。
套到我们这个案例:那79个站,是从多大的候选集里选出来的,中途有没有站被移出,理由是什么。这三个问题的答案全都不公开,而它们本来只需要一张图。排名追踪的抽样设计里也有同一个坑:省掉的那部分样本,往往正是最能改变结论的那部分。
不跟厂商谈,自己能验出多少?
前面几节全是在拆别人的数。这一节换个方向:假设厂商什么都不肯多说,你手上只有一个试用账号和自己的站,能自己验出多少。
答案是比想象中多,而且最有用的两个动作都不需要碰工具。
第一件事:做一个除法
打开工具的产品页,找两个数——它声称的准则总数,和它实际参与自动检查的项数。相除。
这个动作有多快就有多重要。它只需要五分钟,不需要注册,不需要跟销售约会议,而且得到的是唯一一个能直接带回公司汇报的数:这份报告覆盖了我们检查清单的百分之几。
大多数产品页不会把这两个数并排放,但它们通常都在,只是分散在不同页面上。如果找不到“实际参与检查的项数”,那本身就是答案——一个不肯说自己查了多少项的工具,它给出的“未发现问题”没有任何含义。
第二件事:算一笔核实工时的账
这一步是保哥这两年帮客户砍工具预算时最管用的一招,因为它把“准确率”这个抽象概念直接换算成人力成本。
假设一份报告给了你40条建议,厂商公布的准确率是95%。直觉上你会算:40 × 5%=2条可能不靠谱,那我核实这2条就行。
但你不知道是哪2条。所以要找出它们,你必须把40条全部核实一遍。
| 算什么 | 怎么算 | 结果 |
|---|---|---|
| 可能不靠谱的条数 | 40 × (1 - 95%) | 2条 |
| 必须核实的条数 | 全部40条 | 因为不知道是哪2条 |
| 单条核实工时 | 打开页面、复现、对照准则原文 | 按15分钟保守估 |
| 核实总工时 | 40 × 15分钟 | 10小时 |
| 准确率提到99%之后 | 还是得核实40条 | 还是10小时 |
最后一行是这张表存在的理由。准确率从95%提到99%,你省下的核实工时是零。它降低的是你改错东西的概率,不是你花在核实上的时间。这两件事被“准确率”这一个词捆在一起卖,但它们在你的排期表上是两笔完全不同的账。
那什么能真正减少核实工时?每条建议自带可复现的证据——截图、元素定位、依据的准则原文编号。有这三样,单条核实从15分钟掉到2分钟;没有这三样,准确率再高你也得逐条打开页面重走一遍。
说到这儿有个观察值得点出来。那篇文章花了一整节讲“安全地失败”,说他们的工具错的时候只会错在界面样式识别上,任何非专业人士都能一眼看出来。这个特性的真正价值不是安全,是把单条核实工时压到了几秒钟——你只要看一眼截图就知道它说的是不是那么回事。这是一个成本论点,被他们当成安全论点讲了,结果最能打动采购的那个角度反而没说出来。
第三件事:让它把同一个页面看三遍
拿同一个页面,间隔开跑三次,再把这个页面的截图稍微改一下尺寸或者裁掉页脚,再跑一次。比对四次的输出。
这一步测的是稳定性,不是正确性。稳定不代表对,但不稳定一定不对。而且这是唯一一项买方能够完全独立完成、结论也完全没有争议的测量——同一个输入给出不同的输出,没有任何解释空间。
医学的报告规范里专门有一个词对应这件事,叫评分者内信度,说的是同一个评审者在不同时间对同一样东西评得一不一致。它跟人机之间的一致同等重要,但几乎从来没有人对工具做过这项测试。
第四件事:造一个必然会红的例子
找一个页面,故意把它某一项改坏,改成那个工具明确声称能检出的形态,然后跑一遍,看它报不报。
这个动作测的是召回率的下界。它比看那些报出来的问题有用得多——报出来的东西你能验证,没报出来的东西你连从哪儿开始验都不知道,除非你先自己埋一个。
做的时候注意两点:改坏的那一项要选它产品页上明确列出来的检查项,否则测不出结论;一次只改一项,改两项就分不清是哪一项让它报警的。
第五件事:拿随机页面去校准你精挑的那批
这一招是从万维网联盟那份网站无障碍评估方法学里学来的,逻辑非常漂亮。
那份方法学要求评估一个网站时,先按结构挑一批有代表性的页面,然后再做一件事:
随机选出的样本集充当一个指示器,用来验证前面步骤中挑选出的结构化样本集是否足够代表该网站上提供的内容。当两种选择方式的评估结果相互吻合时,这一步能提高对整体评估结论的信心。
随机抽取的样本数量是结构化样本集的10%。例如,如果为某个数字产品选出的结构化样本集是80个,那么随机样本集的规模就是8个。
随机样本在这里不承担评估任务,它是一个防自欺装置——用来检验你自己挑的那批有没有偏,成本只有10%。而且它测的不是工具,是你自己的取样判断。
搬到我们这儿:你打算用某个AI工具扫描自己的站,别只扫那20个你最关心的页面。从站点地图里随机抽2个页面加进去一起扫,然后比两组的问题密度。差得多,说明你精心挑的那批不代表你的站,你据此得出的结论也就不代表你的站。这跟站内讲孤岛页面抽样口径那篇是完全同一个道理:抽样方式决定了你看到的问题是真是假,而绝大多数人从来不检验自己的抽样方式。
这五件事该按什么顺序做
排期不按信息量排,按“拿到成本 × 结论能不能直接变成动作”这两个维度相乘来排。
五件事按建议顺位排下来是:
- 算覆盖率——5分钟,一个除法,不需要账号;可以直接写进汇报第一页
- 算核实工时——15分钟,一个乘法;直接换算成钱,采购听得懂
- 重跑稳定性——1小时,完全自助;不稳定就是硬伤,无解释空间
- 注入已知缺陷——半天,需要一个测试环境;能测出召回下界,但只测了一个点
- 随机样本对照——1天,要消耗两批扫描额度;信息量最大
反直觉的地方是最后一行:信息量最大的那件排在最后。因为它要消耗额度、要等两批结果、还要有人把两组数据对齐;而前两件是纯算术,一个下午就能拿着结论去开会。先做“算完就能动手”的,比先做“算完还要走流程”的划算——这个排序原则跟内容本身无关,它适用于任何一次你需要说服别人的技术评估。
第六件事:把更新日志当成分母的变更通知
前面那五件都是一次性动作,还有一件必须周期性做,否则前面的结论会悄悄过期。
覆盖率是个动态的数。工具每上线一批新检查项,分子就变了;如果它同时把准则总量也扩了,分母也变了。而这两个变化没有任何厂商会主动发邮件通知你,它们通常只出现在更新日志的某一行里,写法是“新增12项检查”。
所以把这件事排进季度例行:打开更新日志,找出这一季新增和下线的检查项数,重算一次覆盖率。成本五分钟。
这个动作有个额外收获,是别的地方拿不到的:看它新增的是哪一类检查。连续三个季度都在加视觉规范类的检查,说明它的技术路线偏向截图识别;连续加表单交互类的,说明它在往行为分析走。这个趋势比任何路线图PPT都真实,因为它是已经发生的事。
把这六件事写成一页自查表
汇总一下,六个动作按执行顺序排开,每一个都给出输出物——有输出物才能进流程,只有动作没有输出物的检查项活不过两个季度。
| 顺序 | 动作 | 输出物 | 周期 |
|---|---|---|---|
| 一 | 算覆盖率 | 一个百分数,写进评估表第一行 | 选型时 + 每季度 |
| 二 | 算核实工时 | 一个小时数,直接进人力预算 | 选型时 |
| 三 | 同页重跑三次加一次变形 | 四份输出的差异清单 | 选型时 |
| 四 | 注入一个已知缺陷 | 报了还是没报,一行结论 | 选型时 + 每次大版本 |
| 五 | 随机页面对照精挑页面 | 两组问题密度的对比 | 选型时 |
| 六 | 读更新日志重算覆盖率 | 覆盖率的季度变化曲线 | 每季度 |
六件事加起来的总成本,大概是一个人两天,外加一次试用额度。对一笔通常是五位数起步的年度订阅来说,这个投入比例是合理的;而现实中绝大多数团队在这上面花的时间是零。
为什么这套动作不能交给技术评估去做
最后说一个组织上的坑,保哥见过两次,两次都是同样的死法。
这套自查表交给技术团队执行,看起来天经地义——他们最懂工具。但实际发生的是:技术评估会自然而然地漂移到自己擅长的维度上去,变成测接口稳不稳、并发扛不扛得住、有没有开放接口能进流水线。这些都是真问题,但它们不是这套表要回答的问题。
漂移的原因不是不负责,是这套表里最重要的两件事——算覆盖率和算核实工时——看起来完全不像技术工作。它们是两次算术,写在评估文档里显得没有含量,做的人会本能地觉得“这不是我该做的事”,然后转去做那些看起来更专业的部分。
解法是把这两件算术从技术评估里拿出来,放进采购或者业务侧,理由很直白:它们的输出物一个是百分比、一个是人力小时数,两个都是采购语言,不是技术语言。这一步没做对的团队,通常连测量框架该在上工具之前设计好这件事也一起漏掉了。谁的语言就归谁做,做完再交给技术侧去做剩下四件。这个分工听起来琐碎,但它决定了那两个最有用的数会不会真的被算出来。
它提出的那条验收标准,买方其实执行不起
还有一处值得算笔账,因为它解释了为什么上面那六件事全都被设计成不需要大样本。
那篇文章给买方的建议是:准确率文档应当基于对广泛网站的测试,至少20个以上,而不是几个精心挑选的站。这条建议在方法上完全正确,20个站确实是个合理的下限。
但如果买方想自己执行这条标准,成本是多少?拿他们自己那次测量的单价推算:10万美元除以79个站,每站约1266美元;按20个站算,25320美元。
而这还只是验证一款工具。评估三家候选,七万五千美元起步,比这些工具本身的年费高出一个量级。
同一条标准,按“谁来执行—成本—可行性”换几个主体算一遍:
- 厂商自己——10万美元,一次性摊到所有客户;可行,而且已经有人做了
- 买方自己验一款——约2.5万美元;基本不可行
- 买方自己验三款——约7.6万美元;完全不可行
- 独立第三方,成本分摊——与厂商同量级,分摊到全行业;可行,但没有这个角色
所以这条建议实际上只对一种人有意义:它是给厂商定的标准,不是给买方用的工具。它的用法是“要求对方出示”,而不是“自己去测”。这一点原文没有说错,只是很容易被读成后者,读完之后买方会得出一个让人泄气的结论——我验不了,那就只能信。
而这正是前面那六件事存在的理由:它们全部被设计成小样本可执行。算覆盖率不需要样本,算核实工时不需要样本,重跑稳定性只需要一个页面,注入缺陷只需要一个页面,随机对照只需要两位数的页面,读更新日志一个页面都不需要。
它们测不出准确率,这一点前面说过了。但它们能测出另一组东西:这个数覆盖了多少、这份报告要花你多少工时、这套系统稳不稳定、它在你的品类上看不看得见东西。这四件加起来,足够支撑一次采购决策——而准确率本身,从来就不是那个真正需要被回答的问题。
说到底,你要做的决定不是“这个工具准不准”,是“这个工具值不值得进我的流程”。这两个问题的答案可以完全不同:一个准确率99%但只覆盖10%检查项的工具,可能比一个90%覆盖80%的工具差得多,取决于你缺的是精度还是视野。
一次被验证的正确,最危险的用法是被推广
下面这个案子是真事,去掉了能认出客户的信息。它最值钱的地方不是踩了坑,是这个坑长得完全不像坑——它是从一次成功开始的。
一个看起来最适合上自动化检查的站
跨境宠物用品独立站,卖智能猫砂盆、宠物饮水机、耐咬玩具和处方粮,主要市场北美和澳洲,客单价40到260美元。这个品类有个特点:页面模板极其规整。每个商品都必须写适用体重区间、适用年龄段、材质安全认证编号、是否含谷物这几项,字段固定,模板统一,全站上千个商品页长得几乎一样。
正因为这样,团队一直觉得自己的站是最适合上自动化界面检查的那一类——结构越规整,机器越好使,这个判断听起来天经地义。问题恰恰出在这句天经地义上:结构规整意味着一旦某种检查跑不到,它在上千个页面上一起跑不到,而报告上看起来就是“这一类问题一个都没有”。智能体一上真客户站就乱报那篇里说的失控,本质上是同一件事的另一个方向。
他们买了一款AI界面审计工具,跑了一次全站,拿到40多条建议。
预警是一次胜利
团队从40多条里挑了一条最容易做的先试:把商品图库里表示“还有更多图”的圆点指示器,换成缩略图。这一条改起来只要动一个组件,风险低,于是拿去做了个A/B测试。
结果是好的。加购率上去了一点,统计上站得住,团队很高兴,把这次实验写进了季度复盘,标题大意是“AI审计工具的第一条建议已验证有效”。
然后剩下那39条,陆陆续续全上线了。没有再做A/B,也没有人逐条核实。
这里要看清楚:没有任何人做出“其余39条不必验证”这个决定。没人在会上说过这句话,也没人在文档里写过。它是通过省略发生的——下一批建议排期的时候,没有人提议做A/B,也没有人提议不做,就直接进了迭代。
为什么这种预警最难识别
难点不在于没人看见,恰恰相反,所有人都看见了,而且看见的是一件好事。
公司里有复盘失败的机制——事故有复盘会,指标掉了有归因分析,预算超了有审计。但没有任何一家公司有复盘成功的机制。一次被验证有效的改动,它在组织里的下场是被写进汇报、被当成方法论、被拿去说服下一次预算,唯独不会被人追问“这次成功能推广到哪儿为止”。
更麻烦的是那次A/B本身完全没有问题。实验设计是对的,那条建议也确实是对的,结论也确实站得住。错的不是任何一个环节,错的是推广的方向——从“这一条经过验证”,滑到了“这套方法经过验证”。这两句话中间没有任何逻辑通道,但它们在语感上离得非常近,近到没人会觉得需要论证。
说得更狠一点:一次被验证的正确,最危险的用法不是被相信,是被推广。被相信只影响这一条,被推广会替后面几十条免掉验证。而免掉验证这件事,从来不是被决定的,是被顺手带过去的。
后来是怎么发现的
发现得很晚,而且是从一个不相关的方向。运营在做客服工单归类的时候注意到,有一类咨询在三个月里明显变多:客户问“你们这个猫砂盆到底适合多重的猫”。
这句话本身很普通,直到有人去看了页面——适用体重那一栏还在,只是被挪到了一个折叠区里。而挪它的那一次改动,正来自那40多条建议中的一条,大意是精简商品页首屏的信息密度。这条建议在一个信息密度确实过高的服装站上是对的,在一个买家必须先确认适配才敢下单的宠物用品站上是反的。
回头查那条建议对应的准则,它属于那346条里的一条,机器识别的是“首屏信息块数量”这个界面特征,识别得完全正确。错的不是识别,是这条准则本身在这个品类上不适用——而这一层,正是万维网联盟那份规范里说的、靠示例解决不了的那一类不准确:规则本身的不准确,来自规则作者没有意识到某个特定的边缘情况。
那次的净结果:加购率的小涨和适配咨询导致的流失,两股力量方向相反,最后落在噪声里,谁也说不清赚了还是亏了。真正的损失是三个月的客服工时和一次没人能复盘清楚的迭代。
后来把闸门挂在了哪儿
试过挂在技术评估上,没用。技术评估测的是能不能跑通、快不快、接口好不好接,全是能跑脚本验证的事;“这个数是怎么算出来的”是一道文字题,不是技术题,放在技术评估里没有人认领。
最后挂在了采购问卷上,具体到一行字:任何AI分析类工具进入采购,供应商问卷里增加一个必填项——请提供贵方所声明准确率的分子与分母定义,以及被排除在该统计之外的功能清单。
这一行有几个细节是反复调过的:
几个反复调过的细节:
- 问的是分子分母的定义,不是“准确率多少”——后一种问法所有人都答得上来,等于没问
- 要问“被排除在统计外的功能清单”——这是覆盖率的另一种问法,而且比直接问覆盖率更难糊弄
- 答案必须落成文字进附件——销售口头说的,出问题时不存在
- 这道题不打分、不设标准答案——判定规则只有“填了/没填”,采购同事不需要懂就能执行
- 必填,不给默认值——可选项人人跳过,一切照旧
最后一行的道理跟去年在另一个客户那儿把组件参数改成必填是一样的:把一个可选项改成必填,是最便宜的组织手段——它不需要任何人认同这件事重要,只需要表单提交不了。
而这个动作最值钱的副产品,是那些答不出来的供应商。第一轮问卷发出去,答得利索的两家,含糊其辞的三家,直接跳过这一项交上来的一家。这个分布本身就是这次筛选真正的收获,比任何一份对比表格都管用。
三种反对,以及怎么答
这条规则推的时候会碰到三句话,都很合理,答法各不相同。
“供应商不会认真填。”那就是结论。一个不肯把自己指标定义写下来的供应商,等到线上真出问题、你拿着报告去找他的时候,他也一样不会认。这道题筛的不是能力,是意愿。
“我们采购流程改不动。”不改流程,加在技术评估的附件里,一行字,不需要走任何审批。这条规则的全部成本就是这一行字。
“这题太专业,采购同事看不懂答案。”不用看懂。判定规则是填了还是没填,不评估答案质量。一条不需要评估者具备专业能力就能执行的规则,才有可能长期活着——所有需要人做专业判断的检查项,在换了两任负责人之后都会名存实亡。
边界要主动说清楚
这套东西不解决四件事,先说在前面比事后解释强。
第一,它不判断这个工具值不值得买。一个覆盖率只有30%的工具也可能物超所值,前提是它覆盖的恰好是你最薄弱的那30%。覆盖率是个体检指标,不是评分。
第二,它不省钱,短期还会更贵。补上核实流程意味着每份报告多出十几个小时的工时。省下来的是改错东西的成本,而那笔钱记在另一本账上,永远算不清楚。
第三,对只用免费版试水的团队价值有限。判据很简单:有没有跑过一次全量扫描。没跑过,前面那些除法乘法都没有数据可代。
第四,它不是一次性工程。工具每上线一批新检查项,覆盖率就变了,而厂商不会发邮件通知你分母改了。这个数需要每个季度重算一次,成本是五分钟。
最后一条是关于报表的,必须在动手之前讲:做完这套核实流程,报告的“可采纳条数”会下降。以前40条全上,现在核实完可能只上30条,剩下10条打回或搁置。在管理层的视角里,这看起来像是工具产出变少了、或者团队执行力下降了。实际发生的是错的那部分被拦住了,但拦住的东西不会出现在任何报表上。这个变化要在动手前说,等报表出来再解释,说什么都像找补。
那份季度复盘文档后来怎么处理的
这次复盘还有一个尾巴,值得单独说,因为它最容易被跳过。
那份写着“AI审计工具的第一条建议已验证有效”的季度复盘,一直挂在文档库里。这句话本身没错——那条建议确实有效,实验确实站得住。但它在后来的半年里被引用了三四次,每一次都是被拿去支持一个跟它无关的结论:要不要续订、要不要扩大扫描范围、要不要把工具的建议直接接进迭代看板。
一句正确的话,在被反复引用的过程中,慢慢承担了它本来承担不了的重量。而且没有人做错什么——引用的人只是在找一个已经被验证过的依据,而这句话看起来正是。
后来做的处理很土:在那句话下面补了一行,写明它验证的是哪一条建议、用的是什么实验、结论的适用范围到哪儿为止。不删原话,不追究谁引用错了,只加一行边界说明。
预警形态跟前面十四次的差别在哪儿
这个系列复盘写到这里已经攒了十五种预警形态,值得把它们并排放一次,因为分辨力全在差异里。
| 预警的形态 | 它为什么没被听见 |
|---|---|
| 根本没有预警 | 没有任何信号产生 |
| 用了另一个部门的语言 | 翻译损耗,收件人听不懂 |
| 被读成捷报 | 指标方向被误读 |
| 修好了反而看不见了 | 信号随问题一起消失 |
| 被转给了错的科室 | 归属判断出错 |
| 被降级成沟通问题 | 性质被误判 |
| 被当成怀旧带过 | 被归为情绪表达 |
| 收件人不对 | 送到了没有权限的人手里 |
| 是个好消息 | 好消息不触发追问 |
| 记录本身缺席 | 发生了但没被写下来 |
| 全对但指错了侧 | 诊断正确方向相反 |
| 被一份正确的验收报告关闭 | 正式流程给它盖了章 |
| 是表扬,出现在满意度渠道里 | 渠道属性决定了没人会往下追 |
| 被归进“设计参考”这一栏 | 类别本身不产生行动项 |
| 是一次被验证的成功 | 没有任何组织会复盘成功 |
前十四种的共同点是:信号发出了,但在某个环节被削弱、误读或者归错了类。它们都属于“没被听见”这一大类,只是失聪的位置不同。
第十五种不一样。信号被完整地听见了,被认真对待了,还被写进了正式文档。问题出在它被听见之后——它替一批没有被验证的东西背了书,而这次背书没有经过任何人的决定。
这也是为什么它最难防。前十四种至少理论上有解:改沟通语言、改归属规则、改记录制度、改类别定义。第十五种没有对应的制度可改,因为没有一家公司会去建立“成功复盘”这个流程——听起来就像在给自己找不痛快。
唯一可行的解法不是复盘成功,是在成功发生的当下顺手写一句边界。刚做完A/B拿到正结果的那个时刻,是唯一一个所有人都愿意花五分钟写清楚“这次验证的是什么”的时刻——过了那个时刻,写这句话就变成了泼冷水。
这次真正学到的那一条
把这个案子的教训压成一句:一条建议被验证有效,只证明了这一条有效。它不证明第二条有效,不证明这套方法可靠,更不证明剩下的可以跳过验证。
这句话念出来近乎废话,但组织里几乎所有人都在下意识地违反它,包括写下这句话的人。原因不复杂:逐条验证成本很高,而“这套方法已经验证过了”是唯一一个能让成本降下来的说法。它不是被谁编出来骗人的,它是被成本压力自然挤出来的。
所以真正的防线不在认知层面,在流程层面。如果验证第二条的成本和验证第一条一样高,那么跳过验证就是必然的,跟谁聪明谁笨没关系。要让逐条验证真的发生,得先把单条验证的成本压下来——回到前面说的那件事:每条建议自带截图、元素定位和依据编号,单条核实从十几分钟掉到两分钟。成本降下来之后,逐条验证才从一句口号变成一件真的会被执行的事。上一次拆结账返工时得出的那条结论在这儿同样成立:一件事会不会被做,取决于做它的成本,不取决于它有多重要。
常见问题解答
不同AI审计工具公布的准确率,能不能直接拿来比较?
不能,因为它们大概率不是同一个量。有的算的是“它说的话里对的比例”,有的算的是“该说的它说出了多少”,有的算的是“人机判断对得上的比例”,这三个数在同一次测试里可以同时存在而且差得很远。欧盟人工智能法案的第15条特意在要求声明准确率的同一条里补了一款,说委员会要推动基准和测量方法学的开发,等于承认目前还没有公认算法。所以横向比之前必须先问一句分子分母各是什么,问不出来就别比。真要比,比一个双方都能算的数:参与自动检查的项数除以声称的准则总数。
覆盖率这个数在产品页上找不到怎么办?
找不到本身就是一个结论。这两个数通常都在,只是分散在不同页面上,准则总量往往写在方法论或者关于我们那一页,实际参与检查的项数写在产品页或者更新日志里。翻遍了确实只有一个数,那就直接发邮件问,问法是“目前有多少条准则参与了自动检查,多少条未纳入”。这个问题不涉及商业机密,答不上来只有两种可能:没算过,或者不想说。两种情况下你都拿到了想要的信息。别问覆盖率是多少,那个词他们可以有自己的定义。
人机一致率和准确率是一回事吗?
不是。准确率隐含着存在一个客观正确答案,一致率只说明两方给出了相同的结果。做界面评估的时候,这个区别特别关键,因为启发式评估这个方法本身就没有唯一正确答案——尼尔森诺曼集团的官方说明要求3到5个人独立评同一个界面,理由是任何个体都会漏掉一部分问题,最终清单是把多份独立报告合并起来形成的。合并意味着取并集,也就是预期他们不重合。对一个预期不重合的任务测一致率,测到的是这台机器像不像被选中的那一份答案,不是它有多准。
准确率从95%提到99%,对我的实际工作差别有多大?
比想象的小得多。假设一份报告给40条建议,95%意味着大约2条可能不靠谱,但你不知道是哪2条,所以还得把40条全核实一遍;提到99%之后,可能不靠谱的只剩0.4条,你还是得把40条全核实一遍。核实工时一分钟没省。准确率降低的是你改错东西的概率,不是你花在核实上的时间。真正能压缩核实工时的是另一件事:每条建议自带截图、元素定位和依据的准则编号,有这三样单条核实能从十几分钟掉到两分钟,这个才值得在选型时重点看。
中文站用这类欧美UX工具,风险主要在哪里?
主要在测试集的构成上。那份95%的公示写明了测试用的79个站来自美国、英国和欧洲,其中15个非英语站分别是德语、法语、波兰语、意大利语、荷兰语、丹麦语和西班牙语,也就是说7种非英语全部使用拉丁字母,整个测试集只涉及一种书写系统,中文站是零个。而中文电商页面的界面构成差别不小:通栏楼层、腰带图、商品卡上叠好几层促销角标、没有词间空格因而断行规则完全不同。这不代表工具在中文站上一定不准,只代表没有任何数据支持它在中文站上准。
欧盟人工智能法案会不会管到我用的AI分析工具?
大概率不会,这正是需要留意的地方。法案的主体条款自2026年8月2日起适用,但要求声明准确率水平及其指标的第13条和第15条,只约束附件三列出的八类高风险系统:生物识别、关键基础设施、教育与职业培训、就业与劳动者管理、基本公共服务与福利、执法、移民庇护与边境管制、司法与民主程序。一款分析电商界面并给出改版建议的工具,不落进其中任何一类。所以法律上它没有任何公布准确率的义务,你能拿到的每一份公示都是自愿提供的。
只有一个免费试用账号,能验证出什么?
能验的比想象中多,但验不了准确率。免费版通常只给一两条建议,样本量太小,出现误差的期望值不到十分之一条,你看到的只是一次运气。免费额度真正该用来做三件事:拿同一个页面间隔跑三次看输出稳不稳定,同一个输入给出不同输出是没有解释空间的硬伤;把这个页面的截图改改尺寸再跑一次,看结论会不会跟着变;找一个页面故意把某项改坏成它明确声称能检出的形态,看它报不报。这三件事测的分别是稳定性、鲁棒性和召回下界,都不需要大样本。
权威参考资料
本文标题:《AI审计工具号称95%准确率,可它是自己划的及格线,不是考出来的分数》
本文链接:https://zhangwenbao.com/ai-audit-tool-accuracy-rate-denominator.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0
← 上一篇
类目导航改版做了三轮,用户点进来的那一屏,仍然没有一个字写着他在哪下一篇 →
没有了