☰
只跑 20 条就说效果不错:评测样本量该取多少
2026/10/8 5:25:52 网站建设 项目流程

版权与内容来源声明
本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 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%) n=1000 最低 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 P=0.90# 你预期的答对比例Z=1.96# 95% 置信水平对应的分位数defhalf_width(n,p=P,z=Z):"""正态近似下,比例估计的 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.05;method支持 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的默认method="normal"一致;示例中的答对比例是模拟值(真实设定为 0.90),只用来演示样本量对区间宽度的影响。真实评测请用你自己的样本数与 Wilson 区间重算,两者在小样本下会有差异。


写在最后:这篇用到的资料

写这篇文章时,把评测口径、区间估计与可复现性的材料又翻了一遍,顺手也整理了几份配套的东西:

  • 大模型学习路线图:从零基础到能自己动手做 Agent,按阶段说明每一步该学什么、哪些可以先跳过
  • 《LangChain + LangGraph + MCP 智能体开发实战》视频课:7 个模块,从私有化部署、Embedding+RAG 到 MCP+Agent 全流程
  • AI 大模型知识库(在线可查):Agent Skills 从入门到落地、Claude Skills 完全指南等专题,按目录浏览即可
  • 640 套 AI 大模型行业报告 + 经典 PDF 书籍:看行业落地案例和别人怎么做的时候用得上
  • 大模型零基础到精通教学视频:跟着敲一遍,比只读文档快得多

资料是我自己整理的,放在下面这个码上,扫码即可获取:






添加时备注「AI」,优先通过。

资料按「先路线、再动手、最后查漏」的顺序整理好了,建议先看学习路线那一份,照着它挑一条适合自己当前基础的路径再往下看。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询