GPT 猜测 1 到 100 之间的数字
摘要
本文介绍了一项实验,要求 GPT-4.1 在 1 到 100 之间随机选择一个数字,重复 10,000 次,然后分析结果分布与均匀基线相比是否存在偏差。
查看缓存全文
缓存时间: 2026/05/25 12:46
exmergo/research-chatgpt-guesses-between-1-and-100 来源:https://github.com/exmergo/research-chatgpt-guesses-between-1-and-100
GPT 猜 1 到 100 之间的数字
人类的一个有趣特点是他们不擅长生成随机数。如果你让一个人“在 1 到 100 之间随便选一个数字”,他们的选择出奇地可预测。答案集中在 37 和 73,集中在“不整齐”的数字,以及像 42 和 69 这样的梗上,而整数则被悄然避开。真正的随机生成器会产生平坦的、均匀的分布。
本项目向 gpt-4.1 问了同样的问题 10,000 次,并刻画了它产生的分布,与均匀基线进行比较。一个在人类文本上训练的 LLM,会像一个公平的骰子一样行为,还是会继承人类那种不均匀的模式?
完整设计和方法论:docs/LLM Random Bias Experiment SDD.md。
灵感
本实验是以 LLM 为焦点的后续研究,基于两个著名的人类选数偏差探索。
- r/dataisbeautiful —— “我问了 100 个人,让他们在 1 到 100 之间选一个数字”
- Veritasium —— 为什么这个数字无处不在?(https://www.youtube.com/watch?v=d6iQrh2TK98)
方法论
完整的实验设计在 SDD 中;要点如下:
- 模型。
gpt-4.1(OpenAI),通过 Responses API 调用。它是一个非推理模型。它直接给出答案,而不是深思熟虑;我们测量的是它的原始输出分布,而不是推理策略。确切的模型字符串记录在每个原始 CSV 行(Model列)和data/raw/run_metadata.json中,因此数据集是自描述的。 - 样本量。 N = 10,000 次独立调用——足够进行卡方拟合优度检验,并且每个数字的比例稳定在约 ±0.5 个百分点。
- 采样。
temperature = 1.0,因此模型使用其完整的采样分布。这就是实验:在低温度下,它只会重复一个数字。 - 提示。 一个固定的系统提示指示模型仅输出一个介于 1 和 100 之间的整数;用户提示请求数字并携带一个唯一的
uuid4。(UUID 是请求追踪的卫生措施,不是缓存破坏——在 temperature = 1.0 时,每次调用都应该独立采样。) - 基线。 结果与均匀分布进行比较——即公平生成器会产生的分布——而不是与人类数据进行比较(见假设)。
- 流水线。 四个阶段——
收集 → 清洗 → 转换 → 统计,详见下文。清洗阶段验证每个答案是否是在 [1, 100] 范围内的整数,并报告拒绝率。
假设与局限性
这是一个说明性探测,而非确定性研究。关键注意事项——详见 SDD 的局限性部分的正式处理:
- 单一模型。 结果仅描述
gpt-4.1,不推广到其他模型或提供商。 - “随机性”是采样产物。 模型不是随机数生成器;它从学到的 token 分布中采样。我们刻画那个分布——我们并不声称模型试图随机。
- 依赖提示和温度。 不同的提示措辞或采样温度可能会改变分布。两者都已固定并记录。
- 不是“ChatGPT 产品”。 这是通过 API 在固定温度下测试模型——而不是面向消费者的 ChatGPT 应用,后者会添加路由、工具和超出我们控制的系统提示。
结果
gpt-4.1 显然不是均匀随机生成器。 卡方拟合优度检验(N = 10,000,df = 99)结果为 χ² = 15,604, p ≈ 0——偏差如此之大,以至于任何显著性阈值都下溢。当被要求给出一个随机数时,模型产生了一个不均匀的、明显具有人类形状的分布。
它重现了经典的人类尖峰
| 数字 | 被选中的概率 vs. 均匀机会 | 人类声誉 |
|---|---|---|
| 37 | 4.0× | “最随机的数字” |
| 42 | 4.0× | 银河系漫游指南梗 |
| 73 | 3.4× | 另一个著名的尖峰 |
总体被选中次数最多的五个数字——47, 57, 72, 37, 42——强烈偏向以 7 结尾的数字(五个中有三个),与人类“感觉随机”的数字选择相同。
它回避整数的程度甚至比人类更厉害
所有 10 的倍数,除了 10 本身,在 10,000 次调用中恰好被选中了 0 次。 10 恰好被选中了一次。人类回避整数——gpt-4.1 基本上拒绝了它们。
例外:69
有一个数字打破了人类模式。69 是人类过度选择的梗数字。gpt-4.1 选择不足(0.29× 预期:约 29 次出现,而预期约 100 次)。模型继承了“聪明”的梗(42),而不是粗俗的那个。我们的假设是,这是预训练和后训练中安全护栏的产物。这是数据集中最有趣的方面:模型的偏差并非人类偏差的原始复制,而是经过调节的版本。
结论
假设成立。一个在人类文本上训练的 LLM,被要求表现随机,会重现人类随机数选择的偏差:对 37 和 73 的偏好、42 的梗尖峰、对整数的回避——只有一个可能因护栏而异的例外。交互式分布图(https://viz.exmergo.com/share/eea2a7b6-82d4-4333-8853-e909d9dabd49)显示了 1–100 的完整形状。
所有数字均来自 data/processed/stats_summary.csv。
流水线
收集 → 清洗 → 转换 → 统计。每个阶段读取前一阶段已提交的 CSV,因此任何阶段都可以单独重新运行。
| 阶段 | 模块 | 输出 |
|---|---|---|
| 收集 | llm_random_bias.collect | data/raw/chatgpt_random_results.csv |
| 清洗 | llm_random_bias.clean | data/processed/chatgpt_random_clean.csv |
| 转换 | llm_random_bias.transform | data/processed/distribution.csv |
| 统计 | llm_random_bias.stats | data/processed/stats_summary.csv |
设置
本项目使用 uv(https://docs.astral.sh/uv/)处理一切。
uv sync
路径 1——仅分析(免费,无需 API 密钥)
原始数据集已提交到本仓库,因此您可以分文不花地重现整个分析:
uv run python -m llm_random_bias.clean
uv run python -m llm_random_bias.transform
uv run python -m llm_random_bias.stats
路径 2——重新收集数据(需要 OpenAI API 密钥)
cp .env.example .env
# 然后编辑 .env 并添加你的 OPENAI_API_KEY
uv run python -m llm_random_bias.collect
# 然后按照路径 1 运行 clean / transform / stats
费用与运行时间: 大约 10,000 次对 gpt-4.1 的短调用花费约 2 美元,并且在默认并发下几分钟内完成。收集器拒绝覆盖现有的原始 CSV——请先删除它以重新收集。
可视化
分布柱状图是使用 Exmergo Viz(我们的人工智能仪表板代理)直接从 data/processed/distribution.csv 构建的。完整的交互式数据可视化可以在这里查看(https://viz.exmergo.com/share/eea2a7b6-82d4-4333-8853-e909d9dabd49)。
开发
uv run ruff check .
uv run ruff format .
uv run mypy src
uv run pytest
参见 CONTRIBUTING.md。
许可
MIT 许可证——参见 LICENSE。
相似文章
GPTs are GPTs: 大语言模型对劳动力市场影响的早期观察
OpenAI的研究评估了GPT模型对劳动力市场的潜在影响,发现美国约80%的劳动者至少有10%的工作任务可能受到影响,其中高收入工作面临更大的风险。该研究将GPT定位为具有重大经济和社会意义的通用技术。
GPT-2: 1.5B 版本发布
OpenAI 发布了 GPT-2 1.5B 参数模型,附带了人类对可信度感知的分析、通过在极端意识形态微调进行滥用的潜在风险,以及检测合成文本的挑战。检测模型达到约 95% 的准确率,但在实际部署中需要配套方法。
在 SWEBench Pro 上,GPT 5.5 的失败中有 68.5% 是由损坏或错误的测试用例引起的,占整个基准测试的 28.9%
分析显示,GPT 5.5 在 SWEBench Pro 上的失败中有 28.9% 是由于损坏或错误的测试用例所致,类似问题也影响了其他主要 AI 基准测试,引发了对当前评估方法准确性的担忧。
GPT-4
OpenAI 发布 GPT-4,一个大型多模态模型,接受图像和文本输入,在专业和学术基准测试中表现出人类水平的性能,在各种评估指标上的表现明显优于 GPT-3.5。
基于人类偏好微调GPT-2
OpenAI展示了使用人类偏好反馈对GPT-2(774M参数)进行微调,用于文本续写和摘要任务,风格任务需要5000个标签,摘要任务需要60000个标签,模型达到了86-88%的人类偏好率,但揭示了标注者启发式利用的问题。