vllm.model_executor.layers.activation ¶
Custom activation functions.
Classes:
-
FastGELU– -
FatreluAndMul–An activation function for FATReLU.
-
GeluAndMul–An activation function for GeGLU.
-
GeluAndMulSparse–An activation function for GeluAndMulSparse.
-
MulAndSilu–An activation function for SwiGLU.
-
NewGELU– -
QuickGELU– -
ReLUSquaredActivation–Applies the relu^2 activation introduced in https://arxiv.org/abs/2109.08668v2
-
ScaledActivation–An activation function with post-scale parameters.
-
SiluAndMul–An activation function for SwiGLU.
-
SiluAndMulWithClamp–SwiGLU activation with input clamping (used by some MoE shared experts).
-
SwigluOAIAndMul– -
SwigluStepAndMul–An activation function for SwiGLU with clamping.
-
XIELU–Applies the xIELU activation function introduced in https://arxiv.org/abs/2411.13010
Functions:
-
get_act_and_mul_fn–Get an activation-and-mul (i.e. SiluAndMul) function by name.
-
get_act_fn–Get an activation function by name.
FastGELU ¶
Bases: CustomOp
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
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)
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
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)
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
_gaussian_topk(x) ¶
Get % sparse percentile of the Gaussian distribution.
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
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)
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
NewGELU ¶
Bases: CustomOp
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
QuickGELU ¶
Bases: CustomOp
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
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
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
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
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)
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) staticmethod ¶
PyTorch-native implementation equivalent to forward().
SiluAndMulWithClamp ¶
Bases: CustomOp
SwiGLU activation with input clamping (used by some MoE shared experts).
Computes
gate = clamp(x[..., :d], max=swiglu_limit) up = clamp(x[..., d:], min=-swiglu_limit, max=swiglu_limit) out = gate * sigmoid(alpha * gate) * (up + beta)
where d = x.shape[-1] // 2. The defaults alpha=1.0, beta=0.0 reduce this to silu(gate) * up; SwiGLU-OAI style models pass alpha (sigmoid scale) and beta=1.0 (up bias).
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
SwigluOAIAndMul ¶
Bases: CustomOp
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
SwigluStepAndMul ¶
Bases: CustomOp
An activation function for SwiGLU with clamping.
Computes x -> silu(x[:d]).clamp(max=limit) * x[d:].clamp(-limit, limit) 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)
Methods:
-
forward_native–PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
forward_native(x) ¶
PyTorch-native implementation equivalent to forward().
Source code in vllm/model_executor/layers/activation.py
XIELU ¶
Bases: CustomOp
Applies the xIELU activation function introduced in https://arxiv.org/abs/2411.13010 If the user has installed the nickjbrowning/XIELU, we import xIELU CUDA Otherwise, we emit a single warning and use xIELU Python
Source code in vllm/model_executor/layers/activation.py
604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 | |
_xielu_cuda(x) ¶
Firewall function to prevent torch.compile from seeing .item()
Source code in vllm/model_executor/layers/activation.py
_get_gelu_pytorch_tanh() ¶
Get PyTorch GELU with tanh approximation, with ROCm fallback and fast GELU for ARM.
Source code in vllm/model_executor/layers/activation.py
get_act_and_mul_fn(act_fn_name, *, compile_native=True) ¶
Get an activation-and-mul (i.e. SiluAndMul) function by name.
Source code in vllm/model_executor/layers/activation.py
get_act_fn(act_fn_name) ¶
Get an activation function by name.