万万没想到,ChatGPT参数只有200亿?

admin1年前笔记279

Snipaste_2023-11-02_00-44-29.png

这合理吗?


谁都没有想到,ChatGPT 的核心秘密是由这种方式,被微软透露出来的。


昨天晚上,很多讨论 AI 的微信群都被一篇 EMNLP 论文和其中的截图突然炸醒。


微软一篇题为《CodeFusion: A Pre-trained Diffusion Model for Code Generation》的论文,在做对比的时候透露出了重要信息:ChatGPT 是个「只有」20B(200 亿)参数的模型,这件事引起了广泛关注。

Snipaste_2023-11-02_00-44-47.png


距 ChatGPT 发布已经快一年了,但 OpenAI 一直未透露 ChatGPT 的技术细节。由于其强大的模型性能,人们对 ChatGPT 的参数量、训练数据等信息抱有诸多疑问和猜测。


作为行业一直以来的标杆,ChatGPT 性能强大,可以解决各种各样的问题。它的前身 GPT-3 参数量就达到了 1750 亿,实用化以后的大模型居然被 OpenAI 瘦身了快 9 倍,这合理吗?


「如何看待这篇论文」的话题立刻冲上了知乎热榜。

Snipaste_2023-11-02_00-44-47.png


论文链接:

https://arxiv.org/abs/2310.17680


具体来说,微软这篇论文提出了一种预训练的扩散代码生成模型 ——CodeFusion。CodeFusion 的参数量是 75M。在实验比较部分,论文的表 1 将 ChatGPT 的参数量明确标成了 20B。


众所周知,微软和 OpenAI 是合作已久的一对伙伴,并且这是一篇 EMNLP 2023 论文,因此大家推测这个数据很有可能是真实的。


然而,关于 ChatGPT 参数量的猜测,人们一直认为是一个庞大的数字,毕竟 GPT-3 的参数量就已经达到了 175B(1750 亿)。掀起大型语言模型(LLM)浪潮的 ChatGPT,难道就只有 20B 参数?


大家怎么看?


这个数据被扒出来之后,在知乎和 Twitter 已经引起了广泛讨论。毕竟,200 亿参数达到这样的效果十分惊人。再则,国内追赶出的大模型动则就是数百亿、上千亿。


那么这个数据保不保真?大家都有什么看法呢?


NLP 知名博主、新浪微博新技术研发负责人张俊林「盲猜」分析了一波,引起了大家广泛赞同:


不负责任猜测一波:GPT 4 是去年 8 月做好的,ChatGPT 估计是 OpenAI 应对 Anthropic 要推出的 Claude 专门做的,那时候 GPT 4 应该价值观还没对齐,OpenAI 不太敢放出来,所以临时做了 ChatGPT 来抢先发优势。OpenAI 在 2020 年推出 Scaling law 的文章,Deepmind 在 2022 年推出的改进版本 chinchilla law。OpenAI 做大模型肯定会遵循科学做法的,不会拍脑袋,那么就有两种可能:


可能性一:OpenAI 已经看到 Chinchilla 的论文,模型是按照龙猫法则做的,我们假设 ChatGPT 的训练数据量不低于 2.5T token 数量(为啥这样后面分析),那么按照龙猫法则倒推,一般训练数据量除以 20 就应该是最优参数量。于是我们可以推出:这种情况 ChatGPT 模型的大小约在 120B 左右。


可能性二:OpenAI 在做 ChatGPT 的时候还没看到 Chinchilla 的论文,于是仍然按照 OpenAI 自己推导的 Scaling law 来设计训练数据量和模型大小,推算起来训练数据量除以 12.5 左右对应模型最优参数,他们自己的 Scaling law 更倾向把模型推大。假设训练数据量是 2.5T 左右,那么这种情况 ChatGPT 的模型大小应该在 190 到 200B 左右。


大概率第一个版本 ChatGPT 推出的时候在 200B 左右,所以刚出来的时候大家还是觉得速度慢,价格也高。3 月份 OpenAI 做过一次大升级,价格降低为原先的十分之一。如果仅仅靠量化是不太可能压缩这么猛的,目前的结论是大模型量化压缩到 4 到 6bit 模型效果是能保持住不怎么下降的。


所以很可能 OpenAI 这次升级从自己的 Scaling law 升级到了 Chinchilla 的 Scaling law,这样模型大小就压缩了 120B 左右,接近一半(也有可能远小于 120B,如果按照 chinchilla law,llama 2 最大的模型应该是 100B 左右,此时算力分配最优,也就是说成本收益最合算。但是实际最大的 llama2 模型才 70B,而且更小的模型比如 7B 模型也用超大数据集。


llama1 65B 基本是符合 chinchilla law 的,llama2 最大模型已经打破 chinchilla law 开始怼数据了。就是说目前大家做大模型的趋势是尽管不是算力分配最优,但是都倾向于增加数据减小模型规模,这样尽管训练成本不合算,但是推理合算,而训练毕竟是一次性的,推理则并发高次数多,所以这么配置很明显总体是更合算的),再加上比如 4bit 量化,这样推理模型的大小可以压缩 4 倍,速度大约可提升 8 倍左右,如果是采取继续增加训练数据减小模型规模,再加上其它技术优化是完全有可能把推理价格打到十分之一的。


后续在 6 月份和 8 月份各自又价格下调了 25%,最终可能通过反复加数据减小规模逐渐把模型压缩到 20B 左右。


这里解释下为何 ChatGPT 的训练数据量不太可能比 2.5T 低,LLaMA 2 的训练数据量是 2T,效果应该稍弱于 ChatGPT,所以这里假设最少 2.5T 的训练数据。目前研究结论是当模型规模固定住,只要持续增加训练数据量,模型效果就会直接增长,mistral 7B 效果炸裂,归根结底是训练数据量达到了 8 个 T,所以导致基础模型效果特别强。以 ChatGPT 的效果来说,它使用的数据量不太可能低于 2.5T。


当然,还有另外一种可能,就是 ChatGPT 在后期优化(比如第一次大升级或者后续的升级中,开始版本不太可能走的这条路)的时候也不管 scaling law 了,走的是类似 mistral 的路线,就是模型大小固定在 20B,疯狂增加训练数据,如果又构造出合适的 instruct 数据,效果也可能有保障。


不论怎么讲,对于 6B 到 13B 左右比较适合应用落地的模型,强烈呼吁中文开源模型模仿 mistral,固定住一个最适合使用的模型大小,然后疯狂增加训练数据,再加上好的 instruct 策略,是有可能作出小规模效果体验足够好的模型的。我个人认为对于开源模型来说,7B-13B 左右大小的模型应该是兵家必争之地。有心气做开源的可以再努把力,把训练数据往上再努力怼一怼。


早在 OpenAI 开放 ChatGPT API 时,0.002 美元 / 1k token 的定价就令人们意外,这个价格只有 GPT-3.5 的 1/10。彼时就有人推测:「ChatGPT 是百亿(~10B)参数的模型」,并且「ChatGPT 使用的奖励模型(reward model)可能是千亿级模型」。该推测来源于清华大学 NLP 在读博士郑楚杰的知乎回答。

Snipaste_2023-11-02_00-47-45.png

而国内外许多网友也都认为,200 亿的参数,是完全合理的。


Snipaste_2023-11-02_00-45-07.png

也有知乎网友从价格上分析,这个数据也应该是对的。


Snipaste_2023-11-02_00-45-15.png

当然,也有网友认为这可能是个「拼写错误」,或许实际是 120B(1200 亿),至少 120B 和 GPT-3(175B)是一个数量级。

Snipaste_2023-11-02_00-45-23.png


但所有这些都是猜测,由于 OpenAI 对参数量、训练数据、方法等核心信息一直讳莫如深,因此 20B 这个数据到底是不是真的根本无法求证。如果是真的,那么大型语言模型未来的改进方向还会是增加参数量吗?


再过几天,就是 OpenAI 的开发者大会了,也许我们能够了解到更多有用的信息,让我们拭目以待吧。

Snipaste_2023-11-02_00-45-29.png


相关文章

简述数据中心网络技术简史

简述数据中心网络技术简史

数据中心的网络其实就是一个局域网,有数据和存储两大块:存储网络主要是FC技术,现在出现了IP SAN,基于以太网IP转发的存储,整体上来讲存储网络的技术发展并不快,花样也不多,以至于到现在很少有人讨论...

SQL中为什么不要使用1=1

最近看几个老项目的SQL条件中使用了1=1,想想自己也曾经这样写过,略有感触,特别拿出来说道说道。编写SQL语句就像炒菜,每一种调料的使用都可能会影响菜品的最终味道,每一个SQL条件的加入也可能会影响...

为什么 Llama 2 比 ChatGPT 更好

为什么 Llama 2 比 ChatGPT 更好

在开源语言模型领域,Llama 2 已成为强有力的竞争者。Llama 2 由 Meta(以前统称为Facebook)开发,与同类产品 ChatGPT 相比具有多方面的优势。本博客将深入探讨L...

触发式文件同步在Sersync+Rsync中实现

背景通常我们在服务器上使用rsync加上crontab来定时地完成一些同步、备份文件的任务。随着业务和应用需求的不断扩大、实时性要求越来越高。一般rsync是通过校验所有文件后,进行差量同步,如果文件...

如何在Linux命令行中创建以及展示演示稿

如何在Linux命令行中创建以及展示演示稿

在Linux的世界里,有几个不同的方式供你选择来做演讲。比如带有大量多媒体展示、视觉冲击效果极佳的Impress.js,专为LaTex用户提供的Beamer,等等。而如果你苦于寻找一种简单的方式来创建...

开源多线程性能测试工具-sysbench

开源多线程性能测试工具-sysbench

Sysbench简介sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同参数环境下的系统或数据库的负载情况。本文主要学习使用sysbench来测试linux下mysql...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。