Skip to content

qwen3-8b 模型导出错误 #3985

@andyt9527

Description

@andyt9527

使用最新的代码,先安装依赖
然后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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions