mirror of https://github.com/hpcaitech/ColossalAI
[test] mixtra pp shard test
parent
5a9490a46b
commit
4fc6f9aa98
|
@ -411,7 +411,7 @@ class MoeHybridParallelPlugin(HybridParallelPlugin):
|
||||||
reinitialize_optimizer(optimizer, model)
|
reinitialize_optimizer(optimizer, model)
|
||||||
|
|
||||||
if self.zero_stage == 0:
|
if self.zero_stage == 0:
|
||||||
assert self.ep_size > 1
|
# assert self.ep_size > 1
|
||||||
|
|
||||||
if self.precision in ["fp16", "bf16"]:
|
if self.precision in ["fp16", "bf16"]:
|
||||||
optimizer = HybridParallelAMPOptimizer(
|
optimizer = HybridParallelAMPOptimizer(
|
||||||
|
|
|
@ -43,14 +43,17 @@ def data_gen_for_sequence_classification():
|
||||||
output_transform_fn = lambda x: x
|
output_transform_fn = lambda x: x
|
||||||
|
|
||||||
# define loss function
|
# define loss function
|
||||||
loss_fn_for_mixtral_model = lambda x: torch.nn.functional.mse_loss(
|
loss_fn_for_mixtral_model = lambda x: torch.nn.functional.mse_loss(x[0], torch.ones_like(x[0]))
|
||||||
x.last_hidden_state, torch.ones_like(x.last_hidden_state)
|
|
||||||
)
|
|
||||||
loss_fn = lambda x: x.loss
|
loss_fn = lambda x: x.loss
|
||||||
loss_fn_for_seq_classification = lambda output: output.logits.mean()
|
loss_fn_for_seq_classification = lambda output: output.logits.mean()
|
||||||
|
|
||||||
config = MixtralConfig(
|
config = MixtralConfig(
|
||||||
hidden_size=256, intermediate_size=256, num_attention_heads=64, num_hidden_layers=2, vocab_size=50258
|
hidden_size=256,
|
||||||
|
intermediate_size=256,
|
||||||
|
num_attention_heads=64,
|
||||||
|
num_hidden_layers=2,
|
||||||
|
vocab_size=50258,
|
||||||
|
output_router_logits=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if hasattr(config, "pad_token_id"):
|
if hasattr(config, "pad_token_id"):
|
||||||
|
@ -64,19 +67,19 @@ model_zoo.register(
|
||||||
loss_fn=loss_fn_for_mixtral_model,
|
loss_fn=loss_fn_for_mixtral_model,
|
||||||
model_attribute=ModelAttribute(has_control_flow=True),
|
model_attribute=ModelAttribute(has_control_flow=True),
|
||||||
)
|
)
|
||||||
model_zoo.register(
|
# model_zoo.register(
|
||||||
name="transformers_mixtral_for_casual_lm",
|
# name="transformers_mixtral_for_casual_lm",
|
||||||
model_fn=lambda: transformers.MixtralForCausalLM(config),
|
# model_fn=lambda: transformers.MixtralForCausalLM(config),
|
||||||
data_gen_fn=data_gen_for_lm,
|
# data_gen_fn=data_gen_for_lm,
|
||||||
output_transform_fn=output_transform_fn,
|
# output_transform_fn=output_transform_fn,
|
||||||
loss_fn=loss_fn,
|
# loss_fn=loss_fn,
|
||||||
model_attribute=ModelAttribute(has_control_flow=True),
|
# model_attribute=ModelAttribute(has_control_flow=True),
|
||||||
)
|
# )
|
||||||
model_zoo.register(
|
# model_zoo.register(
|
||||||
name="transformers_mixtral_for_sequence_classification",
|
# name="transformers_mixtral_for_sequence_classification",
|
||||||
model_fn=lambda: transformers.MixtralForSequenceClassification(config),
|
# model_fn=lambda: transformers.MixtralForSequenceClassification(config),
|
||||||
data_gen_fn=data_gen_for_sequence_classification,
|
# data_gen_fn=data_gen_for_sequence_classification,
|
||||||
output_transform_fn=output_transform_fn,
|
# output_transform_fn=output_transform_fn,
|
||||||
loss_fn=loss_fn_for_seq_classification,
|
# loss_fn=loss_fn_for_seq_classification,
|
||||||
model_attribute=ModelAttribute(has_control_flow=True),
|
# model_attribute=ModelAttribute(has_control_flow=True),
|
||||||
)
|
# )
|
||||||
|
|
|
@ -114,37 +114,37 @@ def check_forward_backward(model_fn, data_gen_fn, output_transform_fn, loss_fn,
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"tp_size": 1,
|
"tp_size": 1,
|
||||||
"pp_size": 1,
|
"pp_size": 4,
|
||||||
"ep_size": 4,
|
"ep_size": 1,
|
||||||
"num_microbatches": 2,
|
"num_microbatches": 4,
|
||||||
"zero_stage": 0,
|
"zero_stage": 0,
|
||||||
"enable_all_optimization": True,
|
"enable_all_optimization": True,
|
||||||
"use_lazy_init": False,
|
"use_lazy_init": False,
|
||||||
"precision": "fp16",
|
"precision": "fp16",
|
||||||
"initial_scale": 1,
|
"initial_scale": 1,
|
||||||
},
|
},
|
||||||
{
|
# {
|
||||||
"tp_size": 1,
|
# "tp_size": 1,
|
||||||
"pp_size": 1,
|
# "pp_size": 1,
|
||||||
"ep_size": 4,
|
# "ep_size": 4,
|
||||||
"num_microbatches": 2,
|
# "num_microbatches": 2,
|
||||||
"zero_stage": 1,
|
# "zero_stage": 1,
|
||||||
"enable_all_optimization": True,
|
# "enable_all_optimization": True,
|
||||||
"use_lazy_init": False,
|
# "use_lazy_init": False,
|
||||||
"precision": "fp16",
|
# "precision": "fp16",
|
||||||
"initial_scale": 1,
|
# "initial_scale": 1,
|
||||||
},
|
# },
|
||||||
{
|
# {
|
||||||
"tp_size": 1,
|
# "tp_size": 1,
|
||||||
"pp_size": 1,
|
# "pp_size": 1,
|
||||||
"ep_size": 4,
|
# "ep_size": 4,
|
||||||
"num_microbatches": 2,
|
# "num_microbatches": 2,
|
||||||
"zero_stage": 2,
|
# "zero_stage": 2,
|
||||||
"enable_all_optimization": True,
|
# "enable_all_optimization": True,
|
||||||
"use_lazy_init": False,
|
# "use_lazy_init": False,
|
||||||
"precision": "fp16",
|
# "precision": "fp16",
|
||||||
"initial_scale": 1,
|
# "initial_scale": 1,
|
||||||
},
|
# },
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def run_mixtral_test(test_config):
|
def run_mixtral_test(test_config):
|
||||||
|
|
Loading…
Reference in New Issue