前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单张GPU搞定GPT-3超参数!先训练小模型,再“一键迁移” | 已开源

单张GPU搞定GPT-3超参数!先训练小模型,再“一键迁移” | 已开源

作者头像
量子位
发布2022-03-14 12:42:10
6660
发布2022-03-14 12:42:10
举报
文章被收录于专栏:量子位
丰色 发自 凹非寺 量子位 | 公众号 QbitAI

“一个GPU没法训练GPT-3,更别提在上面调整超参数了。”

不不不,现在情况有变——

在单个GPU上完全可以调整大规模模型的超参数。

怎么说?

原来有人发现了一种新的调参方法,无论模型规模怎么变化,所得的最优超参数都能保持性能稳定。

由此一来,我们可以先训练一个小版本的模型,在上面间接调整好超参,然后以零样本的方式直接将它们复制到全尺寸模型上,就能获得相当不错的性能。

这对手里GPU资源不够的人来说简直不要太好了吧。

目前,相关帖子也在Reddit上引起热议,得到了300+的点赞支持。

在一个GPU上调参GPT-3大模型

方法名叫muP (Maximal Update Parametrization),作者分别来自微软和OpenAI

想法很简单,利用的是他们在之前的工作中发现的一个叫做µP的特殊参数化思路:

窄神经网络和宽神经网络共享同一组最优超参数,即使宽度无限大(width->∞)时也一样。

具体原理可以参见论文《Feature Learning in Infinite-Width Neural Networks》。

可共享的超参数包括学习率learning rate、learning rate schedule、initialization、parameter multipliers……甚至可以单独针对每个参数张量。

作者在宽度高达4096的Transformer以及ResNet上验证了这一结论。

因此,资源匮乏的炼丹er就可以在单张GPU上对一个小版本的GPT-3模型进行超参数调整:

如果在这个小模型上得到的参数接近最优,那么在大模型上也可以得到一样的结果。

ps. 这种调参方式又被命名为“µ迁移(µTransfer)”。

具体效果如何?

作者训练了一个只有4000万参数规模的小型GPT-3,它小到可以直接跑在一张GPU上。

然后把它的超参数“µ迁移”到一个有67亿参数的大规模GPT-3上,结果发现它的性能和原始的GPT-3完全相当——尽管原GPT-3的参数规模还是它的两倍!

而这一调整成本只占整个预训练成本的7%。

由于模型规模增大,直接调整小型模型的成本仍大致相同,如果用该方式来调参175亿规模的GPT-3,其成本可能最多只有总预训练成本的0.3%。

好了,这时你可能会问:能不能只缩小模型的宽度呢?

作者表示,对于“non-width stuff”,没有理论保证。

不过好消息是,他们在preLN Transformer的合理范围内对depth、batch size、sequence length和timestep的迁移效果进行了测试。

其中,他们将BERT-base和BERT-large在宽度和深度上缩小到同样的规模, 然后同时进行超参数调整后发现:

相比已经调优的megatron BERT基线,两者的性能都得到了改善,尤其是BERT-large提升更大

由此也总结出一个道理:

迁移后的模型规模越大,收益越高。

所以作者还调侃道,虽然我们没有测试175亿规模的GPT-3,但保证结果能让你“流口水”

说了这么多,到底如何实现?

下表概括了如何通过fan-in或fan-out调整你的模型的initialization和learning rate。

其中粉色文本为µP,括号中的灰色文本为pytorch默认值。

当然,如果你不想自己手动操作,作者也开源了Pytorch实现,通过pip install mup就可以应用到你的模型中。

关于作者

一作名叫Greg Yang,微软高级研究员。

通讯作者为微软研究院深度学习技术中心合伙人研究经理、IEEE Fellow高剑峰。

还有两位华人作者分别为来自微软的Liu Xiaodong(北京邮电大学校友)和Chen Weizhu (已在微软工作16年)。

他们的这篇成果已被NeurIPS 2021接收。

GitHub链接: https://github.com/microsoft/mup

论文地址: https://arxiv.org/abs/2203.03466

官方博客链接: https://www.microsoft.com/en-us/research/blog/%C2%B5transfer-a-technique-for-hyperparameter-tuning-of-enormous-neural-networks/

Reddit讨论: https://www.reddit.com/r/MachineLearning/comments/tb0jm6/r_you_cant_train_gpt3_on_a_single_gpu_but_you_can/

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

直播报名 | 如何建立AI生态的“Android”

从感知到认知,AI还需要多久才能触及生产核心?从软件到数件,AI生态该如何建立自己“Android”?

3月16日19:30,「量子位·视点」CEO/CTO系列分享活动将邀请天云数据CEO雷涛直播分享个人见解。扫码预约直播围观吧~

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

一键三连「分享」「点赞」和「在看」

科技前沿进展日日相见 ~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在一个GPU上调参GPT-3大模型
    • 具体效果如何?
      • 说了这么多,到底如何实现?
      • 关于作者
      相关产品与服务
      云直播
      云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档