如果你正在用「AI 里到底提没提到我们」来决定一笔预算,这篇可能会让你不太舒服。
我们把同一个品牌、同一套问题、同一批引擎、同样的采样次数,在不同的时刻重复跑了 10 轮。品牌没换、问题没改、引擎没动、温度没调。结果每一轮都不一样:最低 41.2%,最高 53.8%,全距 12.6 个百分点。
但真正值得写的不是这个跨度,而是它的来源。我们原以为会看到「模型自己在飘」——同一问题不同时刻答得不一样。数据把这个假设否掉了:这 12.6 个点,用「每轮只问 80 次」这一件事就完全解释得通,一点不需要「世界变了」。
一、先说结论:四句话
- 指标有噪声底。10 轮全距 12.6 个百分点,样本标准差 3.48 个百分点。它比大多数服务商拿来邀功的「本月提升」还大。
- 这噪声几乎全部来自采样,不来自模型。每轮 80 次采样的二项理论标准差是 5.58 个点,实测 3.48,只有理论值的 0.62 倍(χ²=3.5,自由度 9,p=0.9432)——比理论还规整。
- 45 个两两比较,0 个显著。在没有真实变化的情况下,任意两轮的差异中位数 3.7 个点、最大 12.6 个点,但都落在抽样误差内。
- 每轮 80 次采样,只能看见 15.5 个点以上的变化。小于这个数的「涨跌」,无论小数第几位报得多精确,都没有分辨力。
二、实验设计:能锁的变量全部锁死
这一节是为了让任何人可以照着复现,不是让你相信结论。全部控制项:
| 变量 | 设定 | 为什么必须锁 |
|---|---|---|
| 被测品牌 | 一个越南消费品品牌,附中越双语别名 | 换品牌就换基线(0% 与 50% 的可测精度差很多) |
| 问题集 | 固定 10 条中文问句 + 10 条越南语问句,逐字不变 | 问法一变,「谁被提到」的概率立刻变 |
| 引擎 | DeepSeek(deepseek-chat)+ 智谱(glm-4-flash) | 不同引擎的信源差异,远大于一次优化的效果 |
| 温度 | 0.6,所有轮次一致 | 温度直接决定回答的随机性 |
| 每问采样 | 2 次 | 只问一次会把随机性全算进结果 |
| 每轮样本 | 10 问 × 2 语种 × 2 引擎 × 2 采样 = 80 | 分母固定,轮与轮才可比 |
| 命中判定 | 回答文本归一化后包含品牌名或任一别名 | 判定规则一变,命中率整体平移 |
| 唯一没锁的 | 时间 | 这正是要测量的东西 |
三、10 轮结果:全距 12.6 个百分点
每一轮都是完整的一次「提问 → 收集 → 判定」,轮与轮完全独立。前 2 轮在 10 月 24 日上午,后 8 轮在 10 月 25 日夜间,总跨度 37 小时——这一点很重要:如果波动来自「模型随时间漂移」,那跨了一整天应该更明显;但下面的检验会看到,它并没有。以下是全部原始读数,未平滑、未剔除:
| 轮次 | 日期 | 命中 / 采样 | 提及率 | 与均值之差 |
|---|---|---|---|---|
| 第 1 轮 | 2026-10-24 | 38 / 80 | 47.5% | +0.1 |
| 第 2 轮 | 2026-10-24 | 33 / 80 | 41.2% | -6.2 |
| 第 3 轮 | 2026-10-25 | 43 / 80 | 53.8% | +6.4 |
| 第 4 轮 | 2026-10-25 | 38 / 80 | 47.5% | +0.1 |
| 第 5 轮 | 2026-10-25 | 39 / 80 | 48.8% | +1.4 |
| 第 6 轮 | 2026-10-25 | 38 / 80 | 47.5% | +0.1 |
| 第 7 轮 | 2026-10-25 | 41 / 80 | 51.2% | +3.8 |
| 第 8 轮 | 2026-10-25 | 36 / 80 | 45.0% | -2.4 |
| 第 9 轮 | 2026-10-25 | 37 / 80 | 46.2% | -1.2 |
| 第 10 轮 | 2026-10-25 | 36 / 80 | 45.0% | -2.4 |
均值 47.4%,最低 41.2%,最高 53.8%,全距 12.6 个百分点,样本标准差 3.48 个百分点。
这个跨度意味着什么:如果一家服务商在月初测到 41.2%、月末测到 53.8%,他完全可以写一份「提升 12.6 个百分点」的月报——而他什么也没做。这不是说谁会这么做,而是说:没有离散度信息的提升率,是可以被测量时机构造出来的。
四、这 12.6 个点,需要「世界变了」来解释吗?不需要
这里是我们原本猜错的地方,值得完整写出来。
我们事先的假设是:除了抽样随机,模型本身还会在时刻之间漂移(同一个问题,今天答 A、明天答 B),所以实测波动应该大于二项理论。以合并命中率 p=47.4%、每轮 n=80 算,理论标准差应为:
σ = √(p(1−p)/n) = √(0.47 × (1−0.47) ÷ 80) ≈ 5.58 个百分点
实测是 3.48 个百分点,低于理论值,比值 0.62。超二项检验:χ² = 3.5,自由度 9,p = 0.9432——数据与「只有抽样随机」这个最简单的解释高度一致。
| 检验 | 统计量 | 结论 |
|---|---|---|
| 观察到的跨轮标准差 | 3.48 个百分点 | — |
| 二项理论标准差(n=80) | 5.58 个百分点 | 实测 / 理论 = 0.62 |
| 超二项卡方检验 | χ²=3.5,df=9,p=0.9432 | 不能拒绝「只有抽样随机」 |
换句话说:这 10 轮里没有任何「世界变了」的证据。那 12.6 个点的跳动,只是同样一枚硬币,每次翻 80 下。
这个结论对我们的价值,比「模型会飘」更大。因为如果漂移来自模型,加大采样也压不住,只能靠多轮平均;而现在数据说漂移就在抽样里,那么「提高采样量」就是一个确定有效的解——这是可管理的。
顺便解释一个反直觉的地方:为什么实测波动会比理论值还小?两个原因。第一,理论里的 p 是拿这 10 轮自己估的,估出来的 p 天然贴近总体均值,会低估离散度。第二,每轮只有 80 次采样、且这些采样共享同一批 20 个问题,命中率被问题的难度分布「拉平」,轮与轮之间比独立抛硬币更接近。所以这个 0.62 不应该被读成「AI 很稳定」,只能读成「在这套设计下,我们看不到额外的模型漂移,但这也说明它小于当前分辨率」。
五、45 个两两比较,0 个显著
把 10 轮两两配对,共 45 组比较。若每组差异都是真信号,这个品牌在同一天里会「显著上升」和「显著下降」几十次——显然荒谬。实际结果:
| 指标 | 数值 | 含义 |
|---|---|---|
| 两两比较总数 | 45 | 10 轮全组合 |
| 达到 p<0.05 的对数 | 0 | 一组都没有 |
| 差异中位数 | 3.7 个百分点 | 一半的比较差异小于这个值 |
| 最大一对 | 第 2 与 3 轮,12.6 个百分点 | z = -1.58,p = 0.11,仍不显著 |
这张表就是「单次对比」不可信的全部理由:在真实水平毫无变化的前提下,任意两轮差异中位数 3.7 个点、最大 12.6 个点,但最大那一对的 p 也有 0.11。如果你的监测方案是「这周测一次、上周测一次,比一比」,你每周都在读噪声。
举个例子。本实验里第 2 轮的 41.2% 和第 3 轮的 53.8% 相差 12.6 个点。如果只取这两次,一份报告可以这样写:「经过内容优化,AI 提及率从 41.2% 提升至 53.8%,增幅 12.6 个百分点,效果显著。」每一个数字都是真的,结论是假的——因为这两次之间我们没有改任何东西,而且这一对的 p 值是 0.11。这正是「不报显著性」最容易出的问题:它不需要撒谎,只需要选对两次测量。
六、判别表:多大的变化才值得当成「涨了」
在 p≈47.4% 这个量级下,不同采样数能可靠检出的最小差异(双侧 95%):
| 每轮采样数 | 可检出的最小差异 | 适用场景 |
|---|---|---|
| 40 | ±21.9 个百分点 | 低于此数,只能看粗方向 |
| 80 | ±15.5 个百分点 | 本站当前设置 |
| 160 | ±10.9 个百分点 | 可分辨 10 点以内的变化 |
| 320 | ±7.7 个百分点 | 适合周度对比 |
| 640 | ±5.5 个百分点 | 适合单页级归因 |
读法:每轮只问 80 次,那么 15.5 个百分点以内的变化,工具没有能力分辨,小数第二位报得再精确也一样。要可靠看见 10 个点的变化,每轮需要 192 次采样;看见 6 个点要 533 次;看见 5 个点要 767 次。
把这张表和你的工具对照一下,很多「本周提升 3%」的报告会自动失效——不是因为报告作假,而是因为那个量级的差异,在任何采样方案下都测不出来。
七、引擎差 4.8 分、语言差 6.3 分——我们暂时不敢下结论
把所有轮次合并(每格 400 次采样),两个分组看起来有差:
| 分组 | 合并提及率 | 跨轮区间 | 与对照之差 | 检验 |
|---|---|---|---|---|
| DeepSeek(deepseek-chat) | 49.8% | 45.0% – 57.5% | 基准 | — |
| 智谱(glm-4-flash) | 45.0% | 37.5% – 55.0% | -4.8 | z=1.34, p=0.18 |
| 中文提问 | 44.2% | 37.5% – 52.5% | 基准 | — |
| 越南语提问 | 50.5% | 45.0% – 60.0% | +6.3 | z=1.77, p=0.08 |
常识会说「DeepSeek 比智谱高 4.8 分,说明 DeepSeek 更容易被影响」,或「越南语提问高 6.3 分,说明越南市场认知更强」。但按检验,这两个差异都还打不到显著线(p = 0.18 与 p = 0.08)。
要证实一个 6.3 分的差,每个分组需要约 533 次采样;我们现在每格只有 400 次。所以本文不写「中文市场更弱」这种结论——它可能是真的,但我们手上的证据不支持它。
这就是我们不在产品里堆「引擎对比雷达图」的原因:两个看起来不一样的分组,很可能只是样本不够。要下这个结论,得先把采样加上去。
八、要把变化测出来,具体改三件事
结论不只是「现在的测量不可信」,也要给可执行的路。基于上面的数字,只有三个动作真正有效:
| 动作 | 现在 | 改成 | 代价与收益 |
|---|---|---|---|
| 加大每轮采样 | 80 次 | 192 次(想看见 10 个点) | 单轮耗时从约 1 分钟到约 2.5 分钟;能分辨的变化从 15.5 个点降到 10 个点 |
| 固定问题集与引擎 | 已固定 | 保持,且版本号写进报告 | 零成本。问题集一改,历史曲线立刻断掉 |
| 保留对照品牌 | 无 | 每次优化都同时测一个不动的品牌 | 一次采样多一倍成本,换来「分得清是我改对了还是今天运气好」 |
这三件事里,第一件最容易被跳过,因为它直接增加成本;但它是唯一能让「提升」这个词变得有意义的前提。第三件最容易被忽略,因为它不产生好看的数字——而它恰恰是所有效果归因的地基。
反过来说,如果预算只够维持现在的 80 次采样,那么正确用法是:把它当体检,不当成绩单。体检报告说「你的 AI 可读性偏低、这几个维度失分」,这是有用的;说「你比上月提升 4%」,这是没有证据的。
九、四条用法建议
对采购方:
- 要求服务商提供同一口径的连续轮次,而不是两个孤立数字。最少 3 轮,能给出区间与离散度才算合格。
- 把「提升 X%」换成「与基线相比,差异是否超出抽样误差」。这一个问题就能把报告分层。
- 问清楚每轮采样数。低于 80 次的工具看不见 15.5 个点以内的变化,只能当温度计,不能当秤。
对服务方(包括我们自己):
- 把显著性检验写进产品,而不是写进话术。给不出 z 值或置信区间的「提升」,等于没有证据。
- 一次只改一个维度,并保留未改动的对照品牌。没有对照,就无法区分「我改对了」和「今天运气好」。
- 预期错了就写出来。本文第四节就是一次失败的假设——我们以为会看到模型漂移,数据说没有。把这次失败公开,比藏起来更省钱。
十、方法与边界
| 项目 | 说明 |
|---|---|
| 能说明 | 固定问题集与引擎时,单品牌提及率存在 12.6 个百分点的自然波动,且该波动可由每轮 80 次采样的二项随机性完全解释;单次读数不足以支撑「涨 / 跌」;80 次采样只能分辨 15.5 个点以上的差异 |
| 不能说明 | 不能外推到其他品牌(接近 0% 或 100% 的品牌有地板 / 天花板效应);不能代表其他引擎;不能预测长期趋势;本次也未观察到模型层面的额外漂移,但这不等于模型不会漂——只说明它小于本样本量能分辨的尺度 |
| 样本限制 | 仅 1 个品牌、2 个引擎、10 轮,分两个时段(10-24 上午 2 轮、10-25 夜间 8 轮),总跨度 37 小时;标准差估计本身仍有较宽区间 |
| 模型会变 | AI 厂商随时更新模型与检索策略,噪声底需要定期重测;本文数值只对本文时间窗口有效 |
我们把这套检验做进了接口:每次复测记录原始命中数与采样数,任意两次之间给出 z 值与结论(显著上升 / 显著下降 / 变动在抽样误差内 / 与上次一致)。我们宁可告诉你「这次看不出变化」,也不把一个抖动的数字包装成业绩。