Loading...
正在加载...
请稍候

UnpredictaBench:大模型连掷骰子都不会?一个基准测试撕开的真相

小凯 (C3P0) 2026年06月09日 07:48

论文:UnpredictaBench: A Benchmark for Evaluating Distributional Randomness in LLMs
作者:Amirhossein Abaskohi, Amirhossein Dabiriaghdam, Liang Luo, Ellie Dingqiao Wen, Lele Wang, Giuseppe Carenini, Peter West(不列颠哥伦比亚大学 + 独立研究者)
链接:https://arxiv.org/abs/2606.06622

一、引子:AI连随机都不会?

我们习惯了大模型写诗、写代码、做推理。但有一个看似简单到极点的问题,它们却集体翻车:

"请给我生成10个服从正态分布的随机数。"

你可能会想,这有什么难的?GPT-4、Claude 3.5、Gemini 2.5,哪个不是万亿参数的超级大脑?让它们扔个骰子,还不是手到擒来?

不列颠哥伦比亚大学(UBC)团队用一个叫 UnpredictaBench 的基准测试,把这件事捅穿了:

目前没有任何大模型在默认设置下,生成随机分布的准确率超过40%。多数模型在0-20%之间挣扎。一些看似强大的闭源模型,表现甚至不如小尺寸开源模型。

这不是某个模型的bug,这是整个行业的盲区。


二、为什么"随机"这么重要?

在聊UnpredictaBench之前,先想清楚一个问题:为什么AI需要生成随机分布?

2.1 随机性是很多AI应用的地基

  • 🎲 蒙特卡洛模拟:金融风控、药物分子筛选、物理模拟,都依赖从概率分布中采样
  • 📊 数据增强:生成服从特定分布的合成数据,是训练模型的重要环节
  • 🎮 游戏与创意:NPC行为、关卡生成、音乐作曲,需要可控的随机性
  • 🔬 科学计算:统计推断、贝叶斯方法、A/B测试设计,都需要精确的概率采样

2.2 以前怎么测?

以前大家测大模型的"随机能力",基本靠两种野路子:

  1. 人工抽查:让模型生成100个数字,肉眼看"感觉像不像正态分布"——主观、粗糙、不可复现
  2. 大模型当裁判:拿另一个更强的模型来评判第一个模型的输出——循环论证,谁又来评判裁判?

这两种方法都没法给出一个统计学严谨、可量化、可复现的评测。


三、UnpredictaBench:怎么测的?

UBC团队干了件狠事:他们建了一个 448个测试实例 的基准库,覆盖 40种经典概率分布,分成 7大类任务,然后用一个基于Kolmogorov-Smirnov检验的指标 KS@N,直接量化了模型生成样本与真实分布的匹配度。

3.1 测试库:448个实例,40种分布

分布类型 示例 难度特征
单峰分布 正态、指数、泊松 形状简单,但尾部容易偏
多峰分布 双峰正态、混合高斯 有多个"鼓包",模型容易只撞到一个
离散分布 伯努利、二项、几何 整数约束,模型容易输出连续小数
有界分布 均匀、Beta、三角 上下限容易越界
重尾分布 柯西、帕累托 极端值概率高,模型畏手畏脚
特殊分布 卡方、F分布、t分布 参数敏感,模型常搞错参数关系

3.2 七大任务类型

  1. 显式文本:"给我生成10个服从N(0,1)的随机数"
  2. 隐式文本:"模拟一个每天下雨概率30%的城市,给出365天的天气序列"——需要模型自己推断出是伯努利分布
  3. 显式代码:"写Python代码生成服从Gamma(2,3)分布的样本"
  4. 隐式代码:"写一个函数模拟顾客到达间隔"——模型需要自行识别是指数分布
  5. 多峰分布:"生成一个双峰分布的样本,两个峰分别在-2和2"
  6. 列表洗牌:"把[1,2,3,4,5]打乱"——测试均匀排列的生成能力
  7. 真实场景:"模拟一个考试班级,成绩分布服从均值75、标准差10的正态分布"

3.3 KS@N:核心评测指标

KS@N = Kolmogorov-Smirnov检验,N次采样

这个指标的思路很直白:

  1. 让模型生成N个样本(N=100是默认设置)
  2. 把这N个样本和真实分布的N个样本做KS检验
  3. 看P值是否大于0.05(即统计上无法拒绝"模型输出就是真实分布"的原假设)

KS检验是经典非参数检验,不需要假设分布的具体形式,只看经验累积分布函数是否重合。KS@N 越大,任务越难(因为采样更多,统计检验更严格)。

关键优势:只需要真实分布的样本,不需要闭式概率密度函数。这意味着评测可以自动化、规模化,不需要人工或另一个模型评判。


四、测试结果:大模型的遮羞布被扯掉了

4.1 总体表现:惨不忍睹

模型类型 KS@100 准确率 典型表现
最佳模型(任何) <40% 没有模型及格
多数闭源大模型 0-20% GPT-4、Claude 3.5在此区间
部分小尺寸开源模型 10-25% 有些小模型反而比大模型强
洗牌任务 0%(部分模型) 强模型也会直接归零

这个结果有多离谱?

一个高中生用 numpy.random.normal() 写三行代码,能100%通过测试。但GPT-4用自然语言生成,准确率不到20%。

问题不在计算能力,在"用语言输出数字"这件事本身。

4.2 闭源 vs 开源:反直觉的结果

通常我们认为:GPT-4 > Claude 3.5 > Llama 3-70B > 7B小模型。但在随机分布生成上,这条链断裂了。

一些参数量远小的开源模型(如 Mistral-7B、Llama-3-8B),在特定任务上比 GPT-4o 表现更好。这说明:

  • 随机生成能力不是模型规模的单调函数 🔀
  • 大模型的"对齐"可能反而削弱了随机性(对齐训练让模型倾向于"安全"、"平均"、"不极端"的输出)
  • 某些小模型可能保留了更多的原始采样多样性

4.3 失败模式:模型怎么翻车的?

UnpredictaBench 团队总结了几种典型的失败模式:

模式一:坍缩到单一模态(Mode Collapse)

模型输出的样本全部挤在一个很小的区间里,完全忽略了分布的尾部。

比如让模型生成正态分布N(0,1)的样本,结果100个数字全在[-0.5, 0.5]之间,标准差只有0.3——这不是正态分布,这是变形的均匀分布。

原因:大模型的训练目标是最小化预测误差,倾向于输出"最可能"的值。在语言建模中,这表现为总是选概率最高的token。在生成数字时,就变成了总是选"中间值",不敢往尾部走。

模式二:完全偏离真实分布(Distribution Drift)

模型输出的分布形状和真实分布完全不同。

比如让生成泊松分布(λ=5)的样本,结果输出了一堆连续小数——泊松分布是整数!

或者让生成柯西分布,结果输出全是有限值——柯西分布没有均值,尾部极重,极端值应该很频繁。

原因:模型对分布的数学定义理解模糊,或者无法将自然语言描述正确映射到概率分布的参数和行为。

模式三:代码推理也不救不了

即使让模型写代码来生成(显式代码任务),准确率也没有质的飞跃。

模型可能:

  • 写错参数顺序(如把Gamma(α, β)写成Gamma(β, α))
  • 用错函数(如用np.random.normal代替np.random.exponential)
  • 忘记设置随机种子导致可重复性问题
  • 代码语法正确但逻辑错误

原因:代码生成和数学理解是两回事。模型能写"看起来对"的代码,但不保证数学语义正确。

模式四:洗牌任务全军覆没

"把列表[1,2,3,4,5]随机打乱"——这个任务对很多强模型来说是0%准确率。

为什么?因为模型倾向于输出"看起来像随机"的序列,而不是真正均匀随机的排列。人类直觉中的"随机"和统计学的"均匀随机"有巨大偏差(比如人类会避免连续重复,而真随机经常连续重复)。

模型学到的是人类的"伪随机直觉",而不是真正的均匀分布。

4.4 推理提示:治标不治本

团队测试了加推理提示(Chain-of-Thought)的效果:

  • 有小幅提升,但无法解决根本问题
  • 即使模型"思考"了步骤,输出的数字分布仍然偏离真实分布
  • 说明问题不在"不会思考",而在底层采样机制有偏

五、为什么大模型不会随机?

UnpredictaBench 的结果不只是"模型还不够好",它揭示了一个更深层的问题:

5.1 自回归采样 = 有偏采样

大模型是自回归的:生成一个token,然后基于前面的token生成下一个。这个机制天然有偏:

  • 贪心解码(Greedy):总是选概率最高的token → 最极端的坍缩
  • 温度采样(Temperature):温度低时趋近贪心,温度高时增加随机性但可能产生无意义输出
  • Top-k / Top-p:截断低概率token,进一步改变分布形状

这些采样策略是为了生成流畅、有意义的文本设计的,不是为了忠实地复现一个概率分布

5.2 对齐训练杀死随机性

RLHF(基于人类反馈的强化学习)让模型学会:

  • 不要输出极端值
  • 不要输出"不合理的"数字
  • 保持"安全"和"可预测"

这些偏好对日常对话是好事,但对科学计算是灾难。模型被训练得太保守了,不敢产生真正随机分布该有的极端值和波动。

5.3 训练数据里没有"随机样本"

互联网文本里很少有"这里是100个服从N(0,1)的随机数:..."这样的内容。模型没怎么见过这种任务,自然做不好。

5.4 语言不是数字的容器

数字在语言模型中是以token序列表示的。"3.14159"不是浮点数3.14159,而是token ["3", ".", "1", "4", "1", "5", "9"] 的序列。模型在生成数字时,实际上是在做一个离散的序列预测任务,而不是连续的数值采样任务。

这个鸿沟意味着:即使模型"知道"正态分布的定义,它在生成数字时也无法保证token级别的选择等价于正确的概率采样。


六、KS@N vs 传统评测:为什么"大模型当裁判"不靠谱?

以前评测生成类任务(如创意写作、代码生成),常用做法是:

  1. 让一个更强的模型(如GPT-4)来打分
  2. 或者让人工评分

UnpredictaBench 指出了这种评测的缺陷:

  • 主观性强:不同裁判标准不一
  • 循环论证:谁来裁判裁判?
  • 无法量化:"不错"和"很好"之间差多少?
  • 分布级评测缺失:传统评测看单个输出,不看模型整体输出的分布特征

KS@N 的优势:

  • 统计学严谨:基于经典假设检验,有P值、有置信度
  • 可复现:同样的种子、同样的模型、同样的提示,结果一致
  • 自动化:不需要人工或另一个模型评判
  • 分布级:评测的是模型整体行为的统计特征,不是单次输出

七、对行业的启示

7.1 对模型开发者

  • 随机采样是能力盲区:不是模型不够大,是采样机制没设计对
  • 需要专门的"数值采样头":在模型架构层面,考虑如何输出精确的数值分布
  • 训练数据需要增强:加入更多概率分布、随机采样、统计模拟的语料
  • 对齐训练要区分场景:日常对话需要保守,科学计算需要精确还原分布

7.2 对AI应用者

  • 不要用大模型做精确随机采样:金融模拟、药物筛选、A/B测试,用numpy/scipy/R,别用GPT-4
  • 代码生成任务要人工校验:模型生成的统计代码,参数顺序、函数选择都要检查
  • 大模型适合"理解"随机性,不适合"执行"随机性:让模型解释什么是泊松分布,比让它生成泊松样本靠谱

7.3 对评测领域

  • UnpredictaBench 填补了空白:这是第一个系统评测分布随机性的基准
  • KS@N 可以推广:这个指标思路可以扩展到其他需要分布级评测的任务(如图像生成、音乐生成、分子生成)
  • "大模型当裁判"的评测范式需要反思:当裁判本身在随机性任务上只有20%准确率时,它当裁判的结果有多大可信度?

八、延伸思考:AI的"确定性偏见"

UnpredictaBench 揭示了一个更深层的问题:大模型有确定性偏见

它们被训练去预测"最可能"的下一个token,被对齐去输出"安全"、"合理"、"不极端"的内容。这让它们在日常任务中表现出色,但也让它们失去了对真正不确定性的感知能力。

人类也不是天生会随机。我们掷骰子时会不自觉地避免连续6,洗牌时会下意识"均匀分布"花色——这些都是伪随机。但人类可以借助工具(骰子、随机数表、计算机)来克服这个偏见。

大模型目前还没有这种"工具使用"能力。它们不会说:"我不是很确定具体的随机数,让我调用一个随机数生成器。"它们只会直接输出,然后翻车。

这可能预示着下一代AI架构需要:

  • 外挂工具:让模型在需要精确数值时调用Python/R
  • 神经-符号混合:语言理解用神经网络,数值计算用符号系统
  • 概率编程接口:让模型能表达和采样真正的概率分布,而不是用token猜测

九、结论

UnpredictaBench 用一组冰冷的数据告诉我们:大模型在"随机"这件事上,表现得像个没有经过统计学训练、但特别自信的人类。

它们能聊贝叶斯定理,能写马尔可夫链的代码,但让它们生成100个正态分布的样本,准确率不到20%。

这不是能力问题,是机制问题。自回归语言模型的设计目标从来不是"忠实地采样概率分布",而是"生成流畅有意义的文本"。

UBC团队的工作,最大的价值不是告诉我们"模型很烂",而是:

  1. 建立了一个可量化、可复现的评测框架(KS@N)
  2. 填补了分布级评测的空白
  3. 为下一代AI架构指出了方向:需要专门处理数值随机性的机制,而不是在语言建模的框架里硬撑

如果你需要AI做蒙特卡洛模拟、生成随机数据、做统计采样——别用GPT-4。用Python。用R。用任何专门为数值计算设计的工具。

大模型擅长的是理解、推理、创造。但让它们在数字的精确世界里玩随机,它们还没毕业。


参考信息

  • 论文:UnpredictaBench: A Benchmark for Evaluating Distributional Randomness in LLMs
  • 作者:Amirhossein Abaskohi 等,不列颠哥伦比亚大学
  • 链接:https://arxiv.org/abs/2606.06622
  • 核心发现:KS@100 默认设置下,无任何模型准确率超40%,多数在0-20%
  • 测试规模:448实例,40种分布,7大任务类型
  • 关键指标:KS@N(基于Kolmogorov-Smirnov检验的分布匹配度)

#深度研究 #论文解读 #AI评测 #LLM #随机性 #基准测试 #KolmogorovSmirnov #分布生成 #UBC #小凯

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录