MCPcopy Create free account
hub / github.com/MLSysU/TD-Pipe / OPTDecoderLayer

Class OPTDecoderLayer

TD_Pipe/model_executor/models/opt.py:115–188  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113
114
115class OPTDecoderLayer(nn.Module):
116
117 def __init__(
118 self,
119 config: OPTConfig,
120 attention_backend: str,
121 linear_method: Optional[LinearMethodBase] = None,
122 ):
123 super().__init__()
124 self.config = config
125 self.embed_dim = config.hidden_size
126 self.self_attn = OPTAttention(
127 embed_dim=self.embed_dim,
128 num_heads=config.num_attention_heads,
129 bias=config.enable_bias,
130 attention_backend=attention_backend,
131 linear_method=linear_method,
132 )
133 self.do_layer_norm_before = config.do_layer_norm_before
134
135 self.self_attn_layer_norm = nn.LayerNorm(
136 self.embed_dim,
137 elementwise_affine=config.layer_norm_elementwise_affine)
138 self.fc1 = ColumnParallelLinear(
139 self.embed_dim,
140 config.ffn_dim,
141 bias=config.enable_bias,
142 linear_method=linear_method,
143 )
144 quant_config = getattr(linear_method, "quant_config", None)
145 self.activation_fn = get_act_fn(config.activation_function,
146 quant_config, config.ffn_dim)
147 self.fc2 = RowParallelLinear(
148 config.ffn_dim,
149 self.embed_dim,
150 bias=config.enable_bias,
151 linear_method=linear_method,
152 )
153 self.final_layer_norm = nn.LayerNorm(
154 self.embed_dim,
155 elementwise_affine=config.layer_norm_elementwise_affine)
156
157 def forward(
158 self,
159 hidden_states: torch.Tensor,
160 kv_cache: KVCache,
161 input_metadata: InputMetadata,
162 ) -> torch.Tensor:
163 # Self Attention
164 residual = hidden_states
165 # 125m, 1.7B, ..., 175B applies layer norm BEFORE attention
166 if self.do_layer_norm_before:
167 hidden_states = self.self_attn_layer_norm(hidden_states)
168 hidden_states = self.self_attn(hidden_states=hidden_states,
169 kv_cache=kv_cache,
170 input_metadata=input_metadata)
171 hidden_states = residual + hidden_states
172 # 350m applies layer norm AFTER attention

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected