MCPcopy Create free account
hub / github.com/deepspeedai/DeepSpeed / load

Method load

deepspeed/module_inject/auto_tp.py:156–192  ·  view source on GitHub ↗
(module, state_dict, prefix, mp_group=None)

Source from the content-addressed store, hash-verified

154 module._buffers[name].data.copy_(state_dict[prefix + name])
155
156 def load(module, state_dict, prefix, mp_group=None):
157 mp_replace = ReplaceWithTensorSlicing(mp_group=mp_group)
158 if hasattr(module, 'weight'):
159 if module.weight.data.is_meta:
160 # meta tensor cannot be casted or copied to, so we need to replace it with a normal tensor here
161 module.weight = torch.nn.parameter.Parameter(data=torch.empty_like(module.weight.data, device="cpu"),
162 requires_grad=module.weight.data.requires_grad)
163 if 'query_key_value' in prefix:
164 module.weight = mp_replace.strided_copy(module.weight.data,
165 state_dict[prefix + 'weight'],
166 num_splits=3)
167 else:
168 module.weight = mp_replace.copy(module.weight.data, state_dict[prefix + 'weight'])
169 else:
170 if hasattr(module, 'norm') and hasattr(module.norm, 'weight'):
171 if module.norm.weight.data.is_meta:
172 # meta tensor cannot be casted or copied to, so we need to replace it with a normal tensor here
173 module.norm.weight = torch.nn.parameter.Parameter(
174 data=torch.empty_like(module.norm.weight.data, device="cpu"),
175 requires_grad=module.norm.weight.data.requires_grad)
176 module.norm.weight = mp_replace.copy(module.norm.weight.data, state_dict[prefix + 'weight'])
177
178 if prefix + 'bias' in state_dict.keys():
179 if hasattr(module, 'bias'):
180 if module.bias.data.is_meta:
181 # meta tensor cannot be casted or copied to, so we need to replace it with a normal tensor here
182 module.bias = torch.nn.parameter.Parameter(data=torch.empty_like(module.bias.data, device="cpu"),
183 requires_grad=module.bias.data.requires_grad)
184 module.bias = mp_replace.copy(module.bias, state_dict[prefix + 'bias'])
185 else:
186 if hasattr(module, 'norm') and hasattr(module.norm, 'bias'):
187 if module.norm.bias.data.is_meta:
188 # meta tensor cannot be casted or copied to, so we need to replace it with a normal tensor here
189 module.norm.bias = torch.nn.parameter.Parameter(
190 data=torch.empty_like(module.norm.bias.data, device="cpu"),
191 requires_grad=module.norm.bias.data.requires_grad)
192 module.norm.bias = mp_replace.copy(module.norm.bias, state_dict[prefix + 'bias'])
193
194
195class AutoTP():

Callers 15

init_inferenceFunction · 0.45
parse_model_statesFunction · 0.45
parse_optim_statesFunction · 0.45
schedule_experimentsMethod · 0.45
parse_resultsMethod · 0.45
_get_user_configMethod · 0.45
_generate_experimentsMethod · 0.45
write_optimal_configMethod · 0.45
updateMethod · 0.45

Calls 3

strided_copyMethod · 0.95
copyMethod · 0.95

Tested by

no test coverage detected