ChatGPT 这种所谓的“随机选择”其实根本不随机
我刚才在看一个很有意思的实验数据,发现大模型在处理“随机性”这件事上,表现得简直像个有偏见的预设程序。
我在做一些需要 Agent 执行随机任务的工作流时,也遇到过类似的问题。比如让 AI 随机抽签或者生成随机 ID,它给出的结果往往具有很强的规律性。如果你的业务逻辑依赖这种“伪随机”,那后期出问题的概率非常大。
下一篇
大模型评估这块水太深了,如果不搞清楚评价指标到底在测什么 →
有人做了一个压力测试,给 GPT 扔了一个水果列表:[mango, apple, banana, pomegranate, strawberry, orange, watermelon, grape, pineapple, lychee],然后让它从里面随机选一个。这个测试跑了足足 6000 次,而且他还用了三种语言(英语、波兰语、日语)去做对比,结果非常离谱。
按照逻辑,如果模型真的能实现概率上的随机,那么这 10 种水果的出现频率应该接近。但实际测出来的结果是:在固定的语言环境下,模型竟然只在 4 种水果里反复横跳。即便他后来把水果列表的顺序打乱,再跑 6000 次,结果也仅仅是好了一点点,覆盖到的水果种类依然极低。
这说明了什么?这直接戳破了很多人对 LLM 逻辑推理能力的幻觉。
- 语言偏见: 换一种语言问,模型选出来的结果分布会发生剧烈偏移。这意味着模型并不是在“思考”如何随机,而是在根据不同语言的 Token 概率分布进行某种“惯性输出”。
- 概率坍缩: 所谓的随机采样,在 LLM 的推理过程中极易陷入某种局部最优解。它并不是在每一个 Token 层面都做真正的随机,而是被训练数据里的某种模式给锁死了。
- 指令遵循的假象: 你以为你给了它一个“随机”的指令,但实际上它只是在模拟一种“看起来很随机”的语感。
我在做一些需要 Agent 执行随机任务的工作流时,也遇到过类似的问题。比如让 AI 随机抽签或者生成随机 ID,它给出的结果往往具有很强的规律性。如果你的业务逻辑依赖这种“伪随机”,那后期出问题的概率非常大。
对于想要深入研究模型概率分布或者做模型评测的朋友,这个案例非常有参考价值。
实验方法参考:
https://github.com/kwiecien-rafal/llmango 免费 AI 工具箱 · 全部完全免费