问题描述
The following values were not passed to `accelerate launch` and had defaults used instead: `--dynamo_backend` was set to a value of `'no'
问题分析
- dynamo_backend:是一个字符串或 DynamoBackend,设置一个 dynamo 后端从而利用 Torch dynamo 优化你的训练。默认为
'no'
,可以取的值有:no,eager,aot_eager,inductor,aot_ts_nvfuser,nvprims_nvfuser,cudagraphs,ofi,fx2trt,onnxrt,tensorrt,ipex,tvm
。 - 这里的 dynamo_backend 可以选择需要的Torch Dynamo。
- Torch Dynamo 是一个设计用于加速未修改的 PyTorch 程序的 Python 级即时(JIT)编译器。它通过 Python Frame Evaluation Hooks(Python 框架评估钩子)来实现这一目标,以便在运行时动态地生成和优化代码。这使得 TorchDynamo 可以有效地处理各种 Python 代码,包括包含控制流(如循环和条件语句)的代码,而无需进行任何修改。
问题解决
方法一:不使用Torch Dynamo工具
在accelerate的config中加入:
dynamo_config:
dynamo_backend: NO
或运行时,添加
--dynamo_backend no
方法二:使用Torch Dynamo工具
在accelerate的config中加入:
dynamo_config:
dynamo_backend: INDUCTOR
或运行时,添加
--dynamo_backend inductor
解决结果
代码能跑,但出现警告:
[rank0]:[2024-04-30 19:48:41,669] [0/0] torch._dynamo.variables.torch: [WARNING] Profiler function <class 'torch.autograd.profiler.record_function'> will be ignored
Traceback (most recent call last):
File "/home/XX/.vscode-server/extensions/ms-python.debugpy-2024.0.0-linux-x64/bundled/libs/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 371, in __call__
if frame_cache_key in cache_skips:
TypeError: unhashable type: 'dict'
Traceback (most recent call last):
File "/home/XX/