首页 > 其他分享 >深度学习模型训练并行问题

深度学习模型训练并行问题

时间:2023-11-24 21:57:37浏览次数:37  
标签:训练 模型 卡上 并行 参数 深度 优化

并行这个概念一方面是是加快模型训练,一方面是解决显存不够的问题的并行策略

数据并行(最常用的),即每张卡上都放一个完整的模型,主要用于单机多卡的数据并行。

模型并行,将模型的不同部分进行手动的分割,然后分别放在不同的卡上。注意,模型要放在卡上不光是需要保存模型参数,因为模型训练过程中不仅涉及数据一层一层前向传播的问题,还要反向传播,所以要把每一层的激活值记下来(也包括参数的梯度、激活值的梯度),同时由于使用优化器也需要记录优化器的参数,所以实际上需要放在显卡上的东西是好几倍的参数量。这种方法虽然叫并行,但我觉得其实是显卡之间的串行了。

DDP,即分布式数据并行。和第一个有所区别( PyTorch 里的数据并行训练,涉及 nn.DataParallel (DP) 和 nn.parallel.DistributedDataParallel (DDP) 两个模块),它使用了更高级的策略实现分布式训练,主要涉及多进程多线程,可以实现多机多卡训练。

还有更先进的FSDP,如果使用的时候可以搜一搜他们之间具体区别和实现(DP\DDP\FSDP)

 

在考虑显存占用问题的时候,可以用到几种优化,主要分为激活值优化(数据的中间过程变量)和参数优化(模型参数)

激活值优化有:1. 时间换空间的亚线性内存优化,实际上就是说前向传播以后,丢掉一些中间变量,在反向传播的时候用到哪了再重新算一次。 2. 低精度训练

参数优化有:1. 传统数据并行,就是上面的DP。 2. ZeRO(零冗余优化)数据并行,1里面的方法是每张卡上都放一个完整的模型,其中包含我在上面模型并行中提到的所有东西,比较占用空间,有一定的冗余性。零冗余就是说把模型需要保存的所有参数平均分给每张卡,每张卡保存一部分,用到的时候分发。从原理图上看,这种方法既有数据并行,也有模型并行。

 

标签:训练,模型,卡上,并行,参数,深度,优化
From: https://www.cnblogs.com/andoblog/p/17854518.html

相关文章

  • 爱芯元智AX650N部署yolov8s 自定义模型
    爱芯元智AX650N部署yolov8s自定义模型本博客将向你展示零基础一步步的部署好自己的yolov8s模型(博主展示的是自己训练的手写数字识别模型),本博客教你从训练模型到转化成利于Pulsar2工具量化部署到开发板上训练自己的YOLOv8s模型准备自定义数据集数据集结构可以不像下面一样,......
  • 基于EVA估价模型的互联网企业价值评估方法——以“腾讯公司”为例
    摘要:从20世纪90年代以来,互联网行业在中国迅速发展。互联网企业是一种结合了网络经济效应和轻资产经营特点的新型企业组织形式。与传统企业相比,它在生产经营、创造价值方式和评估反映的问题上都各不相同。目前,EVA被广泛应用于企业价值评估,主要以经济利润为核心,考虑股权资本成本和权......
  • 4.MySQL(数据模型,SQL简介,DDL,DML)
    MySQL(数据模型,SQL简介,DDL,DML)概述:数据库:DataBase(DB),是存储和管理数据的仓库;数据库管理系统:DataBaseManagementSystem(DBMS),操纵和管理数据库的大型软件;SQL:StructuredQueryLanguage,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准;MySQL是一......
  • JVM 内存分析工具 MAT 的深度讲解与实践
     1.MAT工具简介MAT(全名:MemoryAnalyzerTool),是一款快速便捷且功能强大丰富的JVM堆内存离线分析工具。其通过展现JVM异常时所记录的运行时堆转储快照(Heapdump)状态(正常运行时也可以做堆转储分析),帮助定位内存泄漏问题或优化大内存消耗逻辑。1.1MAT使用场景及主要解决问......
  • 开源大模型驱动的智能编程与自然语言处理
    随着人工智能技术的不断发展,开源大模型已经成为了一个备受关注的话题。在这些开源大模型中,WizardCoder和WizardLM是两个备受瞩目的项目。本文将重点介绍这两个模型,并突出其中的重点词汇或短语。首先,让我们来了解一下WizardCoder。它是一个基于PyTorch框架的开源代码生成工具,......
  • 大模型容量解决方案的基石
    随着自然语言处理(NLP)技术的不断发展,预训练模型如BERT在很多任务中都取得了显著的效果。然而,大模型容量的需求也随之而来,这不仅涉及到模型的训练时间,还与硬件资源、存储空间等密切相关。本文将围绕“基于BERT的大模型容量解决方案总结”这一主题,详细探讨其中的关键技术和发展趋势。......
  • 海量数据处理的强大模型
    随着科学研究的不断深入,数据驱动的决策在各个领域中的应用越来越广泛。在医学、生物学、环境科学、天文学等领域中,研究者们正在利用海量数据探索未知的领域和现象。然而,如何有效地处理这些数据并从中提取有价值的信息,一直是科研人员面临的一个难题。为此,一种名为BigScienceBloom模......
  • AI未来发展6大趋势,国内AIGC法规正式实施,大模型开始接入移动设备 | AIGC 月报速览
    本期导览行业动态◾初心资本分享AI未来发展的六大趋势◾行业普遍认为AIGC可以提升工作效率◾AI芯片需求庞大,国内外公司都在大量下单抢购◾国内外公司纷纷开始狂招AI人才◾OpenAI推出企业版,GPT-3.5-turbo推出微调功能◾Midjourney新增Vary功能,升级GPU集群相关政......
  • torch保存模型
    保存模型有两种方式,方式不同,在调用模型的时候也不同我更建议用torch.jit。。。这样不需要在写模型的参数torch.save保存模型:importtorchimporttorch.nnasnn#假设model是你的PyTorch模型classSimpleModel(nn.Module):def__init__(self):super(Si......
  • 平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析
    Kubernetes在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了,在生产环境中使用Kubernetes仍然需要面临许多挑战。 SpectroCloud刚刚与DimensionalResearch合......