def __init__(self, dimension: int, epsilon: float = 1e-8, is_bias: bool = False):
        """
        Args:
            dimension: the dimension of the layer output to normalize
            epsilon: an epsilon to prevent dividing by zero
                in case the layer has zero variance. (default = 1e-8)
            is_bias: a boolean value whether to include bias term
                while normalization
        """
        super().__init__()
        self.dimension = dimension
        self.epsilon = epsilon
        self.is_bias = is_bias
        self.scale = nn.Parameter(torch.ones(self.dimension))
        if self.is_bias:
            self.bias = nn.Parameter(torch.zeros(self.dimension))

        Args:
            dimension: the dimension of the layer output to normalize
            epsilon: an epsilon to prevent dividing by zero
                in case the layer has zero variance. (default = 1e-8)
            is_bias: a boolean value whether to include bias term
                while normalization
        
catalyst/contrib/layers/rms_norm.py