ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

只跑 20 条就说效果不错:评测样本量该取多少

2026/10/8 5:25:53 拓冰建站 浏览量
只跑 20 条就说效果不错:评测样本量该取多少 版权与内容来源声明本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容均在附表 A 中标注来源引用官方原文保持原样不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准标注「待验证」的部分请以你本地环境实际输出为判断依据。本文不推荐任何不合规的软件获取方式也不对任何收益结果作承诺。转载请注明出处。摘要2026 年 10 月模型与应用评测的结论几乎都挂在同一句话上——「跑了多少条」。本文把这句话变成一个能算的数同样 0.90 的答对比例20 条样本的 95% 区间半宽是 ±13.1%想把它压到 ±5%至少要 139 条。一、先分清这笔开销样本量是从精度倒推出来的样本量不是「越多越好」也不是「随手凑几十条」它是由你能接受的误差反向推出来的。最常见的误用长这样拿 20 条样本跑一遍全部答对于是结论写成「效果不错」等到上量答对比例掉到 0.75又开始怀疑模型退化。其实模型没变是这 20 条本身就说明不了任何事。要算样本量先定三个量要先定的量含义怎么定目标误差 e你能接受的偏差范围由业务定±5% 还是 ±10%差别就是样本量差 4 倍置信水平 1−α结论的把握度常用 0.95即 α 0.05预期答对比例 p评测前的先验判断没把握就取 0.5这是最保守的取法这三个量一定样本量就定死了。比例估计的常用公式是n (z / e)² × p × (1 − p)其中 z 是置信水平对应的分位数95% 对应 1.96。注意 p(1−p) 这一项它在 p 0.5 时取最大值 0.25在最常见的 0.90 附近只有 0.09。也就是说「答对比例越高需要的样本越少」——这是很多人凭直觉想不到的地方。1.1 为什么「全对」最容易骗人20 条全对答对比例的估计值是 1.00。但这个 1.00 的置信区间上界虽然顶到 1.000下界却可能落在 0.83 附近区间宽得像没测过。小样本给出的不是「一个分数」而是「一个很宽的区间」把一个区间当成一个点来下结论就是这类误判的根源。二、一个数决定一切95% 区间半宽样本量决定的是「区间有多宽」不是「分数有多高」。区间半宽就是上面公式里z × √(p(1−p)/n)这一项。它好用的地方在于它不依赖你的模型只依赖样本量和置信水平——换句话说它在你跑评测之前就能算出来用来决定「这一轮评测值不值得跑」。比例类指标的区间计算开源实现里有一份现成的参考。statsmodels的proportion_confint定义了这件事的标准做法Confidence interval for a binomial proportion它的参数里alpha默认 0.05也就是默认算 95% 区间method支持多种算法normal / agresti_coull / beta / wilson / jeffreys / binom_test默认是 normal也就是本文用的正态近似。文档里还有一句值得单独记住的提醒Beta, the Clopper-Pearson exact interval has coverage at least 1-alpha, but is in general conservative.翻成人话小样本下换更「严谨」的算法只会让区间更宽不会让它更窄。所以样本量不够这件事换算法解决不了只能加样本。 实测环境Python 3.13.12 / macOS / 仅标准库math在 p 0.90 的前提下把样本量从 10 加到 1000区间半宽的变化如下原样贴出样本量 n 95% 区间半宽 区间下界 区间上界 ----------------------------------------------- 10 18.6% 0.714 1.000 20 13.1% 0.769 1.000 50 8.3% 0.817 0.983 100 5.9% 0.841 0.959 200 4.2% 0.858 0.942 400 2.9% 0.871 0.929 1000 1.9% 0.881 0.919读这张表只需要看两行20 条时半宽是 ±13.1%意味着真实的答对比例在 0.77 到 1.00 之间都有可能到 400 条半宽才收到 ±2.9%。同样的模型、同样的提示词只是样本量不同能得出的结论强度差了将近 5 倍。三、三档精度对应三档样本量误差每减半样本量要翻两番。这就是为什么「多跑一点」和「跑够」是两件不同的事。 实测环境同上按 n (z/e)² × p(1−p) 反算目标 ±10% → 至少 35 条向上取整 35 条 目标 ±5% → 至少 138 条向上取整 139 条 目标 ±3% → 至少 384 条向上取整 385 条 目标 ±2% → 至少 864 条向上取整 865 条目标误差至少样本量适用场景代价±10%35 条快速摸方向只看「明显好/明显差」不能用来比较两个相近的方案±5%139 条日常版本对比、回归验收单轮成本中等通常是性价比最高的一档±3%385 条对外发布的评测结论成本约为 ±5% 那档的 2.8 倍±2%865 条需要写进报告、被第三方引用只有长期基线才值得这一档一档的差距就是「评测做没做够」的分界线。用 35 条去比较两个只差 3 个百分点的方案无论结果偏向谁都不构成证据。3.1 波动到底有多大把同一件事估 20 次公式给的是理论值实际跑起来会怎样用完全相同的真实答对比例0.90只改样本量各估 20 次n 20 最低 0.75 最高 1.00 极差 25.0% 理论半宽 ±13.1% n 100 最低 0.83 最高 0.95 极差 12.0% 理论半宽 ±5.9% n1000 最低 0.88 最高 0.92 极差 3.7% 理论半宽 ±1.9%n 20 时20 次实验的结果从 0.75 一路摆到 1.00极差 25 个百分点。也就是说如果你每天用 20 条样本做回归验收模型一次都没改你也会看到「今天掉了 10 个点」这种信号——它不是退化是噪声。3.2 为什么误差减半样本要翻四倍公式里 e 在分母上、而且被平方所以样本量随目标误差呈平方级增长。从 ±10% 到 ±5%误差减半样本量变成 4 倍35 → 139再从 ±5% 收到 ±2.5%还要在这基础上再乘 4。这就是为什么「把误差收窄一点点」的代价会越来越贵评测精度不是线性成本它有明显的边际递增。也正因为这条平方关系预算应该花在「把误差收到够用」上而不是追求绝对值最小。多数团队的合理停点在 ±5% 那一档——它足以把明显的版本差异区分开成本又还在可接受范围内再往下收多花的样本换来的只是更窄的区间而不是更明确的决策。本节的资料把评测口径、样本量与置信区间的材料整理成了一份核对清单另外也放了 LangChain LangGraph 的实战视频和一份大模型学习路线图。扫码即可获取四、用一段最小脚本跑通从 10 条到 1000 条 实测环境Python 3.13.12 / macOS / 仅标准库上面三张表都可以用这一小段复现。它不依赖任何第三方库改一个变量就能套到你自己的场景importrandomfrommathimportsqrt P0.90# 你预期的答对比例Z1.96# 95% 置信水平对应的分位数defhalf_width(n,pP,zZ):正态近似下比例估计的 95% 区间半宽。returnz*sqrt(p*(1-p)/n)print(f{样本量 n:9}{95% 区间半宽:14})fornin(10,20,50,100,200,400,1000):print(f{n:9}{half_width(n):13.1%})print()print(把半宽压到目标值至少要跑多少条)forein(0.10,0.05,0.03,0.02):n(Z/e)**2*P*(1-P)print(f 目标 ±{e:.0%}→ 至少{n:7.0f}条向上取整{int(n)1}条)脚本里用固定种子random.Random(42)跑随机模拟同一个种子在同一版本下会复现同一串结果By reusing a seed value, the same sequence should be reproducible from run to run as long as multiple threads are not running.这一点在评测里很关键你的评测脚本必须可复现否则「今天掉点了」这句话就无法区分是模型变了还是采样变了。固定种子、固定样本集、固定提示词——这三样都固定住指标波动才只剩模型本身这一个来源。本篇涉及的官方文档与示例把评测口径、区间估计与可复现性的材料整理进了资料包配合视频课看更顺。扫码即可获取五、按现象排障评测结论对不上时怎么办把上面的账收敛成一张按现象查的表。遇到「评测结论和体感对不上」先查样本量再怀疑模型。现象最可能的原因处置20 条全对上量后掉到 0.75 附近样本量不足区间宽到没意义按目标误差重算样本量先补到 139 条再做结论模型没改两轮指标差了 8 个点采样噪声小样本下属正常检查两轮样本集是否同一份用固定种子跑两个方案只差 3 个点无法判断样本量远小于分辨该差异所需按 ±3% 那档补到 385 条或承认差异不显著换了更严谨的区间算法结论没更结实算法只影响区间宽度不增加信息加样本而不是换算法评测脚本跑两次结果不同随机种子或样本集没固定固定种子与样本集把随机性锁死什么时候该停手先做一次「样本量是否够」的检查——把目标误差代进公式看需要的条数是不是已经在手头样本量的 3 倍以上。如果是这一轮评测就不该出结论先把样本补足写出来的判断也只是噪声。反过来如果你的结论只是「A 明显好于 B」而两者差了 20 个点那 35 条就够用了——样本量该配的是你要下的那个结论的精度不是越多越好。附表 A本文引用事实与出处对照表事实出处本文位置「Confidence interval for a binomial proportion」alpha默认 0.05method支持 normal / agresti_coull / beta / wilson / jeffreys / binom_test默认 normal《statsmodels.stats.proportion.proportion_confint》statsmodels 0.15.0 文档https://www.statsmodels.org/stable/generated/statsmodels.stats.proportion.proportion_confint.html第 2 章「Beta, the Clopper-Pearson exact interval has coverage at least 1-alpha, but is in general conservative.」同上Notes 节第 2 章区间在 normal / agresti_coull / wilson 三种方法下会被裁剪到 [0, 1] 区间内同上Notes 节第 2 章参考文献Brown, Cai, DasGupta (2001)《Interval Estimation for a Binomial Proportion》Statistical Science 16(2)同上References 节所引第 2 章「By reusing a seed value, the same sequence should be reproducible from run to run as long as multiple threads are not running.」《random — Generate pseudo-random numbers》Python 官方文档https://docs.python.org/3/library/random.html第 4 章random.Random(seed)为默认伪随机数生成器的类实现同上Alternative Generator 节第 4 章样本量 10~1000 对应的 95% 区间半宽目标误差 ±10%/±5%/±3%/±2% 所需样本量同比例下 20 次估计的极差本文实测脚本见第 4 章第 2、3 章表下口径本文的区间按正态近似计算与statsmodels的默认methodnormal一致示例中的答对比例是模拟值真实设定为 0.90只用来演示样本量对区间宽度的影响。真实评测请用你自己的样本数与 Wilson 区间重算两者在小样本下会有差异。写在最后这篇用到的资料写这篇文章时把评测口径、区间估计与可复现性的材料又翻了一遍顺手也整理了几份配套的东西大模型学习路线图从零基础到能自己动手做 Agent按阶段说明每一步该学什么、哪些可以先跳过《LangChain LangGraph MCP 智能体开发实战》视频课7 个模块从私有化部署、EmbeddingRAG 到 MCPAgent 全流程AI 大模型知识库在线可查Agent Skills 从入门到落地、Claude Skills 完全指南等专题按目录浏览即可640 套 AI 大模型行业报告 经典 PDF 书籍看行业落地案例和别人怎么做的时候用得上大模型零基础到精通教学视频跟着敲一遍比只读文档快得多资料是我自己整理的放在下面这个码上扫码即可获取添加时备注「AI」优先通过。资料按「先路线、再动手、最后查漏」的顺序整理好了建议先看学习路线那一份照着它挑一条适合自己当前基础的路径再往下看。