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

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-04-29-openvla-333
> 频道：pitfalls | 更新日期：2026-04-29 | 标签：auto, github-issue, openvla
> 核心摘要：OpenVLA在LIBERO-Spatial上LoRA微调出现模式崩溃与Loss突增，通过在finetune.py优化器步骤前添加clip_grad_norm_解决。

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

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[LoRA fine-tune on LIBERO-Spatial: 0% success, mode collapse — missing clip_grad_norm_ in finetune.py?](https://github.com/openvla/openvla/issues/333)（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 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub openvla/openvla #333：LoRA fine-tune on LIBERO-Spatial: 0% success, mode collapse — missing clip_grad_norm_ in finetune.py?](https://github.com/openvla/openvla/issues/333)