谁都没有想到,ChatGPT的核心秘密是由这种方式,被微软透露出来的。
距ChatGPT发布已经快一年了,但OpenAI一直未透露ChatGPT的技术细节。由于其强大的模型性能,人们对ChatGPT的参数量、训练数据等信息抱有诸多疑问和猜测。
作为行业一直以来的标杆,ChatGPT性能强大,可以解决各种各样的问题。它的前身GPT-3参数量就达到了1750亿,实用化以后的大模型居然被OpenAI瘦身了快9倍,这合理吗?
「如何看待这篇论文」的话题立刻冲上了知乎热榜。
具体来说,微软这篇论文提出了一种预训练的扩散代码生成模型——CodeFusion。CodeFusion的参数量是75M。在实验比较部分,论文的表1将ChatGPT的参数量明确标成了20B。
众所周知,微软和OpenAI是合作已久的一对伙伴,并且这是一篇EMNLP2023论文,因此大家推测这个数据很有可能是真实的。
然而,关于ChatGPT参数量的猜测,人们一直认为是一个庞大的数字,毕竟GPT-3的参数量就已经达到了175B(1750亿)。掀起大型语言模型(LLM)浪潮的ChatGPT,难道就只有20B参数?
大家怎么看?
这个数据被扒出来之后,在知乎和Twitter已经引起了广泛讨论。毕竟,200亿参数达到这样的效果十分惊人。再则,国内追赶出的大模型动则就是数百亿、上千亿。
那么这个数据保不保真?大家都有什么看法呢?
NLP知名博主、新浪微博新技术研发负责人张俊林「盲猜」分析了一波,引起了大家广泛赞同:
可能性一:OpenAI已经看到Chinchilla的论文,模型是按照龙猫法则做的,我们假设ChatGPT的训练数据量不低于2.5Ttoken数量(为啥这样后面分析),那么按照龙猫法则倒推,一般训练数据量除以20就应该是最优参数量。于是我们可以推出:这种情况ChatGPT模型的大小约在120B左右。
可能性二:OpenAI在做ChatGPT的时候还没看到Chinchilla的论文,于是仍然按照OpenAI自己推导的Scalinglaw来设计训练数据量和模型大小,推算起来训练数据量除以12.5左右对应模型最优参数,他们自己的Scalinglaw更倾向把模型推大。假设训练数据量是2.5T左右,那么这种情况ChatGPT的模型大小应该在190到200B左右。
大概率第一个版本ChatGPT推出的时候在200B左右,所以刚出来的时候大家还是觉得速度慢,价格也高。3月份OpenAI做过一次大升级,价格降低为原先的十分之一。如果仅仅靠量化是不太可能压缩这么猛的,目前的结论是大模型量化压缩到4到6bit模型效果是能保持住不怎么下降的。
所以很可能OpenAI这次升级从自己的Scalinglaw升级到了Chinchilla的Scalinglaw,这样模型大小就压缩了120B左右,接近一半(也有可能远小于120B,如果按照chinchillalaw,llama2最大的模型应该是100B左右,此时算力分配最优,也就是说成本收益最合算。但是实际最大的llama2模型才70B,而且更小的模型比如7B模型也用超大数据集。
llama165B基本是符合chinchillalaw的,llama2最大模型已经打破chinchillalaw开始怼数据了。就是说目前大家做大模型的趋势是尽管不是算力分配最优,但是都倾向于增加数据减小模型规模,这样尽管训练成本不合算,但是推理合算,而训练毕竟是一次性的,推理则并发高次数多,所以这么配置很明显总体是更合算的),再加上比如4bit量化,这样推理模型的大小可以压缩4倍,速度大约可提升8倍左右,如果是采取继续增加训练数据减小模型规模,再加上其它技术优化是完全有可能把推理价格打到十分之一的。
后续在6月份和8月份各自又价格下调了25%,最终可能通过反复加数据减小规模逐渐把模型压缩到20B左右。
这里解释下为何ChatGPT的训练数据量不太可能比2.5T低,LLaMA2的训练数据量是2T,效果应该稍弱于ChatGPT,所以这里假设最少2.5T的训练数据。目前研究结论是当模型规模固定住,只要持续增加训练数据量,模型效果就会直接增长,mistral7B效果炸裂,归根结底是训练数据量达到了8个T,所以导致基础模型效果特别强。以ChatGPT的效果来说,它使用的数据量不太可能低于2.5T。
当然,还有另外一种可能,就是ChatGPT在后期优化(比如第一次大升级或者后续的升级中,开始版本不太可能走的这条路)的时候也不管scalinglaw了,走的是类似mistral的路线,就是模型大小固定在20B,疯狂增加训练数据,如果又构造出合适的instruct数据,效果也可能有保障。
不论怎么讲,对于6B到13B左右比较适合应用落地的模型,强烈呼吁中文开源模型模仿mistral,固定住一个最适合使用的模型大小,然后疯狂增加训练数据,再加上好的instruct策略,是有可能作出小规模效果体验足够好的模型的。我个人认为对于开源模型来说,7B-13B左右大小的模型应该是兵家必争之地。有心气做开源的可以再努把力,把训练数据往上再努力怼一怼。
而国内外许多网友也都认为,200亿的参数,是完全合理的。
也有知乎网友从价格上分析,这个数据也应该是对的。
当然,也有网友认为这可能是个「拼写错误」,或许实际是120B(1200亿),至少120B和GPT-3(175B)是一个数量级。
但所有这些都是猜测,由于OpenAI对参数量、训练数据、方法等核心信息一直讳莫如深,因此20B这个数据到底是不是真的根本无法求证。如果是真的,那么大型语言模型未来的改进方向还会是增加参数量吗?
再过几天,就是OpenAI的开发者大会了,也许我们能够了解到更多有用的信息,让我们拭目以待吧。