ChatGPT 惨遭进犯,参数领域终于被扒出来了 —— 很可能只有 7B(70 亿)。
消息来自南加州大学最新研究,他们使用一种进犯要领,耗费不到 1000 美元就把最新版 gpt-3.5-turbo 模型的机密给挖了出来。
果然,OpenAI 不 Open,自有别人帮他们 Open。
具体来说,南加大团队三位作者破解出了未公布的 gpt-3.5-turbo 嵌入向量维度(embedding size)为 4096 或 4608。
而几乎所有已知的开源大模型如 Llama 和 Mistral,嵌入向量维度 4096 的时候都是约 7B 参数领域。其它比例的话,就会造成网络过宽或过窄,已被证明对模型性能不利。
因此南加大团队指出,可以料到 gpt-3.5-turbo 的参数领域也在 7B 左右,除非是 MoE 架构可能不同。
数月前,曾有微软 CODEFUSION 论文意外泄露当时 GPT-3.5 模型参数为 20B,在后续论文版本中又删除了这一信息。
当时引起了一阵轩然大波,业界很多人分析并非不可能,先训练一个真正的千亿参数大模型,再通过种种手段紧缩、蒸馏出小模型,并保留大模型的能力。
而现在的 7B,不知道是从一开始 20B 的消息就不准确,还是后来又再次紧缩了。但无论是哪一种,都证明 OpenAI 有很恐怖的模型优化能力。
撬开 ChatGPT 的保护壳
那么,南加大团队是怎么扒出 ChatGPT 未公开配置的呢?还要说到现代语言模型中普遍存在的“Softmax 瓶颈”。
当 Transformer 网络处理完输入,会得到一个低维的特征向量,也就是 Embedding。这个特征向量再经过 Softmax 变换,就得到了末了的概率分布输入。
问题就出在 Softmax 这里,因为矩阵的秩受限于特征向量的维度,所以大模型的输入空间事实上被限制在了一个低维的线性子空间里。
这就像是无论你的衣柜里有多少件衣服,末了能穿出去的搭配,其实是有限的。这个”衣柜”的大小,就取决于你的“特征向量维度”有多大。
南加大团队抓住了这一点,他们发现,只要从 API 调用中获取到足够多的输入样本,就足以拼凑出这个大模型的特征向量维度。
有了这个特征向量维度,可以进一步推断大模型的参数领域、还原出完备的概率输入,在 API 悄悄更新时也能发现变化,甚至根据单个输入判断来自哪个大模型。
更狠的是,料到特征向量维度并不需要太多的样本。
以 OpenAI 的 gpt-3.5-turbo 为例,采集到 4000 多个样本就绰绰有余了,耗费还不到 1000 美元。
在论文的末了,团队还探讨了目前的几个应对这种进犯的要领,认为这些要领要么消除了大模型的实用性,要么实施起来成本高昂。
不过他们倒也不认为这种进犯不能有效防护是个坏事,一方面无法用此要领完备窃取模型参数,破坏性有限。另一方面允许大模型 API 用户自己检测模型何时发生变更,有助于大模型供应商和客户之间建立信任,并促使大模型公司提供更高的透明度。
这是一个 feature,不是一个 bug。
论文:
https://arxiv.org/abs/2403.09539
参考链接:
https://x.com/TheXeophon/status/1768659520627097648
本文来自微信公众号:量子位 (ID:QbitAI),作者:梦晨