vllm.model_executor.layers.activation
Custom activation functions.
_ACTIVATION_AND_MUL_REGISTRY
module-attribute
¶
_ACTIVATION_AND_MUL_REGISTRY = LazyDict(
{
"gelu": lambda: GeluAndMul(),
"silu": lambda: SiluAndMul(),
"geglu": lambda: GeluAndMul(),
}
)
_ACTIVATION_REGISTRY
module-attribute
¶
_ACTIVATION_REGISTRY = LazyDict(
{
"gelu": lambda: GELU(),
"gelu_fast": lambda: FastGELU(),
"gelu_new": lambda: NewGELU(),
"gelu_pytorch_tanh": lambda: GELU(
approximate="tanh"
),
"relu": lambda: ReLU(),
"relu2": lambda: ReLUSquaredActivation(),
"silu": lambda: SiLU(),
"quick_gelu": lambda: QuickGELU(),
}
)
FastGELU
¶
Bases: CustomOp
Source code in vllm/model_executor/layers/activation.py
FatreluAndMul
¶
Bases: CustomOp
An activation function for FATReLU.
The function computes x -> FATReLU(x[:d]) * x[d:] where d = x.shape[-1] // 2. This is used in openbmb/MiniCPM-S-1B-sft.
Shapes
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d) return: (num_tokens, d) or (batch_size, seq_len, d)
Source code in vllm/model_executor/layers/activation.py
GeluAndMul
¶
Bases: CustomOp
An activation function for GeGLU.
The function computes x -> GELU(x[:d]) * x[d:] where d = x.shape[-1] // 2.
Shapes
x: (batch_size, seq_len, 2 * d) or (num_tokens, 2 * d) return: (batch_size, seq_len, d) or (num_tokens, d)
Source code in vllm/model_executor/layers/activation.py
__init__
¶
__init__(approximate: str = 'none')
Source code in vllm/model_executor/layers/activation.py
forward_cuda
¶
forward_native
¶
PyTorch-native implementation equivalent to forward().
forward_xpu
¶
GeluAndMulSparse
¶
Bases: CustomOp
An activation function for GeluAndMulSparse. This activation function is used in Gemma3n. It computes: up_proj = self.up_proj(x) gate_proj = self.gate_proj(x) gate_proj = self._gaussian_topk(gate_proj) # sparsity activations = self.act_fn(gate_proj) # gelu down_proj = self.down_proj(activations * up_proj) Shapes: x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d) return: (num_tokens, d) or (batch_size, seq_len, d)
Source code in vllm/model_executor/layers/activation.py
__init__
¶
Source code in vllm/model_executor/layers/activation.py
_gaussian_topk
¶
Get % sparse percentile of the Gaussian distribution.
Source code in vllm/model_executor/layers/activation.py
forward_cuda
¶
forward_native
¶
PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
MulAndSilu
¶
Bases: CustomOp
An activation function for SwiGLU.
The function computes x -> x[:d] * silu(x[d:]) where d = x.shape[-1] // 2.
Shapes
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d) return: (num_tokens, d) or (batch_size, seq_len, d)
Source code in vllm/model_executor/layers/activation.py
NewGELU
¶
Bases: CustomOp
Source code in vllm/model_executor/layers/activation.py
QuickGELU
¶
Bases: CustomOp
Source code in vllm/model_executor/layers/activation.py
ReLUSquaredActivation
¶
Bases: CustomOp
Applies the relu^2 activation introduced in https://arxiv.org/abs/2109.08668v2
Source code in vllm/model_executor/layers/activation.py
ScaledActivation
¶
Bases: Module
An activation function with post-scale parameters.
This is used for some quantization methods like AWQ.
Source code in vllm/model_executor/layers/activation.py
scales
instance-attribute
¶
scales = Parameter(
empty(
intermediate_size_per_partition, dtype=params_dtype
)
)
__init__
¶
__init__(
act_module: Module,
intermediate_size: int,
input_is_parallel: bool = True,
params_dtype: Optional[dtype] = None,
)
Source code in vllm/model_executor/layers/activation.py
forward
¶
weight_loader
¶
weight_loader(param: Parameter, loaded_weight: Tensor)
Source code in vllm/model_executor/layers/activation.py
SiluAndMul
¶
Bases: CustomOp
An activation function for SwiGLU.
The function computes x -> silu(x[:d]) * x[d:] where d = x.shape[-1] // 2.
Shapes
x: (num_tokens, 2 * d) or (batch_size, seq_len, 2 * d) return: (num_tokens, d) or (batch_size, seq_len, d)
Source code in vllm/model_executor/layers/activation.py
get_act_and_mul_fn
¶
Get an activation-and-mul (i.e. SiluAndMul) function by name.
Source code in vllm/model_executor/layers/activation.py
get_act_fn
¶
Get an activation function by name.