MNN icon indicating copy to clipboard operation
MNN copied to clipboard

qwen3-8b 模型导出错误

Open andyt9527 opened this issue 1 month ago • 1 comments

使用最新的代码,先安装依赖 然后python3 llmexport.py --path Qwen3-8B --export mnn --dst_path Qwen3-8B-mnn导出模型的时候有如下的报错

💥 Failed export onnx model to Traceback (most recent call last): File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_capture_strategies.py", line 118, in call exported_program = self._capture(model, args, kwargs, dynamic_shapes) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_capture_strategies.py", line 210, in _capture return torch.export.export( ^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/init.py", line 311, in export raise e File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/init.py", line 277, in export return _export( ^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1163, in wrapper raise e File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1129, in wrapper ep = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/exported_program.py", line 124, in wrapper return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 2255, in _export ep = _export_for_training( ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1163, in wrapper raise e File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1129, in wrapper ep = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/exported_program.py", line 124, in wrapper return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 2071, in _export_for_training export_artifact = export_func( ^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 2002, in _non_strict_export aten_export_artifact = _to_aten_func( # type: ignore[operator] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1793, in _export_to_aten_ir_make_fx gm, graph_signature = transform(_make_fx_helper)( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1922, in _aot_export_non_strict gm, sig = aot_export(wrapped_mod, args, kwargs=kwargs, **flags) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1706, in _make_fx_helper gm = make_fx( ^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 2429, in wrapped return make_fx_tracer.trace(f, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 2356, in trace return self._trace_inner(f, *args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 2318, in _trace_inner t = dispatch_trace( ^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/_compile.py", line 53, in inner return disable_fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/_dynamo/eval_frame.py", line 1044, in _fn return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1303, in dispatch_trace graph = tracer.trace(root, concrete_args) # type: ignore[arg-type] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1908, in trace res = super().trace(root, concrete_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 868, in trace (self.create_arg(fn(*args)),), ^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1361, in wrapped out = f(*tensors) # type:ignore[call-arg] ^^^^^^^^^^^ File "", line 1, in File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1593, in wrapped_fn return tuple(flat_fn(*args)) ^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/_functorch/_aot_autograd/utils.py", line 187, in flat_fn tree_out = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/_functorch/_aot_autograd/graph_capture_wrappers.py", line 1354, in functional_call out = mod(*args[params_len:], **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 843, in module_call_wrapper return self.call_module(mod, forward, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1997, in call_module return Tracer.call_module(self, m, forward, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 560, in call_module ret_val = forward(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 836, in forward return _orig_module_call(mod, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1775, in _wrapped_call_impl return self._call_impl(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1786, in _call_impl return forward_call(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/export/_trace.py", line 1906, in forward tree_out = mod(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 843, in module_call_wrapper return self.call_module(mod, forward, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1997, in call_module return Tracer.call_module(self, m, forward, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 560, in call_module ret_val = forward(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/_symbolic_trace.py", line 836, in forward return _orig_module_call(mod, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1775, in _wrapped_call_impl return self._call_impl(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1786, in _call_impl return forward_call(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/MNN/transformers/llm/export/llmexport.py", line 413, in forward hidden_states = hidden_states[:, logits_index:, :] ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1409, in torch_function return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/proxy_tensor.py", line 1479, in torch_function return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/_export/non_strict_utils.py", line 1066, in torch_function return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/sym_node.py", line 518, in guard_int r = self.evaluate() ^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/sym_node.py", line 512, in evaluate return self.shape_env.evaluate_sym_node(self, size_oblivious) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7233, in evaluate_sym_node return self.evaluate_expr( ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7333, in evaluate_expr return self._inner_evaluate_expr( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/recording.py", line 272, in wrapper return retlog(fn(*args, **kwargs)) ^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7356, in _inner_evaluate_expr return self._evaluate_expr( ^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/fx/experimental/symbolic_shapes.py", line 7574, in _evaluate_expr raise self._make_data_dependent_error( torch.fx.experimental.symbolic_shapes.GuardOnDataDependentSymNode: Could not extract specialized integer from data-dependent expression u0 (unhinted: u0). (Size-like symbols: none)

Caused by: (_export/non_strict_utils.py:1066 in torch_function) For more information, run with TORCH_LOGS="dynamic" For extended logs when we create symbols, also add TORCHDYNAMO_EXTENDED_DEBUG_CREATE_SYMBOL="u0" If you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1 For more debugging help, see https://docs.google.com/document/d/1HSuTTVvYH1pTew89Rtpeu84Ht3nQEFTYhAX3Ypa_xJs/edit?usp=sharing

For C++ stack trace, run with TORCHDYNAMO_EXTENDED_DEBUG_CPP=1

The following call raised this error: File "/data/sw-build/andy.tian/MNN/transformers/llm/export/llmexport.py", line 413, in forward hidden_states = hidden_states[:, logits_index:, :]

The error above occurred when calling torch.export.export. If you would like to view some more information about this error, and get a list of all other errors that may occur in your export call, you can replace your export() call with draft_export().

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/data/sw-build/andy.tian/MNN/transformers/llm/export/utils/spinner.py", line 18, in wrapper result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/MNN/transformers/llm/export/llmexport.py", line 840, in export_onnx torch.onnx.export( File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/init.py", line 296, in export return _compat.export_compat( ^^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_compat.py", line 143, in export_compat onnx_program = _core.export( ^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_flags.py", line 23, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/sw-build/andy.tian/miniforge3/envs/mnn_llm_quant/lib/python3.12/site-packages/torch/onnx/_internal/exporter/_core.py", line 1385, in export raise _errors.TorchExportError( torch.onnx._internal.exporter._errors.TorchExportError: Failed to export the model with torch.export. This is step 1/3 of exporting the model to ONNX. Next steps:

  • Modify the model code for torch.export.export to succeed. Refer to https://pytorch.org/docs/stable/generated/exportdb/index.html for more information.
  • Debug torch.export.export and submit a PR to PyTorch.
  • Create an issue in the PyTorch GitHub repository against the torch.export component and attach the full error stack as well as reproduction scripts.

Exception summary

<class 'torch.fx.experimental.symbolic_shapes.GuardOnDataDependentSymNode'>: Could not extract specialized integer from data-dependent expression u0 (unhinted: u0). (Size-like symbols: none)

Caused by: (_export/non_strict_utils.py:1066 in torch_function) For more information, run with TORCH_LOGS="dynamic" For extended logs when we create symbols, also add TORCHDYNAMO_EXTENDED_DEBUG_CREATE_SYMBOL="u0" If you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1 For more debugging help, see https://docs.google.com/document/d/1HSuTTVvYH1pTew89Rtpeu84Ht3nQEFTYhAX3Ypa_xJs/edit?usp=sharing

For C++ stack trace, run with TORCHDYNAMO_EXTENDED_DEBUG_CPP=1

The following call raised this error: File "/data/sw-build/andy.tian/MNN/transformers/llm/export/llmexport.py", line 413, in forward hidden_states = hidden_states[:, logits_index:, :]

The error above occurred when calling torch.export.export. If you would like to view some more information about this error, and get a list of all other errors that may occur in your export call, you can replace your export() call with draft_export().

(Refer to the full stack trace above for more information.)

andyt9527 avatar Oct 30 '25 11:10 andyt9527

更新一下代码再试一下吧

wangzhaode avatar Nov 13 '25 09:11 wangzhaode