code: def create_module(self, config=None):
      _config = config if config is not None else self.ds_model_config
  
      _config.rotate_half = False
      _config.rotate_every_two = True
      _config.rotary_dim = self.hidden_size // self.num_attention_heads
      _config.num_kv = self.policy.client_module.attention.n_kv_heads
      self.module = DeepSpeedLlama2Inference(
          _config, mp_group=self.mp_group
      )
  
      return self.module
  
imports: from .base import *
  from .features import HybridSplitQKVContainer, HybridGatedMLPContainer, MetaTensorContainer
  from deepspeed.utils.types import ActivationFuncType, NormType
  from deepspeed.model_implementations.transformers.ds_llama2 import DeepSpeedLlama2Inference
  import torch
  from torch.nn.parameter import Parameter
  from ..policy import TransformerPolicy, transformer_param_names, maybe_copy, maybe_copy_qkv, maybe_copy_geglu, maybe_get_lora
label_desc: Use image node_id 2 for calling the DS_LLAMA2Container obj's underlying member method code with example usage: obj.create_module(config) and returns: self