Skip to content

zero3_offload模式下,DataLoader进程由于Fork + COW 机制导致大量内存消耗并OOM #9687

Description

@dv0

Checklist / 检查清单

  • I have searched existing issues, and this is a new bug report. / 我已经搜索过现有的 issues,确认这是一个新的 bug report。

Bug Description / Bug 描述

zero3_offload模式下,DataLoader默认使用fork模式创建进程,此时父进程已offloadd到内存大量数据,由于Fork + COW 机制的原因,在epoch完成后重启DataLoader的时机会消耗大量内并导致OOM。
此issue也提到类似问题 #9649

解决办法:
1、开启dataloader_persistent_workers选项能够有一定程度缓解,但还是有大量额外内占用
2、使用spawn模式创建DataLoader进程规避Fork + COW带来的问题(还未验证)

How to Reproduce / 如何复现

ms-swift 版本: 4.3.2
Python: 3.12
触发条件: DeepSpeed ZeRO-3 + torchrun (8 GPU)
模型: Qwen3.6-27B

Additional Information / 补充信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions