外观
踩坑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微调。
解决办法
- 确保拉取最新代码以包含优化器
zero_grad调用修复。 - 初始化DDP包装时显式设置
find_unused_parameters=True、gradient_as_bucket_view=True及static_graph=True。 - 启用梯度检查点时传入
gradient_checkpointing_kwargs={"use_reentrant":True}以支持重入式反向传播。 - 确认量化参数已冻结,仅训练fp32/bf16参数(通常加载
load_in_4bit后包裹LoRA适配器会自动处理)。
讨论原作者:@youliangtan 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。