外观
踩坑GitHub NVIDIA/Isaac-GR00T1 个月前
24GB GPU微调GR00T OOM:仅改bfloat16无效需配8bit优化器
本文由 AI 根据公开内容整理,可能有误,请以原文为准:loading pretrained model with bfloat16 during fine-tuning on 24GB GPU(GitHub NVIDIA/Isaac-GR00T #724)
状态:已解决
问题
在24GB GPU上微调GR00T N1.7时,仅在setup.py中指定torch.bfloat16加载预训练模型仍导致显存溢出(OOM)或训练崩溃。原因是OOM主要源于Adam优化器状态而非模型权重,单纯降低权重精度无法适配24GB显存限制。
环境
NVIDIA RTX 4090 (24GB), Python 3.12, CUDA 13.0.2, IsaacLab, GR00T N1.7, bitsandbytes
解决办法
- 修改
gr00t/experiment/launch_finetune.py配置:设置config.model.load_bf16 = True与config.model.backbone_trainable_params_fp32 = False。 - 启用8bit优化器与梯度检查点:设置
config.training.optim = "paged_adamw_8bit"及config.training.gradient_checkpointing = True。 - 手动安装
bitsandbytes库以支持8bit优化器,并卸载deepspeed以避免单卡启动报错。 - 将学习率从默认1e-4调低至2e-5~7e-5区间以防止发散,实测batch size=8时峰值显存约21.9GB,训练速度约3.8 it/s。
讨论原作者:@guijuzhejiang 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。