Safetensors to onnx conversion failed

#28
by harisnaeem - opened
ONNX Community org

I tried to convert "facebook/musicgen-stereo-small" but it throws out this error:

Conversion failed: /usr/local/lib/python3.10/site-packages/torch/utils/device.py:103: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.detach().clone() or sourceTensor.detach().clone().requires_grad(True), rather than torch.tensor(sourceTensor). return func(*args, **kwargs) Config of the text_encoder: <class 'transformers.models.t5.modeling_t5.T5EncoderModel'> is overwritten by shared text_encoder config: T5Config { "_name_or_path": "t5-base", "architectures": [ "T5ForConditionalGeneration" ], "classifier_dropout": 0.0, "d_ff": 3072, "d_kv": 64, "d_model": 768, "decoder_start_token_id": 0, "dense_act_fn": "relu", "dropout_rate": 0.1, "eos_token_id": 1, "feed_forward_proj": "relu", "initializer_factor": 1.0, "is_encoder_decoder": true, "is_gated_act": false, "layer_norm_epsilon": 1e-06, "model_type": "t5", "n_positions": 512, "num_decoder_layers": 12, "num_heads": 12, "num_layers": 12, "output_past": true, "pad_token_id": 0, "relative_attention_max_distance": 128, "relative_attention_num_buckets": 32, "task_specific_params": { "summarization": { "early_stopping": true, "length_penalty": 2.0, "max_length": 200, "min_length": 30, "no_repeat_ngram_size": 3, "num_beams": 4, "prefix": "summarize: " }, "translation_en_to_de": { "early_stopping": true, "max_length": 300, "num_beams": 4, "prefix": "translate English to German: " }, "translation_en_to_fr": { "early_stopping": true, "max_length": 300, "num_beams": 4, "prefix": "translate English to French: " }, "translation_en_to_ro": { "early_stopping": true, "max_length": 300, "num_beams": 4, "prefix": "translate English to Romanian: " } }, "torch_dtype": "float32", "transformers_version": "4.49.0", "use_cache": true, "vocab_size": 32128 }

Config of the audio_encoder: <class 'transformers.models.encodec.modeling_encodec.EncodecModel'> is overwritten by shared audio_encoder config: EncodecConfig { "_name_or_path": "facebook/encodec_32khz", "architectures": [ "EncodecModel" ], "audio_channels": 1, "chunk_length_s": null, "codebook_dim": 128, "codebook_size": 2048, "compress": 2, "dilation_growth_rate": 2, "hidden_size": 128, "kernel_size": 7, "last_kernel_size": 7, "model_type": "encodec", "norm_type": "weight_norm", "normalize": false, "num_filters": 64, "num_lstm_layers": 2, "num_residual_layers": 1, "overlap": null, "pad_mode": "reflect", "residual_kernel_size": 3, "sampling_rate": 32000, "target_bandwidths": [ 2.2 ], "torch_dtype": "float32", "transformers_version": "4.49.0", "trim_right_ratio": 1.0, "upsampling_ratios": [ 8, 5, 4, 4 ], "use_causal_conv": false, "use_conv_shortcut": false }

Config of the decoder: <class 'transformers.models.musicgen.modeling_musicgen.MusicgenForCausalLM'> is overwritten by shared decoder config: MusicgenDecoderConfig { "activation_dropout": 0.0, "activation_function": "gelu", "attention_dropout": 0.0, "audio_channels": 2, "bos_token_id": 2048, "dropout": 0.1, "ffn_dim": 4096, "hidden_size": 1024, "initializer_factor": 0.02, "layerdrop": 0.0, "max_position_embeddings": 2048, "model_type": "musicgen_decoder", "num_attention_heads": 16, "num_codebooks": 8, "num_hidden_layers": 24, "pad_token_id": 2048, "scale_embedding": false, "tie_word_embeddings": false, "torch_dtype": "float32", "transformers_version": "4.49.0", "use_cache": true, "vocab_size": 2048 }

/usr/local/lib/python3.10/site-packages/transformers/models/encodec/modeling_encodec.py:442: TracerWarning: torch.tensor results are registered as constants in the trace. You can safely ignore this warning if you use this function to create tensors out of constant variables that would be the same every time you call this function. In any other case, this might cause the trace to be incorrect. quantized_out = torch.tensor(0.0, device=codes.device) /usr/local/lib/python3.10/site-packages/transformers/models/encodec/modeling_encodec.py:443: TracerWarning: Iterating over a tensor might cause the trace to be incorrect. Passing a tensor of different shape won't change the number of iterations executed (and might lead to errors or silently give incorrect results). for i, indices in enumerate(codes): Traceback (most recent call last): File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/home/user/app/transformers.js/scripts/convert.py", line 456, in <module> main() File "/home/user/app/transformers.js/scripts/convert.py", line 341, in main main_export(**export_kwargs) File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/main.py", line 375, in main_export onnx_export_from_model( File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/convert.py", line 1177, in onnx_export_from_model _, onnx_outputs = export_models( File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/convert.py", line 764, in export_models export( File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/convert.py", line 868, in export export_output = export_pytorch( File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/convert.py", line 565, in export_pytorch onnx_export( File "/usr/local/lib/python3.10/site-packages/torch/onnx/init.py", line 424, in export export( File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 522, in export _export( File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 1457, in _export graph, params_dict, torch_out = _model_to_graph( File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 1080, in _model_to_graph graph, params, torch_out, module = _create_jit_graph(model, args) File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 964, in _create_jit_graph graph, torch_out = _trace_and_get_graph_from_model(model, args) File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 871, in _trace_and_get_graph_from_model trace_graph, torch_out, inputs_states = torch.jit._get_trace_graph( File "/usr/local/lib/python3.10/site-packages/torch/jit/_trace.py", line 1504, in _get_trace_graph outs = ONNXTracedModule( File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1773, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1784, in _call_impl return forward_call(*args, **kwargs) File "/usr/local/lib/python3.10/site-packages/torch/jit/_trace.py", line 138, in forward graph, _out = torch._C._create_graph_by_tracing( File "/usr/local/lib/python3.10/site-packages/torch/jit/_trace.py", line 129, in wrapper outs.append(self.inner(*trace_inputs)) File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1773, in _wrapped_call_impl return self._call_impl(*args, **kwargs) File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1784, in _call_impl return forward_call(*args, **kwargs) File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1763, in _slow_forward result = self.forward(*input, **kwargs) File "/usr/local/lib/python3.10/site-packages/optimum/exporters/onnx/model_patcher.py", line 1161, in patched_forward audio_values = self._model._decode_frame(audio_codes[0], audio_scales) File "/usr/local/lib/python3.10/site-packages/transformers/models/encodec/modeling_encodec.py", line 711, in _decode_frame embeddings = self.quantizer.decode(codes) File "/usr/local/lib/python3.10/site-packages/transformers/models/encodec/modeling_encodec.py", line 444, in decode layer = self.layers[i] File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/container.py", line 377, in getitem return self._modules[self._get_abs_string_index(idx)] File "/usr/local/lib/python3.10/site-packages/torch/nn/modules/container.py", line 361, in _get_abs_string_index raise IndexError(f"index {idx} is out of range") IndexError: index 4 is out of range

Sign up or log in to comment