Skip to content

Community contribution - optimum.exporters.onnx support for new models! #555

@michaelbenayoun

Description

@michaelbenayoun

Following what was done by @chainyo in Transformers, in the ONNXConfig: Add a configuration for all available models issue, the idea is to add support for exporting new models in optimum.exporters.onnx.

This issue is about the working group specially created for this task. If you are interested in helping out, reply here, take a look at this organization, or add ChainYo#3610 on discord.

We want to contribute to Hugging Face's ONNX export implementation for all available models on Hugging Face Hub. There are already a lot of architectures implemented for converting PyTorch models to ONNX, but we need more! We need them all!

Feel free to join us in this adventure! Join the org by clicking here

Here is a non-exhaustive list of models that all models available:

  • Albert
  • BART
  • BeiT
  • BERT
  • BigBird (Critical issue: Support bigbird ONNX export with attention_type == "block_sparse" #754 (comment))
  • BigBirdPegasus (Critical issue: Support bigbird ONNX export with attention_type == "block_sparse" #754 (comment))
  • Blenderbot
  • BlenderbotSmall
  • BLIP-2
  • BLOOM
  • CamemBERT
  • CANINE
  • CLIP
  • CodeGen
  • ConvNext
  • ConvBert
  • CTRL
  • CvT
  • Data2VecText
  • Data2VecVision
  • Deberta
  • DebertaV2
  • DeiT
  • DecisionTransformer
  • DETR
  • Distilbert
  • DPR
  • DPT
  • ELECTRA
  • FNet
  • FSMT
  • Flaubert
  • FLAVA
  • Funnel Transformer
  • GLPN
  • GPT2
  • GPTJ
  • GPT-Neo
  • GPT-NeoX
  • Hubert
  • I-Bert
  • ImageGPT 🛠️ @adit299
  • LED
  • LayoutLM
  • LayoutLMv2 (but 🛠️ in Transformers)
  • LayoutLMv3
  • LayoutXLM
  • LED
  • LeViT
  • 🛠️ Longformer (Critical issue: Loss of accuracy when Longformer for SequenceClassification model is exported to ONNX #776 (comment))
  • LongT5
  • Luke (but 🛠️ in Transformers)
  • Lxmert
  • M2M100
  • MaskFormer
  • mBart
  • MCTCT
  • MPNet
  • MT5
  • MarianMT
  • MegatronBert
  • MobileBert
  • MobileViT
  • Nyströmformer
  • OpenAIGPT-2
  • OPT ((but 🛠️ in Transformers)
  • OWLViT
  • Pix2Struct
  • PLBart
  • Pegasus
  • Perceiver
  • PoolFormer
  • ProphetNet
  • QDQBERT
  • RAG
  • REALM
  • Reformer (but 🛠️ in Transformers)
  • RemBert
  • ResNet
  • RegNet 🛠️ @asrimanth
  • RetriBert
  • RoFormer
  • RoBERTa
  • SEW
  • SEW-D
  • SegFormer
  • Speech2Text
  • Speech2Text2
  • Splinter
  • SqueezeBERT
  • Swin Transformer
  • T5
  • TAPAS 🛠️ @someshfengde
  • TAPEX
  • Transformer XL
  • TrOCR
  • UniSpeech
  • UniSpeech-SAT
  • VAN
  • ViT
  • Vilt
  • VisualBERT
  • Wav2Vec2
  • WavLM
  • Whisper
  • XGLM
  • XLM
  • XLMProphetNet
  • XLM-RoBERTa
  • XLM-RoBERTa-XL
  • XLNet (but 🛠️ in Transformers)
  • YOLOS
  • Yoso

🛠️ next to a model suggests that the PR is in progress. If there is nothing next to a model, it means that ONNX does not yet support the model, and thus we need to add support for it.

If you need help implementing an unsupported model, here is a guide from HuggingFace Optimum documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions