Skip to content

踩坑GitHub openvla/openvla6 个月前

OpenVLA LoRA微调LIBERO-Spatial模式崩溃0%成功率,缺失梯度裁剪致Loss突。 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:LoRA fine-tune on LIBERO-Spatial: 0% success, mode collapse — missing clip_grad_norm_ in finetune.py?(GitHub openvla/openvla #333)

状态:已解决

问题 ​

使用openvla-7b在LIBERO-Spatial数据集进行LoRA微调(rank=32, LR=5e-4)时,训练约6000步Loss从2.2突增至5.2,action_accuracy跌至0且无法恢复。推理时模型无视图像输入输出完全相同的动作token,导致评测成功率0%,呈现典型模式崩溃症状。

环境 ​

Lambda Labs GH200 (ARM64, H100, CUDA 12.3, PyTorch 2.2);基座模型openvla/openvla-7b;LoRA rank=32, batch=16, LR=5e-4;数据集libero_spatial_no_noops。

解决办法 ​

  1. 在 vla-scripts/finetune.py 约316行 optimizer.step() 之前插入代码 torch.nn.utils.clip_grad_norm_(trainable_params, max_norm=1.0) 以限制梯度范数。
  2. 建议将学习率从5e-4下调至2e-4作为辅助稳定措施,防止梯度爆炸复发。
  3. 在GH200等Hopper架构硬件上优先启用bf16混合精度训练,避免fp16下LoRA微调的不稳定性。
  4. 验证修复效果:应用梯度裁剪后训练20k步,Train Loss降至0.68,Action Accuracy升至0.82,LIBERO-Spatial评测成功率恢复至72%(36/50)。

讨论原作者:@shant0602 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub openvla/openvla #333:LoRA fine-tune on LIBERO-Spatial: 0% success, mode collapse — missing clip_grad_norm_ in finetune.py?访问 2026-10-26