当前位置: 首页 > 科技观察

Meta复刻GPT-3“背刺”OpenAI,完整模型权重及训练代码全公开

时间:2023-03-13 01:22:11 科技观察

Meta再现GPT-3“背刺”OpenAI,完整模型权重和训练代码全面公开千亿参数AI大模型,你真的能拿到代码吗?!一觉醒来,AI圈子发生了一件轰动事件——MetaAI开启了一个“重”1750亿参数的大型语言模型OPT-175B。不仅参数少于GPT-3的3750亿,效果也完全不输给GPT-3——这意味着AI科学家终于可以“撬开”GPT-3这样的大模型,看看有什么秘密在里面。以前,GPT-3很牛逼,但不够开放。源代码已独家授权给Microsoft。就连马斯克也批评OpenAI不够开放。论文虽然有了,但要想深入研究,还是得先复现一篇。而这一次,Meta从完整的模型到训练代码和部署代码都是开放的。甚至还有人在官宣前摸了未上传的GitHub仓库就去扎营了。也有艾特OpenAI试图“领战”:那么,Meta大模型有什么特点,如何做到绿色低能耗,为什么要对外开放呢?让我们来看看。您可以使用16个V100运行它。OPT的全称是OpenPre-trainedTransformerLanguageModels,即“开放式预训练Transformer语言模型”。与GPT相比,名字直接从Generative改成了Open,可以说是非常有内涵了。(手动狗头)在论文中,MetaAI不避讳地宣称OPT-175B是基准GPT-3,还暗示它更环保:MetaAI解释说OPT是为开放代码而运行,在为了让研究大模型的人越多,环境配置越经济越好。不会,运行过程中产生的碳足迹不到GPT-3的1/7,节能高效。为了方便研究人员“量力而行”,MetaAI创建了各种规模的OPT模型,从1.25亿个参数到1750亿个参数不等。其中,660亿参数的模型还在制作中,马上与大家见面:那么,最大的OPT-175B模型效率如何,又是如何实现的呢?在性能方面,MetaAI使用OPT-175B和GPT-3的14个NLP任务进行了测试。结果表明,无论是零样本学习(zero-shot)还是多样本学习(Multi-shot),OPT在这些任务上的平均准确率与GPT-3相差不大。其中,虚线为GPT,实线为OPT:△左边为零样本学习,右边为多样本学习。让我们看看具体的任务。在对话任务中,OPT-175B采用无监督学习方式训练,效果与监督学习训练的几类模型相似:在仇恨言论检测任务上效果完全超过达芬奇版GPT-3模型(在GPT-3是四个版本中最好的):在训练硬件方面,MetaAI使用了992个NvidiaA100GPU(80GB)来训练OPT,每个GPU的平均计算效率可以达到147TFLOP/s.这个效率甚至比Nvidia自己的研究人员使用的效率还要高,约为17%。MetaAI透露,一方面,它采用了自己推出的名为FSDP(FullyShardedDataParallel)的GPU内存节省工具,使得大规模训练的速度比传统方法快约5倍;另一方面,他们也借鉴了NVIDIAMegatron-LM模型的tensorparallel方法,将一个操作同时分发给多个处理器。甚至MetaAI也表示,至少需要16个NvidiaV100GPU来训练和部署OPT-175B模型。有网友迫不及待地想试试:当然,MetaAI也不避讳谈及OPT-175B大机型面临的一些问题,比如更容易产生“有毒语言”(比如使用攻击性词语、语言歧视等),etc.)):研究人员希望开放后,能有更多人参与研究,真正解决这些问题。教你如何复现GPT-3。上面说了,这次的OPT模型系列,300亿参数及以下版本可以直接下载,660亿版本还在路上。只有完整的1750亿版需要额外填写一份申请表,包括工作单位、用途、相关出版工作等问题。用于训练和部署的代码工具包metaseq在GitHub上发布,附带教程和文档。作为著名的fairseq工具包的一个分支,metaseq专注于1750亿的大规模模型,去掉了训练不需要的部分,使用大模型。也有不少开发者特别看重一个与模型和代码同时发布的“隐藏宝藏”——开发日志。详细记录了Meta团队在开发大模型过程中遇到的问题、解决方案和决策依据。针对Pytorch诞生之前机器学习研究中存在的一系列痛点和困惑,提供了大厂解决方案的第一手资料。这样的开放可以说是前所未见,自然也收获了很多好评。比如HuggingFace的首席科学家ThomasWolf,他也在做一个开源的大型模型项目。不过,对于是否需要申请1750亿参数版本,还是有人存有疑虑。我不是学者或从业者,他们会接受我的申请吗?也有开发者建议Meta提供一些类似OpenAI的demo。如果大家看到了效果,就会更愿意参与研究和改进。否则,光是搭建开发环境,会让人望而却步。斯坦福大学基础模型研究中心主任PercyLiang副教授对此发表了看法,将大模型的开放性概括为四个层次。更高级别的开放性使研究人员能够专注于更深层次的问题。第一层论文是开放的,证明了一些假设的可行性,为构建提供了思路。第二层API是开放的,允许研究人员探索和评估现有模型的能力(如推理能力)和局限性(如偏差)。第三层模型权重开放,训练数据开放。允许研究人员逐步改进现有模型,开发更深入的可解释性技术和更有效的微调方法,并让研究人员更好地理解训练数据在模型行为中的作用。第4层计算能力是开放的,允许研究人员试验新的架构、训练目标和程序,进行数据融合,并在不同领域开发全新的模型。PercyLiang认为,更高程度的开放也会带来更多的风险。也许是时候制定相关的社区规范了?OneMoreThingMeta论文共有三位共同作者,其中SusanZhang在加入Meta之前来自OpenAI。不过在OpenAI期间,她并没有负责GPT-3的开发,而是参与了打Dota的OpenAIFive强化学习项目和多模态大模型的研究。项目地址:https://github.com/facebookresearch/metaseq/tree/main/projects/OPT论文地址:https://arxiv.org/abs/2205.01068