25 行 Python 里的杰文斯悖论
Hacker News 上一则用二十几行 Python 演示杰文斯悖论的帖子拿到 652 分。它把“效率提升会不会推高总需求”这个争论压缩成几个可以动手改的数字。
Hacker News 的 Best 榜上,《Jev in 25 Lines of Python》这条帖子拿到 652 分、203 条评论。文章挂在 nobodywho.ai 域名下,标题里的 Jev 指杰文斯悖论(Jevons paradox),实现体量也写在标题里:二十几行 Python。
一个反直觉的老观察
1865 年,英国经济学家威廉·斯坦利·杰文斯在《煤炭问题》里写下一个观察:瓦特改良蒸汽机之后,单台机器烧的煤少了,全国煤炭消耗量却继续往上走。效率提升压低了单位工作的成本,更低的成本打开了此前不划算的用途,新增需求把省下来的那部分吃掉之后还多出不少。杰文斯真正关心的是英国作为工业国的长期能源位置,这个推论后来被反复借用到别处。
结论跟常识拧着来,所以每当能源价格或算力单价明显下降,它就会被重新抬出来。微观层面的版本有个专门名字,叫回弹效应。这两年讨论最多的是模型推理:单次调用成本持续下滑,用得起的场景随之变多,总消耗量未必同步下滑。这个问题现在还没有能服众的数字,只有各自举出的例子。
短代码本身是一种论证
把经济直觉写成能跑的脚本,比写成两千字评论更难被含糊糊弄过去。二十几行的规模做不了预测,它只放得下最少的几个部件:一个代表效率的参数,一个把单位成本换算成需求量的函数,一个循环累加出来的总量。参数一改,曲线的走向就摆在屏幕上。
这类演示的价值在于把分歧定位到具体位置。读者若不同意结论,可以直接指向某一行:需求弹性取 1.2 是不是偏高,成本到需求的传导是不是被简化成了一步。换成纯文字,“我不觉得便宜会带来那么多新需求”这种话没有落点,谁也说服不了谁。可执行的模型用可检验性换掉了覆盖面,代价写在明面上:现实里的弹性会随时间变化,硬件有上限,演示和真正有人付钱的产品之间隔着很远。
评论区吵的其实不是代码
652 分说明这条帖子被推得很靠前,203 条评论说明读者有话要讲。吵起来的重点通常落在这段代码被拿去支持什么判断。省下来的算力会不会被新场景吃回去,乐观的一侧拿更长的上下文、视频生成和跑上几小时的智能体做例子;另一侧有量化、小模型、缓存和端侧推理,都在把每个 token 的成本继续往下压。两边都能找到证据,最终起作用的那部分还没发生。
二十五行的脚本在这里充当一张示意图。它把“效率提高会刺激需求”这句话变成屏幕上几条能改的线,谁都可以调参数、看结果,然后决定信不信。现实会不会照着这张图走,脚本答不了。能拿来验证的,是往后几年的用电账单和推理请求量。