Skip to content

踩坑GitHub openvla/openvla2024-07-12

OpenVLA量化微调报错Variable._execution_engine. ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Variable._execution_engine.run_backward eror during finetuning(GitHub openvla/openvla #25)

状态:有绕过办法

问题 ​

在单节点2卡DGX V100环境下运行OpenVLA finetune.py 脚本并开启 --use_quantization true 时,执行 normalized_loss.backward() 触发 RuntimeError: Expected to mark a variable ready only once。错误提示参数在多次重入反向传播中被复用或在forward外使用,导致C++引擎执行失败。

环境 ​

硬件:单节点2x DGX V100 GPU;软件:OpenVLA finetune.py脚本,Python 3.10,PyTorch(含torch.utils.checkpoint),启用量化(Quantization/QLoRA)与LoRA微调。

解决办法 ​

  1. 确保拉取最新代码以包含优化器 zero_grad 调用修复。
  2. 初始化DDP包装时显式设置 find_unused_parameters=True、gradient_as_bucket_view=True 及 static_graph=True。
  3. 启用梯度检查点时传入 gradient_checkpointing_kwargs={"use_reentrant":True} 以支持重入式反向传播。
  4. 确认量化参数已冻结,仅训练fp32/bf16参数(通常加载 load_in_4bit 后包裹LoRA适配器会自动处理)。

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

来源

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

  1. GitHub openvla/openvla #25:Variable._execution_engine.run_backward eror during finetuning访问 2026-10-26