|
_conf = { |
|
"albert": NormalizedTextConfig, |
|
"bart": BartLikeNormalizedTextConfig, |
|
"bert": NormalizedTextConfig, |
|
"big-bird": NormalizedTextConfig, |
|
"bigbird-pegasus": BartLikeNormalizedTextConfig, |
|
"blenderbot": BartLikeNormalizedTextConfig, |
|
"blenderbot-small": BartLikeNormalizedTextConfig, |
|
"bloom": NormalizedTextConfig.with_args(num_layers="n_layer"), |
|
"falcon": NormalizedTextConfig, |
|
"camembert": NormalizedTextConfig, |
|
"codegen": GPT2LikeNormalizedTextConfig, |
|
"cvt": NormalizedVisionConfig, |
|
"deberta": NormalizedTextConfig, |
|
"deberta-v2": NormalizedTextConfig, |
|
"deit": NormalizedVisionConfig, |
|
"distilbert": NormalizedTextConfig.with_args(num_attention_heads="n_heads", hidden_size="dim"), |
|
"donut-swin": NormalizedVisionConfig, |
|
"electra": NormalizedTextConfig, |
|
"encoder-decoder": NormalizedEncoderDecoderConfig, |
|
"gemma": NormalizedTextConfigWithGQA, |
|
"gpt2": GPT2LikeNormalizedTextConfig, |
|
"gpt-bigcode": GPTBigCodeNormalizedTextConfig, |
|
"gpt-neo": NormalizedTextConfig.with_args(num_attention_heads="num_heads"), |
|
"gpt-neox": NormalizedTextConfig, |
|
"gptj": GPT2LikeNormalizedTextConfig, |
|
"imagegpt": GPT2LikeNormalizedTextConfig, |
|
"llama": NormalizedTextConfigWithGQA, |
|
"longt5": T5LikeNormalizedTextConfig, |
|
"marian": BartLikeNormalizedTextConfig, |
|
"markuplm": NormalizedTextConfig, |
|
"mbart": BartLikeNormalizedTextConfig, |
|
"mistral": NormalizedTextConfigWithGQA, |
|
"mixtral": NormalizedTextConfigWithGQA, |
|
"mpnet": NormalizedTextConfig, |
|
"mpt": MPTNormalizedTextConfig, |
|
"mt5": T5LikeNormalizedTextConfig, |
|
"m2m-100": BartLikeNormalizedTextConfig, |
|
"nystromformer": NormalizedTextConfig, |
|
"opt": NormalizedTextConfig, |
|
"pegasus": BartLikeNormalizedTextConfig, |
|
"pix2struct": Pix2StructNormalizedTextConfig, |
|
"phi": NormalizedTextConfig, |
|
"phi3": NormalizedTextConfigWithGQA, |
|
"phi3small": NormalizedTextConfigWithGQA, |
|
"poolformer": NormalizedVisionConfig, |
|
"regnet": NormalizedVisionConfig, |
|
"resnet": NormalizedVisionConfig, |
|
"roberta": NormalizedTextConfig, |
|
"segformer": NormalizedSegformerConfig, |
|
"speech-to-text": SpeechToTextLikeNormalizedTextConfig, |
|
"splinter": NormalizedTextConfig, |
|
"t5": T5LikeNormalizedTextConfig, |
|
"trocr": TrOCRLikeNormalizedTextConfig, |
|
"vision-encoder-decoder": NormalizedEncoderDecoderConfig, |
|
"vit": NormalizedVisionConfig, |
|
"whisper": WhisperLikeNormalizedTextConfig, |
|
"xlm-roberta": NormalizedTextConfig, |
|
"yolos": NormalizedVisionConfig, |
|
"qwen2": NormalizedTextConfig, |
|
"granite": NormalizedTextConfigWithGQA, |
|
} |
Feature request
Release v1.24.0 successfully supports exporting a ModernBERT model to ONNX; however, this support does not extend to enabling optimizations via the
--optimizeflag inoptimum-cli.I'm not sure how much needs to go into enabling this in a more formal capacity, but a very brief attempt by me locally at simply adding
modernbertin:optimum/optimum/onnxruntime/utils.py
Lines 101 to 149 in afff2fa
and
optimum/optimum/utils/normalized_config.py
Lines 233 to 294 in afff2fa
with the former mapping to
"bert"and the latter mapping toNormalizedTextConfigseemed to allow me to export the model with optimizations. In my brief testing after that I didn't notice any glaring issues with the output and observed some expected speedups.Motivation
I would like to export an optimized ONNX version of my ModernBERT model.
Your contribution
I'd be happy to submit a PR if given more information on how this support is typically added.