3
respostas

[Bug] Erro da versão o opset

Ao executar a célula: modelo_tc = ORTModelForSequenceClassification.from_pretrained(modelo_id_tc, export = True) aparece o erro: aten::scaled_dot_product_attention' to ONNX opset version 11 is not supported. Support for this operator was added in version 14, try exporting with this version.

Já consultei no germini no próprio colab para mudar a versão do ONNX opset porém ele não consegue oferecer uma solução adequada, deixando o código cada vez maior e solicita a criação de diversos arquivos de configuração.

3 respostas

Resposta ao Problema: Erro de Versão do ONNX Opset

Olá, Josué.

O erro ocorre porque a operação scaled_dot_product_attention não é suportada na versão 11 do ONNX Opset, sendo necessária a versão 14 ou superior.

Causas do Erro:

  • Versão Incompatível: O modelo que você está tentando exportar utiliza operações introduzidas apenas nas versões mais recentes do ONNX.
  • Ferramentas Desatualizadas: O ambiente Colab pode estar usando uma versão antiga do ONNX ou Optimum.

Solução Sugerida:

  1. Atualizar a Versão do ONNX:Certifique-se de que o ONNX e o Optimum estão atualizados para as versões mais recentes.

  2. Configurar o Opset Manualmente:Durante a exportação do modelo, especifique a versão do opset como 14 para garantir compatibilidade.

  3. Ambiente Colab:Se estiver no Google Colab, verifique se o runtime está atualizado e reinicie o ambiente após atualizar as bibliotecas.

Esses ajustes devem resolver o problema de incompatibilidade do ONNX Opset. Caso persista, considere testar o modelo em um ambiente local para maior controle das versões.

Oi, Josué! Tudo bem?

O erro indica que a operação aten::scaled_dot_product_attention não é suportada na versão 11 do opset e que o suporte para essa operação foi adicionado na versão 14.

Para resolver isso, você pode tentar especificar a versão do opset ao exportar o modelo. O Optimum permite que você defina a versão do opset ao chamar a função from_pretrained. Você pode fazer isso da seguinte forma:

modelo_tc = ORTModelForSequenceClassification.from_pretrained(
    modelo_id_tc, 
    export=True, 
    opset=14
)

Ao adicionar o parâmetro opset=14, você está instruindo o Optimum a usar a versão 14 do opset do ONNX, que deve suportar a operação que está causando o erro.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

O colab me ofereceu essas opções, porém não resolve. Já reiniciei a sessão várias vezes e o erro continua. Ao colocar o opset=14 retorna o seguinte erro: ORTModel._from_transformers() got an unexpected keyword argument 'opset'

Fui na documentação: https://huggingface.co/docs/optimum/onnxruntime/quickstart tentei executar o código exemplo e o erro é o mesmo e na mesma célula que eu tento executar. Qualquer tentativa e upgrade na página https://huggingface.co/docs/optimum/onnxruntime/quickstart resulta em erro já no import do ORTModelForSequenceClassification.