AI 拨测,怎么才算真的测到位
传统拨测特别省事,发个请求,看能不能通、状态码符不符合预期。通了、码也对,就当它没事。
可这套搁 AI 上不够使。说白了,你拨测的不管是模型厂商还是中转站,从外面看其实就是一个接口——它回了 200,不代表它跑得动。
接口活着,第一个字半天蹦不出来,偶尔还被限流挡回来,用户那头早等得不耐烦了。所以 AI 的探活得加一条:能不能在用户忍得了的时间里,把第一个字吐出来。
这只是最底下一层。往上还有两层,传统那套越往上越看不见。
一层一层往上看
连得上、第一个字也来得及,第二层的问题就来了:模型有没有规规矩矩、按要求把内容完整产出。
这层只看生成本身利不利索——撞上 max_token 被截断、该按 stop 停的没停、长文本输入输出对不上、回了一段空的、中转站该命中的缓存没命中。这些接口可都照样回 200。
再往上第三层最安静。内容完整地拿到了,可它对不对、好不好。退款政策说反了、合同摘要漏了关键条款、本该正常答却来一句「这个我不能答」,全是 200,传统拨测一点都察觉不到。
三层凑一块,越往上越难发现:
最坑的退化恰恰都在最上面那层,偏偏那层最难发现。
主动拨测,没流量也能测
往下讲之前,先把一件容易搞混的事说清楚。
trace 是被动的,得等真实流量才有数据。拨测是主动的,自己造一批固定请求定时打。半夜、冷门功能、刚上线还没人来,主动拨测照样能测。这个系列只讲主动这半边。
每一层,费劲的都是断言
真动手的时候你就会发现:虽然定时发请求这步跟传统没啥区别,但是费劲的是怎么写断言。
可 AI 不一样。你想啊,同一个问题问十遍能有十种说法。你要是断言「必须含某个词」,模型换个近义词你就误报;你要是放松到「只要不为空」,那条说反了政策的回答照样能蒙混过去。
真正管用的断言分三种,正好一层配一种:
图里这三类,越往上越靠语义断言,也越难写。质量层就全压在它身上。
后面怎么拆
后面三篇,一层一层拆开讲:
- L1 连通层:怎么探活、第一个字多久算超时、悄悄掉到备用模型(fallback)怎么发现。
- L2 有效层:怎么盯
finish_reason、有没有被截断、缓存命中率、长文本输入输出,看这次生成规不规矩。 - L3 质量层:固定测试集(golden 集)怎么攒、判断内容对不对的断言怎么落地、多久测一次、成本怎么压。
所谓测到位,就是这三层都盯住——连得上、按规矩产出、内容还得对。这篇先把框架讲清楚,后面一层一层往深里挖。
我在攒一个企业 AI 基础设施的交流群,聊 AI Gateway、多模型管理、可观测、评估和安全审计这些落地问题。感兴趣的话,公众号后台回复「进群」。