单机多卡与多机多卡技术如何实现艺术融合?
- 内容介绍
- 相关推荐
本文共计1828个文字,预计阅读时间需要8分钟。
随着触碰到模型的模型规模越来越大,自然就会触碰到这种技术。记录下自己的踩坑过程,当看到多卡跑通后,那种苦尽甘来的感觉还是令人欣慰的。我们先来说一下单机多卡+Hugging Face上的操作。
随着接触到的模型越来越大,自然就会接触到这种技术。
记录下自己的踩坑过程,当看到多机多卡跑通后,那种苦尽甘来的感觉还是挺舒服的。
我们首先来说一下单机多卡huggingface上面有大佬上传了中文的BigBird的权重,想尝试能够处理的序列最长长度为4096的模型,但是放到单张卡里面batch_size基本上只能设置成2(16GB),所以为了让梯度下降更稳定,决定使用多卡进行训练。本来是想尝试把模型切成两半,分别放到两张卡里面,但是奈何自己没有能力把bigbird转换成nn.Sequential的样子的类型,所以就放弃了,转用DDP(Distributed Data Parallelism)。
(之后有关注了huggingface的Accelerate和另一个很有名气的Colossal-AI,但是都会有同样的bug)
我是参考这篇文章的:Distributed Training in PyTorch (Distributed Data Parallel) | by Praneet Bomma | Analytics Vidhya | Medium(良心文章,认真参考一次就跑通了)
现在来从头开始,跑通单机多卡。
本文共计1828个文字,预计阅读时间需要8分钟。
随着触碰到模型的模型规模越来越大,自然就会触碰到这种技术。记录下自己的踩坑过程,当看到多卡跑通后,那种苦尽甘来的感觉还是令人欣慰的。我们先来说一下单机多卡+Hugging Face上的操作。
随着接触到的模型越来越大,自然就会接触到这种技术。
记录下自己的踩坑过程,当看到多机多卡跑通后,那种苦尽甘来的感觉还是挺舒服的。
我们首先来说一下单机多卡huggingface上面有大佬上传了中文的BigBird的权重,想尝试能够处理的序列最长长度为4096的模型,但是放到单张卡里面batch_size基本上只能设置成2(16GB),所以为了让梯度下降更稳定,决定使用多卡进行训练。本来是想尝试把模型切成两半,分别放到两张卡里面,但是奈何自己没有能力把bigbird转换成nn.Sequential的样子的类型,所以就放弃了,转用DDP(Distributed Data Parallelism)。
(之后有关注了huggingface的Accelerate和另一个很有名气的Colossal-AI,但是都会有同样的bug)
我是参考这篇文章的:Distributed Training in PyTorch (Distributed Data Parallel) | by Praneet Bomma | Analytics Vidhya | Medium(良心文章,认真参考一次就跑通了)
现在来从头开始,跑通单机多卡。

