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

别再踩坑了!用DeepSpeed Zero-3跑大模型,记得关掉`low_cpu_mem_usage`和`device_map`

DeepSpeed Zero-3与Hugging Face内存优化选项的兼容性深度解析当你第一次看到DeepSpeed Zero-3 is not compatible with low_cpu_mem_usageTrue or with passing a device_map这个报错时可能会感到困惑。毕竟low_cpu_mem_usage和device_map都是Hugging Face推荐的节省内存的选项而DeepSpeed Zero-3也是为了优化大模型训练的内存使用。为什么这些省内存的特性会互相冲突呢本文将深入剖析这一现象背后的技术原理并提供实用的解决方案。1. 理解DeepSpeed Zero-3的内存优化机制DeepSpeed Zero-3Zero Redundancy Optimizer Stage 3是微软DeepSpeed框架中的一项核心技术专为大规模模型训练设计。它的核心思想是通过模型参数分区来消除内存冗余。在传统的数据并行训练中每个GPU都保存完整的模型副本导致显存需求随着模型规模线性增长。而Zero-3采用了完全不同的方法参数分区模型参数被分割到不同的GPU上每个GPU只保存部分参数动态通信在需要时通过高效的通信机制获取其他GPU上的参数CPU卸载当GPU显存不足时自动将部分数据卸载到CPU内存这种设计使得Zero-3能够训练比单个GPU显存大得多的模型但同时也带来了一些特殊要求# Zero-3的典型配置示例 { train_batch_size: 8, gradient_accumulation_steps: 2, optimizer: { type: AdamW, params: { lr: 5e-5 } }, fp16: { enabled: True }, zero_optimization: { stage: 3, offload_optimizer: { device: cpu, pin_memory: True }, offload_param: { device: cpu, pin_memory: True } } }2. Hugging Face内存优化选项的工作原理Hugging Face的transformers库提供了两种主要的内存优化选项它们的设计初衷与Zero-3有本质区别。2.1 low_cpu_mem_usageTrue这个选项改变了模型加载的方式传统加载方式先将整个模型加载到CPU内存然后将模型复制到GPU显存需要两倍于模型大小的内存CPUGPU启用low_cpu_mem_usage后直接按需将模型部分加载到GPU显著减少CPU内存占用但需要精确控制加载过程2.2 device_map参数device_map允许用户指定模型各部分应该加载到哪些设备上支持以下配置设备类型描述适用场景cpu将层保留在CPU内存显存极度有限cuda:0指定GPU设备多GPU环境auto自动平衡分配一般情况disk使用磁盘缓存超大模型# 典型的device_map配置示例 device_map { transformer.wte: 0, transformer.wpe: 0, transformer.h.0: cpu, transformer.h.1: cpu, transformer.ln_f: 0, lm_head: 0 }3. 冲突根源与解决方案3.1 为什么这些选项不兼容DeepSpeed Zero-3与Hugging Face内存优化选项的冲突源于它们对模型内存管理的不同假设控制权之争Zero-3需要完全控制模型的分区和内存管理low_cpu_mem_usage和device_map也试图管理内存分配导致两个系统互相干扰初始化时序问题Hugging Face的优化在模型加载阶段生效Zero-3的优化在训练阶段生效加载时的内存布局可能影响训练时的分区策略通信机制冲突Zero-3依赖特定的参数分布模式进行高效通信预定义的device_map可能破坏这种模式3.2 正确的配置方法要解决这个冲突需要遵循以下原则禁用Hugging Face的内存优化model AutoModelForCausalLM.from_pretrained( model_name_or_path, low_cpu_mem_usageFalse, # 显式禁用 device_mapNone, # 不提供device_map # 其他参数... )让DeepSpeed完全控制内存管理通过DeepSpeed配置文件启用Zero-3利用其CPU卸载功能处理内存不足问题混合精度训练的额外注意事项确保DeepSpeed配置中的fp16或bf16设置正确与Hugging Face的torch_dtype参数保持一致4. 高级场景下的最佳实践4.1 LoRA微调的特殊配置当使用LoRALow-Rank Adaptation进行微调时还需要注意禁用量化配置冲突model AutoModelForCausalLM.from_pretrained( model_name_or_path, quantization_configNone if not use_lora else GPTQConfig( bits4, disable_exllamaTrue ), # 其他参数... )适配器与Zero-3的协同确保LoRA层也被正确分区可能需要调整lora_alpha和r参数4.2 多节点训练配置在分布式环境中还需要考虑通信效率优化调整zero_optimization.reduce_bucket_size优化zero_optimization.allgather_bucket_sizeCPU卸载策略{ zero_optimization: { stage: 3, offload_optimizer: { device: cpu, pin_memory: True, buffer_count: 4 }, offload_param: { device: cpu, pin_memory: True } } }4.3 内存监控与调优为了确保配置最优建议使用nvidia-smi监控GPU内存使用DeepSpeed提供的ds_report工具分析内存分布逐步增加batch size直到接近显存上限# 监控GPU内存使用的简便命令 watch -n 1 nvidia-smi在实际项目中我发现最稳定的配置是完全禁用Hugging Face的内存优化选项让DeepSpeed Zero-3全权负责内存管理。特别是在使用LoRA微调时这种配置方式避免了90%以上的内存相关错误。

相关文章:

别再踩坑了!用DeepSpeed Zero-3跑大模型,记得关掉`low_cpu_mem_usage`和`device_map`

DeepSpeed Zero-3与Hugging Face内存优化选项的兼容性深度解析 当你第一次看到DeepSpeed Zero-3 is not compatible with low_cpu_mem_usageTrue or with passing a device_map这个报错时,可能会感到困惑。毕竟,low_cpu_mem_usage和device_map都是Huggin…...

vulhub系列-84-hacksudo: aliens(超详细)

免责声明:本文记录的是 hacksudo: aliens 渗透测试靶机 的解题过程,所有操作均在 本地授权环境 中进行。内容仅供 网络安全学习与防护研究 使用,请勿用于任何非法用途。读者应遵守《网络安全法》及相关法律法规,自觉维护网络空间安…...

XUnity.AutoTranslator终极指南:5分钟让外语游戏变母语

XUnity.AutoTranslator终极指南:5分钟让外语游戏变母语 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语Unity游戏的语言障碍而烦恼吗?XUnity.AutoTranslator是一款革命性…...

如何用Red Panda Dev-C++ 7快速掌握C++编程:轻量级开发环境终极指南

如何用Red Panda Dev-C 7快速掌握C编程:轻量级开发环境终极指南 【免费下载链接】Dev-CPP A greatly improved Dev-Cpp 项目地址: https://gitcode.com/gh_mirrors/dev/Dev-CPP 还在为复杂的C开发环境配置而烦恼吗?Red Panda Dev-C 7为你提供了一…...

核心基础-消息队列-生产者/消费者模型

生产者/消费者模型 生产者/消费者模型是计算机科学中一种经典的并发设计模式,它通过引入一个共享缓冲区来解耦生产者和消费者,解决两者速度不匹配的问题。该模型在多线程编程、消息队列、操作系统调度等领域有着广泛的应用。作为运维工程师,理解这一模型对于排查系统瓶颈、…...

2025届最火的降重复率神器推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要降低AIGC也就是人工智能生成内容的比例,其核心是要减少机器生成所具有的典型特…...

Phi-mini-MoE-instruct惊艳效果:中英混合提问+跨语言答案生成实录

Phi-mini-MoE-instruct惊艳效果:中英混合提问跨语言答案生成实录 1. 模型能力全景展示 Phi-mini-MoE-instruct作为一款轻量级混合专家(MoE)指令型小语言模型,在多个基准测试中展现出超越同级模型的卓越性能: 代码能…...

2025_NIPS_Convergence Theorems for Entropy-Regularized and Distributional Reinforcement Learning

文章核心总结与创新点 主要内容 该研究聚焦熵正则化强化学习(ERL)和分布强化学习(DRL)的收敛性问题,针对传统ERL在温度趋近于零时最优策略模糊、DRL缺乏收敛迭代方案的缺陷,提出温度解耦策略(temperature decoupling gambit),构建了可解释、保多样性的最优策略框架,…...

2025_NIPS_CALM: Culturally Self-Aware Language Models

文章核心总结与翻译 一、主要内容 本文提出CALM(Culturally Self-Aware Language Models)框架,旨在为语言模型赋予文化自我意识,解决现有模型将文化视为静态知识、缺乏动态适应性的问题。CALM通过四个核心模块实现文化感知:抽象认知空间分离任务语义与显式/隐式文化特征…...

WSL2+VSCode搭建ESP-IDF 开发环境

1.以管理员身份打开 PowerShell win r ,输入cmd ,同时按 ctrl shift enter,进入管理员系统管理下,输入 powershell,2.启用适用于 Linux 的 Windows 子系统,输入如下命令: dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsyste…...

告别命令行!在VSCode里一键调试你的Vue3 + Element Plus项目(附完整launch.json配置)

在VSCode中高效调试Vue3与Element Plus项目的完整指南 每次保存代码后都要手动刷新浏览器?终端窗口和编辑器来回切换导致注意力分散?作为长期使用Vue进行企业级应用开发的工程师,我发现VSCode内置的调试工具能彻底改变这种低效的工作模式。本…...

家庭收支链上记账小程序,每笔收支写入链式结构,不可删除,支持家庭成员共同查看,解决账目争议,隐瞒消费问题。

👉 「家庭收支链上记账小程序(Family Ledger Chain)」适用于:✅ 夫妻共同记账✅ 合租室友 AA 结算✅ 父母子女共管账户✅ 解决“钱花哪了”“谁没出钱”的信任问题一、实际应用场景描述(Scenario)你和家人共…...

嵌入式软件开发系列文章——1 ARM架构下Cortex-M 内核单片机开发环境搭建—1-3 STM32CubeMX

1-3 STM32CubeMX 文章目录1-3 STM32CubeMX1-3.1 STM32CubeMX 简介1-3.2 软件获取1-3.2.1 Java 获取1-3.2.2 STM32CubeMX 获取1-3.3 软件安装1-3.2.1 Java 安装1-3.2.2 STM32CubeMX 安装1-3.4 STM32固件包简介1-3.5 STM32固件包获取1-3.6 STM32固件包安装1-3.5 参考文献1-3.1 ST…...

个人电子合同自动签署程序,实现基于哈希的简易签约,记录签约时间,双方标识,生成不可篡改凭证,适用于私人借款,合租协议。防止事后抵赖。

结合区块链与创新思维课程中的「去中心信任、不可篡改、时间戳证明」思想,设计一个👉 「个人电子合同自动签署程序(Hash-Based Signing System)」适用于:✅ 私人借款✅ 合租协议✅ 兼职/合作约定✅ 防事后抵赖的小型契…...

手把手教你用uni-app搞定蓝牙小票打印(附芝珂/佳博/精臣CPCL指令集)

基于uni-app的蓝牙小票打印全流程实战指南 在移动互联网时代,小型商户和仓库管理对便携式打印的需求日益增长。想象一下这样的场景:当顾客在零售店完成购物后,店员可以直接通过手机或平板快速打印出清晰的小票;仓库管理员在盘点货…...

STM32 AES256加密串口IAP升级Bootloader程序及上位机软件全套资料获取:加...

stm32 AES256加密 串口IAP升级 bootloader程序 通过上位机将keil生成的BIN文件进行AES加密,得到新的加密文件,加密需要自己设置秘钥,加密升级包直接烧录不能运行。 通过串口升级上位机将加密包发送到单片机, 单片机接收到数据后&a…...

VSCode量子插件配置失效?2026 v1.8.3补丁修复了92%的Qiskit-OpenQASM桥接故障(附官方未公开诊断清单)

更多请点击: https://intelliparadigm.com 第一章:VSCode量子插件配置失效的典型现象与影响面分析 当 VSCode 中安装的量子计算相关插件(如 Q# Extension、Qiskit for VS Code 或 Microsoft Quantum Development Kit)突然无法识别…...

OpenClaw 自动化验收从零到一:环境部署、核心原理与首次运行排错全记录

二、 实战第一步:OpenClaw 运行环境与依赖部署详解 万事开头难,跑通环境是成功的一半。OpenClaw 的核心是一个 Python 包,但其运行依赖一个清晰的环境。下面我们一步步来,确保你的基础打得牢。 2.1 环境准备:Python 与虚拟环境 强烈建议使用 Python 3.8 及以上版本。为…...

065.模型安全初探:对抗样本攻击对YOLO模型的影响

一、从产线误检说起 上周产线上出了件怪事:一套部署了YOLOv5的视觉检测系统,连续三天在凌晨三点左右误将良品判为缺陷。现场工程师查遍了光照、机械振动、温湿度,甚至怀疑是电源干扰,最后发现有人工巡检员经过时,系统误检率就会飙升。我们调取日志分析,发现巡检员工服上…...

Open Interpreter股票API接入:金融数据写库实战步骤

Open Interpreter股票API接入:金融数据写库实战步骤 1. 项目概述与环境准备 今天我们来探索一个非常实用的技术场景:如何使用Open Interpreter接入股票API,并将获取的金融数据自动写入数据库。这个方案特别适合需要定期收集和分析股票数据的…...

YOLO系列算法改进 | C3k2改进篇 | 融合SFD显著特征判别模块,全局通道关系建模驱动复杂环境精准感知,适应遥感与边缘部署场景 | ICME 2026

0. 前言 本文介绍SFD显著特征判别模块(Salient Feature Discriminator),并将其集成到ultralytics最新发布的YOLO26目标检测算法中,构建C3k2_SFD创新模块。SFD是一种通过通道间关系建模和图结构推理来判别显著特征的注意力机制,旨在解决复杂背景下目标与背景难以区分、微小…...

【数据分析电商领域】电商类指标

电商核心指标 GMV 转化 流量 用户 履约 商品 营销 风控 流量:UV、PV、访问深度、跳出率转化:转化率、加购率、支付率、客单价(AOV)用户:新客占比、复购率、留存率、LTV交易:GMV、订单量、支付金额、…...

AI Agent是下一个风口?揭秘能自主完成任务的AI助手,ChatGPT之后最大的革命!

最近两年,“AI Agent"这个词突然刷屏了。朋友圈有人说它是"下一个风口”,科技媒体说它是"ChatGPT之后最大的革命",各种发布会上CEO们也都在扯这个词——但大多数人其实根本不知道它到底是什么东西。 我也一样&#xff0c…...

大语言模型自我进化:从依赖人类到自主迭代,未来AI如何实现持续成长?

随着大语言模型(LLMs)的发展,仅依靠人类监督来提升模型性能的成本高昂且存在局限。本文提出了“自我改进”的概念,即模型自主生成数据、评估输出并迭代优化自身能力。文章从系统级视角提出了一套整合现有技术的统一框架&#xff0…...

时间复杂度讲解

一、基础概念数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。而算法是定义良好的计算过程,简单来说就是将输入转化为输出的一系列计算步骤。我们用复杂度来衡量算法的优劣。复杂度分为时间复杂度(…...

Oumuamua-7b-RP惊艳表现:在用户插入英语单词时自动切换混合语应答模式

Oumuamua-7b-RP惊艳表现:在用户插入英语单词时自动切换混合语应答模式 1. 项目概述 Oumuamua-7b-RP 是一款基于Mistral-7B架构的日语角色扮演专用大语言模型Web界面,专为沉浸式角色对话体验设计。这个模型最令人惊艳的功能是能够智能识别用户输入中的英…...

写代码时频繁打喷嚏?别信“有人想你”,这是身体系统的预警日志

写代码时频繁打喷嚏?别信“有人想你”,这是身体系统的预警日志 专栏链接:匠身颐和 作者:培风图南以星河揽胜 技以匠心,身以颐和。穷源溯流,昂霄耸壑;至道嘉猷,静水流深。 前言 作为…...

Oumuamua-7b-RP步骤详解:Web UI中调整Top-k=30提升角色专注度实操

Oumuamua-7b-RP步骤详解:Web UI中调整Top-k30提升角色专注度实操 1. 项目概述 Oumuamua-7b-RP 是一款专为日语角色扮演对话设计的Web界面大语言模型,基于Mistral-7B架构开发。这个工具特别适合想要体验沉浸式日语角色对话的用户,通过简单的…...

终极指南:3步掌握哔哩下载姬,轻松获取8K超清B站视频

终极指南:3步掌握哔哩下载姬,轻松获取8K超清B站视频 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印…...

RISC-V微架构侧信道攻击检测技术解析

1. RISC-V微架构侧信道攻击检测技术解析 在开源指令集架构RISC-V快速普及的背景下,其微架构安全问题日益凸显。最近我在使用gem5仿真器研究RISC-V处理器时,发现了一种名为FlushFault的微架构侧信道攻击,这种攻击通过操纵指令缓存状态和异常处…...