2020 年,最轰动的 AI 新闻莫过于 OpenAI 发布的 GPT-3 了。它的1750亿参数量及其在众多NLP任务上超过人类的出众表现让人们开始坚信:大模型才是未来。但与之带来的问题是,训练超大模型所需的算力、存储已不再是单机就能搞定。
据 NVIDIA 估算,如果要训练GPT-3 ,即使单个机器的显存/内存能装得下,用 8 张 V100 的显卡,训练时长预计要 36 年;即使用 512 张 V100 训练也需要将近 7 个月;如果拥有 1024 张 80GB A100, 那么完整训练 GPT-3 的时长可以缩减到 1 个月。
除去硬件资源这个经济问题,在技术层面,意味着训练大模型一定是一个分布式问题。因为算力需求还是一个相对容易解决的问题,毕竟拥有大集群的组织并不只有 OpenAI 一家,而如何解决上千块 GPU 解决分布式训练问题才是关键。
过在实际训练中,PyTorch 、 Megatron、DeepSpeed 都走了一条非常长的弯路。不仅是弯路,你还会发现 Megatron 的代码只能被 NVIDIA 的分布式训练专家所复用,它对于 PyTorch 的算法工程师而言门槛极高,以至于任何想要用 PyTorch 每出现一个分布式大模型的算法工程师,都得先等 NVIDIA 开发完才能再使用 Megatron 提供的模型。
在分布式训练领域拥有独特的设计和视角,OneFlow 解决了分布式训练中的各种并行难题,因此在大规模预训练模型的场景下用 OneFlow 分布式训练更易用也更高效。
据悉,OneFlow 即将在 5 发布的大版本 OneFlow v0.4.0 起,将提供兼容 PyTorch 的全新接口以及动态图等特性。而在 v0.5.0 版本,OneFlow 预计全面兼容 PyTorch, 届时用户可将 PyTorch 模型训练脚本一键迁移为 OneFlow 的训练脚本。此外, OneFlow 还会提供 Consistent 视角的分布式 Eager,用户可以既享受动态图的易用性,又可以非常方便地进行各种分布式并行训练
私我“资料” 获取!
相关文章
猜你喜欢