为什么不能拿豆包抽随机数

2026-09-11 · 9 min read · 3.4k words

Table Of Contents

  1. 1. 摘要
  2. 2. 引言
  3. 3. 方法
  4. 4. 结果
    1. 4.1. 独立请求:输出高度集中
    2. 4.2. 批量生成:边际均匀但存在周期结构
  5. 5. 讨论
  6. 6. 实际应用建议
  7. 7. 局限性
  8. 8. 结论

摘要

大型语言模型基于概率采样生成文本但这并不意味着其输出的数字服从均匀分布本研究以本地部署的 4-bit 量化模型 Gemma 4 E4B 为对象分别测试了两种生成方式一是逐次独立请求模型给出一个随机整数共 240 次二是要求模型一次性生成多个随机整数共 40 批合计收集 1,841 个有效数值实验覆盖三种数值区间0–91–101–100和两种提示语言英语中文

结果显示两种生成方式呈现出性质不同的问题在独立请求条件下模型的输出高度集中于少数几个数字英语 1–10 条件中数字 7 的出现比例达到 85%均匀分布下理论比例为 10%1–100 条件中数字 73 的出现比例为 28.3%理论比例为 1%所有条件下的输出分布均显著偏离均匀分布相反批量生成条件下的边际分布几乎完全均匀但序列内部存在明显的周期性重复十分类条件下相隔 10 项的自相关系数达到 0.6–0.77而连续重复的比例接近于零远低于随机采样理论上应有的水平因此边际分布均匀并不能作为随机性的证据本研究认为Gemma 4 E4B 在单次请求任务中表现为对"典型随机数"的语义选择在批量任务中表现为对序列结构的主动规划均不具备可靠的随机性不适合用于抽签分组模拟或其他要求随机性的场景

引言

模型基于概率采样生成 token这一过程本身并不保证输出的数字服从目标区间上的均匀分布温度核采样等参数控制的是 token 选择的方式而数字在训练语料中的分布本身就是不均匀的——例如"7"在涉及"随机数"的语境中出现的频率可能天然高于其他数字模型据此学到的是一种文本统计规律而非数学意义上的随机性

已有研究报告了类似现象有研究在多个模型和语言条件下发现1–10 区间内数字 7 普遍被过度选择且该偏好会随提示语言和采样温度发生变化另有研究比较了 ChatGPT 生成的数字序列与人类手动生成的序列发现前者的重复率异常偏低提示"刻意规避重复模式"本身也是一种偏差来源此外也有研究指出应当将批量生成和逐次独立请求区分开来测试因为这两种调用方式可能暴露不同的问题

本研究试图在本地参数可控的环境下同时考察这两种调用方式并进一步比较提示语言和数值区间对结果的影响

方法

测试对象为 4-bit 量化版本的 Gemma 4 E4B-itMLX 格式通过 LM Studio 在本地运行采样参数采用官方推荐配置temperature=1.0top_p=0.95top_k=64运行环境为 Apple Silicon Mac18GB 统一内存模型加载后占用约 6.4GB测试时间为 2026-09-11所有独立请求均在新对话中发起不携带此前的对话历史

实验设置了四个条件

条件 数值区间 提示语言
en_1_10 1–10 英语
zh_1_10 1–10 中文
en_0_9 0–9 英语
en_1_100 1–100 英语

每个条件包含两部分测试独立请求部分每个条件提问 60 次要求模型仅回复一个整数四组合计 240 次请求批量生成部分每个条件运行 10 批每批要求模型"生成 50 个独立均匀的整数以逗号分隔返回"受输出长度限制影响多数批次在生成 40 余项后被截断另有 5 批未产生有效输出分析仅使用各批次截断前的有效部分四个条件的批量有效样本量分别为 466459411265加上独立请求的 240 个合计 1,841 个数值进入分析

对独立请求数据使用卡方检验判断其是否偏离均匀分布并记录出现过的数字种类数众数及其出现频率相对于均匀期望的倍数对批量生成数据除边际分布检验外另计算立即重复率连续两项数值相同的比例与序列的自相关系数用于判断序列内部是否存在周期性结构在理想的独立均匀采样下十分类条件的立即重复率理论上应接近 10%各阶自相关系数应接近 0

结果

独立请求输出高度集中

条件 样本量 出现的数字种类数 众数出现次数 众数频率相对均匀期望的倍数 p 值
英语 1–10 60 5/10 751次 8.5倍 < 0.001
中文 1–10 60 6/10 746次 7.7倍 < 0.001
英语 0–9 60 5/10 723次 3.8倍 < 0.001
英语 1–100 60 11/100 7317次 28.3倍 < 0.001

英语 1–10 条件中60 次请求中有 51 次给出数字 7占比 85%其余出现过的数字仅有 5863124910 均未被选中中文提示下7 的占比降至 76.7%第二常见的数字为 5占 15%这一结果表明提示语言能够在一定程度上调节偏好强度但不能改变模型对"7 是典型随机数"这一倾向的选择

0–9 条件中模型仅在 75340 五个数字间选择未曾选取 126891–100 条件的偏差更为突出100 个可能取值中仅出现 11 种出现频率最高的数字由 7 变为 73出现次数是均匀期望的 28.3 倍这说明模型的偏好并非针对数字"7"本身而是对不同数值区间各自形成了一个"典型随机数"如 1–10 区间对应 71–100 区间对应 73

四个条件下模型输出偏离均匀分布的检验结果均达到统计显著水平

四种条件下独立请求与批量生成的边际分布

批量生成边际均匀但存在周期结构

条件 有效样本数 覆盖类别数 立即重复率 最大自相关系数滞后阶数
英语 1–10 466 10/10 0.22% 0.715滞后10
中文 1–10 459 10/10 0.00% 0.770滞后10
英语 0–9 411 10/10 0.00% 0.616滞后10
英语 1–100 265 88/100 0.00% 0.414滞后1

单从边际分布来看四个批量条件均未表现出对均匀分布的显著偏离各数字的出现频率相当接近理论水平但这一结果掩盖了序列内部的结构性问题真正的独立均匀采样下连续两项数值相同的概率理论上约为 10%而各条件的立即重复率均低于 0.22%接近于零

检视原始序列后发现模型倾向于先生成一个覆盖全部数字的排列4,10,5,2,8,3,9,6,1,7随后以该排列为基础重复仅做少量调整而非逐项独立采样中文条件下同样观察到这一模式某批次以 5,9,1,4,7,10,2,8,6,3 开头后续内容基本沿用该排列循环这也是三个十分类条件下相隔 10 项的自相关系数高达 0.6–0.77 的原因——序列大致每隔 10 项重复一次相同排列构成了明确的周期结构此外相邻数值相差为 1 的比例仅为 7.5%–8.7%低于随机序列理论上应有的 18%说明模型在生成过程中还主动规避了数值相邻的组合

综合来看批量生成条件下的边际均匀并非随机采样的结果而是模型对序列结构进行主动规划的产物

批量序列的 1–20 阶自相关

讨论

两种调用方式所反映的问题性质不同且差异远大于提示语言带来的影响独立请求条件下模型执行的更接近于一种语义补全任务——训练语料中大量文本将"7"与"随机"相关联模型据此形成了默认选择批量生成条件下任务实际上变为"生成一份看起来均匀且不重复的列表"模型清楚这类列表应具备的统计特征因此主动朝该方向调整输出结果反而引入了明显的周期规律

这一现象也说明仅依据单一协议下的评估结果可能得出片面甚至相反的结论若仅观察批量生成的边际分布会得出模型随机性表现良好的结论若仅观察独立请求的结果则会得出模型输出高度确定几乎不具备随机性的结论两种结论各自成立但都不完整——完整的评估需要同时考察两种调用方式并且需要同时检验边际分布与序列内部结构

本研究结果与已有文献报告的方向基本一致数字 7 在小区间内的主导地位区间扩大后典型数字发生变化提示语言可调节但无法消除偏好均与既有研究的观察相符批量生成中对重复的主动规避也与此前关于语言模型生成序列过度规整的研究结论相印证至于这种行为源于模型对"随机外观"文本模式的复现还是源于模型在当前上下文中主动追踪已输出数字并进行去重仅凭行为层面的观察结果难以区分本研究对此不作因果判断

实际应用建议

基于上述结果不建议将该模型用于抽签随机分组A/B 测试分配训练测试集划分随机模拟或密码学相关场景即使在风险较低的应用中批量生成中出现的周期结构一旦被引入下游计算如方差估计置换检验蒙特卡洛模拟也可能导致结果出现系统性偏差对于确实需要随机性的场景应使用操作系统提供的熵源或经过验证的伪随机数生成器并记录相应的种子与版本信息语言模型可用于编写调用相关代码或解释结果但不宜作为随机数来源本身

局限性

第一本研究仅测试了单一模型单一量化版本单一运行环境结论不能直接推广至其他模型或量化配置

第二每个独立请求条件仅有 60 个样本尤其对 1–100 这类区间而言样本量难以精确估计每个数值的出现概率但由于观察到的偏差幅度较大众数出现频率为均匀期望的 28.3 倍且仅覆盖 11 个类别这一结论受样本量限制的影响应当有限

第三批量生成部分受输出长度限制影响多数批次未能生成完整的 50 项另有 5 批完全未产生有效输出本研究仅使用了截断前的有效数据可能低估了序列后段的规律性各条件间的有效样本量也不完全一致因此协议间的比较更多依赖结构性指标而非单纯的样本量

第四多个请求为并发执行理论上应相互独立但底层的随机种子管理机制未经过公开验证无法完全排除并发请求之间存在关联的可能性

第五统计检验只能判断样本是否偏离某一原假设无法反过来证明未偏离即等同于真正的随机性即便某个序列通过了本研究采用的全部检验也不代表其可用于对随机性有密码学级别要求的场景

结论

本地部署的 Gemma 4 E4B 不能可靠地生成独立均匀的随机整数独立请求条件下模型的输出概率集中于少数"典型随机数"批量生成条件下模型生成的序列边际分布均匀但存在明显的周期性重复这两种表现共同指向同一个问题模型在执行的是语言模式的补全或规划任务而非可验证的目标分布采样

对语言模型随机性的评估至少应包括以下几点同时测试独立请求与批量请求两种协议同时检验边际分布与序列内部的依赖关系如实报告截断和失败样本明确记录采样参数配置不将"统计检验未显著"简单等同于"可以安全使用"对于确实需要随机性的应用应交由专门的随机数生成器完成而非依赖语言模型本身