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

Class TransformerLanguageModel

codegeex/paddle/codegeex_model.py:818–944  ·  view source on GitHub ↗

Transformer language model. Arguments: transformer_hparams: transformer hyperparameters attention_mask_func: a function that takes `unmaksed-attention-scores` with size [b, np, s, s] and an `attention-mask` and will apply the masking. The function should

Source from the content-addressed store, hash-verified

816
817
818class TransformerLanguageModel(paddle.nn.Layer):
819 """Transformer language model.
820
821 Arguments:
822 transformer_hparams: transformer hyperparameters
823 attention_mask_func: a function that takes `unmaksed-attention-scores`
824 with size [b, np, s, s] and an `attention-mask` and will apply
825 the masking. The function should return a masked score of the
826 same size [b, np, s, s].
827 masked-attention-scores = attention_mask_func(
828 unmaksed-attention-scores, attention-mask)
829 vocab_size: vocabulary size
830 max_sequence_length: maximum size of sequence. This
831 is used for positional embedding
832 """
833
834 def __init__(
835 self,
836 hidden_size,
837 num_layers,
838 num_attention_heads,
839 padded_vocab_size,
840 max_position_embeddings,
841 ):
842 super(TransformerLanguageModel, self).__init__()
843 self.hidden_size = hidden_size
844 self.num_layers = num_layers
845 self.num_attention_heads = num_attention_heads
846 self.padded_vocab_size = padded_vocab_size
847 self.max_position_embeddings = max_position_embeddings
848
849 # Embeddings
850 self.embedding = Embedding(self.hidden_size,
851 self.padded_vocab_size,
852 self.max_position_embeddings)
853 self._embedding_key = 'embedding'
854
855 # Query embeddings
856 self.topQueryEmbedding = QueryEmbedding(self.hidden_size,
857 self.padded_vocab_size,
858 self.max_position_embeddings)
859 self._topQueryEmbedding_key = 'topQueryEmbedding'
860
861 # Transformer
862 self.transformer = Transformer(self.hidden_size,
863 self.num_attention_heads,
864 self.num_layers)
865 self._transformer_key = 'transformer'
866
867 def forward(
868 self,
869 input_ids,
870 position_ids,
871 attention_mask,
872 layer_past=None,
873 get_key_value=False,
874 prompt_length=None,
875 context_length=None,

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected