# Synced with https://github.com/vllm-project/vllm/blob/v0.8.4/vllm/model_executor/models/registry.py
# Update these when the builtin vLLM is updated
vllm_supported_embedding_architectures = [
    "BertModel",
    "Gemma2Model",
    "MistralModel",
    "LlamaModel",
    "Qwen2Model",
    "RobertaModel",
    "RobertaForMaskedLM",
    "XLMRobertaModel",
]

vllm_supported_reranker_architectures = [
    "BertForSequenceClassification",
    "RobertaForSequenceClassification",
    "XLMRobertaForSequenceClassification",
]

vllm_supported_llm_architectures = [
    # Text generation models
    "AquilaModel",
    "AquilaForCausalLM",
    "ArcticForCausalLM",
    "MiniMaxText01ForCausalLM",
    "BaiChuanForCausalLM",
    "BaichuanForCausalLM",
    "BambaForCausalLM",
    "BloomForCausalLM",
    "ChatGLMModel",
    "ChatGLMForConditionalGeneration",
    "CohereForCausalLM",
    "Cohere2ForCausalLM",
    "DbrxForCausalLM",
    "DeciLMForCausalLM",
    "DeepseekForCausalLM",
    "DeepseekV2ForCausalLM",
    "DeepseekV3ForCausalLM",
    "ExaoneForCausalLM",
    "FalconForCausalLM",
    "Fairseq2LlamaForCausalLM",
    "GemmaForCausalLM",
    "Gemma2ForCausalLM",
    "Gemma3ForCausalLM",
    "GlmForCausalLM",
    "Glm4ForCausalLM",
    "GPT2LMHeadModel",
    "GPTBigCodeForCausalLM",
    "GPTJForCausalLM",
    "GPTNeoXForCausalLM",
    "GraniteForCausalLM",
    "GraniteMoeForCausalLM",
    "GraniteMoeSharedForCausalLM",
    "GritLM",
    "Grok1ModelForCausalLM",
    "InternLMForCausalLM",
    "InternLM2ForCausalLM",
    "InternLM2VEForCausalLM",
    "InternLM3ForCausalLM",
    "JAISLMHeadModel",
    "JambaForCausalLM",
    "LlamaForCausalLM",
    "LLaMAForCausalLM",
    "MambaForCausalLM",
    "FalconMambaForCausalLM",
    "Mamba2ForCausalLM",
    "MiniCPMForCausalLM",
    "MiniCPM3ForCausalLM",
    "MistralForCausalLM",
    "MixtralForCausalLM",
    "QuantMixtralForCausalLM",
    "MptForCausalLM",
    "MPTForCausalLM",
    "NemotronForCausalLM",
    "OlmoForCausalLM",
    "Olmo2ForCausalLM",
    "OlmoeForCausalLM",
    "OPTForCausalLM",
    "OrionForCausalLM",
    "PersimmonForCausalLM",
    "PhiForCausalLM",
    "Phi3ForCausalLM",
    "Phi3SmallForCausalLM",
    "PhiMoEForCausalLM",
    "QWenLMHeadModel",
    "Qwen2ForCausalLM",
    "Qwen2MoeForCausalLM",
    "Qwen3ForCausalLM",
    "Qwen3MoeForCausalLM",
    "RWForCausalLM",
    "StableLMEpochForCausalLM",
    "StableLmForCausalLM",
    "Starcoder2ForCausalLM",
    "SolarForCausalLM",
    "TeleChat2ForCausalLM",
    "TeleFLMForCausalLM",
    "XverseForCausalLM",
    "Zamba2ForCausalLM",
    "BartModel",
    "BartForConditionalGeneration",
    # Multimodal models
    "AriaForConditionalGeneration",
    "AyaVisionForConditionalGeneration",
    "Blip2ForConditionalGeneration",
    "ChameleonForConditionalGeneration",
    "DeepseekVLV2ForCausalLM",
    "FuyuForCausalLM",
    "Gemma3ForConditionalGeneration",
    "GLM4VForCausalLM",
    "H2OVLChatModel",
    "InternVLChatModel",
    "Idefics3ForConditionalGeneration",
    "SmolVLMForConditionalGeneration",
    "LlavaForConditionalGeneration",
    "LlavaNextForConditionalGeneration",
    "LlavaNextVideoForConditionalGeneration",
    "LlavaOnevisionForConditionalGeneration",
    "MantisForConditionalGeneration",
    "MiniCPMO",
    "MiniCPMV",
    "Mistral3ForConditionalGeneration",
    "MolmoForCausalLM",
    "NVLM_D",
    "PaliGemmaForConditionalGeneration",
    "Phi3VForCausalLM",
    "PixtralForConditionalGeneration",
    "QwenVLForConditionalGeneration",
    "Qwen2VLForConditionalGeneration",
    "Qwen2_5_VLForConditionalGeneration",
    "Qwen2AudioForConditionalGeneration",
    "UltravoxModel",
    "Phi4MMForCausalLM",
    "Florence2ForConditionalGeneration",
    "MllamaForConditionalGeneration",
    "Llama4ForConditionalGeneration",
    "SkyworkR1VChatModel",
    "WhisperForConditionalGeneration",
]
