MCPcopy Create free account
hub / github.com/zai-org/CodeGeeX / QueryLayer

Class QueryLayer

codegeex/mindspore/src/pangu_alpha.py:109–217  ·  view source on GitHub ↗

r"""Query Layer at the final layer.

Source from the content-addressed store, hash-verified

107
108
109class QueryLayer(TransformerEncoderLayer):
110 r"""Query Layer at the final layer."""
111
112 def __init__(
113 self,
114 batch_size,
115 hidden_size,
116 ffn_hidden_size,
117 num_heads,
118 seq_length,
119 attention_dropout_rate=0.1,
120 hidden_dropout_rate=0.1,
121 post_layernorm_residual=False,
122 param_init_type=mstype.float32,
123 hidden_act="fast_gelu",
124 use_past=False,
125 parallel_config=None,
126 softmax_compute_type=mstype.float32,
127 ):
128 super(QueryLayer, self).__init__(
129 batch_size=batch_size,
130 hidden_size=hidden_size,
131 ffn_hidden_size=ffn_hidden_size,
132 num_heads=num_heads,
133 seq_length=seq_length,
134 attention_dropout_rate=attention_dropout_rate,
135 hidden_dropout_rate=hidden_dropout_rate,
136 post_layernorm_residual=post_layernorm_residual,
137 param_init_type=param_init_type,
138 hidden_act=hidden_act,
139 use_past=use_past,
140 parallel_config=parallel_config.dp_mp_config,
141 softmax_compute_type=softmax_compute_type,
142 )
143
144 def construct(
145 self,
146 x,
147 query_vector,
148 input_mask,
149 init_reset=True,
150 batch_valid_length=None,
151 ):
152 r"""
153 The forward process of the block.
154 """
155 # [bs * seq_length, embedding_size]
156 input_x = self.layernorm1(x)
157 input_x = F.cast(input_x, self.dtype)
158
159 # indicate whether reset saved states
160 key_reset = None
161 value_reset = None
162
163 if self.use_past:
164 # reset states, init_reset True for reuse and False for reset
165 key_reset = self.assign(
166 self.key_past,

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected