class_docstr: Base mixin for all Pre-Normalization modules. The interface represented by this module
  is:
  
  if hidden_in is not None:
      residual_out = residual + hidden_in
  else:
      residual_out = residual
  
  hidden_out = normalize(residual_out)
  return residual_out, hidden_out
  
  Residual should be updated in-place.
class_docstr_tok: ["Base","mixin","for","all","Pre-Normalization","modules",".","The","interface","represented","by","this","module","is",":","if","hidden_in","is","not","None",":","residual_out","=","residual","+","hidden_in","else",":","residual_out","=","residual","hidden_out","=","normalize","(","residual_out",")","return","residual_out",",","hidden_out","Residual","should","be","updated","in-place","."]
docstr: Transform a gamma/beta parameter. It is assumed that both transformations are
  the same.
  
  Parameters:
      param (torch.Tensor): Gamma or beta parameter.
docstr_tok: ["Transform","a","gamma\/beta","parameter",".","It","is","assumed","that","both","transformations","are","the","same",".","Parameters",":","param","(","torch.Tensor",")",":","Gamma","or","beta","parameter","."]
code: def transform_param(self, param: torch.Tensor) -> InferenceParameter:
      """
      Transform a gamma/beta parameter. It is assumed that both transformations are
      the same.
  
      Parameters:
          param (torch.Tensor): Gamma or beta parameter.
      """
      ...
  
file_path: DeepSpeed/deepspeed/inference/v2/modules/interfaces/pre_norm_base.py
imports: from abc import abstractmethod
  from typing import Any, Dict, Optional, Tuple, Type
  import torch
  from deepspeed.runtime.config_utils import DeepSpeedConfigModel
  from ..ds_module import DSModuleBase
  from ..configs.norm_config import DSNormConfig
  from ..module_registry import DSModuleRegistryBase
  from ...inference_parameter import InferenceParameter
label_desc: Use image node_id 3 for calling the DSPreNormBase obj's underlying member method code with example usage: obj.transform_param(param) without return types