code: def _get_decoder(self, units, vocab_size, embed, prefix):
          
          with self.name_scope():
              decoder = nn.HybridSequential(prefix=prefix)
              decoder.add(nn.Dense(units, flatten=False))
              decoder.add(GELU())
              decoder.add(BERTLayerNorm(in_channels=units))
              decoder.add(nn.Dense(vocab_size, flatten=False, params=embed.collect_params()))
          assert decoder[3].weight == list(embed.collect_params().values())[0], \
              'The weights of word embedding are not tied with those of decoder'
          return decoder
docs: Construct a decoder for the masked language model task