背景
微软在上周四放出来一篇论文,CODEFUSION: A Pre-trained Diffusion Model for Code Generation。论文本身没什么说的,就是用预训练扩散模型做代码生成。但是真正令人注意的是这篇论文的实验部分。
作者在实验中与多种大模型进行了比较,其中就有ChatGPT3.5。这里作者给出了模型所对应的参数量,非常炸裂的是:
gpt3.5所对应的参数量只有20B!!!
真实性?
从论文本身来说,GPT-3是175B大小的模型,而比3效果要好的3.5却只有1/9的参数量,之前很多人都认为GPT-3.5的参数量应该在100B以上,但现在放出来的论文却说参数只有20B,可信性又如何?
众所周知的是,gpt-3.5-turbo是经过优化加速后的版本,和text-davinci-003相比,其接口调用价格为1/10,如果3.5的参数量只有20B,那么他的调用成本倒是符合这个价格。
从调用速度来说,3.5现今的调用速度要远快于去年原始版本的3.5,但是性能也有肉眼可见的下降,如果新的3.5大幅度消减了参数的话就也说的过去了。
潜在的技术路线?
那么为什么只需要20B的参数的3.5,在性能上就可以超过很多参数量比它大得多的开源大模型呢?由于openai并没没有真实公布过技术路线,因此这里只能进行猜想。
首先,常用的模型压缩技术就是稀疏、量化、蒸馏。但是单凭量化很难在保持性能的前提下把模型直接压缩10倍,因此,我推测3.5应该是以蒸馏为主,稀疏量化蒸馏都用上了。
当然,有人可能怀疑通过蒸馏能否让模型保证现在的水准。大概传统小模型的蒸馏和千亿级别的模型蒸馏到百亿级别的模型是两个概念,毕竟很多DL技术在模型规模超级加大的时候都出现了一些新的特性。
说明的东西
-
目前很多研究发现当模型规模固定住,只要持续增加训练数据量,模型效果就会直接增长,mistral 7B效果炸裂,归根结底是训练数据量达到了8个T,所以导致基础模型效果特别强。而openai的GPT3.5虽然只有20B,但是其训练数据定然是在起码2.5T以上的高质量数据。
-
模型参数的scale law可能会需要改变,狂堆参数不一定能够单调有效,高质量的训练集数据的重要性越来越大。
-
Llama 2,23B模型,2个4090,每张卡只用18g的容量即可进行训练推理,这样的话,
gpt-3.5-turbo
让我们看到了边缘计算和端侧运行的希望,完全有可能在手机或者头显上部署一个3.5级别水平的AI主力。大模型的应用场景显然会变得更加丰富。只是不知道目前的蒸馏和缩小有没有理论极限,是否会出现小于某个量级后,基础能力明显下降的情况。
欢迎各位在评论区批评讨论~