近日,南加州大学的研究团队爆出一项重磅消息:他们通过一种攻击方法,成功破解了 OpenAI 最新版 ChatGPT 模型(gpt-3.5-turbo)的参数规模,结果发现其参数规模可能只有 70 亿,而非此前传闻的数百亿甚至上千亿。
攻破 OpenAI 的“秘密”
南加大团队利用了一种名为“Softmax 瓶颈”的攻击方法,该方法能够从 ChatGPT 的 API 调用中获取足够多的输出样本,进而推断出模型的特征向量维度。根据已知信息,4096 或 4608 的嵌入向量维度对应约 70 亿的参数规模。
几乎所有已知的开源大模型如Llama和Mistral,嵌入向量维度4096的时候都是约7B参数规模。
其它比例的话就会造成网络过宽或过窄,已被证明对模型性能不利。
因此南加大团队指出,可以推测gpt-3.5-turbo的参数规模也在7B左右,除非是MoE架构可能不同。
其实在数月前,曾有微软CODEFUSION论文意外泄露当时GPT-3.5模型参数为20B,在后续论文版本中又删除了这一信息。
真相究竟如何?
这一发现与之前流传的 200 亿甚至 1750 亿参数规模的传闻相差甚远,不禁引发了人们的猜测:
- 最初的 200 亿参数数据是否来自误传?
- OpenAI 之后又对模型进行了压缩?
- OpenAI 一直在刻意隐藏 ChatGPT 的真实参数规模?
无论真相如何,这都表明 OpenAI 在模型优化方面拥有着强大的技术实力。
那么,南加大团队是怎么扒出ChatGPT未公开配置的呢?
还要说到现代语言模型中普遍存在的”Softmax瓶颈”。
当Transformer网络处理完输入,会得到一个低维的特征向量,也就是Embedding。这个特征向量再经过Softmax变换,就得到了最后的概率分布输出。
问题就出在Softmax这里,因为矩阵的秩最多只能等于特征向量的维度,所以大模型的输出空间事实上被限制在了一个低维的线性子空间里。
这就像是无论你的衣柜里有多少件衣服,最后能穿出去的搭配,其实是有限的。这个”衣柜”的大小,就取决于你的”特征向量维度”有多大。
南加大团队抓住了这一点,他们发现,只要从API调用中获取到足够多的输出样本,就足以拼凑出这个大模型的”特征向量维度”。
有了这个特征向量维度,可以进一步推断大模型的参数规模、还原出完整的概率输出,在API悄悄更新时也能发现变化,甚至根据输出判断来自哪个大模型。
更狠的是,推测特征向量维度并不需要太多的样本。
以OpenAI的gpt-3.5-turbo为例,采集到4000多个样本就绰绰有余了,花费还不到1000美元。
攻击的意义
南加大团队认为,这种攻击方法并不能完全窃取模型参数,因此破坏性有限。同时,它也允许大模型 API 用户检测模型变更,建立信任,并促使大模型公司提供更高的透明度。
总而言之,这并非一个漏洞,而是一个促进大模型发展良性的契机。
未来展望
OpenAI 尚未对此事做出回应,未来他们会如何应对这种攻击,以及是否会公开 ChatGPT 的真实参数规模,都值得我们拭目以待。
附加信息
- 南加大团队论文:https://arxiv.org/abs/2403.09539
- 关于 Softmax 瓶颈: https://en.wikipedia.org/wiki/Softmax_function
- 参考链接:https://x.com/TheXeophon/status/1768659520627097648
总结
ChatGPT 参数规模之谜被揭开,引发了业界对大模型参数规模和透明度的关注。未来,大模型的发展将更加注重安全性、可靠性和透明性。