MCPcopy Create free account
hub / github.com/cwxndl/LLM / __init__

Method __init__

model/modeling_ndl.py:393–408  ·  view source on GitHub ↗
(self, config:ndlconfig, layer_idx: int,select_rmsnorm:'NDLRMSNorm')

Source from the content-addressed store, hash-verified

391}
392class NDLDecoderlayer(nn.Module):
393 def __init__(self, config:ndlconfig, layer_idx: int,select_rmsnorm:'NDLRMSNorm'):
394 super().__init__()
395 self.hidden_size = config.hidden_size
396 config.attn_implementation = 'sdpa'
397 # print(config)
398 self.self_attn = NDL_ATTENTION_CLASSES[config.attn_implementation](config=config, layer_idx=layer_idx)
399
400 # print(NDL_ATTENTION_CLASSES[config.attn_implementation](config=config, layer_idx=layer_idx))
401 self.mlp = NDLFFN(config) #前馈神经网络层
402 self.select_rmsnorm = select_rmsnorm #选择RMSNorm层是否使用flash_attn
403 if 'Flash' not in self.select_rmsnorm:
404 self.input_layernorm = NDLRMSNorm(config.hidden_size, eps=config.rms_norm_eps)
405 self.post_attention_layernorm = NDLRMSNorm(config.hidden_size, eps=config.rms_norm_eps)
406 else:
407 self.input_layernorm = NDLFlash_attnRMSNorm(config.hidden_size, eps=config.rms_norm_eps) #输入层的RMSNorm
408 self.post_attention_layernorm = NDLFlash_attnRMSNorm(config.hidden_size, eps=config.rms_norm_eps) #attention之后的RMSNorm
409 def forward(
410 self,
411 hidden_states: torch.Tensor, #输入:(batch, seq_len, embed_dim)

Callers

nothing calls this directly

Calls 4

NDLRMSNormClass · 0.85
NDLFFNClass · 0.70
__init__Method · 0.45

Tested by

no test coverage detected