Meta 复刻 GPT-3“背刺”OpenAI,完整模型权重及训练代码全公布
这意味着 AI 科学家们,终于可以“撬开”像 GPT-3 这样的大模型,看看里面到底有些什么秘密了。之前 GPT-3 虽然效果惊艳但不够开放,源代码独家授权给了微软,连马斯克都批评过 OpenAI 不够 open。
虽然论文就在那里,想要在此之上做进一步研究的话就得先复现一个出来再说。而这一次,Meta 从完整模型到训练代码、部署代码全部开放。有人甚至在官宣之前就摸到还没上传好的 GitHub 仓库去蹲点了。
还有人艾特 OpenAI 试图“引战”:
那么,Meta 大模型有何特点、如何做到绿色低能耗,又为何要对外开放?一起来看看。
用 16 块 V100 就能跑起来
OPT 全称 Open Pre-trained Transformer Language Models,即“开放的预训练 Transformer 语言模型”。相比 GPT,名字直接把 Generative 换成了 Open,可以说是非常内涵了。(手动狗头)在论文中,Meta AI 也不避讳宣称 OPT-175B 就是对标 GPT-3,还暗示一波自己更环保:
Meta AI 对此解释称,OPT 就是奔着开放代码去的,为了让更多人研究大模型,环境配置肯定是越经济越好。这不,运行时产生的碳足迹连 GPT-3 的 1/7 都不到,属实省能又高效。为了方便研究人员“量力而行”,Meta AI 搞出了各种大小的 OPT 模型,从 125M 参数到 1750 亿参数的不同大小模型都有。其中,660 亿参数的模型还在制作中,马上也会和大伙儿见面:
所以,最大的 OPT-175B 模型究竟有多高效,又是怎么做到的?
性能方面,Meta AI 针对 OPT-175B 和 GPT-3,用 14 个 NLP 任务进行了测试。结果表明,无论是零样本学习(zero-shot)还是多样本学习(Multi-shot),OPT 在这些任务上的平均精度都与 GPT-3 相差不大。其中虚线为 GPT,实线为 OPT:
△ 左为零样本学习,右为多样本学习
再看具体任务。在对话任务中,采用无监督学习的方法训练 OPT-175B,效果和监督学习训练的几类模型相近:
仇恨言论检测任务上的效果,更是完全超过 Davinci 版本的 GPT-3 模型(在 GPT-3 的四个版本中是效果最好的):
训练硬件方面,Meta AI 用了 992 块英伟达 A100 GPU(80GB)训练 OPT,平均每块 GPU 的计算效率最高能达到 147 TFLOP / s。
这个效率,甚至比英伟达自家研究人员用起来还高,大约超过 17% 左右。Meta AI 透露称,一方面是采用了自家推出的一款名叫 FSDP(Fully Sharded Data Parallel)的 GPU 内存节省工具,使得大规模训练的速度比传统方法快上 5 倍左右;另一方面他们也借鉴了英伟达 Megatron-LM 模型的张量并行方法,将一个运算分布到多个处理器上同时进行。甚至 Meta AI 表示,最低只需要 16 块英伟达 V100 GPU,就能训练并部署 OPT-175B 模型。
已经有网友迫不及待地想要一试了:
当然,Meta AI 也不避讳谈及 OPT-175B 大模型面临的一些问题,例如更容易生成“毒性语言”(例如使用有攻击性的词汇、语言歧视等):
研究人员表示,希望能在开放后,有更多人参与进来研究,并真正解决这些问题。
手把手教你复刻 GPT-3
上面提到,这一次的 OPT 模型系列,300 亿参数及以下的版本都是可以直接下载,660 亿版还在路上。只有完整的 1750 亿版需要额外填写一张申请表,包括工作单位、用途、相关发表工作等问题。
训练和部署的代码工具包 metaseq 发布在 GitHub,并配有使用教程和文档。作为著名的 fairseq 工具包的一个分支,metaseq 专注于 1750 亿规模大模型,删除了训练和使用大模型不需要的部分。
还有不少开发者特别看重一个与模型和代码同时发布的“隐藏宝藏”—— 开发日志。里面详细记录了 Meta 团队在开发大模型过程中遇到的问题、解决的办法和决策的依据。
为自 Pytorch 诞生之前就存在的一系列机器学习研究中的痛点和困惑提供了大厂解法的一手资料。
如此的开放力度可以说是史无前例了,自然收到了不少赞美。比如同样在做开源大模型项目的 HuggingFace 首席科学家 Thomas Wolf。
不过针对 1750 亿参数版需要申请一事,还是有人表示怀疑。
我不是学者或从业者,他们会接受我的申请吗?
也有开发者建议 Meta 像 OpenAI 一样提供一些 Demo,如果大家看到效果会更愿意参与研究改进,不然的话光是搭建开发环境就挺劝退的。
斯坦福大学基础模型研究中心主任、副教授 Percy Liang 对此发表了观点,将大模型的开放程度总结成 4 个层次,更高层次的开放能让研究者专注于更深的问题。
第一层论文开放,证明一些设想的可行性,并提供构建思路。
第二层 API 开放,允许研究人员探索和评估现有模型的能力(如推理能力)和限制(如偏见)
第三层模型权重开放和训练数据开放。允许研究人员逐步改进现有模型,开发更深入的可解释性技术和更有效的微调方法,让研究人员更好地理解训练数据在模型行为中的作用。
第四层计算能力开放,允许研究人员尝试新的体系结构、训练目标和过程、进行数据融合,并在不同的领域开发全新的模型。
Percy Liang 认为更高层次的开放同时也会带来更多风险。也许是时候制定相关的社区规范了?
One More Thing
Meta 这次论文的的共同一作有三人,其中 Susan Zhang 加入 Meta 之前正是来自 OpenAI。
不过在 OpenAI 期间她并没有负责 GPT-3 的开发,而是参与了玩 Dota 的 OpenAI Five 强化学习项目,以及多模态大模型的研究。