OpenAI 近期公开的一批数学论文中,一份名为 “main.pdf” 的文件声称给出更快的傅里叶变换。该话题在 Hacker News 上受到关注。科技博客 argmin 对其技术细节进行梳理后指出,这项结果更准确地说是渐近复杂度上的表述改进:如果把隐藏常数考虑进去,它在可想象的计算规模内并不比已有 FFT 更快。
FFT 为何关键
傅里叶变换用于把一段信号拆解成不同频率成分,是分析、过滤和处理信号的基础工具。对于长度为 n 的数字信号,只需要在 2π/n 的整数倍频率上计算 n 个点积,就能覆盖全部频率内容。如果逐个频率直接计算,每个频率需要 n 次乘加,整体算术操作量约为 n^2。
1965 年,James Cooley 和 John Tukey 提出快速傅里叶变换,也就是后来广为人知的 FFT。其思路是对输入向量重新排列,递归计算两个长度为 n/2 的变换,再做线性规模的重组。经过约 log2(n) 次迭代,长度 n 的傅里叶变换可以在少于 5 n log2 n 次算术操作内完成。
- 当 n 为 1,000 时,n^2 为 1,000,000,而 5 n log n 约为 50,000,速度提升约 20 倍。
- 当 n 为 1,000,000 时,速度提升达到 10,000 倍。
在信号处理任务中,这种差距常常决定一个变换是否可在实际约束内完成。也正因如此,FFT 之后,研究者一直寻找进一步降低计算量的方法。一个自然问题是:输出本身至少有 n 个数值,因此至少需要 n 量级的操作;而标准 FFT 相比这个下限还多出 5*log2(n) 的因子。当 n 达到一万亿时,这个因子约为 200。
OpenAI 的“更快”主张
argmin 的文章提到,OpenAI 上周向数学界批量公开了大量论文,其中 “main.pdf” 声称提出更快的傅里叶变换。作者关注到,该结果中的 log(n) 项在理论上比标准 FFT 略小。
不过,作者并未直接通读论文,而是借助聊天机器人界面做信息检索,提取其中的关键结论。最终,他没有找到一种能够在实际意义上更快计算傅里叶变换的算法。文章认为,这更像是一种形式主义脱离现实后产生的结果:当数学表述没有清楚说明规则和约束时,所谓“突破”可能只是定义和记号带来的假象。
大 O 记号与隐藏常数
争议的核心在大 O 记号。按定义,若算法运行时间 T(n)=O(F(n)),意味着存在整数 N 和常数 C,使得当 n 足够大时,实际步数不超过 C 乘以 F(n)。它关注的是大规模输入下的渐近增长速度,而把常数因子放在一边。
这种写法方便算法比较,但也容易让人忽略实际成本。文章举例:O(n) 并不等于 50n,它也可能对应 10^80 n;一个需要 n + 10^80 步的算法,在大 O 意义上仍可称为线性时间;一个只有在 n 大于 10^80 后才满足线性上界的算法,同样可以被写进“线性时间”的框架。10^80 大约接近已知宇宙中的原子数量。Richard Lipton 和 Ken Regan 将这类隐藏常数大到难以想象的算法称为 “galactic algorithms”。
在 argmin 看来,OpenAI 提出的 FFT 算法正属于这种情况。文章给出的估计是:当 N=10^12 时,常数 C 达到 10^100。按这种量级计算,即使 n=10^100,经典 Cooley-Tukey-Gauss FFT 仍会快 10^99 倍。
换句话说,从大 O 的角度看,新算法的渐近项确实可能比 Cooley-Tukey 算法略小;但由于常数过大,它只有在输入规模大到无法实际出现时才可能反超。对于现实中的信号处理、科学计算或机器学习系统,这种“更快”难以直接使用。
对算法评估和 AI 数学发布的影响
这次讨论并非简单否定一个新结果。文章提到,Lipton 和 Regan 认为,这类隐藏常数极大的算法仍有研究意义:一旦某种渐近运行时间被证明可达,后续工作可以寻找更实际的实现。
但它也提醒,大模型时代批量出现的数学和算法内容,需要更严格地区分“理论可达”和“工程可用”。大 O 记号描述增长趋势,却不能替代对常数、阈值和真实输入规模的分析。
对工程读者来说,判断一个“更快算法”是否值得跟进,至少要看三件事:隐藏常数是否明确,N 的阈值是否现实,以及目标规模下是否已经比成熟算法更快。OpenAI 这次引发的争论,把这个问题再次放到了台面上。
原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/dang-openai-sheng-cheng-zuo-chu-geng-kuai-fu-li-ye-bian