1
resposta

[Bug] Erro da versão o opset continua sem solução

Tentei executar os códigos da aula mas o colab ao executar a linha:

from optimum.onnxruntime import ORTModelForSequenceClassification
 modelo_tc = ORTModelForSequenceClassification.from_pretrained(modelo_id_tc, export=True)

ocorre o erro:

UnsupportedOperatorError: Exporting the operator '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

Tentei utilizar as versões citadas na preparação do ambiente e as soluções recomendadas no tópico ja existente mas sem solução. A documentação indica que setar opset=14 resolveria mas ele reclama que o parametro é invalido. Em fim, não consegui avançar deste ponto.

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Jackson! Como vai?

O erro indica que o modelo está sendo exportado com opset 11, mas o operador aten::scaled_dot_product_attention só é suportado a partir do opset 14.
Vamos corrigir isso aumentando a versão do opset e ajustando o código.

Veja este exemplo:


from optimum.onnxruntime import ORTModelForSequenceClassification

modelo_tc = ORTModelForSequenceClassification.from_pretrained(
    modelo_id_tc,
    export=True,
    onnx_export_kwargs={"opset": 17}  # define o opset minimo 14, ideal 17
)

O código acima exporta o modelo para ONNX usando o opset 17 e carrega a versão otimizada pelo ONNX Runtime.

Se mesmo assim o erro continuar, defina esta variável antes de importar o modelo (ela desativa a atenção SDP no export):


import os
os.environ["PYTORCH_ONNX_DISABLE_FUNCTIONAL_SDP_ATTENTION"] = "1"

E atualize os pacotes do ambiente:


!pip install -U "optimum[onnxruntime]" onnx "onnxruntime>=1.17.0" "transformers>=4.39.0" "torch>=2.1"

Resumo:

  • Use onnx_export_kwargs={"opset": 17}
  • Atualize as bibliotecas
  • Se precisar, use a variável de ambiente para evitar falhas

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

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