Loads weights from `oai` to `our` via in place copy. `oai` is a huggingface gpt2model, while `our` is one of our models. dst2src=True loads parameters from our models into huggingface's. ^dst2src=True is still untested
(our, oai, dst2src=False)
| 393 | load_attention(our.attention, oai.attn, dst2src) |
| 394 | |
| 395 | def move_weights(our, oai, dst2src=False): |
| 396 | """ |
| 397 | Loads weights from `oai` to `our` via in place copy. |
| 398 | `oai` is a huggingface gpt2model, while `our` is one of our models. |
| 399 | dst2src=True loads parameters from our models into huggingface's. |
| 400 | ^dst2src=True is still untested |
| 401 | """ |
| 402 | # while isinstance(our, (torchDDP, model.distributed.DistributedDataParallel, FP16_Module)): |
| 403 | # our=our.module |
| 404 | transformer_model = oai.transformer |
| 405 | load_weights(transformer_model.ln_f, our.transformer.final_layernorm, dst2src) |
| 406 | load_weights(transformer_model.wte, our.word_embeddings, dst2src) |
| 407 | load_weights(transformer_model.wpe, our.position_embeddings, dst2src) |
| 408 | |
| 409 | for our_layer, oai_layer in zip(our.transformer.layers, oai.transformer.h): |
| 410 | load_transformer_layer(our_layer, oai_layer, dst2src) |
no test coverage detected