mirror of
https://github.com/hpcaitech/ColossalAI.git
synced 2025-09-18 07:31:19 +00:00
[shardformer] fix opt test hanging (#4521)
* [shardformer] fix opt test hanging * fix * test * test * test * fix test * fix test * remove print * add fix
This commit is contained in:
@@ -103,21 +103,21 @@ class OPTPolicy(Policy):
|
||||
target_key=OPTDecoderLayer)
|
||||
|
||||
# use flash attention
|
||||
# if self.shard_config.enable_flash_attention:
|
||||
# self.append_or_create_method_replacement(description={
|
||||
# 'forward': get_opt_flash_attention_forward(),
|
||||
# },
|
||||
# policy=policy,
|
||||
# target_key=OPTAttention)
|
||||
if self.shard_config.enable_flash_attention:
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_opt_flash_attention_forward(),
|
||||
},
|
||||
policy=policy,
|
||||
target_key=OPTAttention)
|
||||
|
||||
# use jit fused operator
|
||||
# if self.shard_config.enable_jit_fused:
|
||||
# self.append_or_create_method_replacement(description={
|
||||
# 'forward': get_jit_fused_opt_decoder_layer_forward(),
|
||||
# 'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
# },
|
||||
# policy=policy,
|
||||
# target_key=OPTDecoderLayer)
|
||||
if self.shard_config.enable_jit_fused:
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_jit_fused_opt_decoder_layer_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
},
|
||||
policy=policy,
|
||||
target_key=OPTDecoderLayer)
|
||||
|
||||
return policy
|
||||
|
||||
|
@@ -184,24 +184,33 @@ class T5BasePolicy(Policy):
|
||||
|
||||
# use flash attention
|
||||
if self.shard_config.enable_flash_attention:
|
||||
policy[T5Attention] = ModulePolicyDescription(method_replacement={
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_t5_flash_attention_forward(),
|
||||
})
|
||||
},
|
||||
policy=policy,
|
||||
target_key=T5Attention)
|
||||
|
||||
# use jit operator
|
||||
if self.shard_config.enable_jit_fused:
|
||||
policy[T5LayerFF] = ModulePolicyDescription(method_replacement={
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_jit_fused_T5_layer_ff_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
})
|
||||
policy[T5LayerSelfAttention] = ModulePolicyDescription(method_replacement={
|
||||
},
|
||||
policy=policy,
|
||||
target_key=T5LayerFF)
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_T5_layer_self_attention_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
})
|
||||
policy[T5LayerCrossAttention] = ModulePolicyDescription(method_replacement={
|
||||
},
|
||||
policy=policy,
|
||||
target_key=T5LayerSelfAttention)
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_T5_layer_cross_attention_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
})
|
||||
},
|
||||
policy=policy,
|
||||
target_key=T5LayerCrossAttention)
|
||||
|
||||
return policy
|
||||
|
||||
def postprocess(self):
|
||||
|
@@ -56,9 +56,6 @@ class WhisperPolicy(Policy):
|
||||
self.shard_config.enable_sequence_parallelism = False
|
||||
warnings.warn(
|
||||
"Whisper dosen't support sequence parallelism now, will ignore the sequence parallelism flag.")
|
||||
if self.shard_config.enable_jit_fused:
|
||||
self.shard_config.enable_jit_fused = False
|
||||
warnings.warn("Whisper dosen't support jit fused operator now, will ignore the jit fused flag.")
|
||||
|
||||
if self.shard_config.enable_tensor_parallelism:
|
||||
policy[WhisperEncoderLayer] = ModulePolicyDescription(attribute_replacement={
|
||||
@@ -212,6 +209,21 @@ class WhisperPolicy(Policy):
|
||||
policy=policy,
|
||||
target_key=WhisperAttention)
|
||||
|
||||
# use jit fused operator
|
||||
if self.shard_config.enable_jit_fused:
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_jit_fused_whisper_decoder_layer_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
},
|
||||
policy=policy,
|
||||
target_key=WhisperDecoderLayer)
|
||||
self.append_or_create_method_replacement(description={
|
||||
'forward': get_jit_fused_whisper_encoder_layer_forward(),
|
||||
'dropout_add': get_jit_fused_dropout_add_func(),
|
||||
},
|
||||
policy=policy,
|
||||
target_key=WhisperEncoderLayer)
|
||||
|
||||
return policy
|
||||
|
||||
def add_lm_head_policy(self, base_policy):
|
||||
|
Reference in New Issue
Block a user