当前位置: 首页 > news >正文

了解ddp和fsdp

1. DDP (Distributed Data Parallel) 是什么?

DDP(分布式数据并行)是PyTorch中一种常用的分布式训练技术。它的核心思想是数据并行,即在多个GPU上(可以是单机多卡或多机多卡)分别保留一份完整的模型副本。[3][4]

其工作流程如下:

  • 数据切分:将整个数据集分成多份,每个GPU(进程)拿到一部分数据进行独立的计算。[1][3][5]

  • 独立计算:每个GPU上的模型副本独立进行前向传播和反向传播,计算出梯度。[3][6]

  • 梯度同步:在反向传播之后,通过All-Reduce操作,将所有GPU上的梯度进行聚合和平均,保证所有模型副本最终以相同的梯度来更新参数。[3][6][7]

  • 参数更新:每个GPU上的优化器使用同步后的梯度独立地更新自己的模型参数,从而确保所有副本在下一次迭代开始前保持一致。

简单来说,DDP就是“模型复制,数据切分,梯度同步”。

2. FSDP (Fully Sharded Data Parallel) 是什么?

FSDP(完全分片数据并行)是DDP的演进版本,旨在解决DDP在训练超大规模模型时遇到的内存瓶颈问题。[7][8][9] 它的核心思想是对模型参数、梯度和优化器状态进行分片(Shard),每个GPU只保存模型的一部分,从而极大降低单个GPU的内存占用。[7][10][11][12]

其工作流程要复杂一些:

  • 分片 (Sharding):在训练开始前,FSDP会将模型的参数 (parameters)梯度 (gradients) 和优化器状态 (optimizer states) 全部分片,并将这些分片均匀地分配给集群中的所有GPU。[7][10][13] 每个GPU只持有自己负责的那一小部分。

  • 前向传播 (Forward Pass)

    • 当需要计算某一层时,FSDP会使用All-Gather操作,从其他所有GPU收集该层所需的参数分片,临时在当前GPU上重构出完整的层。[7][14][15]

    • 完成该层的计算后,立即释放掉从其他GPU收集来的参数分片,以节省内存。[15][16]

  • 反向传播 (Backward Pass)

    • 与前向传播类似,反向传播时也会通过 All-Gather 重新构建完整的层来计算梯度。[6][14]

    • 梯度计算完成后,使用Reduce-Scatter操作将梯度进行聚合,并将聚合后的梯度分片发送回其对应的GPU上。这样每个GPU只保留自己负责那部分参数的梯度。[7][13]

  • 参数更新:每个GPU上的优化器只更新其本地持有的那一小部分参数和优化器状态。

简单来说,FSDP就是“万物皆可分片,按需动态重组”。

http://www.dtcms.com/a/410302.html

相关文章:

  • Linux的POSIX信号量和生产消费模型的环形队列实现
  • 如何用家庭电脑做网站wordpress无法移除旧插件.
  • 网络公司手机网站平台营销型网站
  • Python 将 HTML 转换为纯文本 TXT (HTML 文本提取)
  • glibc pthread_mutex_lock/unlock futex 互斥锁的实现
  • 做网站怎么做小图标百度怎么精准搜索
  • ASP.NET Razor VB 变量
  • Linux系统之----POSIX信号量
  • 让人做网站 需要准备什么软件查看网站dns服务器
  • LangChain第三页【操作指南】_【如何缓存对话模型响应】翻译完成
  • 移动硬盘上的文件消失了?以下是Mac电脑解决方法
  • AWS Route 53 详解:不只是 DNS,还能做智能流量调度
  • AWS EKS + Karpenter Spot实例优化实践指南
  • docker和k3s安装kafka,go语言发送和接收kafka消息
  • GraphRAG(知识图谱结合大模型)对人工智能中自然语言处理的深层语义分析的影响与启示
  • 石化建设分会网站广州市城市建设档案馆网站
  • 建网站是自己做还是用CMS邢台做网站咨询
  • MySQL GTID一致性错误全解析:从连接池复用到完美解决方案
  • PostgreSQL表备份并重命名出现索引、外键仍指向旧表,恢复后仍失败的问题
  • 【生态再升级】IvorySQL 4.5 与银河麒麟高级服务器操作系统V11完成适配认证!
  • 智慧团建系统官方网站登录网站制作 呼和浩特
  • 个体商户建自己的网站做销售小广告怎么能弄干净
  • 设计模式(C++)详解——迭代器模式(2)
  • perl踩坑系列=====正则表达式捕获
  • MQ-2烟雾传感器详解——从工作原理到实际应用
  • Ubuntu启动终端时默认窗口最大化
  • 整站seo排名郑州经济技术开发区政务服务中心
  • 求一些做里番的网站php网站建设实训引言
  • 嵌入用户idea到大模型并针对Verilog语言生成任务的微调实验报告
  • 【AI算力系统设计分析】1000PetaOps 算力云计算系统设计方案(大模型训练推理专项版)