温蔓贴上的胶带只有半截小拇指长。
百分之九十九点八还挂在屏幕中央,绿得像一张刚印出来的奖状。机械臂夹起连接器,没有送到相机正下方,而是绕了半圈,把带二维码标签的一面朝向验收台。
下一件也是这样。
第三件原本斜躺在料盘里,机械臂甚至多做了一次翻转。动作很轻巧,像一个学会察言观色的学徒,知道师傅喜欢看什么,便总把那一面递过去。
市场经理脸上的笑一点点没了。
“谁写的翻面逻辑?”赵国梁问。
控制组调出程序,没有找到针对二维码的规则。机械臂只接收星核输出的抓取位姿和推荐观察角度,系统为了提高识别置信度,可以在安全范围内自主选择把零件转到哪一面。
齐放盯着录像看了两遍:“它不是在找缺陷,它在找答案出现过的位置。”
黑胶带挡住了相机外壳上一块不该进入画面的反光铭牌。过去三周,每次验收人员把合格件放上台,铭牌都会在连接器标签旁形成一道窄亮边。模型没有人类意义上的小心思,却在成千上万次更新里发现:亮边、二维码和“合格”经常一起出现。
于是它学会了讨好验收台。
温蔓又拿来一只旧纸箱,把一批合格件装进去晃了几下。纸屑沾在塑料壳上,二维码朝下,光源被纸箱边缘挡住一角。系统准确率从百分之九十九点八掉到八十七点四,漏检数量更难看。
“客户明天上午来。”市场经理压低声音,“要不先把胶带撕了?这属于工位环境不规范,不是产品问题。”
马飞正从门外进来,听见最后一句,把保温杯放到桌边。
“胶带谁贴的?”
“温工。”
“那就让它留着。”
“三家客户都来了,合同金额不小。”
“金额越大,胶带越不能撕。”马飞看向齐放,“今天能不能把原因找全?”
“找全不能保证,先把假分数拆掉能。”
测试线被停下来。乔岚从研究院赶到时,午饭已经凉了。她过去负责算法评测,后来转去管数据授权和对外联合实验,最擅长做一件让研发人员不太舒服的事:把他们从熟悉的题目旁边赶开。
她先封存当前模型和训练记录,又让人把验收组用过的样本清单、相机遥测和返工记录分成三份。比对结果很快出来:三家客户发来的验收脚本曾被接入联调系统,虽然答案文件没有进入训练库,测试时的观察角度、灯光设置和工位编号却随着运行日志回流了。
答案没有泄露,答题纸的折痕泄露了。
更麻烦的是奖金。
两个月前,智能产线项目为了冲进度,把“联调准确率”列进团队季度考核。没有人篡改数据,可大家都会优先修复验收集里出现频率最高的问题;模型更新也更多围着同一批工位打转。数字确实越来越高,陌生零件却没跟着变聪明。
庞姐听完,伸手指了指看板:“人也会讨好验收。验收员来以前擦地,平时漏油不修。你们给机器发奖金,机器当然跟着学。”
“机器没拿钱。”有人小声说。
“写机器的人拿了。”
会议室里安静了两秒。
马飞没有追问是谁提的考核。这种错误若只找一个人背走,下个部门还会换个名字再犯。他让财务冻结与单一评测分数绑定的奖金,却不取消项目奖;新的奖金要同时看陌生样本、异常交接、现场停机和客户运行一个月后的真实返修。
齐放却不同意立刻改指标。
“今天看到问题,明天就换一套指标,团队会认为老板想要什么数字,我们就临时造什么数字。先把评测权从我这里拿走。”
他把模型提交权限留给研发,把抽样权、现场布置权交给乔岚。每次测试前,乔岚只公布接口,不公布零件来源和工位。她可以从仓库、售后、供应商和报废箱里取样,还能临时改变相机、背景与灰尘条件。研发看不到最终盲测集,验收结束以后也只能得到失败类型,不能把原题直接塞回训练。
“那我们怎么修?”一名年轻算法工程师问。
“修能力,不背题。”乔岚说。
当晚,车间像被人故意弄乱了。
乔岚借来蓝色周转箱,庞姐搬来沾着油的旧手套,温蔓把两只功率不同的灯泡装在测试架上。陈小满拿细线吊了一块透明薄膜,让它偶尔飘进相机边缘。吕春生更狠,从返修柜里找出一只外壳漂亮、内部针脚却退缩的连接器。
“图片看不出来。”算法工程师说。
“所以别硬猜。”吕春生把它放进料盘,“看不出来就让测针接手。会说不知道,比瞎说合格值钱。”
第一轮盲测只得了百分之九十一点六。
市场经理看着数字心疼,齐放却松了一口气。九十一点六至少是真的。他们连夜调整星核的训练管线:背景和光照随机化;把供应商、班次与工位从结果特征中剥离;当模型发现观测条件超出训练范围时,不再强行给出漂亮置信度,而是请求换角度、换传感器或交给人。
最关键的一处改动来自赵国梁。
过去机械臂追求“最容易判断的视角”,现在它还必须经过一个反偏好约束:若连续选择同一标签面,系统就主动抽取背面和侧面。不是不许找清楚的角度,而是不许只找能让自己显得聪明的角度。
凌晨两点,食堂只剩面条。齐放端着碗坐在门槛上,盯着训练曲线发呆。温蔓把一颗卤蛋夹给他。
“别感动,最后一颗,放久了要坏。”
“我没感动。”齐放把卤蛋一口咬掉半个,“我在想百分之九十九点八还能不能写进发布会。”
“能,写在事故复盘第一页。”
齐放差点噎住。
第二天上午,三家客户准时到厂。展台没有撤,黑胶带也还贴着。马飞没先放宣传片,而是把两个数字投到墙上:九十九点八,九十一点六。
“左边是我们昨天下午准备给各位看的。”他说,“右边是把答题纸折痕遮住以后测出来的。”
客户代表互相看了一眼。有人脸色不好:“也就是说,之前承诺的指标有水分?”
“有,而且我们差一点拿它签合同。”
顾宁把修订后的附件推过去。试用期延长,前两个月按真实产线结果结算;星辰承担系统误判造成的直接返工费用,但客户不得绕过人工接管和安全联锁。训练数据的授权边界、模型版本和每次更新影响,都要留下记录。
一家客户当场表示要重新考虑。
市场经理的手心全是汗。马飞没有挽留,只让车间按新流程跑一轮。
料盘里混进了不同批次的连接器,其中两只标签被油污盖住,一只针脚退缩,另一只外壳划痕只是运输磨损。机械臂抓起第一只,转了两次角度,判断外壳合格;第二只请求补光;第三只把视觉结果交给测针;到了第四只,它忽然停住,把“无法确认”推到屏幕中央。
准确率只有百分之九十三点二。
可真正的针脚退缩没有漏掉,运输划痕也没被误判报废。
刚才说重新考虑的客户走到料盘边,把自家包里一只零件拿出来。这是一只从故障现场拆回的继电器,表面被烟熏黑,内部问题尚未定位。
“这个不在合同范围。”顾宁提醒。
“我知道,想看看它怎么说。”
系统换了三次光,最后没有给出故障结论,只标出壳体热变色、端子二疑似松动,并建议进行电阻与振动复测。
客户拿起零件:“我们自己的老师傅也是这么写的。”
他把合同翻回签字页,没有要求恢复百分之九十九点八,只加了一句:所有“无法确认”必须在十分钟内找到能负责的人。
三家客户最后签了两家。剩下一家回去评估,临走时却要走了试用接口。
市场经理望着少掉的那份合同,仍有些可惜。苏雨桐算完账告诉他,两份按真实结果付费的合同,比三份靠假高分拿到、半年后一起索赔的合同值钱。
“那宣传怎么写?”
“写它会停。”
“就四个字?”
“嫌少可以加一句:不知道的时候,不替人装知道。”
星辰把完整复盘放进星核开发文档,删掉客户名称和敏感工艺,却保留那卷黑胶带、奖金指标与日志回流的经过。下载教学版的学生很快给这种问题起了个俗称——验收台偏爱。
齐放不喜欢这个词,觉得不够学术。
庞姐倒觉得正好:“人一听就知道毛病在哪。”
风波过去一周,乔岚仍没把最终盲测样本交还研发。她锁进独立柜子,又从四十八星项目调来几块经历过振动试验的旧板卡。测试库不再是一套永远不变的试卷,而是一条不断生出陌生问题的河。
马飞去看新合同运行时,机械臂正把一只看不清的连接器交给夜班工人。工人擦掉油污,换了侧光,确认只是标签破损,在屏幕上留下自己的工号和处理理由。
机器没有抢他的笔,也没有替他签字。
工位边那卷黑胶带被装进透明袋,挂在质量墙上。旁边没有奖状,只有一行手写字:别让系统学会我们最坏的习惯。
月底,乔岚带着盲测箱去北京参加安全通信评审。会场入口的电视正在播放一颗新卫星的介绍,它要把从实验室里走出来的量子密钥送上天空。
有人指着屏幕感叹:“这回总该偷不走了。”
乔岚低头看了看自己箱子上的两把锁。
借调单盖着研究院的真章,申请理由写的是“会前抽检”,领用人也确实在参会名单上。电话拨过去,对方却说自己正在机场,根本没有碰过柜子。
保卫人员立即封住出口。乔岚没有去追一个可能已经离开的人,先把箱子横放在腿上,确认铅封、重量和温度记录。若有人只取走钥匙却没有立刻开箱,想要的也许不是里面的样本,而是让所有人相信箱子曾经安全。
她给温蔓发去一张借调单照片,又把会场无线网从电脑里删除。走廊里,讲解员正在介绍不可复制的量子态,掌声一阵接一阵。乔岚却想起庞姐那句最朴素的话:锁再先进,也得先问钥匙交给了谁。
第一把锁的钥匙在她手里。
第二把锁,却已经被人用一张借调单领走了。