mirror of
https://github.com/hpcaitech/ColossalAI.git
synced 2025-09-02 17:46:42 +00:00
[legacy] clean up legacy code (#4743)
* [legacy] remove outdated codes of pipeline (#4692) * [legacy] remove cli of benchmark and update optim (#4690) * [legacy] remove cli of benchmark and update optim * [doc] fix cli doc test * [legacy] fix engine clip grad norm * [legacy] remove outdated colo tensor (#4694) * [legacy] remove outdated colo tensor * [test] fix test import * [legacy] move outdated zero to legacy (#4696) * [legacy] clean up utils (#4700) * [legacy] clean up utils * [example] update examples * [legacy] clean up amp * [legacy] fix amp module * [legacy] clean up gpc (#4742) * [legacy] clean up context * [legacy] clean core, constants and global vars * [legacy] refactor initialize * [example] fix examples ci * [example] fix examples ci * [legacy] fix tests * [example] fix gpt example * [example] fix examples ci * [devops] fix ci installation * [example] fix examples ci
This commit is contained in:
20
colossalai/legacy/zero/sharded_model/utils.py
Normal file
20
colossalai/legacy/zero/sharded_model/utils.py
Normal file
@@ -0,0 +1,20 @@
|
||||
import copy
|
||||
|
||||
import torch
|
||||
|
||||
from colossalai.legacy.zero.sharded_model import ShardedModelV2
|
||||
|
||||
|
||||
def col_model_deepcopy(sharded_model: ShardedModelV2, other_model: torch.nn.Module):
|
||||
"""
|
||||
copy param of the ShardedModelV2 to other_model.
|
||||
Note the other_model has to be the same as self.
|
||||
"""
|
||||
for zero_param, param in zip(sharded_model.parameters(), other_model.parameters()):
|
||||
assert hasattr(zero_param, 'colo_attr')
|
||||
shard_flag = zero_param.colo_attr.sharded_data_tensor.is_sharded
|
||||
if shard_flag:
|
||||
sharded_model.shard_strategy.gather([zero_param.colo_attr.sharded_data_tensor])
|
||||
param.data = copy.deepcopy(zero_param.colo_attr.data_payload)
|
||||
if shard_flag:
|
||||
sharded_model.shard_strategy.shard([zero_param.colo_attr.sharded_data_tensor])
|
Reference in New Issue
Block a user