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

Class Embedding

codegeex/megatron/model/language_model.py:100–270  ·  view source on GitHub ↗

Language model embeddings. Arguments: hidden_size: hidden size vocab_size: vocabulary size max_sequence_length: maximum size of sequence. This is used for positional embedding embedding_dropout_prob: dropout probability for embeddings

Source from the content-addressed store, hash-verified

98
99
100class Embedding(MegatronModule):
101 """Language model embeddings.
102
103 Arguments:
104 hidden_size: hidden size
105 vocab_size: vocabulary size
106 max_sequence_length: maximum size of sequence. This
107 is used for positional embedding
108 embedding_dropout_prob: dropout probability for embeddings
109 init_method: weight initialization method
110 num_tokentypes: size of the token-type embeddings. 0 value
111 will ignore this embedding
112 """
113
114 def __init__(
115 self,
116 hidden_size,
117 vocab_size,
118 max_sequence_length,
119 embedding_dropout_prob,
120 init_method,
121 num_tokentypes=0,
122 ):
123 super(Embedding, self).__init__()
124
125 args = get_args()
126
127 self.hidden_size = hidden_size
128 self.init_method = init_method
129 self.num_tokentypes = num_tokentypes
130 self.max_sequence_length = max_sequence_length
131
132 # Word embeddings (parallel).
133 self.word_embeddings = mpu.VocabParallelEmbedding(
134 vocab_size, self.hidden_size, init_method=self.init_method)
135 self._word_embeddings_key = 'word_embeddings'
136
137 self.vocab_size = vocab_size
138
139 # Position embedding (serial).
140 self.position_embeddings = torch.nn.Embedding(
141 max_sequence_length, self.hidden_size)
142 self.position_embeddings = self.position_embeddings.half()
143 self._position_embeddings_key = 'position_embeddings'
144
145 # Initialize the position embeddings.
146 self.init_method(self.position_embeddings.weight)
147
148 # Token type embedding.
149 # Add this as an optional field that can be added through
150 # method call so we can load a pretrain model without
151 # token types and add them as needed.
152 self._tokentype_embeddings_key = 'tokentype_embeddings'
153 if self.num_tokentypes > 0:
154 self.tokentype_embeddings = torch.nn.Embedding(self.num_tokentypes,
155 self.hidden_size)
156 # Initialize the token-type embeddings.
157 self.init_method(self.tokentype_embeddings.weight)

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected