diff --git a/src/transformers/integrations/hub_kernels.py b/src/transformers/integrations/hub_kernels.py index b58adc35c063..0b89aafb2457 100644 --- a/src/transformers/integrations/hub_kernels.py +++ b/src/transformers/integrations/hub_kernels.py @@ -98,9 +98,9 @@ ) from kernels import use_kernelized_func as _kernels_use_kernelized_func - def use_kernel_forward_from_hub(layer_name: str): + def use_kernel_forward_from_hub(layer_name: str, condition: Callable[["nn.Module"], bool] | None = None): if _kernels_enabled: - return _kernels_use_kernel_forward_from_hub(layer_name) + return _kernels_use_kernel_forward_from_hub(layer_name, condition) else: logger.warning_once( f"kernels hub usage is disabled through the environment USE_HUB_KERNELS={_TRANSFORMERS_USE_HUB_KERNELS}" diff --git a/src/transformers/models/afmoe/modeling_afmoe.py b/src/transformers/models/afmoe/modeling_afmoe.py index bf79f260355b..fc8fc35db66c 100644 --- a/src/transformers/models/afmoe/modeling_afmoe.py +++ b/src/transformers/models/afmoe/modeling_afmoe.py @@ -119,6 +119,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class AfmoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/aimv2/modeling_aimv2.py b/src/transformers/models/aimv2/modeling_aimv2.py index ec1e30d493f7..8557e3611650 100644 --- a/src/transformers/models/aimv2/modeling_aimv2.py +++ b/src/transformers/models/aimv2/modeling_aimv2.py @@ -97,6 +97,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Aimv2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/aria/modeling_aria.py b/src/transformers/models/aria/modeling_aria.py index 59f307883293..6a29680de498 100644 --- a/src/transformers/models/aria/modeling_aria.py +++ b/src/transformers/models/aria/modeling_aria.py @@ -215,6 +215,7 @@ def forward(self, key_value_states: torch.Tensor, attn_mask: torch.Tensor | None return out +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class AriaSharedExpertsMLP(nn.Module): """ Shared Expert MLP for shared experts. diff --git a/src/transformers/models/axk1/modeling_axk1.py b/src/transformers/models/axk1/modeling_axk1.py index dd65c526e998..14075e5cd4b1 100644 --- a/src/transformers/models/axk1/modeling_axk1.py +++ b/src/transformers/models/axk1/modeling_axk1.py @@ -126,6 +126,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class AXK1MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/axk2/modeling_axk2.py b/src/transformers/models/axk2/modeling_axk2.py index a9e5238eafa9..9b8ebed35bab 100644 --- a/src/transformers/models/axk2/modeling_axk2.py +++ b/src/transformers/models/axk2/modeling_axk2.py @@ -381,6 +381,7 @@ def forward( return final_hidden_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class AXK2MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/bamba/modeling_bamba.py b/src/transformers/models/bamba/modeling_bamba.py index 2a06e67cd53e..0f9a180100ac 100644 --- a/src/transformers/models/bamba/modeling_bamba.py +++ b/src/transformers/models/bamba/modeling_bamba.py @@ -795,6 +795,7 @@ def forward( return contextualized_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class BambaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/bitnet/modular_bitnet.py b/src/transformers/models/bitnet/modular_bitnet.py index 7f3a248766b2..dfaa5a16227f 100644 --- a/src/transformers/models/bitnet/modular_bitnet.py +++ b/src/transformers/models/bitnet/modular_bitnet.py @@ -22,6 +22,7 @@ from ...modeling_utils import ALL_ATTENTION_FUNCTIONS from ...processing_utils import Unpack from ...utils import logging +from ...utils.generic import no_inherit_decorator from ..gemma.modeling_gemma import GemmaMLP from ..llama.modeling_llama import ( LlamaAttention, @@ -42,6 +43,7 @@ class BitNetRMSNorm(LlamaRMSNorm): pass +@no_inherit_decorator class BitNetMLP(GemmaMLP): def __init__(self, config: BitNetConfig): super().__init__(config) diff --git a/src/transformers/models/cohere/modeling_cohere.py b/src/transformers/models/cohere/modeling_cohere.py index c2850690f0b9..1bfe3d55ce2b 100644 --- a/src/transformers/models/cohere/modeling_cohere.py +++ b/src/transformers/models/cohere/modeling_cohere.py @@ -34,6 +34,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask from ...modeling_flash_attention_utils import FlashAttentionKwargs from ...modeling_layers import GradientCheckpointingLayer @@ -119,6 +120,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class CohereMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/cohere2/modeling_cohere2.py b/src/transformers/models/cohere2/modeling_cohere2.py index eed7e377a706..00e572e13bad 100644 --- a/src/transformers/models/cohere2/modeling_cohere2.py +++ b/src/transformers/models/cohere2/modeling_cohere2.py @@ -26,6 +26,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask, create_sliding_window_causal_mask from ...modeling_layers import GradientCheckpointingLayer from ...modeling_outputs import BaseModelOutputWithPast, CausalLMOutputWithPast @@ -253,6 +254,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Cohere2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/cohere2_moe/modeling_cohere2_moe.py b/src/transformers/models/cohere2_moe/modeling_cohere2_moe.py index e7175efe436f..f66ead99d97a 100644 --- a/src/transformers/models/cohere2_moe/modeling_cohere2_moe.py +++ b/src/transformers/models/cohere2_moe/modeling_cohere2_moe.py @@ -82,6 +82,7 @@ def forward(self, hidden_states): return hidden_states.to(input_dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Cohere2MoeMLP(nn.Module): def __init__(self, config: Cohere2MoeConfig, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/cohere_compass/modeling_cohere_compass.py b/src/transformers/models/cohere_compass/modeling_cohere_compass.py index 0f335150ae2a..035eaabdbd71 100644 --- a/src/transformers/models/cohere_compass/modeling_cohere_compass.py +++ b/src/transformers/models/cohere_compass/modeling_cohere_compass.py @@ -160,6 +160,7 @@ def apply_interleaved_mrope(self, freqs, mrope_section): return freqs_t +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class CohereCompassMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/csm/modeling_csm.py b/src/transformers/models/csm/modeling_csm.py index 3b61827a7c0b..8f84fd81d525 100644 --- a/src/transformers/models/csm/modeling_csm.py +++ b/src/transformers/models/csm/modeling_csm.py @@ -174,6 +174,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class CsmMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/cwm/modeling_cwm.py b/src/transformers/models/cwm/modeling_cwm.py index 546d9a14c6ce..f67d1fbe17ec 100644 --- a/src/transformers/models/cwm/modeling_cwm.py +++ b/src/transformers/models/cwm/modeling_cwm.py @@ -249,6 +249,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class CwmMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/deepseek_ocr2/modeling_deepseek_ocr2.py b/src/transformers/models/deepseek_ocr2/modeling_deepseek_ocr2.py index 90676efdd97c..0d17be2f5c44 100644 --- a/src/transformers/models/deepseek_ocr2/modeling_deepseek_ocr2.py +++ b/src/transformers/models/deepseek_ocr2/modeling_deepseek_ocr2.py @@ -1118,6 +1118,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DeepseekOcr2TextMLP(nn.Module): def __init__(self, config: DeepseekOcr2TextConfig, hidden_size=None, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/deepseek_ocr2/modular_deepseek_ocr2.py b/src/transformers/models/deepseek_ocr2/modular_deepseek_ocr2.py index 989034e8431b..6b2e952a43f2 100644 --- a/src/transformers/models/deepseek_ocr2/modular_deepseek_ocr2.py +++ b/src/transformers/models/deepseek_ocr2/modular_deepseek_ocr2.py @@ -40,7 +40,7 @@ from ...modeling_utils import PreTrainedModel from ...processing_utils import Unpack from ...utils import TensorType, TransformersKwargs, auto_docstring, can_return_tuple, logging -from ...utils.generic import merge_with_config_defaults +from ...utils.generic import merge_with_config_defaults, no_inherit_decorator from ...utils.import_utils import requires from ...utils.output_capturing import capture_outputs from ..deepseek_v2.configuration_deepseek_v2 import DeepseekV2Config @@ -783,6 +783,7 @@ def forward(self, pixel_values: torch.FloatTensor, **kwargs) -> BaseModelOutput: return BaseModelOutput(last_hidden_state=hidden_states) +@no_inherit_decorator class DeepseekOcr2VisionMLP(Qwen2MLP): pass diff --git a/src/transformers/models/deepseek_v2/modeling_deepseek_v2.py b/src/transformers/models/deepseek_v2/modeling_deepseek_v2.py index 32a5c15fd72a..6551549bb915 100644 --- a/src/transformers/models/deepseek_v2/modeling_deepseek_v2.py +++ b/src/transformers/models/deepseek_v2/modeling_deepseek_v2.py @@ -137,6 +137,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return hidden_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DeepseekV2MLP(nn.Module): def __init__(self, config: DeepseekV2Config, hidden_size=None, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/deepseek_v3/modeling_deepseek_v3.py b/src/transformers/models/deepseek_v3/modeling_deepseek_v3.py index 76bb3e7a16a3..338db92101f0 100644 --- a/src/transformers/models/deepseek_v3/modeling_deepseek_v3.py +++ b/src/transformers/models/deepseek_v3/modeling_deepseek_v3.py @@ -112,6 +112,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DeepseekV3MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/deepseek_v32/modeling_deepseek_v32.py b/src/transformers/models/deepseek_v32/modeling_deepseek_v32.py index 8bf0f009b1a5..71f029483544 100644 --- a/src/transformers/models/deepseek_v32/modeling_deepseek_v32.py +++ b/src/transformers/models/deepseek_v32/modeling_deepseek_v32.py @@ -503,6 +503,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DeepseekV32MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/deepseek_v4/modeling_deepseek_v4.py b/src/transformers/models/deepseek_v4/modeling_deepseek_v4.py index a399e426feea..d500fe2158a9 100644 --- a/src/transformers/models/deepseek_v4/modeling_deepseek_v4.py +++ b/src/transformers/models/deepseek_v4/modeling_deepseek_v4.py @@ -962,6 +962,7 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: return (pre.unsqueeze(-1) * x).sum(dim=2).to(x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DeepseekV4MLP(nn.Module): def __init__(self, config: DeepseekV4Config): super().__init__() diff --git a/src/transformers/models/deimv2/modeling_deimv2.py b/src/transformers/models/deimv2/modeling_deimv2.py index 44905ad1ed37..57676d5de5c5 100644 --- a/src/transformers/models/deimv2/modeling_deimv2.py +++ b/src/transformers/models/deimv2/modeling_deimv2.py @@ -177,6 +177,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Deimv2SwiGLUFFN(nn.Module): def __init__(self, config: Deimv2Config): super().__init__() diff --git a/src/transformers/models/diffllama/modeling_diffllama.py b/src/transformers/models/diffllama/modeling_diffllama.py index 2f2f85b62052..4f9b5f4c658e 100644 --- a/src/transformers/models/diffllama/modeling_diffllama.py +++ b/src/transformers/models/diffllama/modeling_diffllama.py @@ -49,6 +49,7 @@ from .configuration_diffllama import DiffLlamaConfig +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DiffLlamaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/diffusion_gemma/configuration_diffusion_gemma.py b/src/transformers/models/diffusion_gemma/configuration_diffusion_gemma.py index cc096cea1ca3..b71cc6876abb 100644 --- a/src/transformers/models/diffusion_gemma/configuration_diffusion_gemma.py +++ b/src/transformers/models/diffusion_gemma/configuration_diffusion_gemma.py @@ -75,6 +75,7 @@ class DiffusionGemmaTextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_144 hidden_size: int = 2304 diff --git a/src/transformers/models/diffusion_gemma/modeling_diffusion_gemma.py b/src/transformers/models/diffusion_gemma/modeling_diffusion_gemma.py index dedcf39a4c05..e8d8d477d8c1 100644 --- a/src/transformers/models/diffusion_gemma/modeling_diffusion_gemma.py +++ b/src/transformers/models/diffusion_gemma/modeling_diffusion_gemma.py @@ -28,7 +28,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...configuration_utils import PreTrainedConfig -from ...integrations import use_experts_implementation +from ...integrations import use_experts_implementation, use_kernel_forward_from_hub from ...masking_utils import ( ALL_MASK_ATTENTION_FUNCTIONS, bidirectional_mask_function, @@ -497,6 +497,7 @@ def append_to_cache( return keys, values +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class DiffusionGemmaText4MLP(nn.Module): def __init__(self, config: DiffusionGemmaTextConfig, layer_idx: int): super().__init__() @@ -506,7 +507,7 @@ def __init__(self, config: DiffusionGemmaTextConfig, layer_idx: int): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/diffusion_gemma/modular_diffusion_gemma.py b/src/transformers/models/diffusion_gemma/modular_diffusion_gemma.py index b0b864d5c93f..00d8794a84a9 100644 --- a/src/transformers/models/diffusion_gemma/modular_diffusion_gemma.py +++ b/src/transformers/models/diffusion_gemma/modular_diffusion_gemma.py @@ -464,7 +464,7 @@ def __init__(self, config: DiffusionGemmaTextConfig, layer_idx: int): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] class DiffusionGemmaTextRouter(Gemma4TextRouter): diff --git a/src/transformers/models/dinov3_vit/modular_dinov3_vit.py b/src/transformers/models/dinov3_vit/modular_dinov3_vit.py index 1af9b58d2d2e..73df746eb4af 100644 --- a/src/transformers/models/dinov3_vit/modular_dinov3_vit.py +++ b/src/transformers/models/dinov3_vit/modular_dinov3_vit.py @@ -38,7 +38,7 @@ from ...processing_utils import Unpack from ...pytorch_utils import compile_compatible_method_lru_cache from ...utils import TransformersKwargs, auto_docstring, logging -from ...utils.generic import can_return_tuple, maybe_autocast, merge_with_config_defaults +from ...utils.generic import can_return_tuple, maybe_autocast, merge_with_config_defaults, no_inherit_decorator from ...utils.output_capturing import capture_outputs from ..swin.modeling_swin import SwinDropPath from .configuration_dinov3_vit import DINOv3ViTConfig @@ -300,6 +300,7 @@ class DINOv3ViTMLP(ArceeMLP): pass +@no_inherit_decorator class DINOv3ViTGatedMLP(LlamaMLP): pass diff --git a/src/transformers/models/doge/modeling_doge.py b/src/transformers/models/doge/modeling_doge.py index 6fd46ac81f9f..58816798f072 100644 --- a/src/transformers/models/doge/modeling_doge.py +++ b/src/transformers/models/doge/modeling_doge.py @@ -371,6 +371,7 @@ def prepare_dynamic_mask( return attn_mask +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class DogeMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/dots1/modeling_dots1.py b/src/transformers/models/dots1/modeling_dots1.py index 04fc35253bbc..6ad4d83368bc 100644 --- a/src/transformers/models/dots1/modeling_dots1.py +++ b/src/transformers/models/dots1/modeling_dots1.py @@ -260,6 +260,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Dots1MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/emu3/modeling_emu3.py b/src/transformers/models/emu3/modeling_emu3.py index f3fd4ce0f9f0..bd6b37117a2e 100644 --- a/src/transformers/models/emu3/modeling_emu3.py +++ b/src/transformers/models/emu3/modeling_emu3.py @@ -216,6 +216,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Emu3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/ernie4_5/modeling_ernie4_5.py b/src/transformers/models/ernie4_5/modeling_ernie4_5.py index 86798b16a5c8..e4f381a68be9 100644 --- a/src/transformers/models/ernie4_5/modeling_ernie4_5.py +++ b/src/transformers/models/ernie4_5/modeling_ernie4_5.py @@ -95,6 +95,7 @@ def forward(self, x, position_ids): return cos, sin +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ernie4_5MLP(nn.Module): def __init__(self, config: Ernie4_5Config): super().__init__() diff --git a/src/transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py b/src/transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py index a347f9a7358f..91776332136b 100644 --- a/src/transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py +++ b/src/transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py @@ -63,6 +63,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ernie4_5_MoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py b/src/transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py index c9decaad4383..0835bcbe7f7a 100644 --- a/src/transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py +++ b/src/transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py @@ -290,6 +290,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ernie4_5_VLMoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/esmc/modeling_esmc.py b/src/transformers/models/esmc/modeling_esmc.py index 04d8eb0c5443..5ed3be518c0f 100644 --- a/src/transformers/models/esmc/modeling_esmc.py +++ b/src/transformers/models/esmc/modeling_esmc.py @@ -110,6 +110,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class EsmcMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/eurobert/modeling_eurobert.py b/src/transformers/models/eurobert/modeling_eurobert.py index 931c9e4366ef..700aa4d14a40 100644 --- a/src/transformers/models/eurobert/modeling_eurobert.py +++ b/src/transformers/models/eurobert/modeling_eurobert.py @@ -200,6 +200,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class EuroBertMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/evolla/modeling_evolla.py b/src/transformers/models/evolla/modeling_evolla.py index 45ad92b89f57..e732d299b18c 100644 --- a/src/transformers/models/evolla/modeling_evolla.py +++ b/src/transformers/models/evolla/modeling_evolla.py @@ -1083,6 +1083,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class EvollaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/exaone4/modeling_exaone4.py b/src/transformers/models/exaone4/modeling_exaone4.py index 6a35803a94b2..a6e778933de5 100644 --- a/src/transformers/models/exaone4/modeling_exaone4.py +++ b/src/transformers/models/exaone4/modeling_exaone4.py @@ -265,6 +265,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Exaone4MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/exaone_moe/modeling_exaone_moe.py b/src/transformers/models/exaone_moe/modeling_exaone_moe.py index 5033eae0cdd3..70847e7f5e76 100644 --- a/src/transformers/models/exaone_moe/modeling_exaone_moe.py +++ b/src/transformers/models/exaone_moe/modeling_exaone_moe.py @@ -208,6 +208,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class ExaoneMoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/falcon_h1/modeling_falcon_h1.py b/src/transformers/models/falcon_h1/modeling_falcon_h1.py index 9edbd2b59b32..bb7d19892f12 100644 --- a/src/transformers/models/falcon_h1/modeling_falcon_h1.py +++ b/src/transformers/models/falcon_h1/modeling_falcon_h1.py @@ -822,6 +822,7 @@ def forward( return contextualized_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class FalconH1MLP(nn.Module): def __init__(self, config: FalconH1Config): super().__init__() diff --git a/src/transformers/models/flex_olmo/modeling_flex_olmo.py b/src/transformers/models/flex_olmo/modeling_flex_olmo.py index 2654532668b9..8ac5b24fdb68 100644 --- a/src/transformers/models/flex_olmo/modeling_flex_olmo.py +++ b/src/transformers/models/flex_olmo/modeling_flex_olmo.py @@ -117,6 +117,7 @@ def forward(self, x, position_ids): return cos, sin +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class FlexOlmoMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/gemma/modeling_gemma.py b/src/transformers/models/gemma/modeling_gemma.py index 91bbfcd58476..520c232e9be0 100644 --- a/src/transformers/models/gemma/modeling_gemma.py +++ b/src/transformers/models/gemma/modeling_gemma.py @@ -81,6 +81,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.eps}" +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class GemmaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/gemma/modular_gemma.py b/src/transformers/models/gemma/modular_gemma.py index b47fca63a2d1..879663989f74 100644 --- a/src/transformers/models/gemma/modular_gemma.py +++ b/src/transformers/models/gemma/modular_gemma.py @@ -21,6 +21,7 @@ from ... import initialization as init from ...cache_utils import Cache, DynamicCache from ...configuration_utils import PreTrainedConfig +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask from ...modeling_outputs import BaseModelOutputWithPast from ...modeling_rope_utils import RopeParameters @@ -136,6 +137,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.eps}" +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class GemmaMLP(LlamaMLP): def __init__(self, config): super().__init__(config) diff --git a/src/transformers/models/gemma2/configuration_gemma2.py b/src/transformers/models/gemma2/configuration_gemma2.py index 11d7b012099f..a04dcbb14261 100644 --- a/src/transformers/models/gemma2/configuration_gemma2.py +++ b/src/transformers/models/gemma2/configuration_gemma2.py @@ -64,6 +64,7 @@ class Gemma2Config(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 256000 hidden_size: int = 2304 diff --git a/src/transformers/models/gemma2/modeling_gemma2.py b/src/transformers/models/gemma2/modeling_gemma2.py index fe8f41724b9d..5a295e03442e 100644 --- a/src/transformers/models/gemma2/modeling_gemma2.py +++ b/src/transformers/models/gemma2/modeling_gemma2.py @@ -66,6 +66,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.eps}" +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class Gemma2MLP(nn.Module): def __init__(self, config): super().__init__() @@ -75,7 +76,7 @@ def __init__(self, config): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/gemma2/modular_gemma2.py b/src/transformers/models/gemma2/modular_gemma2.py index d798196f1807..3d01ad1e49e2 100644 --- a/src/transformers/models/gemma2/modular_gemma2.py +++ b/src/transformers/models/gemma2/modular_gemma2.py @@ -18,7 +18,6 @@ import torch.nn as nn from huggingface_hub.dataclasses import strict -from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...configuration_utils import PreTrainedConfig from ...masking_utils import create_causal_mask, create_sliding_window_causal_mask @@ -92,6 +91,7 @@ class Gemma2Config(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 256000 hidden_size: int = 2304 @@ -141,9 +141,7 @@ class Gemma2RMSNorm(GemmaRMSNorm): class Gemma2MLP(GemmaMLP): - def __init__(self, config): - super().__init__(config) - self.act_fn = ACT2FN[config.hidden_activation] + pass class Gemma2RotaryEmbedding(GemmaRotaryEmbedding): diff --git a/src/transformers/models/gemma3/configuration_gemma3.py b/src/transformers/models/gemma3/configuration_gemma3.py index b640a906fbef..9a40687acc83 100644 --- a/src/transformers/models/gemma3/configuration_gemma3.py +++ b/src/transformers/models/gemma3/configuration_gemma3.py @@ -73,6 +73,7 @@ class Gemma3TextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_208 hidden_size: int = 2304 diff --git a/src/transformers/models/gemma3/modeling_gemma3.py b/src/transformers/models/gemma3/modeling_gemma3.py index e870ec1ad81a..cc43497588c8 100644 --- a/src/transformers/models/gemma3/modeling_gemma3.py +++ b/src/transformers/models/gemma3/modeling_gemma3.py @@ -117,6 +117,7 @@ def forward(self, input_ids: torch.Tensor): return super().forward(input_ids) * self.embed_scale.to(self.weight.dtype) +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class Gemma3MLP(nn.Module): def __init__(self, config: Gemma3TextConfig): super().__init__() @@ -126,7 +127,7 @@ def __init__(self, config: Gemma3TextConfig): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/gemma3n/configuration_gemma3n.py b/src/transformers/models/gemma3n/configuration_gemma3n.py index 8f197fa3bb3f..462c3a962502 100644 --- a/src/transformers/models/gemma3n/configuration_gemma3n.py +++ b/src/transformers/models/gemma3n/configuration_gemma3n.py @@ -94,6 +94,7 @@ class Gemma3nTextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_400 hidden_size: int = 2048 diff --git a/src/transformers/models/gemma3n/modeling_gemma3n.py b/src/transformers/models/gemma3n/modeling_gemma3n.py index 57dfb6b2d4e4..837ca6b29497 100644 --- a/src/transformers/models/gemma3n/modeling_gemma3n.py +++ b/src/transformers/models/gemma3n/modeling_gemma3n.py @@ -957,7 +957,7 @@ def __init__(self, config: Gemma3nTextConfig, layer_idx: int = 0): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] self.activation_sparsity = config.activation_sparsity_pattern[layer_idx] def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: diff --git a/src/transformers/models/gemma3n/modular_gemma3n.py b/src/transformers/models/gemma3n/modular_gemma3n.py index 3e4f2331d148..9132eece54d8 100644 --- a/src/transformers/models/gemma3n/modular_gemma3n.py +++ b/src/transformers/models/gemma3n/modular_gemma3n.py @@ -40,7 +40,7 @@ logging, torch_compilable_check, ) -from ...utils.generic import merge_with_config_defaults +from ...utils.generic import merge_with_config_defaults, no_inherit_decorator from ...utils.output_capturing import capture_outputs from ..auto import AutoModel from ..gemma2.modeling_gemma2 import ( @@ -1303,6 +1303,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return hidden_states + normed_laurel_hidden_states +@no_inherit_decorator class Gemma3nTextMLP(Gemma2MLP): def __init__(self, config: Gemma3nTextConfig, layer_idx: int = 0): super().__init__(config) diff --git a/src/transformers/models/gemma4/configuration_gemma4.py b/src/transformers/models/gemma4/configuration_gemma4.py index ff970b4c7ef5..c381eab0dc28 100644 --- a/src/transformers/models/gemma4/configuration_gemma4.py +++ b/src/transformers/models/gemma4/configuration_gemma4.py @@ -148,6 +148,7 @@ class Gemma4TextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_144 hidden_size: int = 2304 @@ -266,6 +267,7 @@ class Gemma4VisionConfig(PreTrainedConfig): "encoder.layers.*.mlp.up_proj": "colwise", "encoder.layers.*.mlp.down_proj": "rowwise", } + attribute_map = {"hidden_act": "hidden_activation"} default_theta = 100.0 diff --git a/src/transformers/models/gemma4/modeling_gemma4.py b/src/transformers/models/gemma4/modeling_gemma4.py index 79f626e86996..7ae059bac03a 100644 --- a/src/transformers/models/gemma4/modeling_gemma4.py +++ b/src/transformers/models/gemma4/modeling_gemma4.py @@ -33,7 +33,7 @@ from ...cache_utils import Cache, DynamicCache from ...configuration_utils import PreTrainedConfig from ...generation import GenerationMixin -from ...integrations import use_experts_implementation +from ...integrations import use_experts_implementation, use_kernel_forward_from_hub from ...masking_utils import ( _preprocess_mask_arguments, blockwise_overlay, @@ -688,6 +688,7 @@ def forward( return hidden_states, padding_positions +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class Gemma4VisionMLP(nn.Module): def __init__(self, config: Gemma4VisionConfig): super().__init__() @@ -697,7 +698,7 @@ def __init__(self, config: Gemma4VisionConfig): self.gate_proj = Gemma4ClippableLinear(config, self.hidden_size, self.intermediate_size) self.up_proj = Gemma4ClippableLinear(config, self.hidden_size, self.intermediate_size) self.down_proj = Gemma4ClippableLinear(config, self.intermediate_size, self.hidden_size) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) @@ -1062,6 +1063,7 @@ def forward( return BaseModelOutputWithPast(last_hidden_state=hidden_states) +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class Gemma4TextMLP(nn.Module): def __init__(self, config: Gemma4TextConfig, layer_idx: int): super().__init__() @@ -1074,7 +1076,7 @@ def __init__(self, config: Gemma4TextConfig, layer_idx: int): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py b/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py index 0b93b9a1701d..70968133126e 100644 --- a/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py +++ b/src/transformers/models/gemma4_unified/configuration_gemma4_unified.py @@ -120,6 +120,7 @@ class Gemma4UnifiedTextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_144 hidden_size: int = 2304 diff --git a/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py b/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py index 9a897479a360..896ab6cf6370 100644 --- a/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py +++ b/src/transformers/models/gemma4_unified/modeling_gemma4_unified.py @@ -29,6 +29,7 @@ from ...cache_utils import Cache, DynamicCache from ...configuration_utils import PreTrainedConfig from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import ( _preprocess_mask_arguments, blockwise_overlay, @@ -455,6 +456,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class Gemma4UnifiedTextMLP(nn.Module): def __init__(self, config: Gemma4UnifiedTextConfig, layer_idx: int): super().__init__() @@ -467,7 +469,7 @@ def __init__(self, config: Gemma4UnifiedTextConfig, layer_idx: int): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/glm4_moe/modeling_glm4_moe.py b/src/transformers/models/glm4_moe/modeling_glm4_moe.py index 539da895bd6d..ba591e80508d 100644 --- a/src/transformers/models/glm4_moe/modeling_glm4_moe.py +++ b/src/transformers/models/glm4_moe/modeling_glm4_moe.py @@ -260,6 +260,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Glm4MoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/glm4_moe_lite/modeling_glm4_moe_lite.py b/src/transformers/models/glm4_moe_lite/modeling_glm4_moe_lite.py index bff71001ca1f..bfb6e40434d5 100644 --- a/src/transformers/models/glm4_moe_lite/modeling_glm4_moe_lite.py +++ b/src/transformers/models/glm4_moe_lite/modeling_glm4_moe_lite.py @@ -367,6 +367,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Glm4MoeLiteMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/glm4v_moe/modeling_glm4v_moe.py b/src/transformers/models/glm4v_moe/modeling_glm4v_moe.py index 8f1c1577b4e8..37ea3f885f7d 100644 --- a/src/transformers/models/glm4v_moe/modeling_glm4v_moe.py +++ b/src/transformers/models/glm4v_moe/modeling_glm4v_moe.py @@ -314,6 +314,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return hidden_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Glm4vMoeTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/glm5_next/modeling_glm5_next.py b/src/transformers/models/glm5_next/modeling_glm5_next.py index ba0551f62ad8..08df37e518d9 100644 --- a/src/transformers/models/glm5_next/modeling_glm5_next.py +++ b/src/transformers/models/glm5_next/modeling_glm5_next.py @@ -82,6 +82,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Glm5NextTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/glm_moe_dsa/modeling_glm_moe_dsa.py b/src/transformers/models/glm_moe_dsa/modeling_glm_moe_dsa.py index 5d7ba1a8f3df..6e4872e4f2e0 100644 --- a/src/transformers/models/glm_moe_dsa/modeling_glm_moe_dsa.py +++ b/src/transformers/models/glm_moe_dsa/modeling_glm_moe_dsa.py @@ -480,6 +480,7 @@ def forward( return attn_output, attn_weights, topk_indices +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class GlmMoeDsaMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/granite/modeling_granite.py b/src/transformers/models/granite/modeling_granite.py index ba4affd2c93b..a5cec34c913b 100644 --- a/src/transformers/models/granite/modeling_granite.py +++ b/src/transformers/models/granite/modeling_granite.py @@ -200,6 +200,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class GraniteMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/granite4_vision/modeling_granite4_vision.py b/src/transformers/models/granite4_vision/modeling_granite4_vision.py index f84d6593237c..080ec479c2df 100644 --- a/src/transformers/models/granite4_vision/modeling_granite4_vision.py +++ b/src/transformers/models/granite4_vision/modeling_granite4_vision.py @@ -428,6 +428,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Granite4VisionTextMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/granite_swa/modeling_granite_swa.py b/src/transformers/models/granite_swa/modeling_granite_swa.py index 3ff773877342..b384a68f52c1 100644 --- a/src/transformers/models/granite_swa/modeling_granite_swa.py +++ b/src/transformers/models/granite_swa/modeling_granite_swa.py @@ -217,6 +217,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class GraniteSWAMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/helium/modeling_helium.py b/src/transformers/models/helium/modeling_helium.py index 1403cd7def6f..548454e31945 100644 --- a/src/transformers/models/helium/modeling_helium.py +++ b/src/transformers/models/helium/modeling_helium.py @@ -27,6 +27,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask from ...modeling_layers import ( GenericForSequenceClassification, @@ -118,6 +119,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HeliumMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/higgs_audio_v2/modeling_higgs_audio_v2.py b/src/transformers/models/higgs_audio_v2/modeling_higgs_audio_v2.py index 12a21f886a9f..7a4077e12c44 100644 --- a/src/transformers/models/higgs_audio_v2/modeling_higgs_audio_v2.py +++ b/src/transformers/models/higgs_audio_v2/modeling_higgs_audio_v2.py @@ -45,6 +45,7 @@ logger = logging.get_logger(__name__) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HiggsAudioV2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/hrm_text/modeling_hrm_text.py b/src/transformers/models/hrm_text/modeling_hrm_text.py index 315e997c4fa8..8324d6018202 100644 --- a/src/transformers/models/hrm_text/modeling_hrm_text.py +++ b/src/transformers/models/hrm_text/modeling_hrm_text.py @@ -67,6 +67,7 @@ def extra_repr(self): return f"eps={self.eps}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HrmTextMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py b/src/transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py index 7dccbbb44311..354e6151b850 100644 --- a/src/transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py +++ b/src/transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py @@ -64,6 +64,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HunYuanDenseV1MLP(nn.Module): def __init__(self, config: HunYuanDenseV1Config, layer_idx=None, is_shared_mlp=False): super().__init__() diff --git a/src/transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py b/src/transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py index 60c69c1999f3..6e2b72a629f3 100644 --- a/src/transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py +++ b/src/transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py @@ -63,6 +63,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HunYuanMoEV1MLP(nn.Module): def __init__(self, config: HunYuanMoEV1Config): super().__init__() diff --git a/src/transformers/models/hunyuan_vl/modeling_hunyuan_vl.py b/src/transformers/models/hunyuan_vl/modeling_hunyuan_vl.py index 116f36c138b2..3d49df932cbe 100644 --- a/src/transformers/models/hunyuan_vl/modeling_hunyuan_vl.py +++ b/src/transformers/models/hunyuan_vl/modeling_hunyuan_vl.py @@ -577,6 +577,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HunYuanVLMLP(nn.Module): def __init__(self, config: HunYuanVLConfig, layer_idx=None, is_shared_mlp=False): super().__init__() diff --git a/src/transformers/models/hy_v3/modeling_hy_v3.py b/src/transformers/models/hy_v3/modeling_hy_v3.py index 5f9958d0fcb0..8381b9b78a30 100644 --- a/src/transformers/models/hy_v3/modeling_hy_v3.py +++ b/src/transformers/models/hy_v3/modeling_hy_v3.py @@ -120,6 +120,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HYV3MLP(nn.Module): def __init__(self, config: HYV3Config, intermediate_size: int | None = None): super().__init__() diff --git a/src/transformers/models/hyperclovax/modeling_hyperclovax.py b/src/transformers/models/hyperclovax/modeling_hyperclovax.py index b869e984b315..a4127440ad3a 100644 --- a/src/transformers/models/hyperclovax/modeling_hyperclovax.py +++ b/src/transformers/models/hyperclovax/modeling_hyperclovax.py @@ -258,6 +258,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class HyperCLOVAXMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/inkling/modular_inkling.py b/src/transformers/models/inkling/modular_inkling.py index 89276fa3128c..1cdc7ac80282 100644 --- a/src/transformers/models/inkling/modular_inkling.py +++ b/src/transformers/models/inkling/modular_inkling.py @@ -40,7 +40,7 @@ logging, torch_compilable_check, ) -from ...utils.generic import merge_with_config_defaults +from ...utils.generic import merge_with_config_defaults, no_inherit_decorator from ...utils.output_capturing import capture_outputs from ..gemma3.modeling_gemma3 import ( Gemma3CausalLMOutputWithPast, @@ -500,6 +500,7 @@ def forward( return attn_output, attn_weights +@no_inherit_decorator class InklingMLP(Gemma3MLP): def __init__(self, config: InklingTextConfig): super().__init__(config) diff --git a/src/transformers/models/jamba/modeling_jamba.py b/src/transformers/models/jamba/modeling_jamba.py index 70fc8e44b31f..50407f7fc03d 100755 --- a/src/transformers/models/jamba/modeling_jamba.py +++ b/src/transformers/models/jamba/modeling_jamba.py @@ -611,6 +611,7 @@ def forward( return contextualized_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class JambaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/laguna/modeling_laguna.py b/src/transformers/models/laguna/modeling_laguna.py index edaf222a815a..7f7271769172 100644 --- a/src/transformers/models/laguna/modeling_laguna.py +++ b/src/transformers/models/laguna/modeling_laguna.py @@ -138,6 +138,7 @@ def forward(self, x, position_ids, layer_type): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class LagunaMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/llama/modeling_llama.py b/src/transformers/models/llama/modeling_llama.py index ceaea60027fa..b8f1e1cfd737 100644 --- a/src/transformers/models/llama/modeling_llama.py +++ b/src/transformers/models/llama/modeling_llama.py @@ -160,6 +160,7 @@ def apply_rotary_pos_emb(q, k, cos, sin, unsqueeze_dim=1): return q_embed, k_embed +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class LlamaMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/longcat_flash/modeling_longcat_flash.py b/src/transformers/models/longcat_flash/modeling_longcat_flash.py index 1e071ca9a838..61e37db03a2c 100644 --- a/src/transformers/models/longcat_flash/modeling_longcat_flash.py +++ b/src/transformers/models/longcat_flash/modeling_longcat_flash.py @@ -124,6 +124,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class LongcatFlashMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/mellum/modeling_mellum.py b/src/transformers/models/mellum/modeling_mellum.py index c4be60ecf723..7cb39219068c 100644 --- a/src/transformers/models/mellum/modeling_mellum.py +++ b/src/transformers/models/mellum/modeling_mellum.py @@ -355,6 +355,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return final_hidden_states.reshape(batch_size, sequence_length, hidden_dim) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MellumMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/mimo_v2_flash/modeling_mimo_v2_flash.py b/src/transformers/models/mimo_v2_flash/modeling_mimo_v2_flash.py index e8494170fc49..fc93085b3cd1 100644 --- a/src/transformers/models/mimo_v2_flash/modeling_mimo_v2_flash.py +++ b/src/transformers/models/mimo_v2_flash/modeling_mimo_v2_flash.py @@ -237,6 +237,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return self.experts(hidden_states, topk_indices, topk_weights).view(*orig_shape) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MiMoV2FlashMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/minicpm3/modeling_minicpm3.py b/src/transformers/models/minicpm3/modeling_minicpm3.py index 028cd61c3e88..fdd7738861e0 100644 --- a/src/transformers/models/minicpm3/modeling_minicpm3.py +++ b/src/transformers/models/minicpm3/modeling_minicpm3.py @@ -134,6 +134,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MiniCPM3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/ministral/modeling_ministral.py b/src/transformers/models/ministral/modeling_ministral.py index febf238729ba..06e69c77f4d0 100644 --- a/src/transformers/models/ministral/modeling_ministral.py +++ b/src/transformers/models/ministral/modeling_ministral.py @@ -47,6 +47,7 @@ from .configuration_ministral import MinistralConfig +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MinistralMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/ministral3/modeling_ministral3.py b/src/transformers/models/ministral3/modeling_ministral3.py index 7bb5fdb0cc62..ea585954a761 100644 --- a/src/transformers/models/ministral3/modeling_ministral3.py +++ b/src/transformers/models/ministral3/modeling_ministral3.py @@ -173,6 +173,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ministral3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/mistral/modeling_mistral.py b/src/transformers/models/mistral/modeling_mistral.py index 6e3333148323..d9f2acf01e8b 100644 --- a/src/transformers/models/mistral/modeling_mistral.py +++ b/src/transformers/models/mistral/modeling_mistral.py @@ -32,6 +32,7 @@ from .configuration_mistral import MistralConfig +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MistralMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/mistral4/modeling_mistral4.py b/src/transformers/models/mistral4/modeling_mistral4.py index db5f842e535b..1f7e6e187af1 100644 --- a/src/transformers/models/mistral4/modeling_mistral4.py +++ b/src/transformers/models/mistral4/modeling_mistral4.py @@ -125,6 +125,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Mistral4MLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/moonshine_streaming/modeling_moonshine_streaming.py b/src/transformers/models/moonshine_streaming/modeling_moonshine_streaming.py index 5f14849afbbd..26667ab38187 100644 --- a/src/transformers/models/moonshine_streaming/modeling_moonshine_streaming.py +++ b/src/transformers/models/moonshine_streaming/modeling_moonshine_streaming.py @@ -28,6 +28,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache, EncoderDecoderCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_bidirectional_mask, create_causal_mask from ...modeling_flash_attention_utils import FlashAttentionKwargs from ...modeling_layers import GradientCheckpointingLayer @@ -431,6 +432,7 @@ def forward( return MoonshineStreamingEncoderModelOutput(last_hidden_state=hidden_states, attention_mask=attention_mask) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MoonshinMoonshineStreamingDecoderMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/muse_glimmer/configuration_muse_glimmer.py b/src/transformers/models/muse_glimmer/configuration_muse_glimmer.py index 19cb5a57eb43..af3d52ab5ad3 100644 --- a/src/transformers/models/muse_glimmer/configuration_muse_glimmer.py +++ b/src/transformers/models/muse_glimmer/configuration_muse_glimmer.py @@ -105,6 +105,7 @@ class MuseGlimmerTextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 202_048 hidden_size: int = 6656 diff --git a/src/transformers/models/muse_glimmer/modeling_muse_glimmer.py b/src/transformers/models/muse_glimmer/modeling_muse_glimmer.py index 2bd5278248f1..095f9475f7b2 100644 --- a/src/transformers/models/muse_glimmer/modeling_muse_glimmer.py +++ b/src/transformers/models/muse_glimmer/modeling_muse_glimmer.py @@ -140,6 +140,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.eps}" +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class MuseGlimmerTextMLP(nn.Module): def __init__(self, config): super().__init__() @@ -149,7 +150,7 @@ def __init__(self, config): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/muse_glimmer_assistant/modeling_muse_glimmer_assistant.py b/src/transformers/models/muse_glimmer_assistant/modeling_muse_glimmer_assistant.py index 71e6c71f761d..0c58948558a4 100644 --- a/src/transformers/models/muse_glimmer_assistant/modeling_muse_glimmer_assistant.py +++ b/src/transformers/models/muse_glimmer_assistant/modeling_muse_glimmer_assistant.py @@ -217,6 +217,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class MuseGlimmerAssistantMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/nomic_bert/modeling_nomic_bert.py b/src/transformers/models/nomic_bert/modeling_nomic_bert.py index dbc40d6b196c..50d5b5179a5f 100644 --- a/src/transformers/models/nomic_bert/modeling_nomic_bert.py +++ b/src/transformers/models/nomic_bert/modeling_nomic_bert.py @@ -256,6 +256,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class NomicBertMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/nomic_bert/modular_nomic_bert.py b/src/transformers/models/nomic_bert/modular_nomic_bert.py index bd27e8034b62..6d5656ec870e 100644 --- a/src/transformers/models/nomic_bert/modular_nomic_bert.py +++ b/src/transformers/models/nomic_bert/modular_nomic_bert.py @@ -19,6 +19,7 @@ from torch.nn import CrossEntropyLoss from ...configuration_utils import PreTrainedConfig +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_bidirectional_mask from ...modeling_outputs import ( BaseModelOutputWithPooling, @@ -117,6 +118,7 @@ def __init__(self, config): self.o_proj = nn.Linear(config.num_attention_heads * self.head_dim, config.hidden_size, bias=False) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class NomicBertMLP(GemmaMLP): pass diff --git a/src/transformers/models/olmo/modeling_olmo.py b/src/transformers/models/olmo/modeling_olmo.py index dd2f1ed261c3..97f6318f5c77 100644 --- a/src/transformers/models/olmo/modeling_olmo.py +++ b/src/transformers/models/olmo/modeling_olmo.py @@ -60,6 +60,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: ) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class OlmoMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/olmo2/modeling_olmo2.py b/src/transformers/models/olmo2/modeling_olmo2.py index 3a18aebc13b3..38f633866390 100644 --- a/src/transformers/models/olmo2/modeling_olmo2.py +++ b/src/transformers/models/olmo2/modeling_olmo2.py @@ -266,6 +266,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Olmo2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/olmo3/modeling_olmo3.py b/src/transformers/models/olmo3/modeling_olmo3.py index 85a4317f683f..88f50d8dfb76 100644 --- a/src/transformers/models/olmo3/modeling_olmo3.py +++ b/src/transformers/models/olmo3/modeling_olmo3.py @@ -210,6 +210,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Olmo3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/olmo_hybrid/modeling_olmo_hybrid.py b/src/transformers/models/olmo_hybrid/modeling_olmo_hybrid.py index c1dbf7320c77..d380d072e4f9 100644 --- a/src/transformers/models/olmo_hybrid/modeling_olmo_hybrid.py +++ b/src/transformers/models/olmo_hybrid/modeling_olmo_hybrid.py @@ -752,6 +752,7 @@ def forward( return output +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class OlmoHybridMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/olmoe/modeling_olmoe.py b/src/transformers/models/olmoe/modeling_olmoe.py index ab732636f8d3..ce66b0ec68c4 100644 --- a/src/transformers/models/olmoe/modeling_olmoe.py +++ b/src/transformers/models/olmoe/modeling_olmoe.py @@ -118,6 +118,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class OlmoeMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/olmoe/modular_olmoe.py b/src/transformers/models/olmoe/modular_olmoe.py index adadcf0c9e5d..b78f6f6d425f 100644 --- a/src/transformers/models/olmoe/modular_olmoe.py +++ b/src/transformers/models/olmoe/modular_olmoe.py @@ -19,6 +19,7 @@ from ... import initialization as init from ...cache_utils import Cache, DynamicCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask from ...modeling_outputs import MoeModelOutputWithPast from ...modeling_utils import ALL_ATTENTION_FUNCTIONS, PreTrainedModel @@ -51,6 +52,7 @@ class OlmoeRotaryEmbedding(LlamaRotaryEmbedding): pass +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class OlmoeMLP(GemmaMLP): pass diff --git a/src/transformers/models/ovis2/modeling_ovis2.py b/src/transformers/models/ovis2/modeling_ovis2.py index e489ccf5b446..798d661ff098 100644 --- a/src/transformers/models/ovis2/modeling_ovis2.py +++ b/src/transformers/models/ovis2/modeling_ovis2.py @@ -124,6 +124,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ovis2VisionMLP(nn.Module): def __init__(self, config): super().__init__() @@ -254,6 +255,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Ovis2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/paddleocr_vl/modeling_paddleocr_vl.py b/src/transformers/models/paddleocr_vl/modeling_paddleocr_vl.py index 50109e0c6dcd..8897fbff0815 100644 --- a/src/transformers/models/paddleocr_vl/modeling_paddleocr_vl.py +++ b/src/transformers/models/paddleocr_vl/modeling_paddleocr_vl.py @@ -174,6 +174,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class PaddleOCRMLP(nn.Module): def __init__(self, config: PaddleOCRTextConfig): super().__init__() diff --git a/src/transformers/models/pe_audio/modeling_pe_audio.py b/src/transformers/models/pe_audio/modeling_pe_audio.py index c08e02ba5a4a..2750f4bb7043 100644 --- a/src/transformers/models/pe_audio/modeling_pe_audio.py +++ b/src/transformers/models/pe_audio/modeling_pe_audio.py @@ -431,6 +431,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class PeAudioEncoderMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py b/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py index b2a5d96df50a..236e08c741f9 100644 --- a/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py +++ b/src/transformers/models/pe_audio_video/modeling_pe_audio_video.py @@ -368,6 +368,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class PeAudioVideoEncoderMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/pe_video/modeling_pe_video.py b/src/transformers/models/pe_video/modeling_pe_video.py index c1726eb8aa0d..e5134e0cb223 100644 --- a/src/transformers/models/pe_video/modeling_pe_video.py +++ b/src/transformers/models/pe_video/modeling_pe_video.py @@ -355,6 +355,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class PeVideoEncoderMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/qwen2/modeling_qwen2.py b/src/transformers/models/qwen2/modeling_qwen2.py index b4fed98fafae..4ad77081a407 100644 --- a/src/transformers/models/qwen2/modeling_qwen2.py +++ b/src/transformers/models/qwen2/modeling_qwen2.py @@ -32,6 +32,7 @@ from .configuration_qwen2 import Qwen2Config +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen2MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/qwen2_moe/modeling_qwen2_moe.py b/src/transformers/models/qwen2_moe/modeling_qwen2_moe.py index bdbeeab12271..4f3527f3daf9 100644 --- a/src/transformers/models/qwen2_moe/modeling_qwen2_moe.py +++ b/src/transformers/models/qwen2_moe/modeling_qwen2_moe.py @@ -127,6 +127,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen2MoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/qwen2_moe/modular_qwen2_moe.py b/src/transformers/models/qwen2_moe/modular_qwen2_moe.py index dc620da2782a..72b52747e097 100644 --- a/src/transformers/models/qwen2_moe/modular_qwen2_moe.py +++ b/src/transformers/models/qwen2_moe/modular_qwen2_moe.py @@ -25,6 +25,7 @@ from ...activations import ACT2FN from ...cache_utils import Cache, DynamicCache from ...generation import GenerationMixin +from ...integrations import use_kernel_forward_from_hub from ...masking_utils import create_causal_mask, create_sliding_window_causal_mask from ...modeling_layers import ( GenericForQuestionAnswering, @@ -56,6 +57,7 @@ class Qwen2MoeRotaryEmbedding(Gemma2RotaryEmbedding): pass +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen2MoeMLP(GemmaMLP): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/qwen3/modeling_qwen3.py b/src/transformers/models/qwen3/modeling_qwen3.py index 5e474983ab92..a1aab54c85dc 100644 --- a/src/transformers/models/qwen3/modeling_qwen3.py +++ b/src/transformers/models/qwen3/modeling_qwen3.py @@ -67,6 +67,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/qwen3/modular_qwen3.py b/src/transformers/models/qwen3/modular_qwen3.py index ea6ddb2f7499..12164c6e5793 100644 --- a/src/transformers/models/qwen3/modular_qwen3.py +++ b/src/transformers/models/qwen3/modular_qwen3.py @@ -18,6 +18,7 @@ import torch from ...cache_utils import Cache +from ...integrations import use_kernel_forward_from_hub from ...modeling_flash_attention_utils import FlashAttentionKwargs from ...modeling_outputs import CausalLMOutputWithPast from ...modeling_utils import ALL_ATTENTION_FUNCTIONS @@ -49,6 +50,7 @@ class Qwen3RMSNorm(Qwen2RMSNorm): pass +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3MLP(GemmaMLP): pass diff --git a/src/transformers/models/qwen3_5/modeling_qwen3_5.py b/src/transformers/models/qwen3_5/modeling_qwen3_5.py index 06c19237c170..a5ed4f96c0eb 100644 --- a/src/transformers/models/qwen3_5/modeling_qwen3_5.py +++ b/src/transformers/models/qwen3_5/modeling_qwen3_5.py @@ -777,6 +777,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3_5MLP(nn.Module): def __init__(self, config: Qwen3_5Config, intermediate_size: int): super().__init__() diff --git a/src/transformers/models/qwen3_5_moe/modeling_qwen3_5_moe.py b/src/transformers/models/qwen3_5_moe/modeling_qwen3_5_moe.py index e538a653f210..33a9bdbbe0b6 100644 --- a/src/transformers/models/qwen3_5_moe/modeling_qwen3_5_moe.py +++ b/src/transformers/models/qwen3_5_moe/modeling_qwen3_5_moe.py @@ -777,6 +777,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3_5MoeMLP(nn.Module): def __init__(self, config: Qwen3_5MoeConfig, intermediate_size: int): super().__init__() diff --git a/src/transformers/models/qwen3_moe/modeling_qwen3_moe.py b/src/transformers/models/qwen3_moe/modeling_qwen3_moe.py index a4b13c545601..0a2181931c6a 100644 --- a/src/transformers/models/qwen3_moe/modeling_qwen3_moe.py +++ b/src/transformers/models/qwen3_moe/modeling_qwen3_moe.py @@ -190,6 +190,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3MoeMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/qwen3_next/modeling_qwen3_next.py b/src/transformers/models/qwen3_next/modeling_qwen3_next.py index 6a7e6dc0791b..ea86bc03d8a1 100644 --- a/src/transformers/models/qwen3_next/modeling_qwen3_next.py +++ b/src/transformers/models/qwen3_next/modeling_qwen3_next.py @@ -767,6 +767,7 @@ def forward( return output +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3NextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py b/src/transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py index 6ec317e1debd..c64e2edb8ee7 100644 --- a/src/transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py +++ b/src/transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py @@ -1473,6 +1473,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3OmniMoeThinkerTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() @@ -2376,6 +2377,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3OmniMoeMLP(nn.Module): def __init__(self, config): super().__init__() @@ -2687,6 +2689,7 @@ class Qwen3OmniMoeTalkerRotaryEmbedding(Qwen3OmniMoeThinkerTextRotaryEmbedding): pass +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3OmniMoeTalkerTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() @@ -3391,6 +3394,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3OmniMoeCode2WavMlp(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/qwen3_vl/modeling_qwen3_vl.py b/src/transformers/models/qwen3_vl/modeling_qwen3_vl.py index 7d964d080792..2da4fa4dee35 100644 --- a/src/transformers/models/qwen3_vl/modeling_qwen3_vl.py +++ b/src/transformers/models/qwen3_vl/modeling_qwen3_vl.py @@ -506,6 +506,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3VLTextMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py b/src/transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py index 42bb1d65346b..299594dd2e74 100644 --- a/src/transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py +++ b/src/transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py @@ -302,6 +302,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen3VLMoeTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/qwen4_exp/modeling_qwen4_exp.py b/src/transformers/models/qwen4_exp/modeling_qwen4_exp.py index 4273886cc4ab..9935fd896fd6 100644 --- a/src/transformers/models/qwen4_exp/modeling_qwen4_exp.py +++ b/src/transformers/models/qwen4_exp/modeling_qwen4_exp.py @@ -912,6 +912,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class Qwen4ExpTextMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/smollm3/modeling_smollm3.py b/src/transformers/models/smollm3/modeling_smollm3.py index fcf2eac3556e..9a381adaca49 100644 --- a/src/transformers/models/smollm3/modeling_smollm3.py +++ b/src/transformers/models/smollm3/modeling_smollm3.py @@ -268,6 +268,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.variance_epsilon}" +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class SmolLM3MLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/solar_open/modeling_solar_open.py b/src/transformers/models/solar_open/modeling_solar_open.py index e685d8848892..f871cab9bea4 100644 --- a/src/transformers/models/solar_open/modeling_solar_open.py +++ b/src/transformers/models/solar_open/modeling_solar_open.py @@ -83,6 +83,7 @@ def forward( return hidden_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class SolarOpenMLP(nn.Module): def __init__(self, config, intermediate_size=None): super().__init__() diff --git a/src/transformers/models/step3p7/modular_step3p7.py b/src/transformers/models/step3p7/modular_step3p7.py index 3c714f671b03..89461460c786 100644 --- a/src/transformers/models/step3p7/modular_step3p7.py +++ b/src/transformers/models/step3p7/modular_step3p7.py @@ -782,6 +782,7 @@ class Step3p7RMSNorm(MiniMaxM3VLRMSNorm): pass +@no_inherit_decorator class Step3p7MLP(DeepseekV4MLP): def __init__(self, config, layer_idx, is_shared_expert=False): super().__init__(config) diff --git a/src/transformers/models/t5gemma/configuration_t5gemma.py b/src/transformers/models/t5gemma/configuration_t5gemma.py index 9de40c832259..245d619c08ba 100644 --- a/src/transformers/models/t5gemma/configuration_t5gemma.py +++ b/src/transformers/models/t5gemma/configuration_t5gemma.py @@ -64,6 +64,7 @@ class T5GemmaModuleConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 256000 hidden_size: int = 2304 diff --git a/src/transformers/models/t5gemma/modeling_t5gemma.py b/src/transformers/models/t5gemma/modeling_t5gemma.py index ddbacedb7782..e1b5c231a2d6 100644 --- a/src/transformers/models/t5gemma/modeling_t5gemma.py +++ b/src/transformers/models/t5gemma/modeling_t5gemma.py @@ -87,7 +87,7 @@ def __init__(self, config): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] self.dropout = nn.Dropout(config.dropout_rate) def forward(self, x): diff --git a/src/transformers/models/t5gemma/modular_t5gemma.py b/src/transformers/models/t5gemma/modular_t5gemma.py index 6f0c399830e5..c686e19a6c7f 100644 --- a/src/transformers/models/t5gemma/modular_t5gemma.py +++ b/src/transformers/models/t5gemma/modular_t5gemma.py @@ -48,7 +48,7 @@ can_return_tuple, logging, ) -from ...utils.generic import merge_with_config_defaults +from ...utils.generic import merge_with_config_defaults, no_inherit_decorator from ...utils.output_capturing import OutputRecorder, capture_outputs from ..gemma2.configuration_gemma2 import Gemma2Config from ..gemma2.modeling_gemma2 import ( @@ -153,6 +153,7 @@ class T5GemmaRMSNorm(Gemma2RMSNorm): pass +@no_inherit_decorator class T5GemmaMLP(Gemma2MLP): def __init__(self, config): super().__init__(config) diff --git a/src/transformers/models/t5gemma2/configuration_t5gemma2.py b/src/transformers/models/t5gemma2/configuration_t5gemma2.py index ebddcb7810f2..fdf08a82317b 100644 --- a/src/transformers/models/t5gemma2/configuration_t5gemma2.py +++ b/src/transformers/models/t5gemma2/configuration_t5gemma2.py @@ -60,6 +60,7 @@ class T5Gemma2TextConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_208 hidden_size: int = 2304 @@ -244,6 +245,7 @@ class T5Gemma2DecoderConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 262_208 hidden_size: int = 2304 diff --git a/src/transformers/models/t5gemma2/modeling_t5gemma2.py b/src/transformers/models/t5gemma2/modeling_t5gemma2.py index d54e95d76a59..6164c3b7e22d 100644 --- a/src/transformers/models/t5gemma2/modeling_t5gemma2.py +++ b/src/transformers/models/t5gemma2/modeling_t5gemma2.py @@ -81,7 +81,7 @@ def __init__(self, config: T5Gemma2TextConfig): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] self.dropout = nn.Dropout(config.dropout_rate) def forward(self, x): diff --git a/src/transformers/models/t5gemma2/modular_t5gemma2.py b/src/transformers/models/t5gemma2/modular_t5gemma2.py index 131106686fca..4f6ada91a2dc 100644 --- a/src/transformers/models/t5gemma2/modular_t5gemma2.py +++ b/src/transformers/models/t5gemma2/modular_t5gemma2.py @@ -45,7 +45,7 @@ logging, torch_compilable_check, ) -from ...utils.generic import merge_with_config_defaults +from ...utils.generic import merge_with_config_defaults, no_inherit_decorator from ...utils.output_capturing import OutputRecorder, capture_outputs from ..auto import AutoModel from ..gemma3.configuration_gemma3 import Gemma3Config, Gemma3TextConfig @@ -231,6 +231,7 @@ class T5Gemma2RMSNorm(Gemma3RMSNorm): pass +@no_inherit_decorator class T5Gemma2MLP(Gemma3MLP): def __init__(self, config: T5Gemma2TextConfig): super().__init__(config) diff --git a/src/transformers/models/vaultgemma/configuration_vaultgemma.py b/src/transformers/models/vaultgemma/configuration_vaultgemma.py index a60b7e8edc0c..8c646db44a0b 100644 --- a/src/transformers/models/vaultgemma/configuration_vaultgemma.py +++ b/src/transformers/models/vaultgemma/configuration_vaultgemma.py @@ -63,6 +63,7 @@ class VaultGemmaConfig(PreTrainedConfig): "layers": (["hidden_states", "attention_mask"], ["hidden_states"]), "norm": (["hidden_states"], ["hidden_states"]), } + attribute_map = {"hidden_act": "hidden_activation"} vocab_size: int = 256000 hidden_size: int = 2304 diff --git a/src/transformers/models/vaultgemma/modeling_vaultgemma.py b/src/transformers/models/vaultgemma/modeling_vaultgemma.py index ad84fd75c125..4eb81e8632a0 100644 --- a/src/transformers/models/vaultgemma/modeling_vaultgemma.py +++ b/src/transformers/models/vaultgemma/modeling_vaultgemma.py @@ -63,6 +63,7 @@ def extra_repr(self): return f"{tuple(self.weight.shape)}, eps={self.eps}" +@use_kernel_forward_from_hub("GeGLUMLP", condition=lambda module: module.config.hidden_act == "gelu_pytorch_tanh") class VaultGemmaMLP(nn.Module): def __init__(self, config): super().__init__() @@ -72,7 +73,7 @@ def __init__(self, config): self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=False) self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=False) - self.act_fn = ACT2FN[config.hidden_activation] + self.act_fn = ACT2FN[config.hidden_act] def forward(self, x): down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) diff --git a/src/transformers/models/vibevoice/modeling_vibevoice.py b/src/transformers/models/vibevoice/modeling_vibevoice.py index 77afa1d29ca3..16d7b8a17fd3 100644 --- a/src/transformers/models/vibevoice/modeling_vibevoice.py +++ b/src/transformers/models/vibevoice/modeling_vibevoice.py @@ -118,6 +118,7 @@ def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: return hidden_states +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class VibeVoiceMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/voxtral_realtime/modeling_voxtral_realtime.py b/src/transformers/models/voxtral_realtime/modeling_voxtral_realtime.py index e3abf0c60b9b..152eff8257a7 100644 --- a/src/transformers/models/voxtral_realtime/modeling_voxtral_realtime.py +++ b/src/transformers/models/voxtral_realtime/modeling_voxtral_realtime.py @@ -396,6 +396,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class VoxtralRealtimeMLP(nn.Module): def __init__(self, config): super().__init__() @@ -681,6 +682,7 @@ def forward( return attn_output, attn_weights +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class VoxtralRealtimeTextMLP(nn.Module): def __init__(self, config): super().__init__() diff --git a/src/transformers/models/youtu/modeling_youtu.py b/src/transformers/models/youtu/modeling_youtu.py index 37f573e32a5d..4c7ca03d1f6e 100644 --- a/src/transformers/models/youtu/modeling_youtu.py +++ b/src/transformers/models/youtu/modeling_youtu.py @@ -127,6 +127,7 @@ def forward(self, x, position_ids): return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) +@use_kernel_forward_from_hub("SwiGLUMLP", condition=lambda module: module.config.hidden_act == "silu") class YoutuMLP(nn.Module): def __init__(self, config): super().__init__()