From eb022668a3a35f480f3ac9b7fa03a2a41d4f683a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 10 Jan 2024 16:56:52 +0800 Subject: [PATCH] Route MoE Promote (Post/Pre) update 0110 --- Pre_PromptMoE_RawProb_backward_graph | 5294 ++++++++++++++++ Pre_PromptMoE_RawProb_backward_graph.pdf | Bin 0 -> 217260 bytes environment.yml | 2 +- minigpt4/configs/datasets/coco/caption.yaml | 16 +- .../datasets/coco/defaults_vqa_eval.yaml | 2 + minigpt4/configs/datasets/okvqa/eval.yaml | 2 + .../datasets/datasets/caption_datasets.py | 15 +- minigpt4/datasets/datasets/coco_caption.py | 1 + .../datasets/datasets/dataloader_utils.py | 1 - minigpt4/eval_scripts/eval_vqa.py | 2 +- minigpt4/models/QformerMoE.py | 36 +- minigpt4/models/QformerRouteMoE.py | 49 +- minigpt4/models/blip2.py | 3 +- minigpt4/models/blip2_vicuna_instruct.py | 40 +- minigpt4/models/moe/beam_search.py | 340 +- minigpt4/models/moe/beam_search_test.py | 155 - minigpt4/models/moe/moe_layer.py | 188 +- minigpt4/models/moe/moe_layer_backup.py | 330 + minigpt4/models/moe/prompt_moe.py | 1 - minigpt4/models/moe/route_moe_layer.py | 117 +- minigpt4/models/moe/test_moe_layer.py | 294 + minigpt4/models/moe/utils.py | 22 +- ..._moe_post_blip2_vicuna7b_data_balance.yaml | 4 +- .../eval/mix_vqa_coco_vicuna_eval.yaml | 17 +- ...moe_route_blip2_vicuna7b_data_balance.yaml | 13 +- ...oute_blip2_vicuna7b_data_balance_1220.yaml | 129 + .../eval/vqa_benchmark_evaluation.yaml | 9 +- ...moe_blip2_vicuna7b_data_3ex3beam_0112.yaml | 131 + ...ormer_moe_blip2_vicuna7b_data_balance.yaml | 47 +- ...rmer_moe_blip2_vicuna7b_data_raw_0112.yaml | 125 + minigpt4/runners/runner_base.py | 1 + minigpt4/tasks/base_task.py | 9 +- requirements.txt | 4 +- setup.py | 36 + test.pdf/backward_graph | 5570 +++++++++++++++++ test.pdf/backward_graph.pdf | Bin 0 -> 228604 bytes test.txt | 360 ++ test1.txt | 109 + 38 files changed, 12983 insertions(+), 491 deletions(-) create mode 100644 Pre_PromptMoE_RawProb_backward_graph create mode 100644 Pre_PromptMoE_RawProb_backward_graph.pdf delete mode 100644 minigpt4/models/moe/beam_search_test.py create mode 100644 minigpt4/models/moe/moe_layer_backup.py create mode 100644 minigpt4/models/moe/test_moe_layer.py create mode 100644 minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance_1220.yaml create mode 100644 minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_3ex3beam_0112.yaml create mode 100644 minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_raw_0112.yaml create mode 100644 setup.py create mode 100644 test.pdf/backward_graph create mode 100644 test.pdf/backward_graph.pdf create mode 100644 test.txt create mode 100644 test1.txt diff --git a/Pre_PromptMoE_RawProb_backward_graph b/Pre_PromptMoE_RawProb_backward_graph new file mode 100644 index 0000000..3a8d029 --- /dev/null +++ b/Pre_PromptMoE_RawProb_backward_graph @@ -0,0 +1,5294 @@ +digraph { + graph [size="739.65,739.65"] + node [align=left fontname=monospace fontsize=10 height=0.2 ranksep=0.1 shape=box style=filled] + 140202223089520 [label=" + (1, 46, 768)" fillcolor=darkolivegreen1] + 140202228657312 [label=CatBackward0] + 140202228615488 -> 140202228657312 + 140202228615488 [label=NativeLayerNormBackward0] + 140202228614096 -> 140202228615488 + 140202228614096 [label=AddBackward0] + 140202223538720 -> 140202228614096 + 140202223538720 [label=NativeDropoutBackward0] + 140202223538912 -> 140202223538720 + 140202223538912 [label=ViewBackward0] + 140202223539008 -> 140202223538912 + 140202223539008 [label=AddmmBackward0] + 140202223539104 -> 140202223539008 + 140202223539104 [label=ToCopyBackward0] + 140202223539296 -> 140202223539104 + 140202228893712 [label="encoder.layer.11.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202228893712 -> 140202223539296 + 140202223539296 [label=AccumulateGrad] + 140202223538864 -> 140202223539008 + 140202223538864 [label=ViewBackward0] + 140202223539152 -> 140202223538864 + 140202223539152 [label=GeluBackward0] + 140202223539248 -> 140202223539152 + 140202223539248 [label=ViewBackward0] + 140202223539680 -> 140202223539248 + 140202223539680 [label=AddmmBackward0] + 140202223539584 -> 140202223539680 + 140202223539584 [label=ToCopyBackward0] + 140202223538528 -> 140202223539584 + 140202228893952 [label="encoder.layer.11.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202228893952 -> 140202223538528 + 140202223538528 [label=AccumulateGrad] + 140202223539440 -> 140202223539680 + 140202223539440 [label=ViewBackward0] + 140202223538288 -> 140202223539440 + 140202223538288 [label=ToCopyBackward0] + 140202223538480 -> 140202223538288 + 140202223538480 [label=SliceBackward0] + 140202223538336 -> 140202223538480 + 140202223538336 [label=SliceBackward0] + 140202223539776 -> 140202223538336 + 140202223539776 [label=SliceBackward0] + 140202223539872 -> 140202223539776 + 140202223539872 [label=SliceBackward0] + 140202223539968 -> 140202223539872 + 140202223539968 [label=SliceBackward0] + 140202223540064 -> 140202223539968 + 140202223540064 [label=NativeLayerNormBackward0] + 140202223540160 -> 140202223540064 + 140202223540160 [label=AddBackward0] + 140202223540352 -> 140202223540160 + 140202223540352 [label=NativeDropoutBackward0] + 140202223540304 -> 140202223540352 + 140202223540304 [label=ViewBackward0] + 140202223540400 -> 140202223540304 + 140202223540400 [label=AddmmBackward0] + 140202223540496 -> 140202223540400 + 140202223540496 [label=ToCopyBackward0] + 140202223540688 -> 140202223540496 + 140202228904080 [label="encoder.layer.11.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228904080 -> 140202223540688 + 140202223540688 [label=AccumulateGrad] + 140202223540640 -> 140202223540400 + 140202223540640 [label=ViewBackward0] + 140202223540928 -> 140202223540640 + 140202223540928 [label=ViewBackward0] + 140202223541024 -> 140202223540928 + 140202223541024 [label=CloneBackward0] + 140202223541120 -> 140202223541024 + 140202223541120 [label=PermuteBackward0] + 140202223541216 -> 140202223541120 + 140202223541216 [label=UnsafeViewBackward0] + 140202223541312 -> 140202223541216 + 140202223541312 [label=BmmBackward0] + 140202223541408 -> 140202223541312 + 140202223541408 [label=ReshapeAliasBackward0] + 140202223541504 -> 140202223541408 + 140202223541504 [label=ExpandBackward0] + 140202223541600 -> 140202223541504 + 140202223541600 [label=ToCopyBackward0] + 140202223541792 -> 140202223541600 + 140202223541792 [label=NativeDropoutBackward0] + 140202223541984 -> 140202223541792 + 140202223541984 [label=SoftmaxBackward0] + 140202223542080 -> 140202223541984 + 140202223542080 [label=AddBackward0] + 140202223541264 -> 140202223542080 + 140202223541264 [label=DivBackward0] + 140202223575296 -> 140202223541264 + 140202223575296 [label=UnsafeViewBackward0] + 140202223575392 -> 140202223575296 + 140202223575392 [label=BmmBackward0] + 140202223575584 -> 140202223575392 + 140202223575584 [label=ReshapeAliasBackward0] + 140202223575968 -> 140202223575584 + 140202223575968 [label=ExpandBackward0] + 140202223576160 -> 140202223575968 + 140202223576160 [label=PermuteBackward0] + 140202223576208 -> 140202223576160 + 140202223576208 [label=ViewBackward0] + 140202223576448 -> 140202223576208 + 140202223576448 [label=ViewBackward0] + 140202223576640 -> 140202223576448 + 140202223576640 [label=AddmmBackward0] + 140202223576688 -> 140202223576640 + 140202223576688 [label=ToCopyBackward0] + 140202223577120 -> 140202223576688 + 140202228906560 [label="encoder.layer.11.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228906560 -> 140202223577120 + 140202223577120 [label=AccumulateGrad] + 140202223576544 -> 140202223576640 + 140202223576544 [label=ViewBackward0] + 140202223577024 -> 140202223576544 + 140202223577024 [label=ToCopyBackward0] + 140202223540112 -> 140202223577024 + 140202223540112 [label=CatBackward0] + 140202223577408 -> 140202223540112 + 140202223577408 [label=NativeLayerNormBackward0] + 140202223577504 -> 140202223577408 + 140202223577504 [label=AddBackward0] + 140202223577792 -> 140202223577504 + 140202223577792 [label=SumBackward1] + 140202223578128 -> 140202223577792 + 140202223578128 [label=MulBackward0] + 140202223578368 -> 140202223578128 + 140202223578368 [label=PermuteBackward0] + 140202223578464 -> 140202223578368 + 140202223578464 [label=CatBackward0] + 140202223578656 -> 140202223578464 + 140202223578656 [label=UnsqueezeBackward0] + 140202223578944 -> 140202223578656 + 140202223578944 [label=NativeDropoutBackward0] + 140202223578752 -> 140202223578944 + 140202223578752 [label=ViewBackward0] + 140202223079536 -> 140202223578752 + 140202223079536 [label=AddmmBackward0] + 140202223079776 -> 140202223079536 + 140202223079776 [label=ToCopyBackward0] + 140202223080064 -> 140202223079776 + 140202228905360 [label="encoder.layer.10.experts.experts.0.dense2.bias + (768)" fillcolor=lightblue] + 140202228905360 -> 140202223080064 + 140202223080064 [label=AccumulateGrad] + 140202223079872 -> 140202223079536 + 140202223079872 [label=ViewBackward0] + 140202223080352 -> 140202223079872 + 140202223080352 [label=GeluBackward0] + 140202223080400 -> 140202223080352 + 140202223080400 [label=ViewBackward0] + 140202223080640 -> 140202223080400 + 140202223080640 [label=AddmmBackward0] + 140202223080832 -> 140202223080640 + 140202223080832 [label=ToCopyBackward0] + 140202223081120 -> 140202223080832 + 140202228905280 [label="encoder.layer.10.experts.experts.0.dense1.bias + (3072)" fillcolor=lightblue] + 140202228905280 -> 140202223081120 + 140202223081120 [label=AccumulateGrad] + 140202223080544 -> 140202223080640 + 140202223080544 [label=ViewBackward0] + 140202223081024 -> 140202223080544 + 140202223081024 [label=ToCopyBackward0] + 140202223577888 -> 140202223081024 + 140202223577888 [label=SliceBackward0] + 140202223081360 -> 140202223577888 + 140202223081360 [label=SliceBackward0] + 140202223081600 -> 140202223081360 + 140202223081600 [label=NativeLayerNormBackward0] + 140202223081792 -> 140202223081600 + 140202223081792 [label=AddBackward0] + 140202223082080 -> 140202223081792 + 140202223082080 [label=NativeDropoutBackward0] + 140202223082176 -> 140202223082080 + 140202223082176 [label=ViewBackward0] + 140202223082368 -> 140202223082176 + 140202223082368 [label=AddmmBackward0] + 140202223082464 -> 140202223082368 + 140202223082464 [label=ToCopyBackward0] + 140202223082848 -> 140202223082464 + 140202228924880 [label="encoder.layer.10.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228924880 -> 140202223082848 + 140202223082848 [label=AccumulateGrad] + 140202223082560 -> 140202223082368 + 140202223082560 [label=ViewBackward0] + 140202223083040 -> 140202223082560 + 140202223083040 [label=ViewBackward0] + 140202223083232 -> 140202223083040 + 140202223083232 [label=CloneBackward0] + 140202223083280 -> 140202223083232 + 140202223083280 [label=PermuteBackward0] + 140202223083424 -> 140202223083280 + 140202223083424 [label=UnsafeViewBackward0] + 140202223082800 -> 140202223083424 + 140202223082800 [label=BmmBackward0] + 140202223108400 -> 140202223082800 + 140202223108400 [label=ReshapeAliasBackward0] + 140202223108544 -> 140202223108400 + 140202223108544 [label=ExpandBackward0] + 140202223108736 -> 140202223108544 + 140202223108736 [label=ToCopyBackward0] + 140202223108928 -> 140202223108736 + 140202223108928 [label=NativeDropoutBackward0] + 140202223109024 -> 140202223108928 + 140202223109024 [label=SoftmaxBackward0] + 140202223109216 -> 140202223109024 + 140202223109216 [label=AddBackward0] + 140202223109408 -> 140202223109216 + 140202223109408 [label=DivBackward0] + 140202223109504 -> 140202223109408 + 140202223109504 [label=UnsafeViewBackward0] + 140202223109696 -> 140202223109504 + 140202223109696 [label=BmmBackward0] + 140202223109888 -> 140202223109696 + 140202223109888 [label=ReshapeAliasBackward0] + 140202223110272 -> 140202223109888 + 140202223110272 [label=ExpandBackward0] + 140202223110320 -> 140202223110272 + 140202223110320 [label=PermuteBackward0] + 140202223110560 -> 140202223110320 + 140202223110560 [label=ViewBackward0] + 140202223110752 -> 140202223110560 + 140202223110752 [label=ViewBackward0] + 140202223110800 -> 140202223110752 + 140202223110800 [label=AddmmBackward0] + 140202223111040 -> 140202223110800 + 140202223111040 [label=ToCopyBackward0] + 140202223111280 -> 140202223111040 + 140202228925600 [label="encoder.layer.10.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202228925600 -> 140202223111280 + 140202223111280 [label=AccumulateGrad] + 140202223110848 -> 140202223110800 + 140202223110848 [label=ViewBackward0] + 140202223111328 -> 140202223110848 + 140202223111328 [label=ToCopyBackward0] + 140202223081888 -> 140202223111328 + 140202223081888 [label=SliceBackward0] + 140202223111712 -> 140202223081888 + 140202223111712 [label=SliceBackward0] + 140202223111760 -> 140202223111712 + 140202223111760 [label=SliceBackward0] + 140202223112000 -> 140202223111760 + 140202223112000 [label=NativeLayerNormBackward0] + 140202223112096 -> 140202223112000 + 140202223112096 [label=AddBackward0] + 140202223137120 -> 140202223112096 + 140202223137120 [label=NativeDropoutBackward0] + 140202223137216 -> 140202223137120 + 140202223137216 [label=ViewBackward0] + 140202223137408 -> 140202223137216 + 140202223137408 [label=AddmmBackward0] + 140202223137504 -> 140202223137408 + 140202223137504 [label=ToCopyBackward0] + 140202223137888 -> 140202223137504 + 140202228926080 [label="encoder.layer.10.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228926080 -> 140202223137888 + 140202223137888 [label=AccumulateGrad] + 140202223137600 -> 140202223137408 + 140202223137600 [label=ViewBackward0] + 140202223138080 -> 140202223137600 + 140202223138080 [label=ViewBackward0] + 140202223138272 -> 140202223138080 + 140202223138272 [label=CloneBackward0] + 140202223138320 -> 140202223138272 + 140202223138320 [label=PermuteBackward0] + 140202223138560 -> 140202223138320 + 140202223138560 [label=UnsafeViewBackward0] + 140202223138752 -> 140202223138560 + 140202223138752 [label=BmmBackward0] + 140202223138800 -> 140202223138752 + 140202223138800 [label=ReshapeAliasBackward0] + 140202223138944 -> 140202223138800 + 140202223138944 [label=ExpandBackward0] + 140202223139136 -> 140202223138944 + 140202223139136 [label=ToCopyBackward0] + 140202223139328 -> 140202223139136 + 140202223139328 [label=NativeDropoutBackward0] + 140202223139424 -> 140202223139328 + 140202223139424 [label=SoftmaxBackward0] + 140202223139616 -> 140202223139424 + 140202223139616 [label=AddBackward0] + 140202223139808 -> 140202223139616 + 140202223139808 [label=DivBackward0] + 140202223139904 -> 140202223139808 + 140202223139904 [label=UnsafeViewBackward0] + 140202223140096 -> 140202223139904 + 140202223140096 [label=BmmBackward0] + 140202223140288 -> 140202223140096 + 140202223140288 [label=ReshapeAliasBackward0] + 140202223140672 -> 140202223140288 + 140202223140672 [label=ExpandBackward0] + 140202223140720 -> 140202223140672 + 140202223140720 [label=PermuteBackward0] + 140202223140768 -> 140202223140720 + 140202223140768 [label=ViewBackward0] + 140202223169888 -> 140202223140768 + 140202223169888 [label=ViewBackward0] + 140202223169936 -> 140202223169888 + 140202223169936 [label=AddmmBackward0] + 140202223170176 -> 140202223169936 + 140202223170176 [label=ToCopyBackward0] + 140202223170416 -> 140202223170176 + 140202228926800 [label="encoder.layer.10.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228926800 -> 140202223170416 + 140202223170416 [label=AccumulateGrad] + 140202223169984 -> 140202223169936 + 140202223169984 [label=ViewBackward0] + 140202223170464 -> 140202223169984 + 140202223170464 [label=ToCopyBackward0] + 140202223136928 -> 140202223170464 + 140202223136928 [label=CatBackward0] + 140202223170848 -> 140202223136928 + 140202223170848 [label=NativeLayerNormBackward0] + 140202223170944 -> 140202223170848 + 140202223170944 [label=AddBackward0] + 140202223171232 -> 140202223170944 + 140202223171232 [label=NativeDropoutBackward0] + 140202223171616 -> 140202223171232 + 140202223171616 [label=ViewBackward0] + 140202223171808 -> 140202223171616 + 140202223171808 [label=AddmmBackward0] + 140202223171856 -> 140202223171808 + 140202223171856 [label=ToCopyBackward0] + 140202223172288 -> 140202223171856 + 140202228927280 [label="encoder.layer.9.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202228927280 -> 140202223172288 + 140202223172288 [label=AccumulateGrad] + 140202223171712 -> 140202223171808 + 140202223171712 [label=ViewBackward0] + 140202223172192 -> 140202223171712 + 140202223172192 [label=GeluBackward0] + 140202223172384 -> 140202223172192 + 140202223172384 [label=ViewBackward0] + 140202223172480 -> 140202223172384 + 140202223172480 [label=AddmmBackward0] + 140202223172672 -> 140202223172480 + 140202223172672 [label=ToCopyBackward0] + 140202223172960 -> 140202223172672 + 140202228927520 [label="encoder.layer.9.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202228927520 -> 140202223172960 + 140202223172960 [label=AccumulateGrad] + 140202223172768 -> 140202223172480 + 140202223172768 [label=ViewBackward0] + 140202223173248 -> 140202223172768 + 140202223173248 [label=ToCopyBackward0] + 140202223171328 -> 140202223173248 + 140202223171328 [label=SliceBackward0] + 140202223173344 -> 140202223171328 + 140202223173344 [label=SliceBackward0] + 140202223173440 -> 140202223173344 + 140202223173440 [label=SliceBackward0] + 140202223172864 -> 140202223173440 + 140202223172864 [label=SliceBackward0] + 140202223194368 -> 140202223172864 + 140202223194368 [label=SliceBackward0] + 140202223194464 -> 140202223194368 + 140202223194464 [label=NativeLayerNormBackward0] + 140202223194656 -> 140202223194464 + 140202223194656 [label=AddBackward0] + 140202223194944 -> 140202223194656 + 140202223194944 [label=NativeDropoutBackward0] + 140202223195280 -> 140202223194944 + 140202223195280 [label=ViewBackward0] + 140202223195520 -> 140202223195280 + 140202223195520 [label=AddmmBackward0] + 140202223195712 -> 140202223195520 + 140202223195712 [label=ToCopyBackward0] + 140202223196000 -> 140202223195712 + 140202228933472 [label="encoder.layer.9.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228933472 -> 140202223196000 + 140202223196000 [label=AccumulateGrad] + 140202223195424 -> 140202223195520 + 140202223195424 [label=ViewBackward0] + 140202223195904 -> 140202223195424 + 140202223195904 [label=ViewBackward0] + 140202223196096 -> 140202223195904 + 140202223196096 [label=CloneBackward0] + 140202223196288 -> 140202223196096 + 140202223196288 [label=PermuteBackward0] + 140202223196384 -> 140202223196288 + 140202223196384 [label=UnsafeViewBackward0] + 140202223196576 -> 140202223196384 + 140202223196576 [label=BmmBackward0] + 140202223196768 -> 140202223196576 + 140202223196768 [label=ReshapeAliasBackward0] + 140202223197152 -> 140202223196768 + 140202223197152 [label=ExpandBackward0] + 140202223197200 -> 140202223197152 + 140202223197200 [label=ToCopyBackward0] + 140202223197440 -> 140202223197200 + 140202223197440 [label=NativeDropoutBackward0] + 140202223197632 -> 140202223197440 + 140202223197632 [label=SoftmaxBackward0] + 140202223197680 -> 140202223197632 + 140202223197680 [label=AddBackward0] + 140202223197920 -> 140202223197680 + 140202223197920 [label=DivBackward0] + 140202223198112 -> 140202223197920 + 140202223198112 [label=UnsafeViewBackward0] + 140202223198016 -> 140202223198112 + 140202223198016 [label=BmmBackward0] + 140202223227136 -> 140202223198016 + 140202223227136 [label=ReshapeAliasBackward0] + 140202223227232 -> 140202223227136 + 140202223227232 [label=ExpandBackward0] + 140202223227424 -> 140202223227232 + 140202223227424 [label=PermuteBackward0] + 140202223227520 -> 140202223227424 + 140202223227520 [label=ViewBackward0] + 140202223227712 -> 140202223227520 + 140202223227712 [label=ViewBackward0] + 140202223227904 -> 140202223227712 + 140202223227904 [label=AddmmBackward0] + 140202223228000 -> 140202223227904 + 140202223228000 [label=ToCopyBackward0] + 140202223228384 -> 140202223228000 + 140202228936032 [label="encoder.layer.9.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228936032 -> 140202223228384 + 140202223228384 [label=AccumulateGrad] + 140202223228096 -> 140202223227904 + 140202223228096 [label=ViewBackward0] + 140202223228576 -> 140202223228096 + 140202223228576 [label=ToCopyBackward0] + 140202223195040 -> 140202223228576 + 140202223195040 [label=CatBackward0] + 140202223228672 -> 140202223195040 + 140202223228672 [label=NativeLayerNormBackward0] + 140202223229056 -> 140202223228672 + 140202223229056 [label=AddBackward0] + 140202223229296 -> 140202223229056 + 140202223229296 [label=SumBackward1] + 140202223229440 -> 140202223229296 + 140202223229440 [label=MulBackward0] + 140202223229632 -> 140202223229440 + 140202223229632 [label=PermuteBackward0] + 140202223230016 -> 140202223229632 + 140202223230016 [label=CatBackward0] + 140202223230208 -> 140202223230016 + 140202223230208 [label=UnsqueezeBackward0] + 140202223230496 -> 140202223230208 + 140202223230496 [label=NativeDropoutBackward0] + 140202223230688 -> 140202223230496 + 140202223230688 [label=ViewBackward0] + 140202223230736 -> 140202223230688 + 140202223230736 [label=AddmmBackward0] + 140202223230880 -> 140202223230736 + 140202223230880 [label=ToCopyBackward0] + 140202223247664 -> 140202223230880 + 140202228934832 [label="encoder.layer.8.experts.experts.0.dense2.bias + (768)" fillcolor=lightblue] + 140202228934832 -> 140202223247664 + 140202223247664 [label=AccumulateGrad] + 140202223230784 -> 140202223230736 + 140202223230784 [label=ViewBackward0] + 140202223247712 -> 140202223230784 + 140202223247712 [label=GeluBackward0] + 140202223247808 -> 140202223247712 + 140202223247808 [label=ViewBackward0] + 140202223248000 -> 140202223247808 + 140202223248000 [label=AddmmBackward0] + 140202223248192 -> 140202223248000 + 140202223248192 [label=ToCopyBackward0] + 140202223248480 -> 140202223248192 + 140202228935152 [label="encoder.layer.8.experts.experts.0.dense1.bias + (3072)" fillcolor=lightblue] + 140202228935152 -> 140202223248480 + 140202223248480 [label=AccumulateGrad] + 140202223248144 -> 140202223248000 + 140202223248144 [label=ViewBackward0] + 140202223248624 -> 140202223248144 + 140202223248624 [label=ToCopyBackward0] + 140202223229152 -> 140202223248624 + 140202223229152 [label=SliceBackward0] + 140202223248768 -> 140202223229152 + 140202223248768 [label=SliceBackward0] + 140202223248960 -> 140202223248768 + 140202223248960 [label=NativeLayerNormBackward0] + 140202223249152 -> 140202223248960 + 140202223249152 [label=AddBackward0] + 140202223249440 -> 140202223249152 + 140202223249440 [label=NativeDropoutBackward0] + 140202223249824 -> 140202223249440 + 140202223249824 [label=ViewBackward0] + 140202223250016 -> 140202223249824 + 140202223250016 [label=AddmmBackward0] + 140202223250064 -> 140202223250016 + 140202223250064 [label=ToCopyBackward0] + 140202223250496 -> 140202223250064 + 140202228950656 [label="encoder.layer.8.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228950656 -> 140202223250496 + 140202223250496 [label=AccumulateGrad] + 140202223249920 -> 140202223250016 + 140202223249920 [label=ViewBackward0] + 140202223250400 -> 140202223249920 + 140202223250400 [label=ViewBackward0] + 140202223250592 -> 140202223250400 + 140202223250592 [label=CloneBackward0] + 140202223250688 -> 140202223250592 + 140202223250688 [label=PermuteBackward0] + 140202223250976 -> 140202223250688 + 140202223250976 [label=UnsafeViewBackward0] + 140202223251264 -> 140202223250976 + 140202223251264 [label=BmmBackward0] + 140202223251360 -> 140202223251264 + 140202223251360 [label=ReshapeAliasBackward0] + 140202223284384 -> 140202223251360 + 140202223284384 [label=ExpandBackward0] + 140202223284480 -> 140202223284384 + 140202223284480 [label=ToCopyBackward0] + 140202223284672 -> 140202223284480 + 140202223284672 [label=NativeDropoutBackward0] + 140202223284864 -> 140202223284672 + 140202223284864 [label=SoftmaxBackward0] + 140202223284960 -> 140202223284864 + 140202223284960 [label=AddBackward0] + 140202223285152 -> 140202223284960 + 140202223285152 [label=DivBackward0] + 140202223285344 -> 140202223285152 + 140202223285344 [label=UnsafeViewBackward0] + 140202223285440 -> 140202223285344 + 140202223285440 [label=BmmBackward0] + 140202223285632 -> 140202223285440 + 140202223285632 [label=ReshapeAliasBackward0] + 140202223286016 -> 140202223285632 + 140202223286016 [label=ExpandBackward0] + 140202223286208 -> 140202223286016 + 140202223286208 [label=PermuteBackward0] + 140202223286256 -> 140202223286208 + 140202223286256 [label=ViewBackward0] + 140202223286496 -> 140202223286256 + 140202223286496 [label=ViewBackward0] + 140202223286688 -> 140202223286496 + 140202223286688 [label=AddmmBackward0] + 140202223286736 -> 140202223286688 + 140202223286736 [label=ToCopyBackward0] + 140202223287168 -> 140202223286736 + 140202228951376 [label="encoder.layer.8.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202228951376 -> 140202223287168 + 140202223287168 [label=AccumulateGrad] + 140202223286592 -> 140202223286688 + 140202223286592 [label=ViewBackward0] + 140202223287072 -> 140202223286592 + 140202223287072 [label=ToCopyBackward0] + 140202223249536 -> 140202223287072 + 140202223249536 [label=SliceBackward0] + 140202223287456 -> 140202223249536 + 140202223287456 [label=SliceBackward0] + 140202223287648 -> 140202223287456 + 140202223287648 [label=SliceBackward0] + 140202223287696 -> 140202223287648 + 140202223287696 [label=NativeLayerNormBackward0] + 140202223287936 -> 140202223287696 + 140202223287936 [label=AddBackward0] + 140202223288176 -> 140202223287936 + 140202223288176 [label=NativeDropoutBackward0] + 140202223288224 -> 140202223288176 + 140202223288224 [label=ViewBackward0] + 140202223313152 -> 140202223288224 + 140202223313152 [label=AddmmBackward0] + 140202223313344 -> 140202223313152 + 140202223313344 [label=ToCopyBackward0] + 140202223313632 -> 140202223313344 + 140202228951856 [label="encoder.layer.8.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228951856 -> 140202223313632 + 140202223313632 [label=AccumulateGrad] + 140202223313296 -> 140202223313152 + 140202223313296 [label=ViewBackward0] + 140202223313776 -> 140202223313296 + 140202223313776 [label=ViewBackward0] + 140202223314016 -> 140202223313776 + 140202223314016 [label=CloneBackward0] + 140202223314208 -> 140202223314016 + 140202223314208 [label=PermuteBackward0] + 140202223314256 -> 140202223314208 + 140202223314256 [label=UnsafeViewBackward0] + 140202223314496 -> 140202223314256 + 140202223314496 [label=BmmBackward0] + 140202223314688 -> 140202223314496 + 140202223314688 [label=ReshapeAliasBackward0] + 140202223314784 -> 140202223314688 + 140202223314784 [label=ExpandBackward0] + 140202223314880 -> 140202223314784 + 140202223314880 [label=ToCopyBackward0] + 140202223315072 -> 140202223314880 + 140202223315072 [label=NativeDropoutBackward0] + 140202223315264 -> 140202223315072 + 140202223315264 [label=SoftmaxBackward0] + 140202223315360 -> 140202223315264 + 140202223315360 [label=AddBackward0] + 140202223315552 -> 140202223315360 + 140202223315552 [label=DivBackward0] + 140202223315744 -> 140202223315552 + 140202223315744 [label=UnsafeViewBackward0] + 140202223315840 -> 140202223315744 + 140202223315840 [label=BmmBackward0] + 140202223316032 -> 140202223315840 + 140202223316032 [label=ReshapeAliasBackward0] + 140202223316416 -> 140202223316032 + 140202223316416 [label=ExpandBackward0] + 140202223316608 -> 140202223316416 + 140202223316608 [label=PermuteBackward0] + 140202223316656 -> 140202223316608 + 140202223316656 [label=ViewBackward0] + 140202223316896 -> 140202223316656 + 140202223316896 [label=ViewBackward0] + 140202223316800 -> 140202223316896 + 140202223316800 [label=AddmmBackward0] + 140202222817488 -> 140202223316800 + 140202222817488 [label=ToCopyBackward0] + 140202222817920 -> 140202222817488 + 140202228952576 [label="encoder.layer.8.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228952576 -> 140202222817920 + 140202222817920 [label=AccumulateGrad] + 140202222817344 -> 140202223316800 + 140202222817344 [label=ViewBackward0] + 140202222817824 -> 140202222817344 + 140202222817824 [label=ToCopyBackward0] + 140202223288032 -> 140202222817824 + 140202223288032 [label=CatBackward0] + 140202222818208 -> 140202223288032 + 140202222818208 [label=NativeLayerNormBackward0] + 140202222818304 -> 140202222818208 + 140202222818304 [label=AddBackward0] + 140202222818592 -> 140202222818304 + 140202222818592 [label=NativeDropoutBackward0] + 140202222818928 -> 140202222818592 + 140202222818928 [label=ViewBackward0] + 140202222819168 -> 140202222818928 + 140202222819168 [label=AddmmBackward0] + 140202222819360 -> 140202222819168 + 140202222819360 [label=ToCopyBackward0] + 140202222819648 -> 140202222819360 + 140202228952976 [label="encoder.layer.7.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202228952976 -> 140202222819648 + 140202222819648 [label=AccumulateGrad] + 140202222819072 -> 140202222819168 + 140202222819072 [label=ViewBackward0] + 140202222819552 -> 140202222819072 + 140202222819552 [label=GeluBackward0] + 140202222819744 -> 140202222819552 + 140202222819744 [label=ViewBackward0] + 140202222819936 -> 140202222819744 + 140202222819936 [label=AddmmBackward0] + 140202222820032 -> 140202222819936 + 140202222820032 [label=ToCopyBackward0] + 140202222820416 -> 140202222820032 + 140202228965680 [label="encoder.layer.7.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202228965680 -> 140202222820416 + 140202222820416 [label=AccumulateGrad] + 140202222820128 -> 140202222819936 + 140202222820128 [label=ViewBackward0] + 140202222820608 -> 140202222820128 + 140202222820608 [label=ToCopyBackward0] + 140202222818688 -> 140202222820608 + 140202222818688 [label=SliceBackward0] + 140202222820704 -> 140202222818688 + 140202222820704 [label=SliceBackward0] + 140202222820896 -> 140202222820704 + 140202222820896 [label=SliceBackward0] + 140202222820992 -> 140202222820896 + 140202222820992 [label=SliceBackward0] + 140202222821184 -> 140202222820992 + 140202222821184 [label=SliceBackward0] + 140202222820224 -> 140202222821184 + 140202222820224 [label=NativeLayerNormBackward0] + 140202222841968 -> 140202222820224 + 140202222841968 [label=AddBackward0] + 140202222842400 -> 140202222841968 + 140202222842400 [label=NativeDropoutBackward0] + 140202222842784 -> 140202222842400 + 140202222842784 [label=ViewBackward0] + 140202222842832 -> 140202222842784 + 140202222842832 [label=AddmmBackward0] + 140202222843072 -> 140202222842832 + 140202222843072 [label=ToCopyBackward0] + 140202222843312 -> 140202222843072 + 140202228967040 [label="encoder.layer.7.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228967040 -> 140202222843312 + 140202222843312 [label=AccumulateGrad] + 140202222842880 -> 140202222842832 + 140202222842880 [label=ViewBackward0] + 140202222843360 -> 140202222842880 + 140202222843360 [label=ViewBackward0] + 140202222843456 -> 140202222843360 + 140202222843456 [label=CloneBackward0] + 140202222843648 -> 140202222843456 + 140202222843648 [label=PermuteBackward0] + 140202222843840 -> 140202222843648 + 140202222843840 [label=UnsafeViewBackward0] + 140202222843936 -> 140202222843840 + 140202222843936 [label=BmmBackward0] + 140202222844128 -> 140202222843936 + 140202222844128 [label=ReshapeAliasBackward0] + 140202222844512 -> 140202222844128 + 140202222844512 [label=ExpandBackward0] + 140202222844704 -> 140202222844512 + 140202222844704 [label=ToCopyBackward0] + 140202222844752 -> 140202222844704 + 140202222844752 [label=NativeDropoutBackward0] + 140202222844992 -> 140202222844752 + 140202222844992 [label=SoftmaxBackward0] + 140202222845184 -> 140202222844992 + 140202222845184 [label=AddBackward0] + 140202222845232 -> 140202222845184 + 140202222845232 [label=DivBackward0] + 140202222845472 -> 140202222845232 + 140202222845472 [label=UnsafeViewBackward0] + 140202222845664 -> 140202222845472 + 140202222845664 [label=BmmBackward0] + 140202222845712 -> 140202222845664 + 140202222845712 [label=ReshapeAliasBackward0] + 140202222845856 -> 140202222845712 + 140202222845856 [label=ExpandBackward0] + 140202222870688 -> 140202222845856 + 140202222870688 [label=PermuteBackward0] + 140202222870880 -> 140202222870688 + 140202222870880 [label=ViewBackward0] + 140202222870976 -> 140202222870880 + 140202222870976 [label=ViewBackward0] + 140202222871168 -> 140202222870976 + 140202222871168 [label=AddmmBackward0] + 140202222871360 -> 140202222871168 + 140202222871360 [label=ToCopyBackward0] + 140202222871648 -> 140202222871360 + 140202228982304 [label="encoder.layer.7.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228982304 -> 140202222871648 + 140202222871648 [label=AccumulateGrad] + 140202222871312 -> 140202222871168 + 140202222871312 [label=ViewBackward0] + 140202222871792 -> 140202222871312 + 140202222871792 [label=ToCopyBackward0] + 140202222842352 -> 140202222871792 + 140202222842352 [label=CatBackward0] + 140202222871936 -> 140202222842352 + 140202222871936 [label=NativeLayerNormBackward0] + 140202222872272 -> 140202222871936 + 140202222872272 [label=AddBackward0] + 140202222872704 -> 140202222872272 + 140202222872704 [label=SumBackward1] + 140202222872800 -> 140202222872704 + 140202222872800 [label=MulBackward0] + 140202222872896 -> 140202222872800 + 140202222872896 [label=PermuteBackward0] + 140202222873232 -> 140202222872896 + 140202222873232 [label=CatBackward0] + 140202222873472 -> 140202222873232 + 140202222873472 [label=UnsqueezeBackward0] + 140202222873712 -> 140202222873472 + 140202222873712 [label=NativeDropoutBackward0] + 140202222873952 -> 140202222873712 + 140202222873952 [label=ViewBackward0] + 140202222874144 -> 140202222873952 + 140202222874144 [label=AddmmBackward0] + 140202222874192 -> 140202222874144 + 140202222874192 [label=ToCopyBackward0] + 140202222874528 -> 140202222874192 + 140202228968800 [label="encoder.layer.6.experts.experts.0.dense2.bias + (768)" fillcolor=lightblue] + 140202228968800 -> 140202222874528 + 140202222874528 [label=AccumulateGrad] + 140202222874048 -> 140202222874144 + 140202222874048 [label=ViewBackward0] + 140202222874432 -> 140202222874048 + 140202222874432 [label=GeluBackward0] + 140202222903456 -> 140202222874432 + 140202222903456 [label=ViewBackward0] + 140202222903552 -> 140202222903456 + 140202222903552 [label=AddmmBackward0] + 140202222903744 -> 140202222903552 + 140202222903744 [label=ToCopyBackward0] + 140202222904032 -> 140202222903744 + 140202228968720 [label="encoder.layer.6.experts.experts.0.dense1.bias + (3072)" fillcolor=lightblue] + 140202228968720 -> 140202222904032 + 140202222904032 [label=AccumulateGrad] + 140202222903840 -> 140202222903552 + 140202222903840 [label=ViewBackward0] + 140202222904320 -> 140202222903840 + 140202222904320 [label=ToCopyBackward0] + 140202222872416 -> 140202222904320 + 140202222872416 [label=SliceBackward0] + 140202222904416 -> 140202222872416 + 140202222904416 [label=SliceBackward0] + 140202222904512 -> 140202222904416 + 140202222904512 [label=NativeLayerNormBackward0] + 140202222904896 -> 140202222904512 + 140202222904896 [label=AddBackward0] + 140202222905184 -> 140202222904896 + 140202222905184 [label=NativeDropoutBackward0] + 140202222905280 -> 140202222905184 + 140202222905280 [label=ViewBackward0] + 140202222905328 -> 140202222905280 + 140202222905328 [label=AddmmBackward0] + 140202222905568 -> 140202222905328 + 140202222905568 [label=ToCopyBackward0] + 140202222905808 -> 140202222905568 + 140202228984224 [label="encoder.layer.6.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228984224 -> 140202222905808 + 140202222905808 [label=AccumulateGrad] + 140202222905664 -> 140202222905328 + 140202222905664 [label=ViewBackward0] + 140202222906144 -> 140202222905664 + 140202222906144 [label=ViewBackward0] + 140202222906336 -> 140202222906144 + 140202222906336 [label=CloneBackward0] + 140202222906432 -> 140202222906336 + 140202222906432 [label=PermuteBackward0] + 140202222906624 -> 140202222906432 + 140202222906624 [label=UnsafeViewBackward0] + 140202222906816 -> 140202222906624 + 140202222906816 [label=BmmBackward0] + 140202222906912 -> 140202222906816 + 140202222906912 [label=ReshapeAliasBackward0] + 140202222907008 -> 140202222906912 + 140202222907008 [label=ExpandBackward0] + 140202222907200 -> 140202222907008 + 140202222907200 [label=ToCopyBackward0] + 140202222907248 -> 140202222907200 + 140202222907248 [label=NativeDropoutBackward0] + 140202222932128 -> 140202222907248 + 140202222932128 [label=SoftmaxBackward0] + 140202222932320 -> 140202222932128 + 140202222932320 [label=AddBackward0] + 140202222932368 -> 140202222932320 + 140202222932368 [label=DivBackward0] + 140202222932608 -> 140202222932368 + 140202222932608 [label=UnsafeViewBackward0] + 140202222932800 -> 140202222932608 + 140202222932800 [label=BmmBackward0] + 140202222932848 -> 140202222932800 + 140202222932848 [label=ReshapeAliasBackward0] + 140202222933376 -> 140202222932848 + 140202222933376 [label=ExpandBackward0] + 140202222933472 -> 140202222933376 + 140202222933472 [label=PermuteBackward0] + 140202222933664 -> 140202222933472 + 140202222933664 [label=ViewBackward0] + 140202222933856 -> 140202222933664 + 140202222933856 [label=ViewBackward0] + 140202222933952 -> 140202222933856 + 140202222933952 [label=AddmmBackward0] + 140202222934144 -> 140202222933952 + 140202222934144 [label=ToCopyBackward0] + 140202222934432 -> 140202222934144 + 140202228984944 [label="encoder.layer.6.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202228984944 -> 140202222934432 + 140202222934432 [label=AccumulateGrad] + 140202222933808 -> 140202222933952 + 140202222933808 [label=ViewBackward0] + 140202222934288 -> 140202222933808 + 140202222934288 [label=ToCopyBackward0] + 140202222904848 -> 140202222934288 + 140202222904848 [label=SliceBackward0] + 140202222934816 -> 140202222904848 + 140202222934816 [label=SliceBackward0] + 140202222934912 -> 140202222934816 + 140202222934912 [label=SliceBackward0] + 140202222935104 -> 140202222934912 + 140202222935104 [label=NativeLayerNormBackward0] + 140202222935296 -> 140202222935104 + 140202222935296 [label=AddBackward0] + 140202222935584 -> 140202222935296 + 140202222935584 [label=NativeDropoutBackward0] + 140202222935680 -> 140202222935584 + 140202222935680 [label=ViewBackward0] + 140202222935728 -> 140202222935680 + 140202222935728 [label=AddmmBackward0] + 140202222935968 -> 140202222935728 + 140202222935968 [label=ToCopyBackward0] + 140202222960848 -> 140202222935968 + 140202228985424 [label="encoder.layer.6.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228985424 -> 140202222960848 + 140202222960848 [label=AccumulateGrad] + 140202222935488 -> 140202222935728 + 140202222935488 [label=ViewBackward0] + 140202222961184 -> 140202222935488 + 140202222961184 [label=ViewBackward0] + 140202222961376 -> 140202222961184 + 140202222961376 [label=CloneBackward0] + 140202222961472 -> 140202222961376 + 140202222961472 [label=PermuteBackward0] + 140202222961664 -> 140202222961472 + 140202222961664 [label=UnsafeViewBackward0] + 140202222961856 -> 140202222961664 + 140202222961856 [label=BmmBackward0] + 140202222961952 -> 140202222961856 + 140202222961952 [label=ReshapeAliasBackward0] + 140202222962048 -> 140202222961952 + 140202222962048 [label=ExpandBackward0] + 140202222962240 -> 140202222962048 + 140202222962240 [label=ToCopyBackward0] + 140202222962288 -> 140202222962240 + 140202222962288 [label=NativeDropoutBackward0] + 140202222962528 -> 140202222962288 + 140202222962528 [label=SoftmaxBackward0] + 140202222962720 -> 140202222962528 + 140202222962720 [label=AddBackward0] + 140202222962768 -> 140202222962720 + 140202222962768 [label=DivBackward0] + 140202222963008 -> 140202222962768 + 140202222963008 [label=UnsafeViewBackward0] + 140202222963200 -> 140202222963008 + 140202222963200 [label=BmmBackward0] + 140202222963248 -> 140202222963200 + 140202222963248 [label=ReshapeAliasBackward0] + 140202222963776 -> 140202222963248 + 140202222963776 [label=ExpandBackward0] + 140202222963872 -> 140202222963776 + 140202222963872 [label=PermuteBackward0] + 140202222964064 -> 140202222963872 + 140202222964064 [label=ViewBackward0] + 140202222964256 -> 140202222964064 + 140202222964256 [label=ViewBackward0] + 140202222964352 -> 140202222964256 + 140202222964352 [label=AddmmBackward0] + 140202222964544 -> 140202222964352 + 140202222964544 [label=ToCopyBackward0] + 140202222964640 -> 140202222964544 + 140202228986240 [label="encoder.layer.6.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228986240 -> 140202222964640 + 140202222964640 [label=AccumulateGrad] + 140202222964208 -> 140202222964352 + 140202222964208 [label=ViewBackward0] + 140202222988064 -> 140202222964208 + 140202222988064 [label=ToCopyBackward0] + 140202222935248 -> 140202222988064 + 140202222935248 [label=CatBackward0] + 140202222988736 -> 140202222935248 + 140202222988736 [label=NativeLayerNormBackward0] + 140202222985280 -> 140202222988736 + 140202222985280 [label=AddBackward0] + 140202222985472 -> 140202222985280 + 140202222985472 [label=NativeDropoutBackward0] + 140202222985856 -> 140202222985472 + 140202222985856 [label=ViewBackward0] + 140202222986048 -> 140202222985856 + 140202222986048 [label=AddmmBackward0] + 140202222986240 -> 140202222986048 + 140202222986240 [label=ToCopyBackward0] + 140202222987680 -> 140202222986240 + 140202228986720 [label="encoder.layer.5.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202228986720 -> 140202222987680 + 140202222987680 [label=AccumulateGrad] + 140202222985952 -> 140202222986048 + 140202222985952 [label=ViewBackward0] + 140202222986432 -> 140202222985952 + 140202222986432 [label=GeluBackward0] + 140202222986624 -> 140202222986432 + 140202222986624 [label=ViewBackward0] + 140202222986672 -> 140202222986624 + 140202222986672 [label=AddmmBackward0] + 140202222986912 -> 140202222986672 + 140202222986912 [label=ToCopyBackward0] + 140202222989072 -> 140202222986912 + 140202228986960 [label="encoder.layer.5.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202228986960 -> 140202222989072 + 140202222989072 [label=AccumulateGrad] + 140202222986816 -> 140202222986672 + 140202222986816 [label=ViewBackward0] + 140202222988832 -> 140202222986816 + 140202222988832 [label=ToCopyBackward0] + 140202222985568 -> 140202222988832 + 140202222985568 [label=SliceBackward0] + 140202222987632 -> 140202222985568 + 140202222987632 [label=SliceBackward0] + 140202222989216 -> 140202222987632 + 140202222989216 [label=SliceBackward0] + 140202222987872 -> 140202222989216 + 140202222987872 [label=SliceBackward0] + 140202222987968 -> 140202222987872 + 140202222987968 [label=SliceBackward0] + 140202222988352 -> 140202222987968 + 140202222988352 [label=NativeLayerNormBackward0] + 140202222987584 -> 140202222988352 + 140202222987584 [label=AddBackward0] + 140202224191520 -> 140202222987584 + 140202224191520 [label=NativeDropoutBackward0] + 140202224191280 -> 140202224191520 + 140202224191280 [label=ViewBackward0] + 140202224191184 -> 140202224191280 + 140202224191184 [label=AddmmBackward0] + 140202224191088 -> 140202224191184 + 140202224191088 [label=ToCopyBackward0] + 140202224190896 -> 140202224191088 + 140202228988880 [label="encoder.layer.5.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202228988880 -> 140202224190896 + 140202224190896 [label=AccumulateGrad] + 140202224191232 -> 140202224191184 + 140202224191232 [label=ViewBackward0] + 140202224190944 -> 140202224191232 + 140202224190944 [label=ViewBackward0] + 140202224190848 -> 140202224190944 + 140202224190848 [label=CloneBackward0] + 140202224190752 -> 140202224190848 + 140202224190752 [label=PermuteBackward0] + 140202224190656 -> 140202224190752 + 140202224190656 [label=UnsafeViewBackward0] + 140202224190560 -> 140202224190656 + 140202224190560 [label=BmmBackward0] + 140202224190464 -> 140202224190560 + 140202224190464 [label=ReshapeAliasBackward0] + 140202224190224 -> 140202224190464 + 140202224190224 [label=ExpandBackward0] + 140202224190128 -> 140202224190224 + 140202224190128 [label=ToCopyBackward0] + 140202224190032 -> 140202224190128 + 140202224190032 [label=NativeDropoutBackward0] + 140202224189936 -> 140202224190032 + 140202224189936 [label=SoftmaxBackward0] + 140202224189840 -> 140202224189936 + 140202224189840 [label=AddBackward0] + 140202224189744 -> 140202224189840 + 140202224189744 [label=DivBackward0] + 140202224189648 -> 140202224189744 + 140202224189648 [label=UnsafeViewBackward0] + 140202224189552 -> 140202224189648 + 140202224189552 [label=BmmBackward0] + 140202224189504 -> 140202224189552 + 140202224189504 [label=ReshapeAliasBackward0] + 140202224191808 -> 140202224189504 + 140202224191808 [label=ExpandBackward0] + 140202224191904 -> 140202224191808 + 140202224191904 [label=PermuteBackward0] + 140202224192000 -> 140202224191904 + 140202224192000 [label=ViewBackward0] + 140202224192096 -> 140202224192000 + 140202224192096 [label=ViewBackward0] + 140202224192192 -> 140202224192096 + 140202224192192 [label=AddmmBackward0] + 140202224192288 -> 140202224192192 + 140202224192288 [label=ToCopyBackward0] + 140202224192480 -> 140202224192288 + 140202228989600 [label="encoder.layer.5.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228989600 -> 140202224192480 + 140202224192480 [label=AccumulateGrad] + 140202224192240 -> 140202224192192 + 140202224192240 [label=ViewBackward0] + 140202224192576 -> 140202224192240 + 140202224192576 [label=ToCopyBackward0] + 140202224191472 -> 140202224192576 + 140202224191472 [label=CatBackward0] + 140202224192720 -> 140202224191472 + 140202224192720 [label=NativeLayerNormBackward0] + 140202224192864 -> 140202224192720 + 140202224192864 [label=AddBackward0] + 140202224193056 -> 140202224192864 + 140202224193056 [label=NativeDropoutBackward0] + 140202224193200 -> 140202224193056 + 140202224193200 [label=ViewBackward0] + 140202224193296 -> 140202224193200 + 140202224193296 [label=AddmmBackward0] + 140202224193392 -> 140202224193296 + 140202224193392 [label=ToCopyBackward0] + 140202224193488 -> 140202224193392 + 140202229010656 [label="encoder.layer.4.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202229010656 -> 140202224193488 + 140202224193488 [label=AccumulateGrad] + 140202224193344 -> 140202224193296 + 140202224193344 [label=ViewBackward0] + 140210811924640 -> 140202224193344 + 140210811924640 [label=GeluBackward0] + 140210811924736 -> 140210811924640 + 140210811924736 [label=ViewBackward0] + 140210811924832 -> 140210811924736 + 140210811924832 [label=AddmmBackward0] + 140210811924928 -> 140210811924832 + 140210811924928 [label=ToCopyBackward0] + 140210811925120 -> 140210811924928 + 140202229010896 [label="encoder.layer.4.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202229010896 -> 140210811925120 + 140210811925120 [label=AccumulateGrad] + 140210811924880 -> 140210811924832 + 140210811924880 [label=ViewBackward0] + 140210811925168 -> 140210811924880 + 140210811925168 [label=ToCopyBackward0] + 140202224193008 -> 140210811925168 + 140202224193008 [label=SliceBackward0] + 140210811925312 -> 140202224193008 + 140210811925312 [label=SliceBackward0] + 140210811925408 -> 140210811925312 + 140210811925408 [label=NativeLayerNormBackward0] + 140210811925504 -> 140210811925408 + 140210811925504 [label=AddBackward0] + 140210811925696 -> 140210811925504 + 140210811925696 [label=NativeDropoutBackward0] + 140210811925840 -> 140210811925696 + 140210811925840 [label=ViewBackward0] + 140210811925936 -> 140210811925840 + 140210811925936 [label=AddmmBackward0] + 140210811926032 -> 140210811925936 + 140210811926032 [label=ToCopyBackward0] + 140210811926224 -> 140210811926032 + 140202229012816 [label="encoder.layer.4.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229012816 -> 140210811926224 + 140210811926224 [label=AccumulateGrad] + 140210811925984 -> 140210811925936 + 140210811925984 [label=ViewBackward0] + 140210811926272 -> 140210811925984 + 140210811926272 [label=ViewBackward0] + 140210811926368 -> 140210811926272 + 140210811926368 [label=CloneBackward0] + 140210811926464 -> 140210811926368 + 140210811926464 [label=PermuteBackward0] + 140210811926560 -> 140210811926464 + 140210811926560 [label=UnsafeViewBackward0] + 140210811926656 -> 140210811926560 + 140210811926656 [label=BmmBackward0] + 140210811926752 -> 140210811926656 + 140210811926752 [label=ReshapeAliasBackward0] + 140210811926896 -> 140210811926752 + 140210811926896 [label=ExpandBackward0] + 140210811926992 -> 140210811926896 + 140210811926992 [label=ToCopyBackward0] + 140210811927088 -> 140210811926992 + 140210811927088 [label=NativeDropoutBackward0] + 140210811927184 -> 140210811927088 + 140210811927184 [label=SoftmaxBackward0] + 140210811927280 -> 140210811927184 + 140210811927280 [label=AddBackward0] + 140210811927376 -> 140210811927280 + 140210811927376 [label=DivBackward0] + 140210811927472 -> 140210811927376 + 140210811927472 [label=UnsafeViewBackward0] + 140210811927568 -> 140210811927472 + 140210811927568 [label=BmmBackward0] + 140210811927664 -> 140210811927568 + 140210811927664 [label=ReshapeAliasBackward0] + 140210811927808 -> 140210811927664 + 140210811927808 [label=ExpandBackward0] + 140210811927904 -> 140210811927808 + 140210811927904 [label=PermuteBackward0] + 140210811928000 -> 140210811927904 + 140210811928000 [label=ViewBackward0] + 140210811928096 -> 140210811928000 + 140210811928096 [label=ViewBackward0] + 140210811928192 -> 140210811928096 + 140210811928192 [label=AddmmBackward0] + 140210811928288 -> 140210811928192 + 140210811928288 [label=ToCopyBackward0] + 140210811928480 -> 140210811928288 + 140202229013536 [label="encoder.layer.4.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202229013536 -> 140210811928480 + 140210811928480 [label=AccumulateGrad] + 140210811928240 -> 140210811928192 + 140210811928240 [label=ViewBackward0] + 140210811928384 -> 140210811928240 + 140210811928384 [label=ToCopyBackward0] + 140210811925648 -> 140210811928384 + 140210811925648 [label=SliceBackward0] + 140210811941024 -> 140210811925648 + 140210811941024 [label=SliceBackward0] + 140210811941120 -> 140210811941024 + 140210811941120 [label=SliceBackward0] + 140210811941216 -> 140210811941120 + 140210811941216 [label=NativeLayerNormBackward0] + 140210811941312 -> 140210811941216 + 140210811941312 [label=AddBackward0] + 140210811941504 -> 140210811941312 + 140210811941504 [label=NativeDropoutBackward0] + 140210811941648 -> 140210811941504 + 140210811941648 [label=ViewBackward0] + 140210811941744 -> 140210811941648 + 140210811941744 [label=AddmmBackward0] + 140210811941840 -> 140210811941744 + 140210811941840 [label=ToCopyBackward0] + 140210811942032 -> 140210811941840 + 140202229014016 [label="encoder.layer.4.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229014016 -> 140210811942032 + 140210811942032 [label=AccumulateGrad] + 140210811941792 -> 140210811941744 + 140210811941792 [label=ViewBackward0] + 140210811942080 -> 140210811941792 + 140210811942080 [label=ViewBackward0] + 140210811942176 -> 140210811942080 + 140210811942176 [label=CloneBackward0] + 140210811942272 -> 140210811942176 + 140210811942272 [label=PermuteBackward0] + 140210811942368 -> 140210811942272 + 140210811942368 [label=UnsafeViewBackward0] + 140210811942464 -> 140210811942368 + 140210811942464 [label=BmmBackward0] + 140210811942560 -> 140210811942464 + 140210811942560 [label=ReshapeAliasBackward0] + 140210811942704 -> 140210811942560 + 140210811942704 [label=ExpandBackward0] + 140210811942800 -> 140210811942704 + 140210811942800 [label=ToCopyBackward0] + 140210811942896 -> 140210811942800 + 140210811942896 [label=NativeDropoutBackward0] + 140210811942992 -> 140210811942896 + 140210811942992 [label=SoftmaxBackward0] + 140210811943088 -> 140210811942992 + 140210811943088 [label=AddBackward0] + 140210811943184 -> 140210811943088 + 140210811943184 [label=DivBackward0] + 140210811943280 -> 140210811943184 + 140210811943280 [label=UnsafeViewBackward0] + 140210811943376 -> 140210811943280 + 140210811943376 [label=BmmBackward0] + 140210811943472 -> 140210811943376 + 140210811943472 [label=ReshapeAliasBackward0] + 140210811943616 -> 140210811943472 + 140210811943616 [label=ExpandBackward0] + 140210811943712 -> 140210811943616 + 140210811943712 [label=PermuteBackward0] + 140210811943808 -> 140210811943712 + 140210811943808 [label=ViewBackward0] + 140210811943904 -> 140210811943808 + 140210811943904 [label=ViewBackward0] + 140210811944000 -> 140210811943904 + 140210811944000 [label=AddmmBackward0] + 140210811944096 -> 140210811944000 + 140210811944096 [label=ToCopyBackward0] + 140210811944288 -> 140210811944096 + 140202229023024 [label="encoder.layer.4.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202229023024 -> 140210811944288 + 140210811944288 [label=AccumulateGrad] + 140210811944048 -> 140210811944000 + 140210811944048 [label=ViewBackward0] + 140210811944336 -> 140210811944048 + 140210811944336 [label=ToCopyBackward0] + 140210811941456 -> 140210811944336 + 140210811941456 [label=CatBackward0] + 140210811944480 -> 140210811941456 + 140210811944480 [label=NativeLayerNormBackward0] + 140210811944624 -> 140210811944480 + 140210811944624 [label=AddBackward0] + 140210811944816 -> 140210811944624 + 140210811944816 [label=NativeDropoutBackward0] + 140210811944912 -> 140210811944816 + 140210811944912 [label=ViewBackward0] + 140210811957408 -> 140210811944912 + 140210811957408 [label=AddmmBackward0] + 140210811957504 -> 140210811957408 + 140210811957504 [label=ToCopyBackward0] + 140210811957696 -> 140210811957504 + 140202229023504 [label="encoder.layer.3.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202229023504 -> 140210811957696 + 140210811957696 [label=AccumulateGrad] + 140210811957456 -> 140210811957408 + 140210811957456 [label=ViewBackward0] + 140210811957744 -> 140210811957456 + 140210811957744 [label=GeluBackward0] + 140210811957840 -> 140210811957744 + 140210811957840 [label=ViewBackward0] + 140210811957936 -> 140210811957840 + 140210811957936 [label=AddmmBackward0] + 140210811958032 -> 140210811957936 + 140210811958032 [label=ToCopyBackward0] + 140210811958224 -> 140210811958032 + 140202229023744 [label="encoder.layer.3.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202229023744 -> 140210811958224 + 140210811958224 [label=AccumulateGrad] + 140210811957984 -> 140210811957936 + 140210811957984 [label=ViewBackward0] + 140210811958272 -> 140210811957984 + 140210811958272 [label=ToCopyBackward0] + 140210811944768 -> 140210811958272 + 140210811944768 [label=SliceBackward0] + 140210811958416 -> 140210811944768 + 140210811958416 [label=SliceBackward0] + 140210811958512 -> 140210811958416 + 140210811958512 [label=SliceBackward0] + 140210811958608 -> 140210811958512 + 140210811958608 [label=SliceBackward0] + 140210811958704 -> 140210811958608 + 140210811958704 [label=SliceBackward0] + 140210811958800 -> 140210811958704 + 140210811958800 [label=NativeLayerNormBackward0] + 140210811958896 -> 140210811958800 + 140210811958896 [label=AddBackward0] + 140210811959088 -> 140210811958896 + 140210811959088 [label=NativeDropoutBackward0] + 140210811959232 -> 140210811959088 + 140210811959232 [label=ViewBackward0] + 140210811959328 -> 140210811959232 + 140210811959328 [label=AddmmBackward0] + 140210811959424 -> 140210811959328 + 140210811959424 [label=ToCopyBackward0] + 140210811959616 -> 140210811959424 + 140202229025664 [label="encoder.layer.3.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229025664 -> 140210811959616 + 140210811959616 [label=AccumulateGrad] + 140210811959376 -> 140210811959328 + 140210811959376 [label=ViewBackward0] + 140210811959664 -> 140210811959376 + 140210811959664 [label=ViewBackward0] + 140210811959760 -> 140210811959664 + 140210811959760 [label=CloneBackward0] + 140210811959856 -> 140210811959760 + 140210811959856 [label=PermuteBackward0] + 140210811959952 -> 140210811959856 + 140210811959952 [label=UnsafeViewBackward0] + 140210811960048 -> 140210811959952 + 140210811960048 [label=BmmBackward0] + 140210811960144 -> 140210811960048 + 140210811960144 [label=ReshapeAliasBackward0] + 140210811960288 -> 140210811960144 + 140210811960288 [label=ExpandBackward0] + 140210811960384 -> 140210811960288 + 140210811960384 [label=ToCopyBackward0] + 140210811960480 -> 140210811960384 + 140210811960480 [label=NativeDropoutBackward0] + 140210811960576 -> 140210811960480 + 140210811960576 [label=SoftmaxBackward0] + 140210811960672 -> 140210811960576 + 140210811960672 [label=AddBackward0] + 140210811960768 -> 140210811960672 + 140210811960768 [label=DivBackward0] + 140210811960864 -> 140210811960768 + 140210811960864 [label=UnsafeViewBackward0] + 140210811960960 -> 140210811960864 + 140210811960960 [label=BmmBackward0] + 140210811961056 -> 140210811960960 + 140210811961056 [label=ReshapeAliasBackward0] + 140210811961200 -> 140210811961056 + 140210811961200 [label=ExpandBackward0] + 140210811961296 -> 140210811961200 + 140210811961296 [label=PermuteBackward0] + 140210811961104 -> 140210811961296 + 140210811961104 [label=ViewBackward0] + 140210811973840 -> 140210811961104 + 140210811973840 [label=ViewBackward0] + 140210811973936 -> 140210811973840 + 140210811973936 [label=AddmmBackward0] + 140210811974032 -> 140210811973936 + 140210811974032 [label=ToCopyBackward0] + 140210811974224 -> 140210811974032 + 140202229026384 [label="encoder.layer.3.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202229026384 -> 140210811974224 + 140210811974224 [label=AccumulateGrad] + 140210811973984 -> 140210811973936 + 140210811973984 [label=ViewBackward0] + 140210811974272 -> 140210811973984 + 140210811974272 [label=ToCopyBackward0] + 140210811959040 -> 140210811974272 + 140210811959040 [label=CatBackward0] + 140210811974416 -> 140210811959040 + 140210811974416 [label=NativeLayerNormBackward0] + 140210811974560 -> 140210811974416 + 140210811974560 [label=AddBackward0] + 140210811974752 -> 140210811974560 + 140210811974752 [label=NativeDropoutBackward0] + 140210811974896 -> 140210811974752 + 140210811974896 [label=ViewBackward0] + 140210811974992 -> 140210811974896 + 140210811974992 [label=AddmmBackward0] + 140210811975088 -> 140210811974992 + 140210811975088 [label=ToCopyBackward0] + 140210811975280 -> 140210811975088 + 140202229039248 [label="encoder.layer.2.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202229039248 -> 140210811975280 + 140210811975280 [label=AccumulateGrad] + 140210811975040 -> 140210811974992 + 140210811975040 [label=ViewBackward0] + 140210811975328 -> 140210811975040 + 140210811975328 [label=GeluBackward0] + 140210811975424 -> 140210811975328 + 140210811975424 [label=ViewBackward0] + 140210811975520 -> 140210811975424 + 140210811975520 [label=AddmmBackward0] + 140210811975616 -> 140210811975520 + 140210811975616 [label=ToCopyBackward0] + 140210811975808 -> 140210811975616 + 140202229039488 [label="encoder.layer.2.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202229039488 -> 140210811975808 + 140210811975808 [label=AccumulateGrad] + 140210811975568 -> 140210811975520 + 140210811975568 [label=ViewBackward0] + 140210811975856 -> 140210811975568 + 140210811975856 [label=ToCopyBackward0] + 140210811974704 -> 140210811975856 + 140210811974704 [label=SliceBackward0] + 140210811976000 -> 140210811974704 + 140210811976000 [label=SliceBackward0] + 140210811976096 -> 140210811976000 + 140210811976096 [label=NativeLayerNormBackward0] + 140210811976192 -> 140210811976096 + 140210811976192 [label=AddBackward0] + 140210811976384 -> 140210811976192 + 140210811976384 [label=NativeDropoutBackward0] + 140210811976528 -> 140210811976384 + 140210811976528 [label=ViewBackward0] + 140210811976624 -> 140210811976528 + 140210811976624 [label=AddmmBackward0] + 140210811976720 -> 140210811976624 + 140210811976720 [label=ToCopyBackward0] + 140210811976912 -> 140210811976720 + 140202229041408 [label="encoder.layer.2.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229041408 -> 140210811976912 + 140210811976912 [label=AccumulateGrad] + 140210811976672 -> 140210811976624 + 140210811976672 [label=ViewBackward0] + 140210811976960 -> 140210811976672 + 140210811976960 [label=ViewBackward0] + 140210811977056 -> 140210811976960 + 140210811977056 [label=CloneBackward0] + 140210811977152 -> 140210811977056 + 140210811977152 [label=PermuteBackward0] + 140210811977248 -> 140210811977152 + 140210811977248 [label=UnsafeViewBackward0] + 140210811977344 -> 140210811977248 + 140210811977344 [label=BmmBackward0] + 140210811977440 -> 140210811977344 + 140210811977440 [label=ReshapeAliasBackward0] + 140210811977584 -> 140210811977440 + 140210811977584 [label=ExpandBackward0] + 140210811977680 -> 140210811977584 + 140210811977680 [label=ToCopyBackward0] + 140210811977488 -> 140210811977680 + 140210811977488 [label=NativeDropoutBackward0] + 140210811994320 -> 140210811977488 + 140210811994320 [label=SoftmaxBackward0] + 140210811994416 -> 140210811994320 + 140210811994416 [label=AddBackward0] + 140210811994512 -> 140210811994416 + 140210811994512 [label=DivBackward0] + 140210811994608 -> 140210811994512 + 140210811994608 [label=UnsafeViewBackward0] + 140210811994704 -> 140210811994608 + 140210811994704 [label=BmmBackward0] + 140210811994800 -> 140210811994704 + 140210811994800 [label=ReshapeAliasBackward0] + 140210811994944 -> 140210811994800 + 140210811994944 [label=ExpandBackward0] + 140210811995040 -> 140210811994944 + 140210811995040 [label=PermuteBackward0] + 140210811995136 -> 140210811995040 + 140210811995136 [label=ViewBackward0] + 140210811995232 -> 140210811995136 + 140210811995232 [label=ViewBackward0] + 140210811995328 -> 140210811995232 + 140210811995328 [label=AddmmBackward0] + 140210811995424 -> 140210811995328 + 140210811995424 [label=ToCopyBackward0] + 140210811995616 -> 140210811995424 + 140202229042128 [label="encoder.layer.2.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202229042128 -> 140210811995616 + 140210811995616 [label=AccumulateGrad] + 140210811995376 -> 140210811995328 + 140210811995376 [label=ViewBackward0] + 140210811995664 -> 140210811995376 + 140210811995664 [label=ToCopyBackward0] + 140210811976336 -> 140210811995664 + 140210811976336 [label=SliceBackward0] + 140210811995808 -> 140210811976336 + 140210811995808 [label=SliceBackward0] + 140210811995904 -> 140210811995808 + 140210811995904 [label=SliceBackward0] + 140210811996000 -> 140210811995904 + 140210811996000 [label=NativeLayerNormBackward0] + 140210811996096 -> 140210811996000 + 140210811996096 [label=AddBackward0] + 140210811996288 -> 140210811996096 + 140210811996288 [label=NativeDropoutBackward0] + 140210811996432 -> 140210811996288 + 140210811996432 [label=ViewBackward0] + 140210811996528 -> 140210811996432 + 140210811996528 [label=AddmmBackward0] + 140210811996624 -> 140210811996528 + 140210811996624 [label=ToCopyBackward0] + 140210811996816 -> 140210811996624 + 140202229042608 [label="encoder.layer.2.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229042608 -> 140210811996816 + 140210811996816 [label=AccumulateGrad] + 140210811996576 -> 140210811996528 + 140210811996576 [label=ViewBackward0] + 140210811996864 -> 140210811996576 + 140210811996864 [label=ViewBackward0] + 140210811996960 -> 140210811996864 + 140210811996960 [label=CloneBackward0] + 140210811997056 -> 140210811996960 + 140210811997056 [label=PermuteBackward0] + 140210811997152 -> 140210811997056 + 140210811997152 [label=UnsafeViewBackward0] + 140210811997248 -> 140210811997152 + 140210811997248 [label=BmmBackward0] + 140210811997344 -> 140210811997248 + 140210811997344 [label=ReshapeAliasBackward0] + 140210811997488 -> 140210811997344 + 140210811997488 [label=ExpandBackward0] + 140210811997584 -> 140210811997488 + 140210811997584 [label=ToCopyBackward0] + 140210811997680 -> 140210811997584 + 140210811997680 [label=NativeDropoutBackward0] + 140210811997776 -> 140210811997680 + 140210811997776 [label=SoftmaxBackward0] + 140210811997872 -> 140210811997776 + 140210811997872 [label=AddBackward0] + 140210811997968 -> 140210811997872 + 140210811997968 [label=DivBackward0] + 140210811998064 -> 140210811997968 + 140210811998064 [label=UnsafeViewBackward0] + 140210811998160 -> 140210811998064 + 140210811998160 [label=BmmBackward0] + 140210811997392 -> 140210811998160 + 140210811997392 [label=ReshapeAliasBackward0] + 140210812006656 -> 140210811997392 + 140210812006656 [label=ExpandBackward0] + 140210812006752 -> 140210812006656 + 140210812006752 [label=PermuteBackward0] + 140210812006848 -> 140210812006752 + 140210812006848 [label=ViewBackward0] + 140210812006944 -> 140210812006848 + 140210812006944 [label=ViewBackward0] + 140210812007040 -> 140210812006944 + 140210812007040 [label=AddmmBackward0] + 140210812007136 -> 140210812007040 + 140210812007136 [label=ToCopyBackward0] + 140210812007328 -> 140210812007136 + 140202229047520 [label="encoder.layer.2.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202229047520 -> 140210812007328 + 140210812007328 [label=AccumulateGrad] + 140210812007088 -> 140210812007040 + 140210812007088 [label=ViewBackward0] + 140210812007376 -> 140210812007088 + 140210812007376 [label=ToCopyBackward0] + 140210811996240 -> 140210812007376 + 140210811996240 [label=CatBackward0] + 140210812007520 -> 140210811996240 + 140210812007520 [label=NativeLayerNormBackward0] + 140210812007664 -> 140210812007520 + 140210812007664 [label=AddBackward0] + 140210812007856 -> 140210812007664 + 140210812007856 [label=NativeDropoutBackward0] + 140210812008000 -> 140210812007856 + 140210812008000 [label=ViewBackward0] + 140210812008096 -> 140210812008000 + 140210812008096 [label=AddmmBackward0] + 140210812008192 -> 140210812008096 + 140210812008192 [label=ToCopyBackward0] + 140210812008384 -> 140210812008192 + 140202229048000 [label="encoder.layer.1.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202229048000 -> 140210812008384 + 140210812008384 [label=AccumulateGrad] + 140210812008144 -> 140210812008096 + 140210812008144 [label=ViewBackward0] + 140210812008432 -> 140210812008144 + 140210812008432 [label=GeluBackward0] + 140210812008528 -> 140210812008432 + 140210812008528 [label=ViewBackward0] + 140210812008624 -> 140210812008528 + 140210812008624 [label=AddmmBackward0] + 140210812008720 -> 140210812008624 + 140210812008720 [label=ToCopyBackward0] + 140210812008912 -> 140210812008720 + 140202229048240 [label="encoder.layer.1.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202229048240 -> 140210812008912 + 140210812008912 [label=AccumulateGrad] + 140210812008672 -> 140210812008624 + 140210812008672 [label=ViewBackward0] + 140210812008960 -> 140210812008672 + 140210812008960 [label=ToCopyBackward0] + 140210812007808 -> 140210812008960 + 140210812007808 [label=SliceBackward0] + 140210812009104 -> 140210812007808 + 140210812009104 [label=SliceBackward0] + 140210812009200 -> 140210812009104 + 140210812009200 [label=SliceBackward0] + 140210812009296 -> 140210812009200 + 140210812009296 [label=SliceBackward0] + 140210812009392 -> 140210812009296 + 140210812009392 [label=SliceBackward0] + 140210812009488 -> 140210812009392 + 140210812009488 [label=NativeLayerNormBackward0] + 140210812009584 -> 140210812009488 + 140210812009584 [label=AddBackward0] + 140210812009776 -> 140210812009584 + 140210812009776 [label=NativeDropoutBackward0] + 140210812009920 -> 140210812009776 + 140210812009920 [label=ViewBackward0] + 140210812010016 -> 140210812009920 + 140210812010016 [label=AddmmBackward0] + 140210812010112 -> 140210812010016 + 140210812010112 [label=ToCopyBackward0] + 140210812010304 -> 140210812010112 + 140202229050160 [label="encoder.layer.1.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229050160 -> 140210812010304 + 140210812010304 [label=AccumulateGrad] + 140210812010064 -> 140210812010016 + 140210812010064 [label=ViewBackward0] + 140210812010352 -> 140210812010064 + 140210812010352 [label=ViewBackward0] + 140210812010448 -> 140210812010352 + 140210812010448 [label=CloneBackward0] + 140210812010256 -> 140210812010448 + 140210812010256 [label=PermuteBackward0] + 140210812022992 -> 140210812010256 + 140210812022992 [label=UnsafeViewBackward0] + 140210812023088 -> 140210812022992 + 140210812023088 [label=BmmBackward0] + 140210812023184 -> 140210812023088 + 140210812023184 [label=ReshapeAliasBackward0] + 140210812023328 -> 140210812023184 + 140210812023328 [label=ExpandBackward0] + 140210812023424 -> 140210812023328 + 140210812023424 [label=ToCopyBackward0] + 140210812023520 -> 140210812023424 + 140210812023520 [label=NativeDropoutBackward0] + 140210812023616 -> 140210812023520 + 140210812023616 [label=SoftmaxBackward0] + 140210812023712 -> 140210812023616 + 140210812023712 [label=AddBackward0] + 140210812023808 -> 140210812023712 + 140210812023808 [label=DivBackward0] + 140210812023904 -> 140210812023808 + 140210812023904 [label=UnsafeViewBackward0] + 140210812024000 -> 140210812023904 + 140210812024000 [label=BmmBackward0] + 140210812024096 -> 140210812024000 + 140210812024096 [label=ReshapeAliasBackward0] + 140210812024240 -> 140210812024096 + 140210812024240 [label=ExpandBackward0] + 140210812024336 -> 140210812024240 + 140210812024336 [label=PermuteBackward0] + 140210812024432 -> 140210812024336 + 140210812024432 [label=ViewBackward0] + 140210812024528 -> 140210812024432 + 140210812024528 [label=ViewBackward0] + 140210812024624 -> 140210812024528 + 140210812024624 [label=AddmmBackward0] + 140210812024720 -> 140210812024624 + 140210812024720 [label=ToCopyBackward0] + 140210812024912 -> 140210812024720 + 140202229050880 [label="encoder.layer.1.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202229050880 -> 140210812024912 + 140210812024912 [label=AccumulateGrad] + 140210812024672 -> 140210812024624 + 140210812024672 [label=ViewBackward0] + 140210812024960 -> 140210812024672 + 140210812024960 [label=ToCopyBackward0] + 140210812009728 -> 140210812024960 + 140210812009728 [label=CatBackward0] + 140210812025104 -> 140210812009728 + 140210812025104 [label=NativeLayerNormBackward0] + 140210812025248 -> 140210812025104 + 140210812025248 [label=AddBackward0] + 140210812025440 -> 140210812025248 + 140210812025440 [label=NativeDropoutBackward0] + 140210812025584 -> 140210812025440 + 140210812025584 [label=ViewBackward0] + 140210812025680 -> 140210812025584 + 140210812025680 [label=AddmmBackward0] + 140210812025776 -> 140210812025680 + 140210812025776 [label=ToCopyBackward0] + 140210812025968 -> 140210812025776 + 140202229067840 [label="encoder.layer.0.experts.dense2.bias + (768)" fillcolor=lightblue] + 140202229067840 -> 140210812025968 + 140210812025968 [label=AccumulateGrad] + 140210812025728 -> 140210812025680 + 140210812025728 [label=ViewBackward0] + 140210812026016 -> 140210812025728 + 140210812026016 [label=GeluBackward0] + 140210812026112 -> 140210812026016 + 140210812026112 [label=ViewBackward0] + 140210812026208 -> 140210812026112 + 140210812026208 [label=AddmmBackward0] + 140210812026304 -> 140210812026208 + 140210812026304 [label=ToCopyBackward0] + 140210812026496 -> 140210812026304 + 140202229068080 [label="encoder.layer.0.experts.dense1.bias + (3072)" fillcolor=lightblue] + 140202229068080 -> 140210812026496 + 140210812026496 [label=AccumulateGrad] + 140210812026256 -> 140210812026208 + 140210812026256 [label=ViewBackward0] + 140210812026544 -> 140210812026256 + 140210812026544 [label=ToCopyBackward0] + 140210812025392 -> 140210812026544 + 140210812025392 [label=SliceBackward0] + 140210812026688 -> 140210812025392 + 140210812026688 [label=SliceBackward0] + 140210812026784 -> 140210812026688 + 140210812026784 [label=NativeLayerNormBackward0] + 140210812026832 -> 140210812026784 + 140210812026832 [label=AddBackward0] + 140210812039424 -> 140210812026832 + 140210812039424 [label=NativeDropoutBackward0] + 140210812039568 -> 140210812039424 + 140210812039568 [label=ViewBackward0] + 140210812039664 -> 140210812039568 + 140210812039664 [label=AddmmBackward0] + 140210812039760 -> 140210812039664 + 140210812039760 [label=ToCopyBackward0] + 140210812039952 -> 140210812039760 + 140202229070000 [label="encoder.layer.0.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229070000 -> 140210812039952 + 140210812039952 [label=AccumulateGrad] + 140210812039712 -> 140210812039664 + 140210812039712 [label=ViewBackward0] + 140210812040000 -> 140210812039712 + 140210812040000 [label=ViewBackward0] + 140210812040096 -> 140210812040000 + 140210812040096 [label=CloneBackward0] + 140210812040192 -> 140210812040096 + 140210812040192 [label=PermuteBackward0] + 140210812040288 -> 140210812040192 + 140210812040288 [label=UnsafeViewBackward0] + 140210812040384 -> 140210812040288 + 140210812040384 [label=BmmBackward0] + 140210812040480 -> 140210812040384 + 140210812040480 [label=ReshapeAliasBackward0] + 140210812040624 -> 140210812040480 + 140210812040624 [label=ExpandBackward0] + 140210812040720 -> 140210812040624 + 140210812040720 [label=ToCopyBackward0] + 140210812040816 -> 140210812040720 + 140210812040816 [label=NativeDropoutBackward0] + 140210812040912 -> 140210812040816 + 140210812040912 [label=SoftmaxBackward0] + 140210812041008 -> 140210812040912 + 140210812041008 [label=AddBackward0] + 140210812041104 -> 140210812041008 + 140210812041104 [label=DivBackward0] + 140210812041200 -> 140210812041104 + 140210812041200 [label=UnsafeViewBackward0] + 140210812041296 -> 140210812041200 + 140210812041296 [label=BmmBackward0] + 140210812041392 -> 140210812041296 + 140210812041392 [label=ReshapeAliasBackward0] + 140210812041536 -> 140210812041392 + 140210812041536 [label=ExpandBackward0] + 140210812041632 -> 140210812041536 + 140210812041632 [label=PermuteBackward0] + 140210812041728 -> 140210812041632 + 140210812041728 [label=ViewBackward0] + 140210812041824 -> 140210812041728 + 140210812041824 [label=ViewBackward0] + 140210812041920 -> 140210812041824 + 140210812041920 [label=AddmmBackward0] + 140210812042016 -> 140210812041920 + 140210812042016 [label=ToCopyBackward0] + 140210812042208 -> 140210812042016 + 140202229070720 [label="encoder.layer.0.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140202229070720 -> 140210812042208 + 140210812042208 [label=AccumulateGrad] + 140210812041968 -> 140210812041920 + 140210812041968 [label=ViewBackward0] + 140210812042256 -> 140210812041968 + 140210812042256 [label=ToCopyBackward0] + 140210812039376 -> 140210812042256 + 140210812039376 [label=SliceBackward0] + 140210812042400 -> 140210812039376 + 140210812042400 [label=SliceBackward0] + 140210812042496 -> 140210812042400 + 140210812042496 [label=SliceBackward0] + 140210812042592 -> 140210812042496 + 140210812042592 [label=NativeLayerNormBackward0] + 140210812042688 -> 140210812042592 + 140210812042688 [label=AddBackward0] + 140210812042880 -> 140210812042688 + 140210812042880 [label=NativeDropoutBackward0] + 140210812043024 -> 140210812042880 + 140210812043024 [label=ViewBackward0] + 140210812043120 -> 140210812043024 + 140210812043120 [label=AddmmBackward0] + 140210812043216 -> 140210812043120 + 140210812043216 [label=ToCopyBackward0] + 140210812051664 -> 140210812043216 + 140202229071200 [label="encoder.layer.0.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140202229071200 -> 140210812051664 + 140210812051664 [label=AccumulateGrad] + 140210812043168 -> 140210812043120 + 140210812043168 [label=ViewBackward0] + 140210812051712 -> 140210812043168 + 140210812051712 [label=ViewBackward0] + 140210812051808 -> 140210812051712 + 140210812051808 [label=CloneBackward0] + 140210812051904 -> 140210812051808 + 140210812051904 [label=PermuteBackward0] + 140210812052000 -> 140210812051904 + 140210812052000 [label=UnsafeViewBackward0] + 140210812052096 -> 140210812052000 + 140210812052096 [label=BmmBackward0] + 140210812052192 -> 140210812052096 + 140210812052192 [label=ReshapeAliasBackward0] + 140210812052336 -> 140210812052192 + 140210812052336 [label=ExpandBackward0] + 140210812052432 -> 140210812052336 + 140210812052432 [label=ToCopyBackward0] + 140210812052528 -> 140210812052432 + 140210812052528 [label=NativeDropoutBackward0] + 140210812052624 -> 140210812052528 + 140210812052624 [label=SoftmaxBackward0] + 140210812052720 -> 140210812052624 + 140210812052720 [label=AddBackward0] + 140210812052816 -> 140210812052720 + 140210812052816 [label=DivBackward0] + 140210812052912 -> 140210812052816 + 140210812052912 [label=UnsafeViewBackward0] + 140210812053008 -> 140210812052912 + 140210812053008 [label=BmmBackward0] + 140210812053104 -> 140210812053008 + 140210812053104 [label=ReshapeAliasBackward0] + 140210812053248 -> 140210812053104 + 140210812053248 [label=ExpandBackward0] + 140210812053344 -> 140210812053248 + 140210812053344 [label=PermuteBackward0] + 140210812053440 -> 140210812053344 + 140210812053440 [label=ViewBackward0] + 140210812053536 -> 140210812053440 + 140210812053536 [label=ViewBackward0] + 140210812053632 -> 140210812053536 + 140210812053632 [label=AddmmBackward0] + 140210812053728 -> 140210812053632 + 140210812053728 [label=ToCopyBackward0] + 140210812053920 -> 140210812053728 + 140202228734688 [label="encoder.layer.0.attention.self.query.bias + (768)" fillcolor=lightblue] + 140202228734688 -> 140210812053920 + 140210812053920 [label=AccumulateGrad] + 140210812053680 -> 140210812053632 + 140210812053680 [label=ViewBackward0] + 140210812053968 -> 140210812053680 + 140210812053968 [label=ToCopyBackward0] + 140210812042832 -> 140210812053968 + 140210812042832 [label=NativeDropoutBackward0] + 140210812054112 -> 140210812042832 + 140210812054112 [label=NativeLayerNormBackward0] + 140210812054208 -> 140210812054112 + 140210812054208 [label=CatBackward0] + 140210812054400 -> 140210812054208 + 140210812054400 [label=ExpandBackward0] + 140210812054544 -> 140210812054400 + 140202228561216 [label=" + (1, 32, 768)" fillcolor=lightblue] + 140202228561216 -> 140210812054544 + 140210812054544 [label=AccumulateGrad] + 140210812054352 -> 140210812054208 + 140210812054352 [label=AddBackward0] + 140210812054592 -> 140210812054352 + 140210812054592 [label=EmbeddingBackward0] + 140210812054736 -> 140210812054592 + 140202228561776 [label="embeddings.word_embeddings.weight + (30523, 768)" fillcolor=lightblue] + 140202228561776 -> 140210812054736 + 140210812054736 [label=AccumulateGrad] + 140210812054640 -> 140210812054352 + 140210812054640 [label=EmbeddingBackward0] + 140210812054784 -> 140210812054640 + 140202228735888 [label="embeddings.position_embeddings.weight + (512, 768)" fillcolor=lightblue] + 140202228735888 -> 140210812054784 + 140210812054784 [label=AccumulateGrad] + 140210812054160 -> 140210812054112 + 140202228560576 [label="embeddings.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228560576 -> 140210812054160 + 140210812054160 [label=AccumulateGrad] + 140210812053824 -> 140210812054112 + 140202228560336 [label="embeddings.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228560336 -> 140210812053824 + 140210812053824 [label=AccumulateGrad] + 140210812053152 -> 140210812053632 + 140210812053152 [label=TBackward0] + 140210812053872 -> 140210812053152 + 140210812053872 [label=ToCopyBackward0] + 140210812054304 -> 140210812053872 + 140202228560096 [label="encoder.layer.0.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228560096 -> 140210812054304 + 140210812054304 [label=AccumulateGrad] + 140210812053056 -> 140210812053008 + 140210812053056 [label=ReshapeAliasBackward0] + 140210812053392 -> 140210812053056 + 140210812053392 [label=ExpandBackward0] + 140210812053584 -> 140210812053392 + 140210812053584 [label=TransposeBackward0] + 140210812054064 -> 140210812053584 + 140210812054064 [label=PermuteBackward0] + 140210812054832 -> 140210812054064 + 140210812054832 [label=ViewBackward0] + 140210812054016 -> 140210812054832 + 140210812054016 [label=ViewBackward0] + 140210812054448 -> 140210812054016 + 140210812054448 [label=AddmmBackward0] + 140210812054928 -> 140210812054448 + 140210812054928 [label=ToCopyBackward0] + 140210812055120 -> 140210812054928 + 140202229071680 [label="encoder.layer.0.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202229071680 -> 140210812055120 + 140210812055120 [label=AccumulateGrad] + 140210812054688 -> 140210812054448 + 140210812054688 [label=ViewBackward0] + 140210812055168 -> 140210812054688 + 140210812055168 [label=ToCopyBackward0] + 140210812042832 -> 140210812055168 + 140210812053200 -> 140210812054448 + 140210812053200 [label=TBackward0] + 140210812055024 -> 140210812053200 + 140210812055024 [label=ToCopyBackward0] + 140210812055312 -> 140210812055024 + 140202228734048 [label="encoder.layer.0.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228734048 -> 140210812055312 + 140210812055312 [label=AccumulateGrad] + 140210812052144 -> 140210812052096 + 140210812052144 [label=ReshapeAliasBackward0] + 140210812052480 -> 140210812052144 + 140210812052480 [label=ExpandBackward0] + 140210812052672 -> 140210812052480 + 140210812052672 [label=PermuteBackward0] + 140210812052864 -> 140210812052672 + 140210812052864 [label=ViewBackward0] + 140210812052240 -> 140210812052864 + 140210812052240 [label=ViewBackward0] + 140210812053488 -> 140210812052240 + 140210812053488 [label=AddmmBackward0] + 140210812054256 -> 140210812053488 + 140210812054256 [label=ToCopyBackward0] + 140210812055264 -> 140210812054256 + 140202229071440 [label="encoder.layer.0.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202229071440 -> 140210812055264 + 140210812055264 [label=AccumulateGrad] + 140210812053776 -> 140210812053488 + 140210812053776 [label=ViewBackward0] + 140210812055072 -> 140210812053776 + 140210812055072 [label=ToCopyBackward0] + 140210812042832 -> 140210812055072 + 140210812052288 -> 140210812053488 + 140210812052288 [label=TBackward0] + 140210812054880 -> 140210812052288 + 140210812054880 [label=ToCopyBackward0] + 140210812055216 -> 140210812054880 + 140202229071760 [label="encoder.layer.0.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202229071760 -> 140210812055216 + 140210812055216 [label=AccumulateGrad] + 140210812042928 -> 140210812043120 + 140210812042928 [label=TBackward0] + 140210812051856 -> 140210812042928 + 140210812051856 [label=ToCopyBackward0] + 140210812052048 -> 140210812051856 + 140202229071520 [label="encoder.layer.0.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229071520 -> 140210812052048 + 140210812052048 [label=AccumulateGrad] + 140210812042832 -> 140210812042688 + 140210812042640 -> 140210812042592 + 140202229071280 [label="encoder.layer.0.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229071280 -> 140210812042640 + 140210812042640 [label=AccumulateGrad] + 140210812042112 -> 140210812042592 + 140202229070960 [label="encoder.layer.0.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229070960 -> 140210812042112 + 140210812042112 [label=AccumulateGrad] + 140210812041440 -> 140210812041920 + 140210812041440 [label=TBackward0] + 140210812042160 -> 140210812041440 + 140210812042160 [label=ToCopyBackward0] + 140210812042544 -> 140210812042160 + 140202229071040 [label="encoder.layer.0.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229071040 -> 140210812042544 + 140210812042544 [label=AccumulateGrad] + 140210812041344 -> 140210812041296 + 140210812041344 [label=ReshapeAliasBackward0] + 140210812041680 -> 140210812041344 + 140210812041680 [label=ExpandBackward0] + 140210812041872 -> 140210812041680 + 140210812041872 [label=TransposeBackward0] + 140210812042352 -> 140210812041872 + 140210812042352 [label=PermuteBackward0] + 140210812042784 -> 140210812042352 + 140210812042784 [label=ViewBackward0] + 140210812042304 -> 140210812042784 + 140210812042304 [label=ViewBackward0] + 140210812043072 -> 140210812042304 + 140210812043072 [label=AddmmBackward0] + 140210812041488 -> 140210812043072 + 140210812041488 [label=ToCopyBackward0] + 140210812051760 -> 140210812041488 + 140202229070480 [label="encoder.layer.0.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202229070480 -> 140210812051760 + 140210812051760 [label=AccumulateGrad] + 140210812051568 -> 140210812043072 + 140210812051568 [label=ViewBackward0] + 140210812052576 -> 140210812051568 + 140210812052576 [label=ToCopyBackward0] + 140210812052960 -> 140210812052576 + 140210812052960 [label=NativeLayerNormBackward0] + 140210812054496 -> 140210812052960 + 140202228735248 [label=" + (1408)" fillcolor=lightblue] + 140202228735248 -> 140210812054496 + 140210812054496 [label=AccumulateGrad] + 140210812053296 -> 140210812052960 + 140202228735488 [label=" + (1408)" fillcolor=lightblue] + 140202228735488 -> 140210812053296 + 140210812053296 [label=AccumulateGrad] + 140210812051520 -> 140210812043072 + 140210812051520 [label=TBackward0] + 140210812051616 -> 140210812051520 + 140210812051616 [label=ToCopyBackward0] + 140210812054976 -> 140210812051616 + 140202229070800 [label="encoder.layer.0.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202229070800 -> 140210812054976 + 140210812054976 [label=AccumulateGrad] + 140210812040432 -> 140210812040384 + 140210812040432 [label=ReshapeAliasBackward0] + 140210812040768 -> 140210812040432 + 140210812040768 [label=ExpandBackward0] + 140210812040960 -> 140210812040768 + 140210812040960 [label=PermuteBackward0] + 140210812041152 -> 140210812040960 + 140210812041152 [label=ViewBackward0] + 140210812040528 -> 140210812041152 + 140210812040528 [label=ViewBackward0] + 140210812041776 -> 140210812040528 + 140210812041776 [label=AddmmBackward0] + 140210812042448 -> 140210812041776 + 140210812042448 [label=ToCopyBackward0] + 140210812042976 -> 140210812042448 + 140202229070240 [label="encoder.layer.0.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202229070240 -> 140210812042976 + 140210812042976 [label=AccumulateGrad] + 140210812042064 -> 140210812041776 + 140210812042064 [label=ViewBackward0] + 140210812055360 -> 140210812042064 + 140210812055360 [label=ToCopyBackward0] + 140210812052960 -> 140210812055360 + 140210812040576 -> 140210812041776 + 140210812040576 [label=TBackward0] + 140210812051952 -> 140210812040576 + 140210812051952 [label=ToCopyBackward0] + 140210812052768 -> 140210812051952 + 140202229070560 [label="encoder.layer.0.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202229070560 -> 140210812052768 + 140210812052768 [label=AccumulateGrad] + 140210812039472 -> 140210812039664 + 140210812039472 [label=TBackward0] + 140210812040144 -> 140210812039472 + 140210812040144 [label=ToCopyBackward0] + 140210812040336 -> 140210812040144 + 140202229070320 [label="encoder.layer.0.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229070320 -> 140210812040336 + 140210812040336 [label=AccumulateGrad] + 140210812039376 -> 140210812026832 + 140210812026400 -> 140210812026784 + 140202229070080 [label="encoder.layer.0.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229070080 -> 140210812026400 + 140210812026400 [label=AccumulateGrad] + 140210812039232 -> 140210812026784 + 140202229069760 [label="encoder.layer.0.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229069760 -> 140210812039232 + 140210812039232 [label=AccumulateGrad] + 140210812025920 -> 140210812026208 + 140210812025920 [label=TBackward0] + 140210812026448 -> 140210812025920 + 140210812026448 [label=ToCopyBackward0] + 140210812026736 -> 140210812026448 + 140202229068400 [label="encoder.layer.0.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202229068400 -> 140210812026736 + 140210812026736 [label=AccumulateGrad] + 140210812025488 -> 140210812025680 + 140210812025488 [label=TBackward0] + 140210812026160 -> 140210812025488 + 140210812026160 [label=ToCopyBackward0] + 140210812026640 -> 140210812026160 + 140202229068160 [label="encoder.layer.0.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202229068160 -> 140210812026640 + 140210812026640 [label=AccumulateGrad] + 140210812025392 -> 140210812025248 + 140210812025200 -> 140210812025104 + 140202229067920 [label="encoder.layer.0.expert_ln.weight + (768)" fillcolor=lightblue] + 140202229067920 -> 140210812025200 + 140210812025200 [label=AccumulateGrad] + 140210812025152 -> 140210812025104 + 140202229051120 [label="encoder.layer.0.expert_ln.bias + (768)" fillcolor=lightblue] + 140202229051120 -> 140210812025152 + 140210812025152 [label=AccumulateGrad] + 140210812024864 -> 140210812009728 + 140210812024864 [label=NativeLayerNormBackward0] + 140210812025536 -> 140210812024864 + 140210812025536 [label=AddBackward0] + 140210812026352 -> 140210812025536 + 140210812026352 [label=NativeDropoutBackward0] + 140210812026064 -> 140210812026352 + 140210812026064 [label=ViewBackward0] + 140210812039280 -> 140210812026064 + 140210812039280 [label=AddmmBackward0] + 140210812039808 -> 140210812039280 + 140210812039808 [label=ToCopyBackward0] + 140210812039904 -> 140210812039808 + 140202229069280 [label="encoder.layer.0.output.dense.bias + (768)" fillcolor=lightblue] + 140202229069280 -> 140210812039904 + 140210812039904 [label=AccumulateGrad] + 140210812039616 -> 140210812039280 + 140210812039616 [label=ViewBackward0] + 140210812040048 -> 140210812039616 + 140210812040048 [label=GeluBackward0] + 140210812041056 -> 140210812040048 + 140210812041056 [label=ViewBackward0] + 140210812041584 -> 140210812041056 + 140210812041584 [label=AddmmBackward0] + 140210812042736 -> 140210812041584 + 140210812042736 [label=ToCopyBackward0] + 140210812055456 -> 140210812042736 + 140202229069520 [label="encoder.layer.0.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202229069520 -> 140210812055456 + 140210812055456 [label=AccumulateGrad] + 140210812040672 -> 140210812041584 + 140210812040672 [label=ViewBackward0] + 140210812055408 -> 140210812040672 + 140210812055408 [label=ToCopyBackward0] + 140210812025872 -> 140210812055408 + 140210812025872 [label=SliceBackward0] + 140210812092672 -> 140210812025872 + 140210812092672 [label=SliceBackward0] + 140210812092768 -> 140210812092672 + 140210812092768 [label=SliceBackward0] + 140210812042592 -> 140210812092768 + 140210812055504 -> 140210812041584 + 140210812055504 [label=TBackward0] + 140210812092576 -> 140210812055504 + 140210812092576 [label=ToCopyBackward0] + 140210812092864 -> 140210812092576 + 140202229069840 [label="encoder.layer.0.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202229069840 -> 140210812092864 + 140210812092864 [label=AccumulateGrad] + 140210812039520 -> 140210812039280 + 140210812039520 [label=TBackward0] + 140210812041248 -> 140210812039520 + 140210812041248 [label=ToCopyBackward0] + 140210812052384 -> 140210812041248 + 140202229069600 [label="encoder.layer.0.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202229069600 -> 140210812052384 + 140210812052384 [label=AccumulateGrad] + 140210812025872 -> 140210812025536 + 140210812025344 -> 140210812024864 + 140202229069360 [label="encoder.layer.0.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229069360 -> 140210812025344 + 140210812025344 [label=AccumulateGrad] + 140210812025296 -> 140210812024864 + 140202229069040 [label="encoder.layer.0.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229069040 -> 140210812025296 + 140210812025296 [label=AccumulateGrad] + 140210812024144 -> 140210812024624 + 140210812024144 [label=TBackward0] + 140210812024816 -> 140210812024144 + 140210812024816 [label=ToCopyBackward0] + 140210812025824 -> 140210812024816 + 140202229051200 [label="encoder.layer.1.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229051200 -> 140210812025824 + 140210812025824 [label=AccumulateGrad] + 140210812024048 -> 140210812024000 + 140210812024048 [label=ReshapeAliasBackward0] + 140210812024384 -> 140210812024048 + 140210812024384 [label=ExpandBackward0] + 140210812024576 -> 140210812024384 + 140210812024576 [label=TransposeBackward0] + 140210812025056 -> 140210812024576 + 140210812025056 [label=PermuteBackward0] + 140210812026592 -> 140210812025056 + 140210812026592 [label=ViewBackward0] + 140210812025008 -> 140210812026592 + 140210812025008 [label=ViewBackward0] + 140210812040240 -> 140210812025008 + 140210812040240 [label=AddmmBackward0] + 140210812040864 -> 140210812040240 + 140210812040864 [label=ToCopyBackward0] + 140210812092528 -> 140210812040864 + 140202229050640 [label="encoder.layer.1.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202229050640 -> 140210812092528 + 140210812092528 [label=AccumulateGrad] + 140210812039328 -> 140210812040240 + 140210812039328 [label=ViewBackward0] + 140210812092912 -> 140210812039328 + 140210812092912 [label=ToCopyBackward0] + 140210812009728 -> 140210812092912 + 140210812092480 -> 140210812040240 + 140210812092480 [label=TBackward0] + 140210812092624 -> 140210812092480 + 140210812092624 [label=ToCopyBackward0] + 140210812093056 -> 140210812092624 + 140202229050960 [label="encoder.layer.1.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202229050960 -> 140210812093056 + 140210812093056 [label=AccumulateGrad] + 140210812023136 -> 140210812023088 + 140210812023136 [label=ReshapeAliasBackward0] + 140210812023472 -> 140210812023136 + 140210812023472 [label=ExpandBackward0] + 140210812023664 -> 140210812023472 + 140210812023664 [label=PermuteBackward0] + 140210812023856 -> 140210812023664 + 140210812023856 [label=ViewBackward0] + 140210812023232 -> 140210812023856 + 140210812023232 [label=ViewBackward0] + 140210812024480 -> 140210812023232 + 140210812024480 [label=AddmmBackward0] + 140210812025632 -> 140210812024480 + 140210812025632 [label=ToCopyBackward0] + 140210812039856 -> 140210812025632 + 140202229050400 [label="encoder.layer.1.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202229050400 -> 140210812039856 + 140210812039856 [label=AccumulateGrad] + 140210812024768 -> 140210812024480 + 140210812024768 [label=ViewBackward0] + 140210812092816 -> 140210812024768 + 140210812092816 [label=ToCopyBackward0] + 140210812009728 -> 140210812092816 + 140210812023280 -> 140210812024480 + 140210812023280 [label=TBackward0] + 140210812092720 -> 140210812023280 + 140210812092720 [label=ToCopyBackward0] + 140210812092960 -> 140210812092720 + 140202229050720 [label="encoder.layer.1.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202229050720 -> 140210812092960 + 140210812092960 [label=AccumulateGrad] + 140210812009824 -> 140210812010016 + 140210812009824 [label=TBackward0] + 140210812010208 -> 140210812009824 + 140210812010208 [label=ToCopyBackward0] + 140210812023040 -> 140210812010208 + 140202229050480 [label="encoder.layer.1.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229050480 -> 140210812023040 + 140210812023040 [label=AccumulateGrad] + 140210812009728 -> 140210812009584 + 140210812009536 -> 140210812009488 + 140202229050240 [label="encoder.layer.1.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229050240 -> 140210812009536 + 140210812009536 [label=AccumulateGrad] + 140210812008816 -> 140210812009488 + 140202229049920 [label="encoder.layer.1.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229049920 -> 140210812008816 + 140210812008816 [label=AccumulateGrad] + 140210812008336 -> 140210812008624 + 140210812008336 [label=TBackward0] + 140210812008864 -> 140210812008336 + 140210812008864 [label=ToCopyBackward0] + 140210812009248 -> 140210812008864 + 140202229048560 [label="encoder.layer.1.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202229048560 -> 140210812009248 + 140210812009248 [label=AccumulateGrad] + 140210812007904 -> 140210812008096 + 140210812007904 [label=TBackward0] + 140210812008576 -> 140210812007904 + 140210812008576 [label=ToCopyBackward0] + 140210812009056 -> 140210812008576 + 140202229048320 [label="encoder.layer.1.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202229048320 -> 140210812009056 + 140210812009056 [label=AccumulateGrad] + 140210812007808 -> 140210812007664 + 140210812007616 -> 140210812007520 + 140202229048080 [label="encoder.layer.1.expert_ln.weight + (768)" fillcolor=lightblue] + 140202229048080 -> 140210812007616 + 140210812007616 [label=AccumulateGrad] + 140210812007568 -> 140210812007520 + 140202229047760 [label="encoder.layer.1.expert_ln.bias + (768)" fillcolor=lightblue] + 140202229047760 -> 140210812007568 + 140210812007568 [label=AccumulateGrad] + 140210812007280 -> 140210811996240 + 140210812007280 [label=NativeLayerNormBackward0] + 140210812007952 -> 140210812007280 + 140210812007952 [label=AddBackward0] + 140210812008768 -> 140210812007952 + 140210812008768 [label=NativeDropoutBackward0] + 140210812008480 -> 140210812008768 + 140210812008480 [label=ViewBackward0] + 140210812009008 -> 140210812008480 + 140210812009008 [label=AddmmBackward0] + 140210812009680 -> 140210812009008 + 140210812009680 [label=ToCopyBackward0] + 140210812010400 -> 140210812009680 + 140202229049440 [label="encoder.layer.1.output.dense.bias + (768)" fillcolor=lightblue] + 140202229049440 -> 140210812010400 + 140210812010400 [label=AccumulateGrad] + 140210812009632 -> 140210812009008 + 140210812009632 [label=ViewBackward0] + 140210812009968 -> 140210812009632 + 140210812009968 [label=GeluBackward0] + 140210812022848 -> 140210812009968 + 140210812022848 [label=ViewBackward0] + 140210812023568 -> 140210812022848 + 140210812023568 [label=AddmmBackward0] + 140210812023952 -> 140210812023568 + 140210812023952 [label=ToCopyBackward0] + 140210812024192 -> 140210812023952 + 140202229049680 [label="encoder.layer.1.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202229049680 -> 140210812024192 + 140210812024192 [label=AccumulateGrad] + 140210812023760 -> 140210812023568 + 140210812023760 [label=ViewBackward0] + 140210812093248 -> 140210812023760 + 140210812093248 [label=ToCopyBackward0] + 140210812008288 -> 140210812093248 + 140210812008288 [label=SliceBackward0] + 140210812093296 -> 140210812008288 + 140210812093296 [label=SliceBackward0] + 140210812093392 -> 140210812093296 + 140210812093392 [label=SliceBackward0] + 140210812009488 -> 140210812093392 + 140210812023376 -> 140210812023568 + 140210812023376 [label=TBackward0] + 140210812093008 -> 140210812023376 + 140210812093008 [label=ToCopyBackward0] + 140210812093488 -> 140210812093008 + 140202229050000 [label="encoder.layer.1.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202229050000 -> 140210812093488 + 140210812093488 [label=AccumulateGrad] + 140210812009440 -> 140210812009008 + 140210812009440 [label=TBackward0] + 140210812010160 -> 140210812009440 + 140210812010160 [label=ToCopyBackward0] + 140210812024288 -> 140210812010160 + 140202229049760 [label="encoder.layer.1.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202229049760 -> 140210812024288 + 140210812024288 [label=AccumulateGrad] + 140210812008288 -> 140210812007952 + 140210812007760 -> 140210812007280 + 140202229049520 [label="encoder.layer.1.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229049520 -> 140210812007760 + 140210812007760 [label=AccumulateGrad] + 140210812007712 -> 140210812007280 + 140202229049200 [label="encoder.layer.1.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229049200 -> 140210812007712 + 140210812007712 [label=AccumulateGrad] + 140210812006560 -> 140210812007040 + 140210812006560 [label=TBackward0] + 140210812007232 -> 140210812006560 + 140210812007232 [label=ToCopyBackward0] + 140210812008240 -> 140210812007232 + 140202229047840 [label="encoder.layer.2.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229047840 -> 140210812008240 + 140210812008240 [label=AccumulateGrad] + 140210812006464 -> 140210811998160 + 140210812006464 [label=ReshapeAliasBackward0] + 140210812006800 -> 140210812006464 + 140210812006800 [label=ExpandBackward0] + 140210812006992 -> 140210812006800 + 140210812006992 [label=TransposeBackward0] + 140210812007472 -> 140210812006992 + 140210812007472 [label=PermuteBackward0] + 140210812009344 -> 140210812007472 + 140210812009344 [label=ViewBackward0] + 140210812007424 -> 140210812009344 + 140210812007424 [label=ViewBackward0] + 140210812009872 -> 140210812007424 + 140210812009872 [label=AddmmBackward0] + 140210812022944 -> 140210812009872 + 140210812022944 [label=ToCopyBackward0] + 140210812093200 -> 140210812022944 + 140202229047360 [label="encoder.layer.2.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202229047360 -> 140210812093200 + 140210812093200 [label=AccumulateGrad] + 140210812022896 -> 140210812009872 + 140210812022896 [label=ViewBackward0] + 140210812093536 -> 140210812022896 + 140210812093536 [label=ToCopyBackward0] + 140210811996240 -> 140210812093536 + 140210812093104 -> 140210812009872 + 140210812093104 [label=TBackward0] + 140210812093152 -> 140210812093104 + 140210812093152 [label=ToCopyBackward0] + 140210812093680 -> 140210812093152 + 140202229047600 [label="encoder.layer.2.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202229047600 -> 140210812093680 + 140210812093680 [label=AccumulateGrad] + 140210811997296 -> 140210811997248 + 140210811997296 [label=ReshapeAliasBackward0] + 140210811997632 -> 140210811997296 + 140210811997632 [label=ExpandBackward0] + 140210811997824 -> 140210811997632 + 140210811997824 [label=PermuteBackward0] + 140210811998016 -> 140210811997824 + 140210811998016 [label=ViewBackward0] + 140210811998112 -> 140210811998016 + 140210811998112 [label=ViewBackward0] + 140210812006896 -> 140210811998112 + 140210812006896 [label=AddmmBackward0] + 140210812008048 -> 140210812006896 + 140210812008048 [label=ToCopyBackward0] + 140210812006608 -> 140210812008048 + 140202229042848 [label="encoder.layer.2.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202229042848 -> 140210812006608 + 140210812006608 [label=AccumulateGrad] + 140210812007184 -> 140210812006896 + 140210812007184 [label=ViewBackward0] + 140210812093440 -> 140210812007184 + 140210812093440 [label=ToCopyBackward0] + 140210811996240 -> 140210812093440 + 140210812006512 -> 140210812006896 + 140210812006512 [label=TBackward0] + 140210812093344 -> 140210812006512 + 140210812093344 [label=ToCopyBackward0] + 140210812093584 -> 140210812093344 + 140202229043088 [label="encoder.layer.2.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202229043088 -> 140210812093584 + 140210812093584 [label=AccumulateGrad] + 140210811996336 -> 140210811996528 + 140210811996336 [label=TBackward0] + 140210811997008 -> 140210811996336 + 140210811997008 [label=ToCopyBackward0] + 140210811997200 -> 140210811997008 + 140202229042928 [label="encoder.layer.2.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229042928 -> 140210811997200 + 140210811997200 [label=AccumulateGrad] + 140210811996240 -> 140210811996096 + 140210811996048 -> 140210811996000 + 140202229042688 [label="encoder.layer.2.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229042688 -> 140210811996048 + 140210811996048 [label=AccumulateGrad] + 140210811995520 -> 140210811996000 + 140202229042368 [label="encoder.layer.2.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229042368 -> 140210811995520 + 140210811995520 [label=AccumulateGrad] + 140210811994848 -> 140210811995328 + 140210811994848 [label=TBackward0] + 140210811995568 -> 140210811994848 + 140210811995568 [label=ToCopyBackward0] + 140210811995952 -> 140210811995568 + 140202229042448 [label="encoder.layer.2.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229042448 -> 140210811995952 + 140210811995952 [label=AccumulateGrad] + 140210811994752 -> 140210811994704 + 140210811994752 [label=ReshapeAliasBackward0] + 140210811995088 -> 140210811994752 + 140210811995088 [label=ExpandBackward0] + 140210811995280 -> 140210811995088 + 140210811995280 [label=TransposeBackward0] + 140210811995760 -> 140210811995280 + 140210811995760 [label=PermuteBackward0] + 140210811996192 -> 140210811995760 + 140210811996192 [label=ViewBackward0] + 140210811995712 -> 140210811996192 + 140210811995712 [label=ViewBackward0] + 140210811996480 -> 140210811995712 + 140210811996480 [label=AddmmBackward0] + 140210811996720 -> 140210811996480 + 140210811996720 [label=ToCopyBackward0] + 140210811996912 -> 140210811996720 + 140202229041888 [label="encoder.layer.2.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202229041888 -> 140210811996912 + 140210811996912 [label=AccumulateGrad] + 140210811996672 -> 140210811996480 + 140210811996672 [label=ViewBackward0] + 140210811997728 -> 140210811996672 + 140210811997728 [label=ToCopyBackward0] + 140210812052960 -> 140210811997728 + 140210811994896 -> 140210811996480 + 140210811994896 [label=TBackward0] + 140210811997536 -> 140210811994896 + 140210811997536 [label=ToCopyBackward0] + 140210811996768 -> 140210811997536 + 140202229042208 [label="encoder.layer.2.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202229042208 -> 140210811996768 + 140210811996768 [label=AccumulateGrad] + 140210811977392 -> 140210811977344 + 140210811977392 [label=ReshapeAliasBackward0] + 140210811977632 -> 140210811977392 + 140210811977632 [label=ExpandBackward0] + 140210811994368 -> 140210811977632 + 140210811994368 [label=PermuteBackward0] + 140210811994560 -> 140210811994368 + 140210811994560 [label=ViewBackward0] + 140210811994176 -> 140210811994560 + 140210811994176 [label=ViewBackward0] + 140210811995184 -> 140210811994176 + 140210811995184 [label=AddmmBackward0] + 140210811995856 -> 140210811995184 + 140210811995856 [label=ToCopyBackward0] + 140210811997440 -> 140210811995856 + 140202229041648 [label="encoder.layer.2.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202229041648 -> 140210811997440 + 140210811997440 [label=AccumulateGrad] + 140210811995472 -> 140210811995184 + 140210811995472 [label=ViewBackward0] + 140210811996384 -> 140210811995472 + 140210811996384 [label=ToCopyBackward0] + 140210812052960 -> 140210811996384 + 140210811994224 -> 140210811995184 + 140210811994224 [label=TBackward0] + 140210812009152 -> 140210811994224 + 140210812009152 [label=ToCopyBackward0] + 140210811997104 -> 140210812009152 + 140202229041968 [label="encoder.layer.2.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202229041968 -> 140210811997104 + 140210811997104 [label=AccumulateGrad] + 140210811976432 -> 140210811976624 + 140210811976432 [label=TBackward0] + 140210811977104 -> 140210811976432 + 140210811977104 [label=ToCopyBackward0] + 140210811977296 -> 140210811977104 + 140202229041728 [label="encoder.layer.2.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229041728 -> 140210811977296 + 140210811977296 [label=AccumulateGrad] + 140210811976336 -> 140210811976192 + 140210811976144 -> 140210811976096 + 140202229041488 [label="encoder.layer.2.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229041488 -> 140210811976144 + 140210811976144 [label=AccumulateGrad] + 140210811975712 -> 140210811976096 + 140202229041168 [label="encoder.layer.2.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229041168 -> 140210811975712 + 140210811975712 [label=AccumulateGrad] + 140210811975232 -> 140210811975520 + 140210811975232 [label=TBackward0] + 140210811975760 -> 140210811975232 + 140210811975760 [label=ToCopyBackward0] + 140210811976240 -> 140210811975760 + 140202229039808 [label="encoder.layer.2.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202229039808 -> 140210811976240 + 140210811976240 [label=AccumulateGrad] + 140210811974800 -> 140210811974992 + 140210811974800 [label=TBackward0] + 140210811975472 -> 140210811974800 + 140210811975472 [label=ToCopyBackward0] + 140210811975952 -> 140210811975472 + 140202229039568 [label="encoder.layer.2.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202229039568 -> 140210811975952 + 140210811975952 [label=AccumulateGrad] + 140210811974704 -> 140210811974560 + 140210811974512 -> 140210811974416 + 140202229039328 [label="encoder.layer.2.expert_ln.weight + (768)" fillcolor=lightblue] + 140202229039328 -> 140210811974512 + 140210811974512 [label=AccumulateGrad] + 140210811974464 -> 140210811974416 + 140202229026624 [label="encoder.layer.2.expert_ln.bias + (768)" fillcolor=lightblue] + 140202229026624 -> 140210811974464 + 140210811974464 [label=AccumulateGrad] + 140210811974176 -> 140210811959040 + 140210811974176 [label=NativeLayerNormBackward0] + 140210811974848 -> 140210811974176 + 140210811974848 [label=AddBackward0] + 140210811975664 -> 140210811974848 + 140210811975664 [label=NativeDropoutBackward0] + 140210811975376 -> 140210811975664 + 140210811975376 [label=ViewBackward0] + 140210811975904 -> 140210811975376 + 140210811975904 [label=AddmmBackward0] + 140210811976768 -> 140210811975904 + 140210811976768 [label=ToCopyBackward0] + 140210811976864 -> 140210811976768 + 140202229040688 [label="encoder.layer.2.output.dense.bias + (768)" fillcolor=lightblue] + 140202229040688 -> 140210811976864 + 140210811976864 [label=AccumulateGrad] + 140210811976576 -> 140210811975904 + 140210811976576 [label=ViewBackward0] + 140210812006704 -> 140210811976576 + 140210812006704 [label=GeluBackward0] + 140210811977200 -> 140210812006704 + 140210811977200 [label=ViewBackward0] + 140210811994656 -> 140210811977200 + 140210811994656 [label=AddmmBackward0] + 140210811996144 -> 140210811994656 + 140210811996144 [label=ToCopyBackward0] + 140210812093728 -> 140210811996144 + 140202229040928 [label="encoder.layer.2.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202229040928 -> 140210812093728 + 140210812093728 [label=AccumulateGrad] + 140210811994992 -> 140210811994656 + 140210811994992 [label=ViewBackward0] + 140210812093824 -> 140210811994992 + 140210812093824 [label=ToCopyBackward0] + 140210811975184 -> 140210812093824 + 140210811975184 [label=SliceBackward0] + 140210812093968 -> 140210811975184 + 140210812093968 [label=SliceBackward0] + 140210812094064 -> 140210812093968 + 140210812094064 [label=SliceBackward0] + 140210811996000 -> 140210812094064 + 140210811994272 -> 140210811994656 + 140210811994272 [label=TBackward0] + 140210812093632 -> 140210811994272 + 140210812093632 [label=ToCopyBackward0] + 140210812094160 -> 140210812093632 + 140202229041248 [label="encoder.layer.2.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202229041248 -> 140210812094160 + 140210812094160 [label=AccumulateGrad] + 140210811976480 -> 140210811975904 + 140210811976480 [label=TBackward0] + 140210811977536 -> 140210811976480 + 140210811977536 [label=ToCopyBackward0] + 140210811997920 -> 140210811977536 + 140202229041008 [label="encoder.layer.2.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202229041008 -> 140210811997920 + 140210811997920 [label=AccumulateGrad] + 140210811975184 -> 140210811974848 + 140210811974656 -> 140210811974176 + 140202229040768 [label="encoder.layer.2.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229040768 -> 140210811974656 + 140210811974656 [label=AccumulateGrad] + 140210811974608 -> 140210811974176 + 140202229040448 [label="encoder.layer.2.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229040448 -> 140210811974608 + 140210811974608 [label=AccumulateGrad] + 140210811973696 -> 140210811973936 + 140210811973696 [label=TBackward0] + 140210811974128 -> 140210811973696 + 140210811974128 [label=ToCopyBackward0] + 140210811975136 -> 140210811974128 + 140202229026704 [label="encoder.layer.3.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229026704 -> 140210811975136 + 140210811975136 [label=AccumulateGrad] + 140210811961008 -> 140210811960960 + 140210811961008 [label=ReshapeAliasBackward0] + 140210811961248 -> 140210811961008 + 140210811961248 [label=ExpandBackward0] + 140210811973888 -> 140210811961248 + 140210811973888 [label=TransposeBackward0] + 140210811974368 -> 140210811973888 + 140210811974368 [label=PermuteBackward0] + 140210811976288 -> 140210811974368 + 140210811976288 [label=ViewBackward0] + 140210811974320 -> 140210811976288 + 140210811974320 [label=ViewBackward0] + 140210811977008 -> 140210811974320 + 140210811977008 [label=AddmmBackward0] + 140210811994464 -> 140210811977008 + 140210811994464 [label=ToCopyBackward0] + 140210812093776 -> 140210811994464 + 140202229026144 [label="encoder.layer.3.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202229026144 -> 140210812093776 + 140210812093776 [label=AccumulateGrad] + 140210811973744 -> 140210811977008 + 140210811973744 [label=ViewBackward0] + 140210812094208 -> 140210811973744 + 140210812094208 [label=ToCopyBackward0] + 140210811959040 -> 140210812094208 + 140210812093872 -> 140210811977008 + 140210812093872 [label=TBackward0] + 140210812093920 -> 140210812093872 + 140210812093920 [label=ToCopyBackward0] + 140210812094352 -> 140210812093920 + 140202229026464 [label="encoder.layer.3.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202229026464 -> 140210812094352 + 140210812094352 [label=AccumulateGrad] + 140210811960096 -> 140210811960048 + 140210811960096 [label=ReshapeAliasBackward0] + 140210811960432 -> 140210811960096 + 140210811960432 [label=ExpandBackward0] + 140210811960624 -> 140210811960432 + 140210811960624 [label=PermuteBackward0] + 140210811960816 -> 140210811960624 + 140210811960816 [label=ViewBackward0] + 140210811960192 -> 140210811960816 + 140210811960192 [label=ViewBackward0] + 140210811961152 -> 140210811960192 + 140210811961152 [label=AddmmBackward0] + 140210811974944 -> 140210811961152 + 140210811974944 [label=ToCopyBackward0] + 140210811976816 -> 140210811974944 + 140202229025904 [label="encoder.layer.3.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202229025904 -> 140210811976816 + 140210811976816 [label=AccumulateGrad] + 140210811974080 -> 140210811961152 + 140210811974080 [label=ViewBackward0] + 140210812094112 -> 140210811974080 + 140210812094112 [label=ToCopyBackward0] + 140210811959040 -> 140210812094112 + 140210811973792 -> 140210811961152 + 140210811973792 [label=TBackward0] + 140210812094016 -> 140210811973792 + 140210812094016 [label=ToCopyBackward0] + 140210812094256 -> 140210812094016 + 140202229026224 [label="encoder.layer.3.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202229026224 -> 140210812094256 + 140210812094256 [label=AccumulateGrad] + 140210811959136 -> 140210811959328 + 140210811959136 [label=TBackward0] + 140210811959808 -> 140210811959136 + 140210811959808 [label=ToCopyBackward0] + 140210811960000 -> 140210811959808 + 140202229025984 [label="encoder.layer.3.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229025984 -> 140210811960000 + 140210811960000 [label=AccumulateGrad] + 140210811959040 -> 140210811958896 + 140210811958848 -> 140210811958800 + 140202229025744 [label="encoder.layer.3.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229025744 -> 140210811958848 + 140210811958848 [label=AccumulateGrad] + 140210811958128 -> 140210811958800 + 140202229025424 [label="encoder.layer.3.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229025424 -> 140210811958128 + 140210811958128 [label=AccumulateGrad] + 140210811957648 -> 140210811957936 + 140210811957648 [label=TBackward0] + 140210811958176 -> 140210811957648 + 140210811958176 [label=ToCopyBackward0] + 140210811958560 -> 140210811958176 + 140202229024064 [label="encoder.layer.3.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202229024064 -> 140210811958560 + 140210811958560 [label=AccumulateGrad] + 140210811957312 -> 140210811957408 + 140210811957312 [label=TBackward0] + 140210811957888 -> 140210811957312 + 140210811957888 [label=ToCopyBackward0] + 140210811958368 -> 140210811957888 + 140202229023824 [label="encoder.layer.3.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202229023824 -> 140210811958368 + 140210811958368 [label=AccumulateGrad] + 140210811944768 -> 140210811944624 + 140210811944576 -> 140210811944480 + 140202229023584 [label="encoder.layer.3.expert_ln.weight + (768)" fillcolor=lightblue] + 140202229023584 -> 140210811944576 + 140210811944576 [label=AccumulateGrad] + 140210811944528 -> 140210811944480 + 140202229023264 [label="encoder.layer.3.expert_ln.bias + (768)" fillcolor=lightblue] + 140202229023264 -> 140210811944528 + 140210811944528 [label=AccumulateGrad] + 140210811944240 -> 140210811941456 + 140210811944240 [label=NativeLayerNormBackward0] + 140210811944864 -> 140210811944240 + 140210811944864 [label=AddBackward0] + 140210811958080 -> 140210811944864 + 140210811958080 [label=NativeDropoutBackward0] + 140210811957792 -> 140210811958080 + 140210811957792 [label=ViewBackward0] + 140210811958320 -> 140210811957792 + 140210811958320 [label=AddmmBackward0] + 140210811958992 -> 140210811958320 + 140210811958992 [label=ToCopyBackward0] + 140210811959520 -> 140210811958992 + 140202229024944 [label="encoder.layer.3.output.dense.bias + (768)" fillcolor=lightblue] + 140202229024944 -> 140210811959520 + 140210811959520 [label=AccumulateGrad] + 140210811958944 -> 140210811958320 + 140210811958944 [label=ViewBackward0] + 140210811959904 -> 140210811958944 + 140210811959904 [label=GeluBackward0] + 140210811959568 -> 140210811959904 + 140210811959568 [label=ViewBackward0] + 140210811960528 -> 140210811959568 + 140210811960528 [label=AddmmBackward0] + 140210811960912 -> 140210811960528 + 140210811960912 [label=ToCopyBackward0] + 140210811976048 -> 140210811960912 + 140202229025184 [label="encoder.layer.3.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202229025184 -> 140210811976048 + 140210811976048 [label=AccumulateGrad] + 140210811960720 -> 140210811960528 + 140210811960720 [label=ViewBackward0] + 140210812094544 -> 140210811960720 + 140210812094544 [label=ToCopyBackward0] + 140210811957600 -> 140210812094544 + 140210811957600 [label=SliceBackward0] + 140210812094592 -> 140210811957600 + 140210812094592 [label=SliceBackward0] + 140210812094688 -> 140210812094592 + 140210812094688 [label=SliceBackward0] + 140210811958800 -> 140210812094688 + 140210811959472 -> 140210811960528 + 140210811959472 [label=TBackward0] + 140210812094304 -> 140210811959472 + 140210812094304 [label=ToCopyBackward0] + 140210812094784 -> 140210812094304 + 140202229025504 [label="encoder.layer.3.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202229025504 -> 140210812094784 + 140210812094784 [label=AccumulateGrad] + 140210811958752 -> 140210811958320 + 140210811958752 [label=TBackward0] + 140210811959712 -> 140210811958752 + 140210811959712 [label=ToCopyBackward0] + 140210811960240 -> 140210811959712 + 140202229025264 [label="encoder.layer.3.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202229025264 -> 140210811960240 + 140210811960240 [label=AccumulateGrad] + 140210811957600 -> 140210811944864 + 140210811944720 -> 140210811944240 + 140202229025024 [label="encoder.layer.3.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229025024 -> 140210811944720 + 140210811944720 [label=AccumulateGrad] + 140210811944672 -> 140210811944240 + 140202229024704 [label="encoder.layer.3.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229024704 -> 140210811944672 + 140210811944672 [label=AccumulateGrad] + 140210811943520 -> 140210811944000 + 140210811943520 [label=TBackward0] + 140210811944192 -> 140210811943520 + 140210811944192 [label=ToCopyBackward0] + 140210811944384 -> 140210811944192 + 140202229023344 [label="encoder.layer.4.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229023344 -> 140210811944384 + 140210811944384 [label=AccumulateGrad] + 140210811943424 -> 140210811943376 + 140210811943424 [label=ReshapeAliasBackward0] + 140210811943760 -> 140210811943424 + 140210811943760 [label=ExpandBackward0] + 140210811943952 -> 140210811943760 + 140210811943952 [label=TransposeBackward0] + 140210811944432 -> 140210811943952 + 140210811944432 [label=PermuteBackward0] + 140210811943568 -> 140210811944432 + 140210811943568 [label=ViewBackward0] + 140210811957360 -> 140210811943568 + 140210811957360 [label=ViewBackward0] + 140210811959280 -> 140210811957360 + 140210811959280 [label=AddmmBackward0] + 140210811960336 -> 140210811959280 + 140210811960336 [label=ToCopyBackward0] + 140210812094496 -> 140210811960336 + 140202229022784 [label="encoder.layer.4.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202229022784 -> 140210812094496 + 140210812094496 [label=AccumulateGrad] + 140210811957552 -> 140210811959280 + 140210811957552 [label=ViewBackward0] + 140210812094832 -> 140210811957552 + 140210812094832 [label=ToCopyBackward0] + 140210811941456 -> 140210812094832 + 140210812094400 -> 140210811959280 + 140210812094400 [label=TBackward0] + 140210812094448 -> 140210812094400 + 140210812094448 [label=ToCopyBackward0] + 140210812094976 -> 140210812094448 + 140202229023104 [label="encoder.layer.4.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202229023104 -> 140210812094976 + 140210812094976 [label=AccumulateGrad] + 140210811942512 -> 140210811942464 + 140210811942512 [label=ReshapeAliasBackward0] + 140210811942848 -> 140210811942512 + 140210811942848 [label=ExpandBackward0] + 140210811943040 -> 140210811942848 + 140210811943040 [label=PermuteBackward0] + 140210811943232 -> 140210811943040 + 140210811943232 [label=ViewBackward0] + 140210811942608 -> 140210811943232 + 140210811942608 [label=ViewBackward0] + 140210811943856 -> 140210811942608 + 140210811943856 [label=AddmmBackward0] + 140210811944144 -> 140210811943856 + 140210811944144 [label=ToCopyBackward0] + 140210811959184 -> 140210811944144 + 140202229014256 [label="encoder.layer.4.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202229014256 -> 140210811959184 + 140210811959184 [label=AccumulateGrad] + 140210811942656 -> 140210811943856 + 140210811942656 [label=ViewBackward0] + 140210812094736 -> 140210811942656 + 140210812094736 [label=ToCopyBackward0] + 140210811941456 -> 140210812094736 + 140210811958656 -> 140210811943856 + 140210811958656 [label=TBackward0] + 140210812094640 -> 140210811958656 + 140210812094640 [label=ToCopyBackward0] + 140210812094880 -> 140210812094640 + 140202229022864 [label="encoder.layer.4.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202229022864 -> 140210812094880 + 140210812094880 [label=AccumulateGrad] + 140210811941552 -> 140210811941744 + 140210811941552 [label=TBackward0] + 140210811942224 -> 140210811941552 + 140210811942224 [label=ToCopyBackward0] + 140210811942416 -> 140210811942224 + 140202229014336 [label="encoder.layer.4.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229014336 -> 140210811942416 + 140210811942416 [label=AccumulateGrad] + 140210811941456 -> 140210811941312 + 140210811941264 -> 140210811941216 + 140202229014096 [label="encoder.layer.4.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229014096 -> 140210811941264 + 140210811941264 [label=AccumulateGrad] + 140210811940976 -> 140210811941216 + 140202229013776 [label="encoder.layer.4.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229013776 -> 140210811940976 + 140210811940976 [label=AccumulateGrad] + 140210811927712 -> 140210811928192 + 140210811927712 [label=TBackward0] + 140210811928432 -> 140210811927712 + 140210811928432 [label=ToCopyBackward0] + 140210811941168 -> 140210811928432 + 140202229013856 [label="encoder.layer.4.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202229013856 -> 140210811941168 + 140210811941168 [label=AccumulateGrad] + 140210811927616 -> 140210811927568 + 140210811927616 [label=ReshapeAliasBackward0] + 140210811927952 -> 140210811927616 + 140210811927952 [label=ExpandBackward0] + 140210811928144 -> 140210811927952 + 140210811928144 [label=TransposeBackward0] + 140210811928528 -> 140210811928144 + 140210811928528 [label=PermuteBackward0] + 140210811927760 -> 140210811928528 + 140210811927760 [label=ViewBackward0] + 140210811940928 -> 140210811927760 + 140210811940928 [label=ViewBackward0] + 140210811941696 -> 140210811940928 + 140210811941696 [label=AddmmBackward0] + 140210811941936 -> 140210811941696 + 140210811941936 [label=ToCopyBackward0] + 140210811942128 -> 140210811941936 + 140202229013296 [label="encoder.layer.4.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202229013296 -> 140210811942128 + 140210811942128 [label=AccumulateGrad] + 140210811941888 -> 140210811941696 + 140210811941888 [label=ViewBackward0] + 140210811942944 -> 140210811941888 + 140210811942944 [label=ToCopyBackward0] + 140210812052960 -> 140210811942944 + 140210811941072 -> 140210811941696 + 140210811941072 [label=TBackward0] + 140210811942752 -> 140210811941072 + 140210811942752 [label=ToCopyBackward0] + 140210811943664 -> 140210811942752 + 140202229013616 [label="encoder.layer.4.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202229013616 -> 140210811943664 + 140210811943664 [label=AccumulateGrad] + 140210811926704 -> 140210811926656 + 140210811926704 [label=ReshapeAliasBackward0] + 140210811927040 -> 140210811926704 + 140210811927040 [label=ExpandBackward0] + 140210811927232 -> 140210811927040 + 140210811927232 [label=PermuteBackward0] + 140210811927424 -> 140210811927232 + 140210811927424 [label=ViewBackward0] + 140210811926800 -> 140210811927424 + 140210811926800 [label=ViewBackward0] + 140210811928048 -> 140210811926800 + 140210811928048 [label=AddmmBackward0] + 140210811958464 -> 140210811928048 + 140210811958464 [label=ToCopyBackward0] + 140210811942320 -> 140210811958464 + 140202229013056 [label="encoder.layer.4.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202229013056 -> 140210811942320 + 140210811942320 [label=AccumulateGrad] + 140210811928336 -> 140210811928048 + 140210811928336 [label=ViewBackward0] + 140210811943328 -> 140210811928336 + 140210811943328 [label=ToCopyBackward0] + 140210812052960 -> 140210811943328 + 140210811926848 -> 140210811928048 + 140210811926848 [label=TBackward0] + 140210811941360 -> 140210811926848 + 140210811941360 [label=ToCopyBackward0] + 140210811941600 -> 140210811941360 + 140202229013376 [label="encoder.layer.4.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202229013376 -> 140210811941600 + 140210811941600 [label=AccumulateGrad] + 140210811925744 -> 140210811925936 + 140210811925744 [label=TBackward0] + 140210811926416 -> 140210811925744 + 140210811926416 [label=ToCopyBackward0] + 140210811926608 -> 140210811926416 + 140202229013136 [label="encoder.layer.4.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202229013136 -> 140210811926608 + 140210811926608 [label=AccumulateGrad] + 140210811925648 -> 140210811925504 + 140210811925456 -> 140210811925408 + 140202229012896 [label="encoder.layer.4.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229012896 -> 140210811925456 + 140210811925456 [label=AccumulateGrad] + 140210811925024 -> 140210811925408 + 140202229012576 [label="encoder.layer.4.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229012576 -> 140210811925024 + 140210811925024 [label=AccumulateGrad] + 140210811924592 -> 140210811924832 + 140210811924592 [label=TBackward0] + 140210811925072 -> 140210811924592 + 140210811925072 [label=ToCopyBackward0] + 140210811925552 -> 140210811925072 + 140202229011216 [label="encoder.layer.4.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202229011216 -> 140210811925552 + 140210811925552 [label=AccumulateGrad] + 140202224193104 -> 140202224193296 + 140202224193104 [label=TBackward0] + 140210811924784 -> 140202224193104 + 140210811924784 [label=ToCopyBackward0] + 140210811925264 -> 140210811924784 + 140202229010976 [label="encoder.layer.4.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202229010976 -> 140210811925264 + 140210811925264 [label=AccumulateGrad] + 140202224193008 -> 140202224192864 + 140202224192816 -> 140202224192720 + 140202229010736 [label="encoder.layer.4.expert_ln.weight + (768)" fillcolor=lightblue] + 140202229010736 -> 140202224192816 + 140202224192816 [label=AccumulateGrad] + 140202224192768 -> 140202224192720 + 140202229010496 [label="encoder.layer.4.expert_ln.bias + (768)" fillcolor=lightblue] + 140202229010496 -> 140202224192768 + 140202224192768 [label=AccumulateGrad] + 140202224192432 -> 140202224191472 + 140202224192432 [label=NativeLayerNormBackward0] + 140202224193152 -> 140202224192432 + 140202224193152 [label=AddBackward0] + 140202224193440 -> 140202224193152 + 140202224193440 [label=NativeDropoutBackward0] + 140210811924688 -> 140202224193440 + 140210811924688 [label=ViewBackward0] + 140210811925216 -> 140210811924688 + 140210811925216 [label=AddmmBackward0] + 140210811926080 -> 140210811925216 + 140210811926080 [label=ToCopyBackward0] + 140210811926176 -> 140210811926080 + 140202229012096 [label="encoder.layer.4.output.dense.bias + (768)" fillcolor=lightblue] + 140202229012096 -> 140210811926176 + 140210811926176 [label=AccumulateGrad] + 140210811925888 -> 140210811925216 + 140210811925888 [label=ViewBackward0] + 140210811926320 -> 140210811925888 + 140210811926320 [label=GeluBackward0] + 140210811927328 -> 140210811926320 + 140210811927328 [label=ViewBackward0] + 140210811927856 -> 140210811927328 + 140210811927856 [label=AddmmBackward0] + 140210811926944 -> 140210811927856 + 140210811926944 [label=ToCopyBackward0] + 140210812095024 -> 140210811926944 + 140202229012336 [label="encoder.layer.4.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202229012336 -> 140210812095024 + 140210812095024 [label=AccumulateGrad] + 140210811943136 -> 140210811927856 + 140210811943136 [label=ViewBackward0] + 140210812095120 -> 140210811943136 + 140210812095120 [label=ToCopyBackward0] + 140210811924976 -> 140210812095120 + 140210811924976 [label=SliceBackward0] + 140210812095264 -> 140210811924976 + 140210812095264 [label=SliceBackward0] + 140210812095360 -> 140210812095264 + 140210812095360 [label=SliceBackward0] + 140210811941216 -> 140210812095360 + 140210811941408 -> 140210811927856 + 140210811941408 [label=TBackward0] + 140210812094928 -> 140210811941408 + 140210812094928 [label=ToCopyBackward0] + 140210812095456 -> 140210812094928 + 140202229012656 [label="encoder.layer.4.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202229012656 -> 140210812095456 + 140210812095456 [label=AccumulateGrad] + 140210811925792 -> 140210811925216 + 140210811925792 [label=TBackward0] + 140210811927520 -> 140210811925792 + 140210811927520 [label=ToCopyBackward0] + 140210811941984 -> 140210811927520 + 140202229012416 [label="encoder.layer.4.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202229012416 -> 140210811941984 + 140210811941984 [label=AccumulateGrad] + 140210811924976 -> 140202224193152 + 140202224192960 -> 140202224192432 + 140202229012176 [label="encoder.layer.4.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202229012176 -> 140202224192960 + 140202224192960 [label=AccumulateGrad] + 140202224192912 -> 140202224192432 + 140202229011856 [label="encoder.layer.4.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202229011856 -> 140202224192912 + 140202224192912 [label=AccumulateGrad] + 140202224191712 -> 140202224192192 + 140202224191712 [label=TBackward0] + 140202224192528 -> 140202224191712 + 140202224192528 [label=ToCopyBackward0] + 140202224193248 -> 140202224192528 + 140202228989840 [label="encoder.layer.5.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228989840 -> 140202224193248 + 140202224193248 [label=AccumulateGrad] + 140202224189600 -> 140202224189552 + 140202224189600 [label=ReshapeAliasBackward0] + 140202224191952 -> 140202224189600 + 140202224191952 [label=ExpandBackward0] + 140202224192144 -> 140202224191952 + 140202224192144 [label=TransposeBackward0] + 140202224192672 -> 140202224192144 + 140202224192672 [label=PermuteBackward0] + 140202224192624 -> 140202224192672 + 140202224192624 [label=ViewBackward0] + 140210811924544 -> 140202224192624 + 140210811924544 [label=ViewBackward0] + 140210811926512 -> 140210811924544 + 140210811926512 [label=AddmmBackward0] + 140210811927136 -> 140210811926512 + 140210811927136 [label=ToCopyBackward0] + 140210812095072 -> 140210811927136 + 140202228989360 [label="encoder.layer.5.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228989360 -> 140210812095072 + 140210812095072 [label=AccumulateGrad] + 140210811925600 -> 140210811926512 + 140210811925600 [label=ViewBackward0] + 140210812095504 -> 140210811925600 + 140210812095504 [label=ToCopyBackward0] + 140202224191472 -> 140210812095504 + 140210812095168 -> 140210811926512 + 140210812095168 [label=TBackward0] + 140210812095216 -> 140210812095168 + 140210812095216 [label=ToCopyBackward0] + 140210812095648 -> 140210812095216 + 140202228989680 [label="encoder.layer.5.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228989680 -> 140210812095648 + 140210812095648 [label=AccumulateGrad] + 140202224190416 -> 140202224190560 + 140202224190416 [label=ReshapeAliasBackward0] + 140202224190176 -> 140202224190416 + 140202224190176 [label=ExpandBackward0] + 140202224189984 -> 140202224190176 + 140202224189984 [label=PermuteBackward0] + 140202224189792 -> 140202224189984 + 140202224189792 [label=ViewBackward0] + 140202224190320 -> 140202224189792 + 140202224190320 [label=ViewBackward0] + 140202224192048 -> 140202224190320 + 140202224192048 [label=AddmmBackward0] + 140202224191760 -> 140202224192048 + 140202224191760 [label=ToCopyBackward0] + 140210811926128 -> 140202224191760 + 140202228989120 [label="encoder.layer.5.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228989120 -> 140210811926128 + 140210811926128 [label=AccumulateGrad] + 140202224192336 -> 140202224192048 + 140202224192336 [label=ViewBackward0] + 140210812095408 -> 140202224192336 + 140210812095408 [label=ToCopyBackward0] + 140202224191472 -> 140210812095408 + 140202224190368 -> 140202224192048 + 140202224190368 [label=TBackward0] + 140210812095312 -> 140202224190368 + 140210812095312 [label=ToCopyBackward0] + 140210812095552 -> 140210812095312 + 140202228989440 [label="encoder.layer.5.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228989440 -> 140210812095552 + 140210812095552 [label=AccumulateGrad] + 140202224191376 -> 140202224191184 + 140202224191376 [label=TBackward0] + 140202224190704 -> 140202224191376 + 140202224190704 [label=ToCopyBackward0] + 140202224190512 -> 140202224190704 + 140202228989200 [label="encoder.layer.5.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228989200 -> 140202224190512 + 140202224190512 [label=AccumulateGrad] + 140202224191472 -> 140202222987584 + 140202222987152 -> 140202222988352 + 140202228988960 [label="encoder.layer.5.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228988960 -> 140202222987152 + 140202222987152 [label=AccumulateGrad] + 140202222987104 -> 140202222988352 + 140202228988640 [label="encoder.layer.5.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228988640 -> 140202222987104 + 140202222987104 [label=AccumulateGrad] + 140202222986192 -> 140202222986672 + 140202222986192 [label=TBackward0] + 140202222987200 -> 140202222986192 + 140202222987200 [label=ToCopyBackward0] + 140202222988544 -> 140202222987200 + 140202228987280 [label="encoder.layer.5.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228987280 -> 140202222988544 + 140202222988544 [label=AccumulateGrad] + 140202222985760 -> 140202222986048 + 140202222985760 [label=TBackward0] + 140202222986720 -> 140202222985760 + 140202222986720 [label=ToCopyBackward0] + 140202222987488 -> 140202222986720 + 140202228987040 [label="encoder.layer.5.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228987040 -> 140202222987488 + 140202222987488 [label=AccumulateGrad] + 140202222985568 -> 140202222985280 + 140202222988592 -> 140202222988736 + 140202228986800 [label="encoder.layer.5.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228986800 -> 140202222988592 + 140202222988592 [label=AccumulateGrad] + 140202222987392 -> 140202222988736 + 140202228986480 [label="encoder.layer.5.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228986480 -> 140202222987392 + 140202222987392 [label=AccumulateGrad] + 140202222988160 -> 140202222935248 + 140202222988160 [label=NativeLayerNormBackward0] + 140202222985664 -> 140202222988160 + 140202222985664 [label=AddBackward0] + 140202222987008 -> 140202222985664 + 140202222987008 [label=NativeDropoutBackward0] + 140202222986528 -> 140202222987008 + 140202222986528 [label=ViewBackward0] + 140202222988448 -> 140202222986528 + 140202222988448 [label=AddmmBackward0] + 140202222988256 -> 140202222988448 + 140202222988256 [label=ToCopyBackward0] + 140202224190992 -> 140202222988256 + 140202228988160 [label="encoder.layer.5.output.dense.bias + (768)" fillcolor=lightblue] + 140202228988160 -> 140202224190992 + 140202224190992 [label=AccumulateGrad] + 140202224191616 -> 140202222988448 + 140202224191616 [label=ViewBackward0] + 140202224190608 -> 140202224191616 + 140202224190608 [label=GeluBackward0] + 140202224191040 -> 140202224190608 + 140202224191040 [label=ViewBackward0] + 140202224190080 -> 140202224191040 + 140202224190080 [label=AddmmBackward0] + 140202224189696 -> 140202224190080 + 140202224189696 [label=ToCopyBackward0] + 140210811925360 -> 140202224189696 + 140202228988400 [label="encoder.layer.5.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228988400 -> 140210811925360 + 140210811925360 [label=AccumulateGrad] + 140202224189888 -> 140202224190080 + 140202224189888 [label=ViewBackward0] + 140210812095840 -> 140202224189888 + 140210812095840 [label=ToCopyBackward0] + 140202222986336 -> 140210812095840 + 140202222986336 [label=SliceBackward0] + 140210812095888 -> 140202222986336 + 140210812095888 [label=SliceBackward0] + 140210812095984 -> 140210812095888 + 140210812095984 [label=SliceBackward0] + 140202222988352 -> 140210812095984 + 140202224191136 -> 140202224190080 + 140202224191136 [label=TBackward0] + 140210812095600 -> 140202224191136 + 140210812095600 [label=ToCopyBackward0] + 140210812096080 -> 140210812095600 + 140202228988720 [label="encoder.layer.5.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228988720 -> 140210812096080 + 140210812096080 [label=AccumulateGrad] + 140202224191568 -> 140202222988448 + 140202224191568 [label=TBackward0] + 140202224190800 -> 140202224191568 + 140202224190800 [label=ToCopyBackward0] + 140202224191856 -> 140202224190800 + 140202228988480 [label="encoder.layer.5.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228988480 -> 140202224191856 + 140202224191856 [label=AccumulateGrad] + 140202222986336 -> 140202222985664 + 140202222985376 -> 140202222988160 + 140202228988240 [label="encoder.layer.5.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228988240 -> 140202222985376 + 140202222985376 [label=AccumulateGrad] + 140202222985328 -> 140202222988160 + 140202228987920 [label="encoder.layer.5.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228987920 -> 140202222985328 + 140202222985328 [label=AccumulateGrad] + 140202222963584 -> 140202222964352 + 140202222963584 [label=TBackward0] + 140202222988928 -> 140202222963584 + 140202222988928 [label=ToCopyBackward0] + 140202222986144 -> 140202222988928 + 140202228986560 [label="encoder.layer.6.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228986560 -> 140202222986144 + 140202222986144 [label=AccumulateGrad] + 140202222963392 -> 140202222963200 + 140202222963392 [label=ReshapeAliasBackward0] + 140202222963728 -> 140202222963392 + 140202222963728 [label=ExpandBackward0] + 140202222964160 -> 140202222963728 + 140202222964160 [label=TransposeBackward0] + 140202222964448 -> 140202222964160 + 140202222964448 [label=PermuteBackward0] + 140202222989120 -> 140202222964448 + 140202222989120 [label=ViewBackward0] + 140202222988112 -> 140202222989120 + 140202222988112 [label=ViewBackward0] + 140202222988640 -> 140202222988112 + 140202222988640 [label=AddmmBackward0] + 140202224190272 -> 140202222988640 + 140202224190272 [label=ToCopyBackward0] + 140210812095792 -> 140202224190272 + 140202228986000 [label="encoder.layer.6.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228986000 -> 140210812095792 + 140210812095792 [label=AccumulateGrad] + 140202224191424 -> 140202222988640 + 140202224191424 [label=ViewBackward0] + 140210812096128 -> 140202224191424 + 140210812096128 [label=ToCopyBackward0] + 140202222935248 -> 140210812096128 + 140210812095696 -> 140202222988640 + 140210812095696 [label=TBackward0] + 140210812095744 -> 140210812095696 + 140210812095744 [label=ToCopyBackward0] + 140210812096272 -> 140210812095744 + 140202228986320 [label="encoder.layer.6.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228986320 -> 140210812096272 + 140210812096272 [label=AccumulateGrad] + 140202222961760 -> 140202222961856 + 140202222961760 [label=ReshapeAliasBackward0] + 140202222962432 -> 140202222961760 + 140202222962432 [label=ExpandBackward0] + 140202222962816 -> 140202222962432 + 140202222962816 [label=PermuteBackward0] + 140202222963104 -> 140202222962816 + 140202222963104 [label=ViewBackward0] + 140202222961808 -> 140202222963104 + 140202222961808 [label=ViewBackward0] + 140202222963968 -> 140202222961808 + 140202222963968 [label=AddmmBackward0] + 140202222963488 -> 140202222963968 + 140202222963488 [label=ToCopyBackward0] + 140202224191328 -> 140202222963488 + 140202228985664 [label="encoder.layer.6.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228985664 -> 140202224191328 + 140202224191328 [label=AccumulateGrad] + 140202222962144 -> 140202222963968 + 140202222962144 [label=ViewBackward0] + 140210812096032 -> 140202222962144 + 140210812096032 [label=ToCopyBackward0] + 140202222935248 -> 140210812096032 + 140202222985712 -> 140202222963968 + 140202222985712 [label=TBackward0] + 140210812095936 -> 140202222985712 + 140210812095936 [label=ToCopyBackward0] + 140210812096176 -> 140210812095936 + 140202228986080 [label="encoder.layer.6.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228986080 -> 140210812096176 + 140210812096176 [label=AccumulateGrad] + 140202222960704 -> 140202222935728 + 140202222960704 [label=TBackward0] + 140202222961280 -> 140202222960704 + 140202222961280 [label=ToCopyBackward0] + 140202222961568 -> 140202222961280 + 140202228985744 [label="encoder.layer.6.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228985744 -> 140202222961568 + 140202222961568 [label=AccumulateGrad] + 140202222935248 -> 140202222935296 + 140202222935008 -> 140202222935104 + 140202228985504 [label="encoder.layer.6.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228985504 -> 140202222935008 + 140202222935008 [label=AccumulateGrad] + 140202222934336 -> 140202222935104 + 140202228985184 [label="encoder.layer.6.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228985184 -> 140202222934336 + 140202222934336 [label=AccumulateGrad] + 140202222933184 -> 140202222933952 + 140202222933184 [label=TBackward0] + 140202222934240 -> 140202222933184 + 140202222934240 [label=ToCopyBackward0] + 140202222934768 -> 140202222934240 + 140202228985264 [label="encoder.layer.6.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228985264 -> 140202222934768 + 140202222934768 [label=AccumulateGrad] + 140202222932992 -> 140202222932800 + 140202222932992 [label=ReshapeAliasBackward0] + 140202222933328 -> 140202222932992 + 140202222933328 [label=ExpandBackward0] + 140202222933760 -> 140202222933328 + 140202222933760 [label=TransposeBackward0] + 140202222934528 -> 140202222933760 + 140202222934528 [label=PermuteBackward0] + 140202222935392 -> 140202222934528 + 140202222935392 [label=ViewBackward0] + 140202222934624 -> 140202222935392 + 140202222934624 [label=ViewBackward0] + 140202222935872 -> 140202222934624 + 140202222935872 [label=AddmmBackward0] + 140202222933088 -> 140202222935872 + 140202222933088 [label=ToCopyBackward0] + 140202222961088 -> 140202222933088 + 140202228984704 [label="encoder.layer.6.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202228984704 -> 140202222961088 + 140202222961088 [label=AccumulateGrad] + 140202222960800 -> 140202222935872 + 140202222960800 [label=ViewBackward0] + 140202222962624 -> 140202222960800 + 140202222962624 [label=ToCopyBackward0] + 140210812052960 -> 140202222962624 + 140202222960896 -> 140202222935872 + 140202222960896 [label=TBackward0] + 140202222962336 -> 140202222960896 + 140202222962336 [label=ToCopyBackward0] + 140202222963680 -> 140202222962336 + 140202228985024 [label="encoder.layer.6.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202228985024 -> 140202222963680 + 140202222963680 [label=AccumulateGrad] + 140202222906720 -> 140202222906816 + 140202222906720 [label=ReshapeAliasBackward0] + 140202222906768 -> 140202222906720 + 140202222906768 [label=ExpandBackward0] + 140202222907104 -> 140202222906768 + 140202222907104 [label=PermuteBackward0] + 140202222932704 -> 140202222907104 + 140202222932704 [label=ViewBackward0] + 140202222932032 -> 140202222932704 + 140202222932032 [label=ViewBackward0] + 140202222933568 -> 140202222932032 + 140202222933568 [label=AddmmBackward0] + 140202222934720 -> 140202222933568 + 140202222934720 [label=ToCopyBackward0] + 140202222987776 -> 140202222934720 + 140202228984464 [label="encoder.layer.6.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202228984464 -> 140202222987776 + 140202222987776 [label=AccumulateGrad] + 140202222934048 -> 140202222933568 + 140202222934048 [label=ViewBackward0] + 140202222935776 -> 140202222934048 + 140202222935776 [label=ToCopyBackward0] + 140210812052960 -> 140202222935776 + 140202222932224 -> 140202222933568 + 140202222932224 [label=TBackward0] + 140202222961328 -> 140202222932224 + 140202222961328 [label=ToCopyBackward0] + 140202222960992 -> 140202222961328 + 140202228984784 [label="encoder.layer.6.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202228984784 -> 140202222960992 + 140202222960992 [label=AccumulateGrad] + 140202222905088 -> 140202222905328 + 140202222905088 [label=TBackward0] + 140202222906240 -> 140202222905088 + 140202222906240 [label=ToCopyBackward0] + 140202222906528 -> 140202222906240 + 140202228984544 [label="encoder.layer.6.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228984544 -> 140202222906528 + 140202222906528 [label=AccumulateGrad] + 140202222904848 -> 140202222904896 + 140202222904704 -> 140202222904512 + 140202228984304 [label="encoder.layer.6.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228984304 -> 140202222904704 + 140202222904704 [label=AccumulateGrad] + 140202222903936 -> 140202222904512 + 140202228983984 [label="encoder.layer.6.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228983984 -> 140202222903936 + 140202222903936 [label=AccumulateGrad] + 140202222903408 -> 140202222903552 + 140202222903408 [label=TBackward0] + 140202222904128 -> 140202222903408 + 140202222904128 [label=ToCopyBackward0] + 140202222904800 -> 140202222904128 + 140202228968480 [label="encoder.layer.6.experts.experts.0.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228968480 -> 140202222904800 + 140202222904800 [label=AccumulateGrad] + 140202222873664 -> 140202222874144 + 140202222873664 [label=TBackward0] + 140202222874336 -> 140202222873664 + 140202222874336 [label=ToCopyBackward0] + 140202222904368 -> 140202222874336 + 140202228968560 [label="encoder.layer.6.experts.experts.0.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228968560 -> 140202222904368 + 140202222904368 [label=AccumulateGrad] + 140202222873280 -> 140202222873232 + 140202222873280 [label=UnsqueezeBackward0] + 140202222873856 -> 140202222873280 + 140202222873856 [label=NativeDropoutBackward0] + 140202222874240 -> 140202222873856 + 140202222874240 [label=ViewBackward0] + 140202222905376 -> 140202222874240 + 140202222905376 [label=AddmmBackward0] + 140202222903360 -> 140202222905376 + 140202222903360 [label=ToCopyBackward0] + 140202222905856 -> 140202222903360 + 140202228968240 [label="encoder.layer.6.experts.experts.1.dense2.bias + (768)" fillcolor=lightblue] + 140202228968240 -> 140202222905856 + 140202222905856 [label=AccumulateGrad] + 140202222904608 -> 140202222905376 + 140202222904608 [label=ViewBackward0] + 140202222905760 -> 140202222904608 + 140202222905760 [label=GeluBackward0] + 140202222907296 -> 140202222905760 + 140202222907296 [label=ViewBackward0] + 140202222906048 -> 140202222907296 + 140202222906048 [label=AddmmBackward0] + 140202222905472 -> 140202222906048 + 140202222905472 [label=ToCopyBackward0] + 140202222935200 -> 140202222905472 + 140202228969040 [label="encoder.layer.6.experts.experts.1.dense1.bias + (3072)" fillcolor=lightblue] + 140202228969040 -> 140202222935200 + 140202222935200 [label=AccumulateGrad] + 140202222932512 -> 140202222906048 + 140202222932512 [label=ViewBackward0] + 140202222962912 -> 140202222932512 + 140202222962912 [label=ToCopyBackward0] + 140202222872416 -> 140202222962912 + 140202222932416 -> 140202222906048 + 140202222932416 [label=TBackward0] + 140202222933280 -> 140202222932416 + 140202222933280 [label=ToCopyBackward0] + 140210812096320 -> 140202222933280 + 140202228968320 [label="encoder.layer.6.experts.experts.1.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228968320 -> 140210812096320 + 140210812096320 [label=AccumulateGrad] + 140202222903648 -> 140202222905376 + 140202222903648 [label=TBackward0] + 140202222905952 -> 140202222903648 + 140202222905952 [label=ToCopyBackward0] + 140202222963296 -> 140202222905952 + 140202228968080 [label="encoder.layer.6.experts.experts.1.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228968080 -> 140202222963296 + 140202222963296 [label=AccumulateGrad] + 140202222873184 -> 140202222873232 + 140202222873184 [label=UnsqueezeBackward0] + 140202222932896 -> 140202222873184 + 140202222932896 [label=NativeDropoutBackward0] + 140202222873760 -> 140202222932896 + 140202222873760 [label=ViewBackward0] + 140202222906288 -> 140202222873760 + 140202222906288 [label=AddmmBackward0] + 140202222903888 -> 140202222906288 + 140202222903888 [label=ToCopyBackward0] + 140210812096224 -> 140202222903888 + 140202228967760 [label="encoder.layer.6.experts.experts.2.dense2.bias + (768)" fillcolor=lightblue] + 140202228967760 -> 140210812096224 + 140210812096224 [label=AccumulateGrad] + 140210812096464 -> 140202222906288 + 140210812096464 [label=ViewBackward0] + 140210811723936 -> 140210812096464 + 140210811723936 [label=GeluBackward0] + 140210811724032 -> 140210811723936 + 140210811724032 [label=ViewBackward0] + 140210811724128 -> 140210811724032 + 140210811724128 [label=AddmmBackward0] + 140210811724224 -> 140210811724128 + 140210811724224 [label=ToCopyBackward0] + 140210811724416 -> 140210811724224 + 140202228968000 [label="encoder.layer.6.experts.experts.2.dense1.bias + (3072)" fillcolor=lightblue] + 140202228968000 -> 140210811724416 + 140210811724416 [label=AccumulateGrad] + 140210811724176 -> 140210811724128 + 140210811724176 [label=ViewBackward0] + 140210811724464 -> 140210811724176 + 140210811724464 [label=ToCopyBackward0] + 140202222872416 -> 140210811724464 + 140210811723888 -> 140210811724128 + 140210811723888 [label=TBackward0] + 140210811724320 -> 140210811723888 + 140210811724320 [label=ToCopyBackward0] + 140210811724608 -> 140210811724320 + 140202228967840 [label="encoder.layer.6.experts.experts.2.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228967840 -> 140210811724608 + 140210811724608 [label=AccumulateGrad] + 140210812096368 -> 140202222906288 + 140210812096368 [label=TBackward0] + 140210811724080 -> 140210812096368 + 140210811724080 [label=ToCopyBackward0] + 140210811724560 -> 140210811724080 + 140202228967600 [label="encoder.layer.6.experts.experts.2.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228967600 -> 140210811724560 + 140210811724560 [label=AccumulateGrad] + 140202222872992 -> 140202222872800 + 140202222872992 [label=UnsqueezeBackward0] + 140202222873568 -> 140202222872992 + 140202222873568 [label=UnsqueezeBackward0] + 140202222904224 -> 140202222873568 + 140202222904224 [label=SumBackward1] + 140210812096416 -> 140202222904224 + 140210812096416 [label=MulBackward0] + 140210811724704 -> 140210812096416 + 140210811724704 [label=UnsqueezeBackward0] + 140210811723984 -> 140210811724704 + 140210811723984 [label=TopkBackward0] + 140210811724512 -> 140210811723984 + 140210811724512 [label=SoftmaxBackward0] + 140210811724800 -> 140210811724512 + 140210811724800 [label=MmBackward0] + 140210811724896 -> 140210811724800 + 140210811724896 [label=ToCopyBackward0] + 140210811725040 -> 140210811724896 + 140210811725040 [label=MeanBackward1] + 140210811725136 -> 140210811725040 + 140210811725136 [label=MulBackward0] + 140202222872416 -> 140210811725136 + 140210811724848 -> 140210811724800 + 140210811724848 [label=TBackward0] + 140210811725232 -> 140210811724848 + 140210811725232 [label=ToCopyBackward0] + 140210811724944 -> 140210811725232 + 140202228981824 [label="encoder.layer.6.experts.gate.weight + (3, 768)" fillcolor=lightblue] + 140202228981824 -> 140210811724944 + 140210811724944 [label=AccumulateGrad] + 140202222872416 -> 140202222872272 + 140202222872128 -> 140202222871936 + 140202228982144 [label="encoder.layer.6.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228982144 -> 140202222872128 + 140202222872128 [label=AccumulateGrad] + 140202222872224 -> 140202222871936 + 140202228981904 [label="encoder.layer.6.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228981904 -> 140202222872224 + 140202222872224 [label=AccumulateGrad] + 140202222871744 -> 140202222842352 + 140202222871744 [label=NativeLayerNormBackward0] + 140202222904992 -> 140202222871744 + 140202222904992 [label=AddBackward0] + 140202222873088 -> 140202222904992 + 140202222873088 [label=NativeDropoutBackward0] + 140210811724656 -> 140202222873088 + 140210811724656 [label=ViewBackward0] + 140210811723840 -> 140210811724656 + 140210811723840 [label=AddmmBackward0] + 140210811725184 -> 140210811723840 + 140210811725184 [label=ToCopyBackward0] + 140210811725376 -> 140210811725184 + 140202228983504 [label="encoder.layer.6.output.dense.bias + (768)" fillcolor=lightblue] + 140202228983504 -> 140210811725376 + 140210811725376 [label=AccumulateGrad] + 140210811725088 -> 140210811723840 + 140210811725088 [label=ViewBackward0] + 140210811725424 -> 140210811725088 + 140210811725424 [label=GeluBackward0] + 140210811725520 -> 140210811725424 + 140210811725520 [label=ViewBackward0] + 140210811725616 -> 140210811725520 + 140210811725616 [label=AddmmBackward0] + 140210811725712 -> 140210811725616 + 140210811725712 [label=ToCopyBackward0] + 140210811725904 -> 140210811725712 + 140202228983744 [label="encoder.layer.6.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228983744 -> 140210811725904 + 140210811725904 [label=AccumulateGrad] + 140210811725664 -> 140210811725616 + 140210811725664 [label=ViewBackward0] + 140210811725952 -> 140210811725664 + 140210811725952 [label=ToCopyBackward0] + 140202222873376 -> 140210811725952 + 140202222873376 [label=SliceBackward0] + 140210811726096 -> 140202222873376 + 140210811726096 [label=SliceBackward0] + 140210811726192 -> 140210811726096 + 140210811726192 [label=SliceBackward0] + 140202222935104 -> 140210811726192 + 140210811724992 -> 140210811725616 + 140210811724992 [label=TBackward0] + 140210811725856 -> 140210811724992 + 140210811725856 [label=ToCopyBackward0] + 140210811726288 -> 140210811725856 + 140202228984064 [label="encoder.layer.6.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228984064 -> 140210811726288 + 140210811726288 [label=AccumulateGrad] + 140210811724272 -> 140210811723840 + 140210811724272 [label=TBackward0] + 140210811725568 -> 140210811724272 + 140210811725568 [label=ToCopyBackward0] + 140210811726048 -> 140210811725568 + 140202228983824 [label="encoder.layer.6.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228983824 -> 140210811726048 + 140210811726048 [label=AccumulateGrad] + 140202222873376 -> 140202222904992 + 140202222872512 -> 140202222871744 + 140202228983584 [label="encoder.layer.6.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228983584 -> 140202222872512 + 140202222872512 [label=AccumulateGrad] + 140202222872320 -> 140202222871744 + 140202228983264 [label="encoder.layer.6.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228983264 -> 140202222872320 + 140202222872320 [label=AccumulateGrad] + 140202222870592 -> 140202222871168 + 140202222870592 [label=TBackward0] + 140202222871456 -> 140202222870592 + 140202222871456 [label=ToCopyBackward0] + 140202222872608 -> 140202222871456 + 140202228982384 [label="encoder.layer.7.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228982384 -> 140202222872608 + 140202222872608 [label=AccumulateGrad] + 140202222845568 -> 140202222845664 + 140202222845568 [label=ReshapeAliasBackward0] + 140202222845760 -> 140202222845568 + 140202222845760 [label=ExpandBackward0] + 140202222871264 -> 140202222845760 + 140202222871264 [label=TransposeBackward0] + 140202222872032 -> 140202222871264 + 140202222872032 [label=PermuteBackward0] + 140202222871840 -> 140202222872032 + 140202222871840 [label=ViewBackward0] + 140202222870784 -> 140202222871840 + 140202222870784 [label=ViewBackward0] + 140210811725280 -> 140202222870784 + 140210811725280 [label=AddmmBackward0] + 140210811725808 -> 140210811725280 + 140210811725808 [label=ToCopyBackward0] + 140210811726000 -> 140210811725808 + 140203184706720 [label="encoder.layer.7.attention.self.key.bias + (768)" fillcolor=lightblue] + 140203184706720 -> 140210811726000 + 140210811726000 [label=AccumulateGrad] + 140210811725760 -> 140210811725280 + 140210811725760 [label=ViewBackward0] + 140210811726336 -> 140210811725760 + 140210811726336 [label=ToCopyBackward0] + 140202222842352 -> 140210811726336 + 140210811724752 -> 140210811725280 + 140210811724752 [label=TBackward0] + 140210811725472 -> 140210811724752 + 140210811725472 [label=ToCopyBackward0] + 140210811726480 -> 140210811725472 + 140202228982624 [label="encoder.layer.7.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228982624 -> 140210811726480 + 140210811726480 [label=AccumulateGrad] + 140202222844224 -> 140202222843936 + 140202222844224 [label=ReshapeAliasBackward0] + 140202222844608 -> 140202222844224 + 140202222844608 [label=ExpandBackward0] + 140202222844896 -> 140202222844608 + 140202222844896 [label=PermuteBackward0] + 140202222845280 -> 140202222844896 + 140202222845280 [label=ViewBackward0] + 140202222844272 -> 140202222845280 + 140202222844272 [label=ViewBackward0] + 140202222844320 -> 140202222844272 + 140202222844320 [label=AddmmBackward0] + 140202222872752 -> 140202222844320 + 140202222872752 [label=ToCopyBackward0] + 140210811726432 -> 140202222872752 + 140202228969200 [label="encoder.layer.7.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228969200 -> 140210811726432 + 140210811726432 [label=AccumulateGrad] + 140202222871552 -> 140202222844320 + 140202222871552 [label=ViewBackward0] + 140210811726240 -> 140202222871552 + 140210811726240 [label=ToCopyBackward0] + 140202222842352 -> 140210811726240 + 140202222870832 -> 140202222844320 + 140202222870832 [label=TBackward0] + 140210811725328 -> 140202222870832 + 140210811725328 [label=ToCopyBackward0] + 140210811726384 -> 140210811725328 + 140202228969280 [label="encoder.layer.7.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228969280 -> 140210811726384 + 140210811726384 [label=AccumulateGrad] + 140202222842592 -> 140202222842832 + 140202222842592 [label=TBackward0] + 140202222843744 -> 140202222842592 + 140202222843744 [label=ToCopyBackward0] + 140202222844032 -> 140202222843744 + 140202228968960 [label="encoder.layer.7.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228968960 -> 140202222844032 + 140202222844032 [label=AccumulateGrad] + 140202222842352 -> 140202222841968 + 140202222842112 -> 140202222820224 + 140202228967520 [label="encoder.layer.7.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228967520 -> 140202222842112 + 140202222842112 [label=AccumulateGrad] + 140202222842016 -> 140202222820224 + 140202228967280 [label="encoder.layer.7.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228967280 -> 140202222842016 + 140202222842016 [label=AccumulateGrad] + 140202222819456 -> 140202222819936 + 140202222819456 [label=TBackward0] + 140202222820368 -> 140202222819456 + 140202222820368 [label=ToCopyBackward0] + 140202222821088 -> 140202222820368 + 140202228965600 [label="encoder.layer.7.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228965600 -> 140202222821088 + 140202222821088 [label=AccumulateGrad] + 140202222818880 -> 140202222819168 + 140202222818880 [label=TBackward0] + 140202222819888 -> 140202222818880 + 140202222819888 [label=ToCopyBackward0] + 140202222820800 -> 140202222819888 + 140202228965440 [label="encoder.layer.7.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228965440 -> 140202222820800 + 140202222820800 [label=AccumulateGrad] + 140202222818688 -> 140202222818304 + 140202222818400 -> 140202222818208 + 140202228952736 [label="encoder.layer.7.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228952736 -> 140202222818400 + 140202222818400 [label=AccumulateGrad] + 140202222818112 -> 140202222818208 + 140202228952816 [label="encoder.layer.7.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228952816 -> 140202222818112 + 140202222818112 [label=AccumulateGrad] + 140202222817632 -> 140202223288032 + 140202222817632 [label=NativeLayerNormBackward0] + 140202222818784 -> 140202222817632 + 140202222818784 [label=AddBackward0] + 140202222820320 -> 140202222818784 + 140202222820320 [label=NativeDropoutBackward0] + 140202222819840 -> 140202222820320 + 140202222819840 [label=ViewBackward0] + 140202222820512 -> 140202222819840 + 140202222820512 [label=AddmmBackward0] + 140202222842208 -> 140202222820512 + 140202222842208 [label=ToCopyBackward0] + 140202222843264 -> 140202222842208 + 140202228966880 [label="encoder.layer.7.output.dense.bias + (768)" fillcolor=lightblue] + 140202228966880 -> 140202222843264 + 140202222843264 [label=AccumulateGrad] + 140202222842304 -> 140202222820512 + 140202222842304 [label=ViewBackward0] + 140202222843792 -> 140202222842304 + 140202222843792 [label=GeluBackward0] + 140202222843168 -> 140202222843792 + 140202222843168 [label=ViewBackward0] + 140202222844800 -> 140202222843168 + 140202222844800 [label=AddmmBackward0] + 140202222845376 -> 140202222844800 + 140202222845376 [label=ToCopyBackward0] + 140210811726144 -> 140202222845376 + 140202228967120 [label="encoder.layer.7.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228967120 -> 140210811726144 + 140210811726144 [label=AccumulateGrad] + 140202222845088 -> 140202222844800 + 140202222845088 [label=ViewBackward0] + 140210811726672 -> 140202222845088 + 140210811726672 [label=ToCopyBackward0] + 140202222819408 -> 140210811726672 + 140202222819408 [label=SliceBackward0] + 140210811726720 -> 140202222819408 + 140210811726720 [label=SliceBackward0] + 140210811726816 -> 140210811726720 + 140210811726816 [label=SliceBackward0] + 140202222820224 -> 140210811726816 + 140202222842976 -> 140202222844800 + 140202222842976 [label=TBackward0] + 140210811726528 -> 140202222842976 + 140210811726528 [label=ToCopyBackward0] + 140210811726912 -> 140210811726528 + 140202228967360 [label="encoder.layer.7.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228967360 -> 140210811726912 + 140210811726912 [label=AccumulateGrad] + 140202222841920 -> 140202222820512 + 140202222841920 [label=TBackward0] + 140202222843552 -> 140202222841920 + 140202222843552 [label=ToCopyBackward0] + 140202222871072 -> 140202222843552 + 140202228966800 [label="encoder.layer.7.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228966800 -> 140202222871072 + 140202222871072 [label=AccumulateGrad] + 140202222819408 -> 140202222818784 + 140202222818496 -> 140202222817632 + 140202228966560 [label="encoder.layer.7.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228966560 -> 140202222818496 + 140202222818496 [label=AccumulateGrad] + 140202222818448 -> 140202222817632 + 140202228966640 [label="encoder.layer.7.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228966640 -> 140202222818448 + 140202222818448 [label=AccumulateGrad] + 140202222817440 -> 140202223316800 + 140202222817440 [label=TBackward0] + 140202222817728 -> 140202222817440 + 140202222817728 [label=ToCopyBackward0] + 140202222819264 -> 140202222817728 + 140202228952496 [label="encoder.layer.8.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228952496 -> 140202222819264 + 140202222819264 [label=AccumulateGrad] + 140202223316128 -> 140202223315840 + 140202223316128 [label=ReshapeAliasBackward0] + 140202223316512 -> 140202223316128 + 140202223316512 [label=ExpandBackward0] + 140202223316176 -> 140202223316512 + 140202223316176 [label=TransposeBackward0] + 140202223316224 -> 140202223316176 + 140202223316224 [label=PermuteBackward0] + 140202222821280 -> 140202223316224 + 140202222821280 [label=ViewBackward0] + 140202222817968 -> 140202222821280 + 140202222817968 [label=ViewBackward0] + 140202222817536 -> 140202222817968 + 140202222817536 [label=AddmmBackward0] + 140202222844416 -> 140202222817536 + 140202222844416 [label=ToCopyBackward0] + 140210811726624 -> 140202222844416 + 140202228952336 [label="encoder.layer.8.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228952336 -> 140210811726624 + 140210811726624 [label=AccumulateGrad] + 140202222842496 -> 140202222817536 + 140202222842496 [label=ViewBackward0] + 140210811726960 -> 140202222842496 + 140210811726960 [label=ToCopyBackward0] + 140202223288032 -> 140210811726960 + 140210811724368 -> 140202222817536 + 140210811724368 [label=TBackward0] + 140210811726576 -> 140210811724368 + 140210811726576 [label=ToCopyBackward0] + 140210811727104 -> 140210811726576 + 140202228952256 [label="encoder.layer.8.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228952256 -> 140210811727104 + 140210811727104 [label=AccumulateGrad] + 140202223314400 -> 140202223314496 + 140202223314400 [label=ReshapeAliasBackward0] + 140202223315168 -> 140202223314400 + 140202223315168 [label=ExpandBackward0] + 140202223315456 -> 140202223315168 + 140202223315456 [label=PermuteBackward0] + 140202223315696 -> 140202223315456 + 140202223315696 [label=ViewBackward0] + 140202223314592 -> 140202223315696 + 140202223314592 [label=ViewBackward0] + 140202223316704 -> 140202223314592 + 140202223316704 [label=AddmmBackward0] + 140202223314736 -> 140202223316704 + 140202223314736 [label=ToCopyBackward0] + 140202222842688 -> 140202223314736 + 140202228952096 [label="encoder.layer.8.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228952096 -> 140202222842688 + 140202222842688 [label=AccumulateGrad] + 140202222818976 -> 140202223316704 + 140202222818976 [label=ViewBackward0] + 140210811726864 -> 140202222818976 + 140210811726864 [label=ToCopyBackward0] + 140202223288032 -> 140210811726864 + 140202222818016 -> 140202223316704 + 140202222818016 [label=TBackward0] + 140210811726768 -> 140202222818016 + 140210811726768 [label=ToCopyBackward0] + 140210811727008 -> 140210811726768 + 140202228952016 [label="encoder.layer.8.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228952016 -> 140210811727008 + 140210811727008 [label=AccumulateGrad] + 140202223313056 -> 140202223313152 + 140202223313056 [label=TBackward0] + 140202223313920 -> 140202223313056 + 140202223313920 [label=ToCopyBackward0] + 140202223314304 -> 140202223313920 + 140202228951776 [label="encoder.layer.8.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228951776 -> 140202223314304 + 140202223314304 [label=AccumulateGrad] + 140202223288032 -> 140202223287936 + 140202223287744 -> 140202223287696 + 140202228951536 [label="encoder.layer.8.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228951536 -> 140202223287744 + 140202223287744 [label=AccumulateGrad] + 140202223286976 -> 140202223287696 + 140202228951616 [label="encoder.layer.8.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228951616 -> 140202223286976 + 140202223286976 [label=AccumulateGrad] + 140202223285776 -> 140202223286688 + 140202223285776 [label=TBackward0] + 140202223286880 -> 140202223285776 + 140202223286880 [label=ToCopyBackward0] + 140202223287552 -> 140202223286880 + 140202228951296 [label="encoder.layer.8.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228951296 -> 140202223287552 + 140202223287552 [label=AccumulateGrad] + 140202223285728 -> 140202223285440 + 140202223285728 [label=ReshapeAliasBackward0] + 140202223286112 -> 140202223285728 + 140202223286112 [label=ExpandBackward0] + 140202223286400 -> 140202223286112 + 140202223286400 [label=TransposeBackward0] + 140202223287264 -> 140202223286400 + 140202223287264 [label=PermuteBackward0] + 140202223288128 -> 140202223287264 + 140202223288128 [label=ViewBackward0] + 140202223287216 -> 140202223288128 + 140202223287216 [label=ViewBackward0] + 140202223285824 -> 140202223287216 + 140202223285824 [label=AddmmBackward0] + 140202223313440 -> 140202223285824 + 140202223313440 [label=ToCopyBackward0] + 140202223313824 -> 140202223313440 + 140202228951136 [label="encoder.layer.8.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202228951136 -> 140202223313824 + 140202223313824 [label=AccumulateGrad] + 140202223313536 -> 140202223285824 + 140202223313536 [label=ViewBackward0] + 140202223315216 -> 140202223313536 + 140202223315216 [label=ToCopyBackward0] + 140210812052960 -> 140202223315216 + 140202223312960 -> 140202223285824 + 140202223312960 [label=TBackward0] + 140202223314976 -> 140202223312960 + 140202223314976 [label=ToCopyBackward0] + 140202223316320 -> 140202223314976 + 140202228951056 [label="encoder.layer.8.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202228951056 -> 140202223316320 + 140202223316320 [label=AccumulateGrad] + 140202223251168 -> 140202223251264 + 140202223251168 [label=ReshapeAliasBackward0] + 140202223284768 -> 140202223251168 + 140202223284768 [label=ExpandBackward0] + 140202223285056 -> 140202223284768 + 140202223285056 [label=PermuteBackward0] + 140202223285296 -> 140202223285056 + 140202223285296 [label=ViewBackward0] + 140202223284288 -> 140202223285296 + 140202223284288 [label=ViewBackward0] + 140202223286304 -> 140202223284288 + 140202223286304 [label=AddmmBackward0] + 140202223287360 -> 140202223286304 + 140202223287360 [label=ToCopyBackward0] + 140202222820848 -> 140202223287360 + 140202228950896 [label="encoder.layer.8.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202228950896 -> 140202222820848 + 140202222820848 [label=AccumulateGrad] + 140202223286784 -> 140202223286304 + 140202223286784 [label=ViewBackward0] + 140202223315936 -> 140202223286784 + 140202223315936 [label=ToCopyBackward0] + 140210812052960 -> 140202223315936 + 140202223284336 -> 140202223286304 + 140202223284336 [label=TBackward0] + 140202223313248 -> 140202223284336 + 140202223313248 [label=ToCopyBackward0] + 140202223314112 -> 140202223313248 + 140202228950816 [label="encoder.layer.8.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202228950816 -> 140202223314112 + 140202223314112 [label=AccumulateGrad] + 140202223249584 -> 140202223250016 + 140202223249584 [label=TBackward0] + 140202223250784 -> 140202223249584 + 140202223250784 [label=ToCopyBackward0] + 140202223251072 -> 140202223250784 + 140202228950576 [label="encoder.layer.8.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228950576 -> 140202223251072 + 140202223251072 [label=AccumulateGrad] + 140202223249536 -> 140202223249152 + 140202223249104 -> 140202223248960 + 140202228950336 [label="encoder.layer.8.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228950336 -> 140202223249104 + 140202223249104 [label=AccumulateGrad] + 140202223248288 -> 140202223248960 + 140202228950416 [label="encoder.layer.8.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228950416 -> 140202223248288 + 140202223248288 [label=AccumulateGrad] + 140202223247520 -> 140202223248000 + 140202223247520 [label=TBackward0] + 140202223248576 -> 140202223247520 + 140202223248576 [label=ToCopyBackward0] + 140202223249344 -> 140202223248576 + 140202228934912 [label="encoder.layer.8.experts.experts.0.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228934912 -> 140202223249344 + 140202223249344 [label=AccumulateGrad] + 140202223230256 -> 140202223230736 + 140202223230256 [label=TBackward0] + 140202223248096 -> 140202223230256 + 140202223248096 [label=ToCopyBackward0] + 140202223248864 -> 140202223248096 + 140202228934592 [label="encoder.layer.8.experts.experts.0.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228934592 -> 140202223248864 + 140202223248864 [label=AccumulateGrad] + 140202223229920 -> 140202223230016 + 140202223229920 [label=UnsqueezeBackward0] + 140202223230592 -> 140202223229920 + 140202223230592 [label=NativeDropoutBackward0] + 140202223230304 -> 140202223230592 + 140202223230304 [label=ViewBackward0] + 140202223249632 -> 140202223230304 + 140202223249632 [label=AddmmBackward0] + 140202223247904 -> 140202223249632 + 140202223247904 [label=ToCopyBackward0] + 140202223250112 -> 140202223247904 + 140202228934672 [label="encoder.layer.8.experts.experts.1.dense2.bias + (768)" fillcolor=lightblue] + 140202228934672 -> 140202223250112 + 140202223250112 [label=AccumulateGrad] + 140202223249056 -> 140202223249632 + 140202223249056 [label=ViewBackward0] + 140202223250304 -> 140202223249056 + 140202223250304 [label=GeluBackward0] + 140202223251024 -> 140202223250304 + 140202223251024 [label=ViewBackward0] + 140202223250544 -> 140202223251024 + 140202223250544 [label=AddmmBackward0] + 140202223285248 -> 140202223250544 + 140202223285248 [label=ToCopyBackward0] + 140202223287840 -> 140202223285248 + 140202228935072 [label="encoder.layer.8.experts.experts.1.dense1.bias + (3072)" fillcolor=lightblue] + 140202228935072 -> 140202223287840 + 140202223287840 [label=AccumulateGrad] + 140202223284816 -> 140202223250544 + 140202223284816 [label=ViewBackward0] + 140202223315648 -> 140202223284816 + 140202223315648 [label=ToCopyBackward0] + 140202223229152 -> 140202223315648 + 140202223284576 -> 140202223250544 + 140202223284576 [label=TBackward0] + 140202223285920 -> 140202223284576 + 140202223285920 [label=ToCopyBackward0] + 140210811727152 -> 140202223285920 + 140202228934352 [label="encoder.layer.8.experts.experts.1.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228934352 -> 140210811727152 + 140210811727152 [label=AccumulateGrad] + 140202223247424 -> 140202223249632 + 140202223247424 [label=TBackward0] + 140202223249728 -> 140202223247424 + 140202223249728 [label=ToCopyBackward0] + 140202223313728 -> 140202223249728 + 140202228934112 [label="encoder.layer.8.experts.experts.1.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228934112 -> 140202223313728 + 140202223313728 [label=AccumulateGrad] + 140202223229776 -> 140202223230016 + 140202223229776 [label=UnsqueezeBackward0] + 140202223285536 -> 140202223229776 + 140202223285536 [label=NativeDropoutBackward0] + 140202223249248 -> 140202223285536 + 140202223249248 [label=ViewBackward0] + 140202223250208 -> 140202223249248 + 140202223250208 [label=AddmmBackward0] + 140202223247616 -> 140202223250208 + 140202223247616 [label=ToCopyBackward0] + 140210811727392 -> 140202223247616 + 140202228934192 [label="encoder.layer.8.experts.experts.2.dense2.bias + (768)" fillcolor=lightblue] + 140202228934192 -> 140210811727392 + 140210811727392 [label=AccumulateGrad] + 140210811727296 -> 140202223250208 + 140210811727296 [label=ViewBackward0] + 140210811727440 -> 140210811727296 + 140210811727440 [label=GeluBackward0] + 140210811727536 -> 140210811727440 + 140210811727536 [label=ViewBackward0] + 140210811727632 -> 140210811727536 + 140210811727632 [label=AddmmBackward0] + 140210811727728 -> 140210811727632 + 140210811727728 [label=ToCopyBackward0] + 140210811727824 -> 140210811727728 + 140202228934432 [label="encoder.layer.8.experts.experts.2.dense1.bias + (3072)" fillcolor=lightblue] + 140202228934432 -> 140210811727824 + 140210811727824 [label=AccumulateGrad] + 140210811727680 -> 140210811727632 + 140210811727680 [label=ViewBackward0] + 140210811781280 -> 140210811727680 + 140210811781280 [label=ToCopyBackward0] + 140202223229152 -> 140210811781280 + 140210811727344 -> 140210811727632 + 140210811727344 [label=TBackward0] + 140210811781232 -> 140210811727344 + 140210811781232 [label=ToCopyBackward0] + 140210811781424 -> 140210811781232 + 140202228933872 [label="encoder.layer.8.experts.experts.2.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228933872 -> 140210811781424 + 140210811781424 [label=AccumulateGrad] + 140210811727200 -> 140202223250208 + 140210811727200 [label=TBackward0] + 140210811727584 -> 140210811727200 + 140210811727584 [label=ToCopyBackward0] + 140210811727776 -> 140210811727584 + 140202228933632 [label="encoder.layer.8.experts.experts.2.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228933632 -> 140210811727776 + 140210811727776 [label=AccumulateGrad] + 140202223229728 -> 140202223229440 + 140202223229728 [label=UnsqueezeBackward0] + 140202223230400 -> 140202223229728 + 140202223230400 [label=UnsqueezeBackward0] + 140202223248672 -> 140202223230400 + 140202223248672 [label=SumBackward1] + 140202223229824 -> 140202223248672 + 140202223229824 [label=MulBackward0] + 140210811727488 -> 140202223229824 + 140210811727488 [label=UnsqueezeBackward0] + 140210811781376 -> 140210811727488 + 140210811781376 [label=TopkBackward0] + 140210811781328 -> 140210811781376 + 140210811781328 [label=SoftmaxBackward0] + 140210811781616 -> 140210811781328 + 140210811781616 [label=MmBackward0] + 140210811781712 -> 140210811781616 + 140210811781712 [label=ToCopyBackward0] + 140210811781856 -> 140210811781712 + 140210811781856 [label=MeanBackward1] + 140210811781952 -> 140210811781856 + 140210811781952 [label=MulBackward0] + 140202223229152 -> 140210811781952 + 140210811781664 -> 140210811781616 + 140210811781664 [label=TBackward0] + 140210811782048 -> 140210811781664 + 140210811782048 [label=ToCopyBackward0] + 140210811781760 -> 140210811782048 + 140202228935872 [label="encoder.layer.8.experts.gate.weight + (3, 768)" fillcolor=lightblue] + 140202228935872 -> 140210811781760 + 140210811781760 [label=AccumulateGrad] + 140202223229152 -> 140202223229056 + 140202223228864 -> 140202223228672 + 140202228935792 [label="encoder.layer.8.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228935792 -> 140202223228864 + 140202223228864 [label=AccumulateGrad] + 140202223228816 -> 140202223228672 + 140202228935552 [label="encoder.layer.8.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228935552 -> 140202223228816 + 140202223228816 [label=AccumulateGrad] + 140202223228336 -> 140202223195040 + 140202223228336 [label=NativeLayerNormBackward0] + 140202223229536 -> 140202223228336 + 140202223229536 [label=AddBackward0] + 140202223248384 -> 140202223229536 + 140202223248384 [label=NativeDropoutBackward0] + 140210811727248 -> 140202223248384 + 140210811727248 [label=ViewBackward0] + 140210811781520 -> 140210811727248 + 140210811781520 [label=AddmmBackward0] + 140210811782000 -> 140210811781520 + 140210811782000 [label=ToCopyBackward0] + 140210811782192 -> 140210811782000 + 140202228949936 [label="encoder.layer.8.output.dense.bias + (768)" fillcolor=lightblue] + 140202228949936 -> 140210811782192 + 140210811782192 [label=AccumulateGrad] + 140210811781904 -> 140210811781520 + 140210811781904 [label=ViewBackward0] + 140210811782240 -> 140210811781904 + 140210811782240 [label=GeluBackward0] + 140210811782336 -> 140210811782240 + 140210811782336 [label=ViewBackward0] + 140210811782432 -> 140210811782336 + 140210811782432 [label=AddmmBackward0] + 140210811782528 -> 140210811782432 + 140210811782528 [label=ToCopyBackward0] + 140210811782720 -> 140210811782528 + 140202228950176 [label="encoder.layer.8.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228950176 -> 140210811782720 + 140210811782720 [label=AccumulateGrad] + 140210811782480 -> 140210811782432 + 140210811782480 [label=ViewBackward0] + 140210811782768 -> 140210811782480 + 140210811782768 [label=ToCopyBackward0] + 140202223230112 -> 140210811782768 + 140202223230112 [label=SliceBackward0] + 140210811782912 -> 140202223230112 + 140210811782912 [label=SliceBackward0] + 140210811783008 -> 140210811782912 + 140210811783008 [label=SliceBackward0] + 140202223287696 -> 140210811783008 + 140210811781808 -> 140210811782432 + 140210811781808 [label=TBackward0] + 140210811782672 -> 140210811781808 + 140210811782672 [label=ToCopyBackward0] + 140210811783104 -> 140210811782672 + 140202228950096 [label="encoder.layer.8.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228950096 -> 140210811783104 + 140210811783104 [label=AccumulateGrad] + 140210811781184 -> 140210811781520 + 140210811781184 [label=TBackward0] + 140210811782384 -> 140210811781184 + 140210811782384 [label=ToCopyBackward0] + 140210811782864 -> 140210811782384 + 140202228949856 [label="encoder.layer.8.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228949856 -> 140210811782864 + 140210811782864 [label=AccumulateGrad] + 140202223230112 -> 140202223229536 + 140202223229248 -> 140202223228336 + 140202228949616 [label="encoder.layer.8.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228949616 -> 140202223229248 + 140202223229248 [label=AccumulateGrad] + 140202223228960 -> 140202223228336 + 140202228949696 [label="encoder.layer.8.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228949696 -> 140202223228960 + 140202223228960 [label=AccumulateGrad] + 140202223226992 -> 140202223227904 + 140202223226992 [label=TBackward0] + 140202223228192 -> 140202223226992 + 140202223228192 [label=ToCopyBackward0] + 140210811727056 -> 140202223228192 + 140202228936112 [label="encoder.layer.9.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228936112 -> 140210811727056 + 140210811727056 [label=AccumulateGrad] + 140202223226944 -> 140202223198016 + 140202223226944 [label=ReshapeAliasBackward0] + 140202223227616 -> 140202223226944 + 140202223227616 [label=ExpandBackward0] + 140202223227856 -> 140202223227616 + 140202223227856 [label=TransposeBackward0] + 140202223228768 -> 140202223227856 + 140202223228768 [label=PermuteBackward0] + 140202223228480 -> 140202223228768 + 140202223228480 [label=ViewBackward0] + 140202223227328 -> 140202223228480 + 140202223227328 [label=ViewBackward0] + 140210811782096 -> 140202223227328 + 140210811782096 [label=AddmmBackward0] + 140210811782624 -> 140210811782096 + 140210811782624 [label=ToCopyBackward0] + 140210811782816 -> 140210811782624 + 140202228936272 [label="encoder.layer.9.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228936272 -> 140210811782816 + 140210811782816 [label=AccumulateGrad] + 140210811782576 -> 140210811782096 + 140210811782576 [label=ViewBackward0] + 140210811783152 -> 140210811782576 + 140210811783152 [label=ToCopyBackward0] + 140202223195040 -> 140210811783152 + 140210811781568 -> 140210811782096 + 140210811781568 [label=TBackward0] + 140210811782288 -> 140210811781568 + 140210811782288 [label=ToCopyBackward0] + 140210811783296 -> 140210811782288 + 140202228936352 [label="encoder.layer.9.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228936352 -> 140210811783296 + 140210811783296 [label=AccumulateGrad] + 140202223196720 -> 140202223196576 + 140202223196720 [label=ReshapeAliasBackward0] + 140202223197248 -> 140202223196720 + 140202223197248 [label=ExpandBackward0] + 140202223197536 -> 140202223197248 + 140202223197536 [label=PermuteBackward0] + 140202223197824 -> 140202223197536 + 140202223197824 [label=ViewBackward0] + 140202223196960 -> 140202223197824 + 140202223196960 [label=ViewBackward0] + 140202223227808 -> 140202223196960 + 140202223227808 [label=AddmmBackward0] + 140202223229344 -> 140202223227808 + 140202223229344 [label=ToCopyBackward0] + 140210811783248 -> 140202223229344 + 140202228935312 [label="encoder.layer.9.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228935312 -> 140210811783248 + 140210811783248 [label=AccumulateGrad] + 140202223228288 -> 140202223227808 + 140202223228288 [label=ViewBackward0] + 140210811783056 -> 140202223228288 + 140210811783056 [label=ToCopyBackward0] + 140202223195040 -> 140210811783056 + 140202223227040 -> 140202223227808 + 140202223227040 [label=TBackward0] + 140210811782144 -> 140202223227040 + 140210811782144 [label=ToCopyBackward0] + 140210811783200 -> 140210811782144 + 140202228935632 [label="encoder.layer.9.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228935632 -> 140210811783200 + 140210811783200 [label=AccumulateGrad] + 140202223195232 -> 140202223195520 + 140202223195232 [label=TBackward0] + 140202223196240 -> 140202223195232 + 140202223196240 [label=ToCopyBackward0] + 140202223196672 -> 140202223196240 + 140202228935392 [label="encoder.layer.9.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228935392 -> 140202223196672 + 140202223196672 [label=AccumulateGrad] + 140202223195040 -> 140202223194656 + 140202223194752 -> 140202223194464 + 140202228933952 [label="encoder.layer.9.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228933952 -> 140202223194752 + 140202223194752 [label=AccumulateGrad] + 140202223194272 -> 140202223194464 + 140202228933712 [label="encoder.layer.9.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228933712 -> 140202223194272 + 140202223194272 [label=AccumulateGrad] + 140202223172000 -> 140202223172480 + 140202223172000 [label=TBackward0] + 140202223173056 -> 140202223172000 + 140202223173056 [label=ToCopyBackward0] + 140202223173536 -> 140202223173056 + 140202228927840 [label="encoder.layer.9.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228927840 -> 140202223173536 + 140202223173536 [label=AccumulateGrad] + 140202223171376 -> 140202223171808 + 140202223171376 [label=TBackward0] + 140202223172576 -> 140202223171376 + 140202223172576 [label=ToCopyBackward0] + 140202223173296 -> 140202223172576 + 140202228927600 [label="encoder.layer.9.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228927600 -> 140202223173296 + 140202223173296 [label=AccumulateGrad] + 140202223171328 -> 140202223170944 + 140202223170896 -> 140202223170848 + 140202228927360 [label="encoder.layer.9.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228927360 -> 140202223170896 + 140202223170896 [label=AccumulateGrad] + 140202223170752 -> 140202223170848 + 140202228927040 [label="encoder.layer.9.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228927040 -> 140202223170752 + 140202223170752 [label=AccumulateGrad] + 140202223170272 -> 140202223136928 + 140202223170272 [label=NativeLayerNormBackward0] + 140202223171424 -> 140202223170272 + 140202223171424 [label=AddBackward0] + 140202223172816 -> 140202223171424 + 140202223172816 [label=NativeDropoutBackward0] + 140202223172336 -> 140202223172816 + 140202223172336 [label=ViewBackward0] + 140202223194176 -> 140202223172336 + 140202223194176 [label=AddmmBackward0] + 140202223194848 -> 140202223194176 + 140202223194848 [label=ToCopyBackward0] + 140202223195760 -> 140202223194848 + 140202228932912 [label="encoder.layer.9.output.dense.bias + (768)" fillcolor=lightblue] + 140202228932912 -> 140202223195760 + 140202223195760 [label=AccumulateGrad] + 140202223194800 -> 140202223194176 + 140202223194800 [label=ViewBackward0] + 140202223196480 -> 140202223194800 + 140202223196480 [label=GeluBackward0] + 140202223195808 -> 140202223196480 + 140202223195808 [label=ViewBackward0] + 140202223197344 -> 140202223195808 + 140202223197344 [label=AddmmBackward0] + 140202223196864 -> 140202223197344 + 140202223196864 [label=ToCopyBackward0] + 140210811782960 -> 140202223196864 + 140202228933152 [label="encoder.layer.9.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228933152 -> 140210811782960 + 140210811782960 [label=AccumulateGrad] + 140202223197728 -> 140202223197344 + 140202223197728 [label=ViewBackward0] + 140210811783488 -> 140202223197728 + 140210811783488 [label=ToCopyBackward0] + 140202223172096 -> 140210811783488 + 140202223172096 [label=SliceBackward0] + 140210811783536 -> 140202223172096 + 140210811783536 [label=SliceBackward0] + 140210811783632 -> 140210811783536 + 140210811783632 [label=SliceBackward0] + 140202223194464 -> 140210811783632 + 140202223195616 -> 140202223197344 + 140202223195616 [label=TBackward0] + 140210811783344 -> 140202223195616 + 140210811783344 [label=ToCopyBackward0] + 140210811783728 -> 140210811783344 + 140202228933392 [label="encoder.layer.9.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228933392 -> 140210811783728 + 140210811783728 [label=AccumulateGrad] + 140202223194560 -> 140202223194176 + 140202223194560 [label=TBackward0] + 140202223196192 -> 140202223194560 + 140202223196192 [label=ToCopyBackward0] + 140202223227376 -> 140202223196192 + 140202228933232 [label="encoder.layer.9.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228933232 -> 140202223227376 + 140202223227376 [label=AccumulateGrad] + 140202223172096 -> 140202223171424 + 140202223171040 -> 140202223170272 + 140202228932992 [label="encoder.layer.9.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228932992 -> 140202223171040 + 140202223171040 [label=AccumulateGrad] + 140202223171136 -> 140202223170272 + 140202228932672 [label="encoder.layer.9.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228932672 -> 140202223171136 + 140202223171136 [label=AccumulateGrad] + 140202223169696 -> 140202223169936 + 140202223169696 [label=TBackward0] + 140202223170368 -> 140202223169696 + 140202223170368 [label=ToCopyBackward0] + 140202223171904 -> 140202223170368 + 140202228927120 [label="encoder.layer.10.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228927120 -> 140202223171904 + 140202223171904 [label=AccumulateGrad] + 140202223140240 -> 140202223140096 + 140202223140240 [label=ReshapeAliasBackward0] + 140202223140480 -> 140202223140240 + 140202223140480 [label=ExpandBackward0] + 140202223140384 -> 140202223140480 + 140202223140384 [label=TransposeBackward0] + 140202223170560 -> 140202223140384 + 140202223170560 [label=PermuteBackward0] + 140202223173152 -> 140202223170560 + 140202223173152 [label=ViewBackward0] + 140202223170656 -> 140202223173152 + 140202223170656 [label=ViewBackward0] + 140202223195328 -> 140202223170656 + 140202223195328 [label=AddmmBackward0] + 140202223197056 -> 140202223195328 + 140202223197056 [label=ToCopyBackward0] + 140210811783440 -> 140202223197056 + 140202228926560 [label="encoder.layer.10.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228926560 -> 140210811783440 + 140210811783440 [label=AccumulateGrad] + 140202223194320 -> 140202223195328 + 140202223194320 [label=ViewBackward0] + 140210811783776 -> 140202223194320 + 140210811783776 [label=ToCopyBackward0] + 140202223136928 -> 140210811783776 + 140210811781472 -> 140202223195328 + 140210811781472 [label=TBackward0] + 140210811783392 -> 140210811781472 + 140210811783392 [label=ToCopyBackward0] + 140210811783920 -> 140210811783392 + 140202228926880 [label="encoder.layer.10.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228926880 -> 140210811783920 + 140210811783920 [label=AccumulateGrad] + 140202223138656 -> 140202223138752 + 140202223138656 [label=ReshapeAliasBackward0] + 140202223139280 -> 140202223138656 + 140202223139280 [label=ExpandBackward0] + 140202223139712 -> 140202223139280 + 140202223139712 [label=PermuteBackward0] + 140202223140000 -> 140202223139712 + 140202223140000 [label=ViewBackward0] + 140202223138848 -> 140202223140000 + 140202223138848 [label=ViewBackward0] + 140202223140576 -> 140202223138848 + 140202223140576 [label=AddmmBackward0] + 140202223171520 -> 140202223140576 + 140202223171520 [label=ToCopyBackward0] + 140202223195136 -> 140202223171520 + 140202228926320 [label="encoder.layer.10.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228926320 -> 140202223195136 + 140202223195136 [label=AccumulateGrad] + 140202223170080 -> 140202223140576 + 140202223170080 [label=ViewBackward0] + 140210811783680 -> 140202223170080 + 140210811783680 [label=ToCopyBackward0] + 140202223136928 -> 140210811783680 + 140202223169792 -> 140202223140576 + 140202223169792 [label=TBackward0] + 140210811783584 -> 140202223169792 + 140210811783584 [label=ToCopyBackward0] + 140210811783824 -> 140210811783584 + 140202228926640 [label="encoder.layer.10.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228926640 -> 140210811783824 + 140210811783824 [label=AccumulateGrad] + 140202223137024 -> 140202223137408 + 140202223137024 [label=TBackward0] + 140202223138176 -> 140202223137024 + 140202223138176 [label=ToCopyBackward0] + 140202223138464 -> 140202223138176 + 140202228926400 [label="encoder.layer.10.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228926400 -> 140202223138464 + 140202223138464 [label=AccumulateGrad] + 140202223136928 -> 140202223112096 + 140202223111904 -> 140202223112000 + 140202228926160 [label="encoder.layer.10.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228926160 -> 140202223111904 + 140202223111904 [label=AccumulateGrad] + 140202223111232 -> 140202223112000 + 140202228925840 [label="encoder.layer.10.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228925840 -> 140202223111232 + 140202223111232 [label=AccumulateGrad] + 140202223110080 -> 140202223110800 + 140202223110080 [label=TBackward0] + 140202223111136 -> 140202223110080 + 140202223111136 [label=ToCopyBackward0] + 140202223111808 -> 140202223111136 + 140202228925920 [label="encoder.layer.10.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228925920 -> 140202223111808 + 140202223111808 [label=AccumulateGrad] + 140202223109840 -> 140202223109696 + 140202223109840 [label=ReshapeAliasBackward0] + 140202223110368 -> 140202223109840 + 140202223110368 [label=ExpandBackward0] + 140202223110656 -> 140202223110368 + 140202223110656 [label=TransposeBackward0] + 140202223111424 -> 140202223110656 + 140202223111424 [label=PermuteBackward0] + 140202223111520 -> 140202223111424 + 140202223111520 [label=ViewBackward0] + 140202223109984 -> 140202223111520 + 140202223109984 [label=ViewBackward0] + 140202223137360 -> 140202223109984 + 140202223137360 [label=AddmmBackward0] + 140202223137696 -> 140202223137360 + 140202223137696 [label=ToCopyBackward0] + 140202223137984 -> 140202223137696 + 140202228925360 [label="encoder.layer.10.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140202228925360 -> 140202223137984 + 140202223137984 [label=AccumulateGrad] + 140202223137792 -> 140202223137360 + 140202223137792 [label=ViewBackward0] + 140202223139520 -> 140202223137792 + 140202223139520 [label=ToCopyBackward0] + 140210812052960 -> 140202223139520 + 140202223136880 -> 140202223137360 + 140202223136880 [label=TBackward0] + 140202223139232 -> 140202223136880 + 140202223139232 [label=ToCopyBackward0] + 140202223139040 -> 140202223139232 + 140202228925680 [label="encoder.layer.10.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140202228925680 -> 140202223139040 + 140202223139040 [label=AccumulateGrad] + 140202223108256 -> 140202223082800 + 140202223108256 [label=ReshapeAliasBackward0] + 140202223108880 -> 140202223108256 + 140202223108880 [label=ExpandBackward0] + 140202223109312 -> 140202223108880 + 140202223109312 [label=PermuteBackward0] + 140202223109600 -> 140202223109312 + 140202223109600 [label=ViewBackward0] + 140202223108448 -> 140202223109600 + 140202223108448 [label=ViewBackward0] + 140202223110464 -> 140202223108448 + 140202223110464 [label=AddmmBackward0] + 140202223111616 -> 140202223110464 + 140202223111616 [label=ToCopyBackward0] + 140202223138368 -> 140202223111616 + 140202228925120 [label="encoder.layer.10.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140202228925120 -> 140202223138368 + 140202223138368 [label=AccumulateGrad] + 140202223110944 -> 140202223110464 + 140202223110944 [label=ViewBackward0] + 140202223140192 -> 140202223110944 + 140202223140192 [label=ToCopyBackward0] + 140210812052960 -> 140202223140192 + 140202223108640 -> 140202223110464 + 140202223108640 [label=TBackward0] + 140202223136832 -> 140202223108640 + 140202223136832 [label=ToCopyBackward0] + 140202223137312 -> 140202223136832 + 140202228925440 [label="encoder.layer.10.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140202228925440 -> 140202223137312 + 140202223137312 [label=AccumulateGrad] + 140202223081984 -> 140202223082368 + 140202223081984 [label=TBackward0] + 140202223083136 -> 140202223081984 + 140202223083136 [label=ToCopyBackward0] + 140202223083328 -> 140202223083136 + 140202228925200 [label="encoder.layer.10.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228925200 -> 140202223083328 + 140202223083328 [label=AccumulateGrad] + 140202223081888 -> 140202223081792 + 140202223081504 -> 140202223081600 + 140202228924960 [label="encoder.layer.10.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228924960 -> 140202223081504 + 140202223081504 [label=AccumulateGrad] + 140202223080880 -> 140202223081600 + 140202228924640 [label="encoder.layer.10.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228924640 -> 140202223080880 + 140202223080880 [label=AccumulateGrad] + 140202223080160 -> 140202223080640 + 140202223080160 [label=TBackward0] + 140202223080928 -> 140202223080160 + 140202223080928 [label=ToCopyBackward0] + 140202223081696 -> 140202223080928 + 140202228905040 [label="encoder.layer.10.experts.experts.0.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228905040 -> 140202223081696 + 140202223081696 [label=AccumulateGrad] + 140202223079584 -> 140202223079536 + 140202223079584 [label=TBackward0] + 140202223080448 -> 140202223079584 + 140202223080448 [label=ToCopyBackward0] + 140202223081216 -> 140202223080448 + 140202228905120 [label="encoder.layer.10.experts.experts.0.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228905120 -> 140202223081216 + 140202223081216 [label=AccumulateGrad] + 140202223578608 -> 140202223578464 + 140202223578608 [label=UnsqueezeBackward0] + 140202223579040 -> 140202223578608 + 140202223579040 [label=NativeDropoutBackward0] + 140202223079968 -> 140202223579040 + 140202223079968 [label=ViewBackward0] + 140202223082272 -> 140202223079968 + 140202223082272 [label=AddmmBackward0] + 140202223080256 -> 140202223082272 + 140202223080256 [label=ToCopyBackward0] + 140202223082752 -> 140202223080256 + 140202228904800 [label="encoder.layer.10.experts.experts.1.dense2.bias + (768)" fillcolor=lightblue] + 140202228904800 -> 140202223082752 + 140202223082752 [label=AccumulateGrad] + 140202223081408 -> 140202223082272 + 140202223081408 [label=ViewBackward0] + 140202223082656 -> 140202223081408 + 140202223082656 [label=GeluBackward0] + 140202223081312 -> 140202223082656 + 140202223081312 [label=ViewBackward0] + 140202223108352 -> 140202223081312 + 140202223108352 [label=AddmmBackward0] + 140202223109360 -> 140202223108352 + 140202223109360 [label=ToCopyBackward0] + 140202223169600 -> 140202223109360 + 140202228905600 [label="encoder.layer.10.experts.experts.1.dense1.bias + (3072)" fillcolor=lightblue] + 140202228905600 -> 140202223169600 + 140202223169600 [label=AccumulateGrad] + 140202223109120 -> 140202223108352 + 140202223109120 [label=ViewBackward0] + 140202223139760 -> 140202223109120 + 140202223139760 [label=ToCopyBackward0] + 140202223577888 -> 140202223139760 + 140202223108832 -> 140202223108352 + 140202223108832 [label=TBackward0] + 140202223110176 -> 140202223108832 + 140202223110176 [label=ToCopyBackward0] + 140210811783968 -> 140202223110176 + 140202228904880 [label="encoder.layer.10.experts.experts.1.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228904880 -> 140210811783968 + 140210811783968 [label=AccumulateGrad] + 140202223079488 -> 140202223082272 + 140202223079488 [label=TBackward0] + 140202223082320 -> 140202223079488 + 140202223082320 [label=ToCopyBackward0] + 140202223137840 -> 140202223082320 + 140202228904640 [label="encoder.layer.10.experts.experts.1.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228904640 -> 140202223137840 + 140202223137840 [label=AccumulateGrad] + 140202223578272 -> 140202223578464 + 140202223578272 [label=UnsqueezeBackward0] + 140202223080736 -> 140202223578272 + 140202223080736 [label=NativeDropoutBackward0] + 140202223082944 -> 140202223080736 + 140202223082944 [label=ViewBackward0] + 140202223108160 -> 140202223082944 + 140202223108160 [label=AddmmBackward0] + 140202223079680 -> 140202223108160 + 140202223079680 [label=ToCopyBackward0] + 140210811784208 -> 140202223079680 + 140202228895552 [label="encoder.layer.10.experts.experts.2.dense2.bias + (768)" fillcolor=lightblue] + 140202228895552 -> 140210811784208 + 140210811784208 [label=AccumulateGrad] + 140210811784112 -> 140202223108160 + 140210811784112 [label=ViewBackward0] + 140210811784256 -> 140210811784112 + 140210811784256 [label=GeluBackward0] + 140210811784352 -> 140210811784256 + 140210811784352 [label=ViewBackward0] + 140210811784448 -> 140210811784352 + 140210811784448 [label=AddmmBackward0] + 140210811784544 -> 140210811784448 + 140210811784544 [label=ToCopyBackward0] + 140210811784736 -> 140210811784544 + 140202228904560 [label="encoder.layer.10.experts.experts.2.dense1.bias + (3072)" fillcolor=lightblue] + 140202228904560 -> 140210811784736 + 140210811784736 [label=AccumulateGrad] + 140210811784496 -> 140210811784448 + 140210811784496 [label=ViewBackward0] + 140210811784784 -> 140210811784496 + 140210811784784 [label=ToCopyBackward0] + 140202223577888 -> 140210811784784 + 140210811784160 -> 140210811784448 + 140210811784160 [label=TBackward0] + 140210811784640 -> 140210811784160 + 140210811784640 [label=ToCopyBackward0] + 140210811784928 -> 140210811784640 + 140202228904400 [label="encoder.layer.10.experts.experts.2.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228904400 -> 140210811784928 + 140210811784928 [label=AccumulateGrad] + 140210811784016 -> 140202223108160 + 140210811784016 [label=TBackward0] + 140210811784400 -> 140210811784016 + 140210811784400 [label=ToCopyBackward0] + 140210811784880 -> 140210811784400 + 140202228904320 [label="encoder.layer.10.experts.experts.2.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228904320 -> 140210811784880 + 140210811784880 [label=AccumulateGrad] + 140202223578176 -> 140202223578128 + 140202223578176 [label=UnsqueezeBackward0] + 140202223578848 -> 140202223578176 + 140202223578848 [label=UnsqueezeBackward0] + 140202223109792 -> 140202223578848 + 140202223109792 [label=SumBackward1] + 140202223079920 -> 140202223109792 + 140202223079920 [label=MulBackward0] + 140210811785024 -> 140202223079920 + 140210811785024 [label=UnsqueezeBackward0] + 140210811784304 -> 140210811785024 + 140210811784304 [label=TopkBackward0] + 140210811784832 -> 140210811784304 + 140210811784832 [label=SoftmaxBackward0] + 140210811785120 -> 140210811784832 + 140210811785120 [label=MmBackward0] + 140210811785168 -> 140210811785120 + 140210811785168 [label=ToCopyBackward0] + 140210811850960 -> 140210811785168 + 140210811850960 [label=MeanBackward1] + 140210811851056 -> 140210811850960 + 140210811851056 [label=MulBackward0] + 140202223577888 -> 140210811851056 + 140210811784064 -> 140210811785120 + 140210811784064 [label=TBackward0] + 140210811851152 -> 140210811784064 + 140210811851152 [label=ToCopyBackward0] + 140210811850864 -> 140210811851152 + 140202228906000 [label="encoder.layer.10.experts.gate.weight + (3, 768)" fillcolor=lightblue] + 140202228906000 -> 140210811850864 + 140210811850864 [label=AccumulateGrad] + 140202223577888 -> 140202223577504 + 140202223577600 -> 140202223577408 + 140202228906320 [label="encoder.layer.10.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228906320 -> 140202223577600 + 140202223577600 [label=AccumulateGrad] + 140202223577312 -> 140202223577408 + 140202228906080 [label="encoder.layer.10.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228906080 -> 140202223577312 + 140202223577312 [label=AccumulateGrad] + 140202223576832 -> 140202223540112 + 140202223576832 [label=NativeLayerNormBackward0] + 140202223577984 -> 140202223576832 + 140202223577984 [label=AddBackward0] + 140202223081840 -> 140202223577984 + 140202223081840 [label=NativeDropoutBackward0] + 140210811784976 -> 140202223081840 + 140210811784976 [label=ViewBackward0] + 140210811785072 -> 140210811784976 + 140210811785072 [label=AddmmBackward0] + 140210811851104 -> 140210811785072 + 140210811851104 [label=ToCopyBackward0] + 140210811851296 -> 140210811851104 + 140202228907680 [label="encoder.layer.10.output.dense.bias + (768)" fillcolor=lightblue] + 140202228907680 -> 140210811851296 + 140210811851296 [label=AccumulateGrad] + 140210811851008 -> 140210811785072 + 140210811851008 [label=ViewBackward0] + 140210811851344 -> 140210811851008 + 140210811851344 [label=GeluBackward0] + 140210811851440 -> 140210811851344 + 140210811851440 [label=ViewBackward0] + 140210811851536 -> 140210811851440 + 140210811851536 [label=AddmmBackward0] + 140210811851632 -> 140210811851536 + 140210811851632 [label=ToCopyBackward0] + 140210811851824 -> 140210811851632 + 140202228924480 [label="encoder.layer.10.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228924480 -> 140210811851824 + 140210811851824 [label=AccumulateGrad] + 140210811851584 -> 140210811851536 + 140210811851584 [label=ViewBackward0] + 140210811851872 -> 140210811851584 + 140210811851872 [label=ToCopyBackward0] + 140202223578560 -> 140210811851872 + 140202223578560 [label=SliceBackward0] + 140210811852016 -> 140202223578560 + 140210811852016 [label=SliceBackward0] + 140210811852112 -> 140210811852016 + 140210811852112 [label=SliceBackward0] + 140202223112000 -> 140210811852112 + 140210811850912 -> 140210811851536 + 140210811850912 [label=TBackward0] + 140210811851776 -> 140210811850912 + 140210811851776 [label=ToCopyBackward0] + 140210811852208 -> 140210811851776 + 140202228924720 [label="encoder.layer.10.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228924720 -> 140210811852208 + 140210811852208 [label=AccumulateGrad] + 140210811850816 -> 140210811785072 + 140210811850816 [label=TBackward0] + 140210811851488 -> 140210811850816 + 140210811851488 [label=ToCopyBackward0] + 140210811851968 -> 140210811851488 + 140202228907920 [label="encoder.layer.10.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228907920 -> 140210811851968 + 140210811851968 [label=AccumulateGrad] + 140202223578560 -> 140202223577984 + 140202223577696 -> 140202223576832 + 140202228907760 [label="encoder.layer.10.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228907760 -> 140202223577696 + 140202223577696 [label=AccumulateGrad] + 140202223577648 -> 140202223576832 + 140202228907440 [label="encoder.layer.10.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228907440 -> 140202223577648 + 140202223577648 [label=AccumulateGrad] + 140202223575728 -> 140202223576640 + 140202223575728 [label=TBackward0] + 140202223576928 -> 140202223575728 + 140202223576928 [label=ToCopyBackward0] + 140202223578080 -> 140202223576928 + 140202228906240 [label="encoder.layer.11.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140202228906240 -> 140202223578080 + 140202223578080 [label=AccumulateGrad] + 140202223575680 -> 140202223575392 + 140202223575680 [label=ReshapeAliasBackward0] + 140202223576064 -> 140202223575680 + 140202223576064 [label=ExpandBackward0] + 140202223576352 -> 140202223576064 + 140202223576352 [label=TransposeBackward0] + 140202223577216 -> 140202223576352 + 140202223577216 [label=PermuteBackward0] + 140202223577168 -> 140202223577216 + 140202223577168 [label=ViewBackward0] + 140210811783872 -> 140202223577168 + 140210811783872 [label=ViewBackward0] + 140210811784592 -> 140210811783872 + 140210811784592 [label=AddmmBackward0] + 140210811851728 -> 140210811784592 + 140210811851728 [label=ToCopyBackward0] + 140210811851920 -> 140210811851728 + 140202228906800 [label="encoder.layer.11.attention.self.key.bias + (768)" fillcolor=lightblue] + 140202228906800 -> 140210811851920 + 140210811851920 [label=AccumulateGrad] + 140210811851680 -> 140210811784592 + 140210811851680 [label=ViewBackward0] + 140210811852256 -> 140210811851680 + 140210811852256 [label=ToCopyBackward0] + 140202223540112 -> 140210811852256 + 140210811851248 -> 140210811784592 + 140210811851248 [label=TBackward0] + 140210811851392 -> 140210811851248 + 140210811851392 [label=ToCopyBackward0] + 140210811852400 -> 140210811851392 + 140202228906480 [label="encoder.layer.11.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140202228906480 -> 140210811852400 + 140210811852400 [label=AccumulateGrad] + 140202223541168 -> 140202223541312 + 140202223541168 [label=ReshapeAliasBackward0] + 140202223541888 -> 140202223541168 + 140202223541888 [label=ExpandBackward0] + 140202223542176 -> 140202223541888 + 140202223542176 [label=PermuteBackward0] + 140202223541456 -> 140202223542176 + 140202223541456 [label=ViewBackward0] + 140202223575200 -> 140202223541456 + 140202223575200 [label=ViewBackward0] + 140202223576256 -> 140202223575200 + 140202223576256 [label=AddmmBackward0] + 140202223575776 -> 140202223576256 + 140202223575776 [label=ToCopyBackward0] + 140210811852352 -> 140202223575776 + 140202228905840 [label="encoder.layer.11.attention.self.value.bias + (768)" fillcolor=lightblue] + 140202228905840 -> 140210811852352 + 140210811852352 [label=AccumulateGrad] + 140202223576736 -> 140202223576256 + 140202223576736 [label=ViewBackward0] + 140210811852160 -> 140202223576736 + 140210811852160 [label=ToCopyBackward0] + 140202223540112 -> 140210811852160 + 140202223575104 -> 140202223576256 + 140202223575104 [label=TBackward0] + 140210811851200 -> 140202223575104 + 140210811851200 [label=ToCopyBackward0] + 140210811852304 -> 140210811851200 + 140202228905760 [label="encoder.layer.11.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140202228905760 -> 140210811852304 + 140210811852304 [label=AccumulateGrad] + 140202223540208 -> 140202223540400 + 140202223540208 [label=TBackward0] + 140202223540880 -> 140202223540208 + 140202223540880 [label=ToCopyBackward0] + 140202223541072 -> 140202223540880 + 140202228905520 [label="encoder.layer.11.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140202228905520 -> 140202223541072 + 140202223541072 [label=AccumulateGrad] + 140202223540112 -> 140202223540160 + 140202223539920 -> 140202223540064 + 140202228904160 [label="encoder.layer.11.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228904160 -> 140202223539920 + 140202223539920 [label=AccumulateGrad] + 140202223538576 -> 140202223540064 + 140202228895312 [label="encoder.layer.11.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228895312 -> 140202223538576 + 140202223538576 [label=AccumulateGrad] + 140202223539056 -> 140202223539680 + 140202223539056 [label=TBackward0] + 140202223538384 -> 140202223539056 + 140202223538384 [label=ToCopyBackward0] + 140202223539632 -> 140202223538384 + 140202228893872 [label="encoder.layer.11.experts.dense1.weight + (3072, 768)" fillcolor=lightblue] + 140202228893872 -> 140202223539632 + 140202223539632 [label=AccumulateGrad] + 140202223539344 -> 140202223539008 + 140202223539344 [label=TBackward0] + 140202223539488 -> 140202223539344 + 140202223539488 [label=ToCopyBackward0] + 140202223538240 -> 140202223539488 + 140202228893632 [label="encoder.layer.11.experts.dense2.weight + (768, 3072)" fillcolor=lightblue] + 140202228893632 -> 140202223538240 + 140202223538240 [label=AccumulateGrad] + 140202223538480 -> 140202228614096 + 140202228614192 -> 140202228615488 + 140202228893392 [label="encoder.layer.11.expert_ln.weight + (768)" fillcolor=lightblue] + 140202228893392 -> 140202228614192 + 140202228614192 [label=AccumulateGrad] + 140202228614336 -> 140202228615488 + 140202228893472 [label="encoder.layer.11.expert_ln.bias + (768)" fillcolor=lightblue] + 140202228893472 -> 140202228614336 + 140202228614336 [label=AccumulateGrad] + 140202228614480 -> 140202228657312 + 140202228614480 [label=NativeLayerNormBackward0] + 140202228614432 -> 140202228614480 + 140202228614432 [label=AddBackward0] + 140202223538816 -> 140202228614432 + 140202223538816 [label=NativeDropoutBackward0] + 140202223539392 -> 140202223538816 + 140202223539392 [label=ViewBackward0] + 140202223538432 -> 140202223539392 + 140202223538432 [label=AddmmBackward0] + 140202223540256 -> 140202223538432 + 140202223540256 [label=ToCopyBackward0] + 140202223540592 -> 140202223540256 + 140202228895152 [label="encoder.layer.11.output.dense.bias + (768)" fillcolor=lightblue] + 140202228895152 -> 140202223540592 + 140202223540592 [label=AccumulateGrad] + 140202223540016 -> 140202223538432 + 140202223540016 [label=ViewBackward0] + 140202223540976 -> 140202223540016 + 140202223540976 [label=GeluBackward0] + 140202223540832 -> 140202223540976 + 140202223540832 [label=ViewBackward0] + 140202223541936 -> 140202223540832 + 140202223541936 [label=AddmmBackward0] + 140202223540736 -> 140202223541936 + 140202223540736 [label=ToCopyBackward0] + 140210811784688 -> 140202223540736 + 140202228895392 [label="encoder.layer.11.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140202228895392 -> 140210811784688 + 140210811784688 [label=AccumulateGrad] + 140202223575488 -> 140202223541936 + 140202223575488 [label=ViewBackward0] + 140210811852592 -> 140202223575488 + 140210811852592 [label=ToCopyBackward0] + 140202223539200 -> 140210811852592 + 140202223539200 [label=SliceBackward0] + 140210811852640 -> 140202223539200 + 140210811852640 [label=SliceBackward0] + 140210811852736 -> 140210811852640 + 140210811852736 [label=SliceBackward0] + 140202223540064 -> 140210811852736 + 140202223575248 -> 140202223541936 + 140202223575248 [label=TBackward0] + 140210811852064 -> 140202223575248 + 140210811852064 [label=ToCopyBackward0] + 140210811852832 -> 140210811852064 + 140202228895632 [label="encoder.layer.11.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140202228895632 -> 140210811852832 + 140210811852832 [label=AccumulateGrad] + 140202223539824 -> 140202223538432 + 140202223539824 [label=TBackward0] + 140202223540784 -> 140202223539824 + 140202223540784 [label=ToCopyBackward0] + 140202223575872 -> 140202223540784 + 140202228895072 [label="encoder.layer.11.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140202228895072 -> 140202223575872 + 140202223575872 [label=AccumulateGrad] + 140202223539200 -> 140202228614432 + 140202223538672 -> 140202228614480 + 140202228894832 [label="encoder.layer.11.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140202228894832 -> 140202223538672 + 140202223538672 [label=AccumulateGrad] + 140202223538624 -> 140202228614480 + 140202228894912 [label="encoder.layer.11.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140202228894912 -> 140202223538624 + 140202223538624 [label=AccumulateGrad] + 140202228657312 -> 140202223089520 +} diff --git a/Pre_PromptMoE_RawProb_backward_graph.pdf b/Pre_PromptMoE_RawProb_backward_graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..54f7e67aa7a7940b3b48551179cbfbc8be002ec0 GIT binary patch literal 217260 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

6a5`JF!rmT>B$)gTrBLx4m)#nk$Mr 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/_6wljHN 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 z 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%0ALQl4o88Q*yQ3MnId5y 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 z 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.2 + # self.dropout = nn.Dropout(0.2) # adjust dropout ratio 0.1->0.2 def forward(self, hidden_states: Tensor): - input_tensor = hidden_states - intermediate_output = self.intermediate_query(hidden_states) - hidden_states = self.output_query(intermediate_output, input_tensor) + hidden_states = self.dense1(hidden_states) + hidden_states = self.intermediate_act_fn(hidden_states) + hidden_states = self.dense2(hidden_states) + hidden_states = self.dropout(hidden_states) return hidden_states @@ -440,6 +446,7 @@ class BertLayer(nn.Module): ) else: self.experts = ffn + self.expert_ln = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) def forward( self, @@ -494,7 +501,8 @@ class BertLayer(nn.Module): moe_ffn_attention_input = query_attention_output[:, :query_length, :] moe_ffn_attention_mask = attention_mask.squeeze(dim=1).squeeze(dim=1)[:, :query_length] layer_output = self.feed_forward_query_moe(moe_ffn_attention_input, moe_ffn_attention_mask) # layer_output, gate_loss, gate_load - + # import pdb; pdb.set_trace() # test0107 + if attention_output.shape[1] > query_length: # have text input in Qformer layer_output_text = apply_chunking_to_forward( self.feed_forward_chunk, @@ -503,6 +511,7 @@ class BertLayer(nn.Module): attention_output[:, query_length:, :], ) layer_output = (torch.cat([layer_output[0], layer_output_text], dim=1), layer_output[1], layer_output[2]) + else: layer_output = apply_chunking_to_forward( self.feed_forward_chunk, @@ -524,15 +533,14 @@ class BertLayer(nn.Module): def feed_forward_query_moe(self, attention_output, expert_attention_mask): if not self.use_experts: - layer_output = self.experts(attention_output) + hidden_states = self.experts(attention_output) + layer_output = self.expert_ln(hidden_states + attention_output) return layer_output, 0.0, [] - # if not self.importance_processor.is_moe: - # raise RuntimeError("Need to turn the model to a MoE first.") - - layer_output, gate_loss, gate_load = self.experts( + hidden_states, gate_loss, gate_load = self.experts( attention_output, expert_attention_mask ) + layer_output = self.expert_ln(hidden_states + attention_output) return layer_output, gate_loss, gate_load class BertEncoder(nn.Module): diff --git a/minigpt4/models/QformerRouteMoE.py b/minigpt4/models/QformerRouteMoE.py index 910a7d0..8595dc6 100644 --- a/minigpt4/models/QformerRouteMoE.py +++ b/minigpt4/models/QformerRouteMoE.py @@ -46,10 +46,9 @@ from transformers.utils import logging from transformers.models.bert.configuration_bert import BertConfig from minigpt4.models.moe.utils import ( - FeedForward, MoEModelOutput, MoEModelOutputWithPooling, - use_experts, + use_experts_route, moe_layer_judge, ) from minigpt4.models.moe.route_moe_layer import RouteMoELayer @@ -378,13 +377,14 @@ class BertOutput(nn.Module): # Add & Norm def __init__(self, config): super().__init__() self.dense = nn.Linear(config.intermediate_size, config.hidden_size) - self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) + self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) # 1 self.dropout = nn.Dropout(config.hidden_dropout_prob) def forward(self, hidden_states, input_tensor): hidden_states = self.dense(hidden_states) hidden_states = self.dropout(hidden_states) - hidden_states = self.LayerNorm(hidden_states + input_tensor) + # Move LayerNorm & ResNet out of FFN After MoEFFN + hidden_states = self.LayerNorm(hidden_states + input_tensor) # 1 return hidden_states @@ -429,7 +429,7 @@ class BertLayer(nn.Module): self.output_query = BertOutput(config) # Add MoE FFN - self.use_experts = use_experts(layer_num) + self.use_experts = use_experts_route(layer_num) self.layer_judge = moe_layer_judge(layer_num) self.num_beams = config.moebert_num_beams ffn = FeedForward(config) @@ -442,10 +442,13 @@ class BertLayer(nn.Module): num_beams=config.moebert_num_beams, layer_judge = self.layer_judge, route_method=config.route_method, + weight_type=config.moe_weight_type, ) else: self.experts = ffn + # self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) + def forward( self, hidden_states, @@ -463,8 +466,8 @@ class BertLayer(nn.Module): self_attn_past_key_value = ( past_key_value[:2] if past_key_value is not None else None ) - # import pdb;pdb.set_trace() - + # import pdb; pdb.set_trace() # 0107test + # adjust the dimension of hidden_states, attention_mask, encoder_attention_mask and encoder_hidden_states to be the same if self.num_beams > 1: if hidden_states.shape[0]== attention_mask.shape[0]*self.num_beams: @@ -494,10 +497,6 @@ class BertLayer(nn.Module): present_key_value = self_attention_outputs[-1] - # import pdb;pdb.set_trace() - # print(self.layer_num, hidden_states.shape, attention_mask.shape) - - if query_length > 0: query_attention_output = attention_output[:, :query_length, :] @@ -526,7 +525,8 @@ class BertLayer(nn.Module): moe_ffn_attention_input = query_attention_output[:, :query_length, :] moe_ffn_attention_mask = attention_mask.squeeze(dim=1).squeeze(dim=1)[:, :query_length] layer_output = self.feed_forward_query_moe(moe_ffn_attention_input, moe_ffn_attention_mask, beam_scores, expert_route) - # layer_output = (layer_output, beam_scores, expert_route, beam_idx) + # layer_output = (layer_output, beam_scores, expert_route, beam_idx, importance_loss) + # import pdb; pdb.set_trace() # 0107test if attention_output.shape[1] > query_length: # have text input in Qformer layer_output_text = apply_chunking_to_forward( @@ -535,7 +535,8 @@ class BertLayer(nn.Module): self.seq_len_dim, attention_output[:, query_length:, :], ) - if layer_output[0].shape[0] == layer_output_text.shape[0]*self.num_beams and self.num_beams>1: + if self.layer_judge == 'first' and self.num_beams>1: + # if layer_output[0].shape[0] == layer_output_text.shape[0]*self.num_beams and self.num_beams>1: # adjust the dimension of layer_output_text to bz*num_beams layer_output_text = self.adjust_layer_output_text(layer_output_text) @@ -550,7 +551,8 @@ class BertLayer(nn.Module): # layer_output & layer_output_text dimen_0 from bz*num_beams to bz layer_output, layer_output_text = self.route_moe_last_layer_top1(layer_output, layer_output_text) - layer_output = (torch.cat([layer_output[0], layer_output_text], dim=1), layer_output[1], layer_output[2]) + layer_output = (torch.cat([layer_output[0], layer_output_text], dim=1), layer_output[1], layer_output[2], layer_output[3],layer_output[4]) + # import pdb; pdb.set_trace() # 0107test else: layer_output = apply_chunking_to_forward( @@ -559,7 +561,7 @@ class BertLayer(nn.Module): self.seq_len_dim, attention_output, ) - layer_output = (layer_output, None, None) + layer_output = (layer_output, None, None, None, 0.0) outputs = (layer_output,) + outputs @@ -594,24 +596,27 @@ class BertLayer(nn.Module): beam_scores_new = beam_scores[selects] expert_route_new = expert_route[selects] - return (hidden_states_new, beam_scores_new, expert_route_new), layer_output_text + return (hidden_states_new, beam_scores_new, expert_route_new, layer_output[3], layer_output[4]), layer_output_text def feed_forward_chunk(self, attention_output): intermediate_output = self.intermediate(attention_output) layer_output = self.output(intermediate_output, attention_output) + # layer_output = self.LayerNorm(layer_output + attention_output) return layer_output def feed_forward_query_moe(self, attention_output, expert_attention_mask, beam_scores, expert_route): - if not self.use_experts: layer_output = self.experts(attention_output) - return layer_output, None, None, None + # layer_output = self.LayerNorm(layer_output + attention_output) + return layer_output, None, None, None, 0.0 - layer_output, beam_scores, expert_route, beam_idx = self.experts( + layer_output, beam_scores, expert_route, beam_idx, importance_loss = self.experts( attention_output, expert_attention_mask, beam_scores, expert_route ) - return layer_output, beam_scores, expert_route, beam_idx + + # layer_output = self.LayerNorm(layer_output + attention_output) + return layer_output, beam_scores, expert_route, beam_idx, importance_loss class BertEncoder(nn.Module): def __init__(self, config): @@ -645,6 +650,7 @@ class BertEncoder(nn.Module): next_decoder_cache = () if use_cache else None beam_scores=None expert_route=None + importance_loss = 0 for i in range(self.config.num_hidden_layers): layer_module = self.layer[i] @@ -693,6 +699,7 @@ class BertEncoder(nn.Module): hidden_states = layer_outputs[0][0] beam_scores = beam_scores if layer_outputs[0][1] == None else layer_outputs[0][1] expert_route = expert_route if layer_outputs[0][2] == None else layer_outputs[0][2] + importance_loss += layer_outputs[0][4] if use_cache: next_decoder_cache += (layer_outputs[-1],) @@ -724,6 +731,7 @@ class BertEncoder(nn.Module): cross_attentions=all_cross_attentions, beam_scores=beam_scores, expert_route=expert_route, + gate_loss=importance_loss, ) @@ -1103,6 +1111,7 @@ class BertModel(BertPreTrainedModel): cross_attentions=encoder_outputs.cross_attentions, beam_scores=encoder_outputs.beam_scores, expert_route=encoder_outputs.expert_route, + gate_loss=encoder_outputs.gate_loss ) diff --git a/minigpt4/models/blip2.py b/minigpt4/models/blip2.py index d79f31d..a6bf474 100644 --- a/minigpt4/models/blip2.py +++ b/minigpt4/models/blip2.py @@ -62,7 +62,7 @@ class Blip2Base(BaseModel): return Qformer, query_tokens @classmethod - def init_RouteMoEQformer(cls, num_query_token, vision_width, moebert_expert_num, moebert_num_beams, route_method, cross_attention_freq=2): + def init_RouteMoEQformer(cls, num_query_token, vision_width, moebert_expert_num, moebert_num_beams, route_method, moe_weight_type, cross_attention_freq=2): moe_encoder_config = BertConfig.from_pretrained("/mnt/pfs-guan-ssai/nlu/wanghanzi/models/bert-base-uncased") moe_encoder_config.encoder_width = vision_width @@ -74,6 +74,7 @@ class Blip2Base(BaseModel): moe_encoder_config.moebert_expert_num = moebert_expert_num moe_encoder_config.moebert_num_beams = moebert_num_beams moe_encoder_config.route_method = route_method + moe_encoder_config.moe_weight_type = moe_weight_type RouteMoEQformer = BertMoERouteLMHeadModel.from_pretrained( "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/bert-base-uncased", config=moe_encoder_config diff --git a/minigpt4/models/blip2_vicuna_instruct.py b/minigpt4/models/blip2_vicuna_instruct.py index 34acf28..13421ab 100644 --- a/minigpt4/models/blip2_vicuna_instruct.py +++ b/minigpt4/models/blip2_vicuna_instruct.py @@ -99,6 +99,7 @@ class Blip2VicunaInstruct(Blip2Base): moebert_expert_num=moebert_expert_num, moebert_num_beams=moebert_num_beams, route_method=moebert_route_method, + moe_weight_type=moe_weight_type, cross_attention_freq=2 ) else: @@ -118,7 +119,6 @@ class Blip2VicunaInstruct(Blip2Base): num_query_token, self.visual_encoder.num_features ) - # import pdb;pdb.set_trace() if not qformer_text_input: self.Qformer.bert.embeddings.word_embeddings = None self.Qformer.bert.embeddings.position_embeddings = None @@ -178,6 +178,19 @@ class Blip2VicunaInstruct(Blip2Base): if "_query" in name and "experts" not in name: # raw ffn_query not update param.requires_grad = False + ln_pattern = r"bert\.encoder\.layer\.\d+\.expert_ln\.(weight|bias)" + if re.match(ln_pattern, name): + key_orig = re.sub('expert_ln', 'output_query.LayerNorm', name) + param.data.copy_(state_dict[key_orig]) + d1_pattern = r"bert\.encoder\.layer\.(\d+)\.experts(\.|\.experts\.\d+\.)dense1\.(weight|bias)" + if re.match(d1_pattern, name): + key_orig = re.sub(r'experts(\.|\.experts\.\d+\.)dense1', 'intermediate_query.dense', name) + param.data.copy_(state_dict[key_orig]) + d2_pattern = r"bert\.encoder\.layer\.(\d+)\.experts(\.|\.experts\.\d+\.)dense2\.(weight|bias)" + if re.match(d2_pattern, name): + key_orig = re.sub(r'experts(\.|\.experts\.\d+\.)dense2', 'output_query.dense', name) + param.data.copy_(state_dict[key_orig]) + # freeze qformer if freeze_qformer: for name, param in self.Qformer.named_parameters(): @@ -205,6 +218,7 @@ class Blip2VicunaInstruct(Blip2Base): self.use_moeqformer = use_moeqformer self.use_route_moe = use_route_moe self.moebert_load_balance = moebert_load_balance + self.moebert_num_beams = moebert_num_beams self.gate_save_path = gate_save_path # if self.gate_save_path != None: @@ -242,7 +256,7 @@ class Blip2VicunaInstruct(Blip2Base): # print(samples["text_input"]) # print(samples["text_output"]) # print('-----------------') - # import pdb;pdb.set_trace() + # import pdb;pdb.set_trace() # 0107test image = samples["image"] with self.maybe_autocast(): image_embeds = self.ln_vision(self.visual_encoder(image)) @@ -278,10 +292,10 @@ class Blip2VicunaInstruct(Blip2Base): return_dict=True, output_hidden_states=True, ) - + # import pdb; pdb.set_trace()# 0107test query_output_to_linear = query_output.last_hidden_state[:,:query_tokens.size(1),:] - if self.use_moeqformer and not self.use_route_moe: + if self.use_moeqformer: gate_loss = query_output.gate_loss # only available in QformerMoE if self.gate_save_path != None: @@ -312,7 +326,7 @@ class Blip2VicunaInstruct(Blip2Base): # 'gate_route_1': prob_gate_normalized[0][i].tolist(), }) # for layer in [6,8,10]: - # layer_data = all_hidden_states[layer] + # layer_data = all_hidden_states[layer]s # file_path = os.path.join(self.gate_save_path, f'{image_id}_{str(layer)}.npy') # x = layer_data.data.cpu().numpy() # np.save(file_path,x) @@ -323,7 +337,6 @@ class Blip2VicunaInstruct(Blip2Base): print("Gate Save Error....") print(e) - inputs_llm = self.llm_proj(query_output_to_linear) atts_llm = torch.ones(inputs_llm.size()[:-1], dtype=torch.long).to(image.device) @@ -380,7 +393,7 @@ class Blip2VicunaInstruct(Blip2Base): labels=targets, ) - if self.use_moeqformer and not self.use_route_moe: + if self.use_moeqformer: loss = outputs.loss + self.moebert_load_balance * gate_loss else: loss = outputs.loss @@ -441,6 +454,8 @@ class Blip2VicunaInstruct(Blip2Base): output_hidden_states=True, ) + # import pdb; pdb.set_trace() + if self.gate_save_path != None: all_hidden_states = query_output.hidden_states # prob_gate_normalized = query_output.gate_loads @@ -471,11 +486,11 @@ class Blip2VicunaInstruct(Blip2Base): # 'gate_route_3': prob_gate_normalized[2][i].tolist(), # 'gate_route_1': prob_gate_normalized[0][i].tolist(), }) - for layer in [6,8,10]: - if layer == 6: - layer_data = all_hidden_states[layer][i, :32, :] + for layer in [6,7,8,9,10,11]: + if layer in [6,11]: + layer_data = all_hidden_states[layer][i, :, :] else: - layer_data = all_hidden_states[layer][i*3, :32, :] + layer_data = all_hidden_states[layer][i*self.moebert_num_beams, :, :] file_path = os.path.join(self.gate_save_path, f'{image_id}_{str(layer)}.npy') x = layer_data.data.cpu().numpy() np.save(file_path,x) # 大功告成 @@ -683,5 +698,6 @@ class Blip2VicunaInstruct(Blip2Base): for name, param in model.named_parameters(): if param.requires_grad == True: print(name) - + # [name for name, param in model.named_parameters() if (param.requires_grad == False and 'Qformer' in name and 'intermediate_query' in name)] + # import pdb; pdb.set_trace()# 0107test return model diff --git a/minigpt4/models/moe/beam_search.py b/minigpt4/models/moe/beam_search.py index 676d707..c4b3c5b 100644 --- a/minigpt4/models/moe/beam_search.py +++ b/minigpt4/models/moe/beam_search.py @@ -21,7 +21,6 @@ class MoELayer(nn.Module): else: raise KeyError("Routing method not supported.") - def _forward_gate_sentence(self, x, attention_mask): """ x: query_attention_output , torch.Size([bz, 32, 768]) @@ -77,7 +76,65 @@ class MoELayer(nn.Module): print('Layer Qformer MoE: \n',prob_gate) return moe_result, select_prob_gate, gate + def _forward_gate_sentence_post(self, x, attention_mask): + """ + x: query_attention_output; torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + bz = 4 + x = torch.randn(bz,32,768) + attention_mask = torch.ones([bz, 32]) + """ + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + + def forward_expert(input_x, expert_idx): + # input_x += torch.randn(4,32,768) + # return input_x + output_x = self.experts[expert_idx].forward(input_x) + return output_x + + outputs = list() + logits_gate_lst = list() + for expert_idx in range(self.num_experts): + output_x = forward_expert(x_masked, expert_idx) + outputs.append(output_x.unsqueeze(0)) + + output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) + # gate_acore = self.gates[expert_idx](output_x_aver) + gate_score = self.gate(output_x_aver) + logits_gate_lst.append(gate_score) + + candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz, 32, 768]) + logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz, num_expert]) + prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) + topk_values, gate = torch.topk(prob_gate, self.topk, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + gate_load = num_sentences.clone() + + # load balancing loss + if self.use_balance_loss: + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + + # importance loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + # output_average = candidate_output.sum(2) / candidate_attn_mask.unsqueeze(-1).sum(2) # torch.Size([num_expert, bz, 768]) + # output_average = torch.permute(output_average, (1, 0, 2)) # torch.Size([bz, num_expert, 768]) + # logits_gate = self.gate(output_average) # torch.Size([bz, num_experts, 1]) + + prob_gate_topk = torch.zeros_like(prob_gate) + prob_gate_topk.scatter_(1, gate, topk_values) + prob_gate_normalized = prob_gate_topk / prob_gate_topk.sum(dim=1, keepdim=True) # torch.Size([bz, num_expert]) + candidate_output_ad = torch.permute(candidate_output, (1, 0, 2, 3)) # torch.Size([bz, num_expert, 32, 768]) + results = prob_gate_normalized.unsqueeze(-1).unsqueeze(-1) * candidate_output_ad # torch.Size([bz, num_expert, 32, 768]) + moe_result = torch.sum(results, dim=1) # torch.Size([bz, 32, 768]) + import pdb;pdb.set_trace() + + return moe_result, (balance_loss+importance_loss), prob_gate_normalized + def forward(self, x, attention_mask): if self.route_method == "gate-token": x, balance_loss, gate_load = self._forward_gate_token(x) @@ -95,7 +152,7 @@ class MoELayer(nn.Module): class RouteMoELayer(nn.Module): - def __init__(self, hidden_size, expert, gate, num_experts, num_beams=2, layer_judge=None, route_method="pre-route"): + def __init__(self, hidden_size, expert, num_experts, num_beams=2, layer_judge=None, route_method="pre-route", weight_type="ffn_prob"): # remove hash list nn.Module.__init__(self) self.num_experts = num_experts @@ -103,13 +160,26 @@ class RouteMoELayer(nn.Module): self.num_beams = num_beams self.hidden_size = hidden_size self.layer_judge = layer_judge + self.weight_type = weight_type self.route_method = route_method if self.route_method == "pre-route": self.gate = nn.Linear(hidden_size, num_experts, bias=False).float() elif self.route_method == "post-route": - # gate = nn.Linear(hidden_size, 1, bias=False).float() - self.gates = nn.ModuleList([copy.deepcopy(gate) for i in range(num_experts)]) + gate = nn.Linear(hidden_size, 1, bias=False).float() + self.gate = gate + # self.gates = nn.ModuleList([copy.deepcopy(gate) for i in range(num_experts)]) + + def _importance_auxiliary_loss(self, prob_gate): + # From VMOE + # _importance_auxiliary_loss + axis = tuple(range(prob_gate.ndim - 1)) # All except last. + importance_per_expert = torch.sum(prob_gate, dim=axis) + std_importance_per_expert = torch.std(importance_per_expert) + mean_importance_per_expert = torch.mean(importance_per_expert) + # Compute coefficient of variation (i.e. std/mean) squared. + return (std_importance_per_expert / mean_importance_per_expert)**2 + def forward_gate(self, x): """ @@ -123,19 +193,21 @@ class RouteMoELayer(nn.Module): prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beams, num_experts]) return prob_gate - def beam_search(self, current_scores_log, beam_scores, expert_route, batch_size): - import pdb;pdb.set_trace() + + def beam_search_backup(self, current_scores_log, beam_scores, expert_route, batch_size): if self.layer_judge=='first' and self.route_method=='pre-route': + # current_scores_log torch.Size([bz, num_experts]) assert beam_scores==None and expert_route==None current_scores = torch.exp(current_scores_log) topk_values, gate = torch.topk(current_scores, self.num_beams, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) beam_scores = topk_values.view(self.num_beams * batch_size) # torch.Size([bz * num_beams]) expert_route = gate.view(self.num_beams * batch_size).unsqueeze(1) # torch.Size([bz * num_beams,1]) - beam_idx = None + beam_idx = torch.tensor(range(self.num_beams * batch_size)) + else: if self.layer_judge=='first' and self.route_method == 'post-route': batch_size = batch_size - next_scores_raw1 = torch.exp(current_scores_log) # torch.Size([bz, num_experts]) + next_scores_raw1 = torch.exp(current_scores_log) # torch.Size([bz, num_beams*num_experts]) else: batch_size = int(batch_size // self.num_beams) next_scores_raw = current_scores_log + torch.log(beam_scores).unsqueeze(1) # torch.Size([4*3, 5]) # 取log 之后,可以直接相加概率 @@ -147,9 +219,6 @@ class RouteMoELayer(nn.Module): next_scores, next_experts = torch.topk(next_scores_raw1, self.num_beams, dim=1, largest=True, sorted=True) # next_scores torch.Size([bz, num_beams]) # next_tokens torch.Size([bz, num_beams]) - print(next_scores_raw1) - print(next_scores) - print(next_experts) next_batch_beam = list() for batch_idx in range(batch_size): @@ -166,7 +235,7 @@ class RouteMoELayer(nn.Module): next_batch_beam.extend(next_sent_beam) import pdb;pdb.set_trace() - + if self.layer_judge=='first' and self.route_method == 'post-route': beam_scores = next_scores.view(self.num_beams * batch_size) # torch.Size([bz * num_beams]) expert_route = next_experts.view(self.num_beams * batch_size) @@ -181,33 +250,91 @@ class RouteMoELayer(nn.Module): pre_route = expert_route[beam_idx,:] expert_route = torch.cat([pre_route, beam_experts.unsqueeze(1)], dim=-1) - import pdb;pdb.set_trace() + return beam_scores, expert_route, beam_idx + + def beam_search(self, current_scores_log, beam_scores, expert_route, batch_size): + if self.layer_judge=='first' and self.route_method in ['pre-route', 'post-route']: + # current_scores_log torch.Size([bz, num_experts]) + assert beam_scores==None and expert_route==None + current_scores = torch.exp(current_scores_log) + topk_values, gate = torch.topk(current_scores, self.num_beams, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + beam_scores = topk_values.view(self.num_beams * batch_size) # torch.Size([bz * num_beams]) + expert_route = gate.view(self.num_beams * batch_size).unsqueeze(1) # torch.Size([bz * num_beams,1]) + beam_idx = torch.tensor(range(self.num_beams * batch_size)) + import pdb;pdb.set_trace() + + else: + batch_size = int(batch_size // self.num_beams) + next_scores_raw = current_scores_log + torch.log(beam_scores).unsqueeze(1) # torch.Size([4*3, 5]) # 取log 之后,可以直接相加概率 + next_scores_exp = torch.exp(next_scores_raw) + next_scores_raw1 = next_scores_exp.view( + batch_size, self.num_beams * self.num_experts + ) # torch.Size([bz, num_beams*num_experts]) + + next_scores, next_experts = torch.topk(next_scores_raw1, self.num_beams, dim=1, largest=True, sorted=True) + # next_scores torch.Size([bz, num_beams]) + # next_tokens torch.Size([bz, num_beams]) + + next_batch_beam = list() + for batch_idx in range(batch_size): + next_sent_beam = list() + for rank, (expert_id, expert_score) in enumerate( + zip(next_experts[batch_idx], next_scores[batch_idx]) + ): + expert_id = expert_id.item() + beam_id = expert_id // self.num_experts + ex_id = expert_id % self.num_experts + effective_beam_id = batch_idx*self.num_beams + beam_id + + next_sent_beam.append((expert_score, ex_id, effective_beam_id)) + next_batch_beam.extend(next_sent_beam) + + # import pdb;pdb.set_trace() + + beam_scores = beam_scores.new([x[0] for x in next_batch_beam]) + beam_experts = expert_route[:,-1].new([x[1] for x in next_batch_beam]) + beam_idx = expert_route[:,-1].new([x[2] for x in next_batch_beam]) + pre_route = expert_route[beam_idx,:] + expert_route = torch.cat([pre_route, beam_experts.unsqueeze(1)], dim=-1) + + print("next_scores_raw1:\n",next_scores_raw1) return beam_scores, expert_route, beam_idx - - def forward_expert_ffn(self, x, expert_select, beam_scores): + + + def forward_expert_ffn(self, x, expert_select, current_scores): """ x_repeat : [bz*num_beams, 32,768] expert_select : [bz*num_beams] + current_scores : [bz*num_beams, num_experts] / [bz, num_experts] """ - # add_1212 l2_normalization - # normalized_tensor = torch.nn.functional.normalize(beam_scores, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) + # add_1228 l2_normalization + # normalized_tensor = torch.nn.functional.normalize(current_scores, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) # tmp_prob = normalized_tensor.unsqueeze(-1).unsqueeze(-1) - + import pdb;pdb.set_trace() outputs = list() - for i in range(x.shape[0]): - output_x = self.experts[expert_select[i]].forward(x[i]) - outputs.append(output_x.unsqueeze(0)) - candidate_output = torch.cat(outputs) + for i in range(self.num_experts): + output_x = self.experts[i].forward(x) + outputs.append(output_x.unsqueeze(1)) + candidate_output = torch.cat(outputs, dim=1) + expert_select_matrix = F.one_hot(expert_select, self.num_experts) - # candidate_output = candidate_output * tmp_prob - return candidate_output # torch.Size([bz*num_beams, 32, 768]) + if self.weight_type == 'ffn_prob': + tmp_prob = current_scores * expert_select_matrix + candidate_output = candidate_output * tmp_prob.unsqueeze(-1).unsqueeze(-1) + else: + candidate_output = candidate_output * expert_select_matrix.unsqueeze(-1).unsqueeze(-1) + import pdb;pdb.set_trace() + output = torch.sum(candidate_output, dim=1) + return output # torch.Size([bz*num_beams, 32, 768]) def forward_pre_route(self, x, beam_scores, expert_route, use_log=True): - - current_scores = self.forward_gate(x) # [bz*num_beams, 5] + import pdb;pdb.set_trace() + current_scores = self.forward_gate(x) # [bz, num_beams] / [bz*num_beams, num_beams] + + importance_loss = self._importance_auxiliary_loss(current_scores) if use_log: current_scores_log = torch.log(current_scores) # 取log之后可以直接相加 @@ -215,42 +342,45 @@ class RouteMoELayer(nn.Module): current_scores_log = current_scores batch_size, num_tokens = x.shape[0], x.shape[1] - beam_scores, expert_route, _ = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) - + beam_scores, expert_route, beam_idx = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) current_expert_select = expert_route[:,-1] + import pdb;pdb.set_trace() + if self.layer_judge=='first': # expand first dim to batch_size * num_beams replicated_tensor = x.unsqueeze(1).expand(batch_size, self.num_beams, num_tokens, self.hidden_size) x = replicated_tensor.contiguous().view(-1, num_tokens, self.hidden_size) # [bz*num_beams, 32,768] + current_scores_t = current_scores.unsqueeze(1).expand(batch_size, self.num_beams, self.num_experts) + current_scores = current_scores_t.contiguous().view(-1, self.num_experts) # [bz*num_beams, num_experts] - candidate_output = self.forward_expert_ffn(x, current_expert_select, beam_scores) # [bz*num_beams, 32,768] - - return candidate_output, beam_scores, expert_route + input_x = x[beam_idx] + candidate_output = self.forward_expert_ffn(input_x, current_expert_select, current_scores) # [bz*num_beams, 32,768] + import pdb;pdb.set_trace() + return candidate_output, beam_scores, expert_route, beam_idx, importance_loss def forward_post_route(self, x, beam_scores, expert_route, use_log=True): - # if self.layer_judge=='first': # expand first dim to batch_size * num_beams - # batch_size, num_tokens = x.shape[0], x.shape[1] - # replicated_tensor = x.unsqueeze(1).expand(batch_size, self.num_beams, num_tokens, self.hidden_size) - # x = replicated_tensor.contiguous().view(-1, num_tokens, self.hidden_size) # [bz*num_beams, 32,768] - attention_mask = torch.ones(x.shape[0], x.shape[1]).to(x.device) x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) - + def forward_expert(input_x, expert_idx): output_x = self.experts[expert_idx].forward(input_x) return output_x + import pdb; pdb.set_trace() outputs = list() logits_gate_lst = list() for expert_idx in range(self.num_experts): output_x = forward_expert(x_masked, expert_idx) + # output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beam, 768]) + output_x_aver = torch.mean(output_x, dim=1) + # gate_score = self.gates[expert_idx](output_x_aver) + gate_score = self.gate(output_x_aver) + logits_gate_lst.append(gate_score) outputs.append(output_x.unsqueeze(0)) - output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beam, 768]) - gate_acore = self.gates[expert_idx](output_x_aver) - logits_gate_lst.append(gate_acore) - candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz*num_beam, 32, 768]) + + candidate_output_raw = torch.cat(outputs) # torch.Size([num_expert, bz*num_beam, 32, 768]) logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz*num_beam, num_expert]) current_scores = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beam, num_experts]) @@ -259,25 +389,39 @@ class RouteMoELayer(nn.Module): else: current_scores_log = current_scores - import pdb;pdb.set_trace() + # importance loss + importance_loss = self._importance_auxiliary_loss(current_scores) + + # import pdb; pdb.set_trace() - batch_size = x.shape[0] # bz*num_beam + batch_size, num_tokens = x.shape[0], x.shape[1] # bz*num_beam beam_scores, expert_route, beam_idx = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) # beam_scores torch.Size([bz*num_beam]) # expert_route torch.Size([bz*num_beam, layer_n]) current_select_expert = expert_route[:,-1] + # current_select_expert torch.Size([bz*num_beam, 1]) - output = list() - for i in range(beam_idx.shape[0]): - b_idx = beam_idx[i] - ex_idx = current_select_expert[i] - ex_out = candidate_output[ex_idx, b_idx, :,:] - output.append(ex_out.unsqueeze(0)) - - final_output = torch.concat(output, dim=0) - - return final_output, beam_scores, expert_route, beam_idx + # import pdb; pdb.set_trace() + + if self.layer_judge == 'first': + replicated_tensor = candidate_output_raw.unsqueeze(2).expand(self.num_experts, batch_size, self.num_beams, num_tokens, self.hidden_size) + candidate_output_raw = replicated_tensor.contiguous().view(self.num_experts, -1, num_tokens, self.hidden_size) # [bz*num_beams, 32,768] + current_scores_t = current_scores.unsqueeze(1).expand(batch_size, self.num_beams, self.num_experts) + current_scores = current_scores_t.contiguous().view(-1, self.num_experts) # [bz*num_beams, num_experts] + + candidate_output = candidate_output_raw.permute(1, 0, 2, 3)[beam_idx] # torch.Size([8, 2, 32, 768]) + expert_select_matrix = F.one_hot(current_select_expert, self.num_experts) + if self.weight_type == 'ffn_prob': + tmp_prob = current_scores[beam_idx] * expert_select_matrix + output = candidate_output * tmp_prob.unsqueeze(-1).unsqueeze(-1) + else: + output = candidate_output * expert_select_matrix.unsqueeze(-1).unsqueeze(-1) + final_output = torch.sum(output, dim=1) + + import pdb; pdb.set_trace() + print("current_scores:\n",current_scores) + return final_output, beam_scores, expert_route, beam_idx, importance_loss def forward(self, x, attention_mask, beam_scores, expert_route, use_log=True): """ @@ -286,13 +430,12 @@ class RouteMoELayer(nn.Module): """ if self.route_method == 'pre-route': - candidate_output, beam_scores, expert_route, _ = self.forward_pre_route(x, beam_scores, expert_route, use_log=True) + candidate_output, beam_scores, expert_route, beam_idx, importance_loss = self.forward_pre_route(x, beam_scores, expert_route, use_log=True) elif self.route_method == "post-route": - candidate_output, beam_scores, expert_route, beam_idx = self.forward_post_route(x, beam_scores, expert_route, use_log=True) + candidate_output, beam_scores, expert_route, beam_idx, importance_loss = self.forward_post_route(x, beam_scores, expert_route, use_log=True) - return candidate_output, beam_scores, expert_route, beam_idx + return candidate_output, beam_scores, expert_route, beam_idx, importance_loss - if __name__ == '__main__': import sys @@ -314,8 +457,8 @@ if __name__ == '__main__': config.add_cross_attention = True config.cross_attention_freq = cross_attention_freq config.query_length = num_query_token - config.moebert_expert_num = 3 - config.moebert_num_beams = 3 + config.moebert_expert_num = 2 + config.moebert_num_beams = 2 config.moebert_route_method = 'gate-sentence' config.moe_topk = 2 config.use_balance_loss = False @@ -332,40 +475,46 @@ if __name__ == '__main__': for layer_num in [6, 8, 10]: layer_judge = moe_layer_judge(layer_num) ffn = FeedForward(config) - gate = nn.Linear(768, config.moebert_expert_num, bias=False).float() # experts = RouteMoELayer( # hidden_size=768, # expert=ffn, - # gate = gate, # num_experts=config.moebert_expert_num, # num_beams=config.moebert_num_beams, # layer_judge = layer_judge, - # route_method = "pre-route" + # route_method = "pre-route", + # weight_type="no_ffn_prob" # ) # layer_output = experts(x, None, beam_scores, expert_route) - # hidden_states1, beam_scores, expert_route,_ = layer_output + # hidden_states1, beam_scores, expert_route, beam_idx, importance_loss = layer_output # print(beam_scores) # print(expert_route) + # print(beam_idx) + # print(importance_loss) + # x = hidden_states1 gate1 = nn.Linear(768, 1, bias=False).float() experts_post = RouteMoELayer( hidden_size=768, expert=ffn, - gate = gate1, num_experts=config.moebert_expert_num, num_beams=config.moebert_num_beams, layer_judge = layer_judge, - route_method = "post-route" + route_method = "post-route", + weight_type="ffn_prob" ) layer_output = experts_post(x1, None, beam_scores1, expert_route1, False) - hidden_states2, beam_scores1, expert_route1, beam_idx = layer_output + hidden_states2, beam_scores1, expert_route1, beam_idx, importance_loss = layer_output print(beam_scores1) print(expert_route1) print(beam_idx) + print(importance_loss) + x1 = hidden_states2 + + # gate = nn.Linear(768, config.moebert_expert_num, bias=False).float() # experts_moe = MoELayer( # hidden_size=config.hidden_size, # expert=ffn, @@ -382,11 +531,62 @@ if __name__ == '__main__': # print(select_prob_gate) # print(gate_load) - - - # x = hidden_states1 - x1 = hidden_states2 # x2 = hidden_states3 print("------------------------------------") + import pdb; pdb.set_trace() + + + + def forward_post_route_backup(self, x, beam_scores, expert_route, use_log=True): + + attention_mask = torch.ones(x.shape[0], x.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + + def forward_expert(input_x, expert_idx): + output_x = self.experts[expert_idx].forward(input_x) + return output_x + + outputs = list() + logits_gate_lst = list() + for expert_idx in range(self.num_experts): + output_x = forward_expert(x_masked, expert_idx) + outputs.append(output_x.unsqueeze(0)) + # output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beam, 768]) + # gate_score = self.gates[expert_idx](output_x_aver) + output_x_aver = torch.mean(output_x, dim=1) + gate_score = self.gate(output_x_aver) + logits_gate_lst.append(gate_score) + candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz*num_beam, 32, 768]) + logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz*num_beam, num_expert]) + current_scores = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beam, num_experts]) + + if use_log: + current_scores_log = torch.log(current_scores) # 取log之后可以直接相加 + else: + current_scores_log = current_scores + + # importance loss + importance_loss = self._importance_auxiliary_loss(current_scores) + + batch_size = x.shape[0] # bz*num_beam + beam_scores, expert_route, beam_idx = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) + # beam_scores torch.Size([bz*num_beam]) + # expert_route torch.Size([bz*num_beam, layer_n]) + current_select_expert = expert_route[:,-1] + # current_select_expert torch.Size([bz*num_beam, 1]) + + output = list() + for i in range(beam_idx.shape[0]): + b_idx = beam_idx[i] + ex_idx = current_select_expert[i] + ex_out = candidate_output[ex_idx, b_idx, :,:] + if self.weight_type == 'ffn_prob': + prob = current_scores[b_idx, ex_idx] + ex_out = ex_out*prob + output.append(ex_out.unsqueeze(0)) + + final_output = torch.concat(output, dim=0) + # import pdb;pdb.set_trace() + return final_output, beam_scores, expert_route, beam_idx, importance_loss diff --git a/minigpt4/models/moe/beam_search_test.py b/minigpt4/models/moe/beam_search_test.py deleted file mode 100644 index 8a8f128..0000000 --- a/minigpt4/models/moe/beam_search_test.py +++ /dev/null @@ -1,155 +0,0 @@ -import torch -import copy -import pickle -import torch -import torch.nn as nn -import torch.nn.functional as F - -device = torch.device("cuda:2" if torch.cuda.is_available() else "cpu") - - -def forward_expert(input_x, expert_idx): - input_x += torch.randn(32,768) - return input_x - # output_x = self.experts[expert_idx].forward(input_x) - # return output_x - - -def forward_ffn(x_repeat, expert_select): - """ - x_repeat : [bz*num_beams, 32,768] - expert_select : [bz*num_beams] - """ - outputs = list() - num_beams_bz = x_repeat.shape[0] - for i in range(num_beams_bz): - output_x = forward_expert(x_repeat[i], expert_select[i]) # (32,768) - outputs.append(output_x.unsqueeze(0)) - candidate_output = torch.cat(outputs) - return candidate_output # torch.Size([bz*num_beams, 32, 768]) - -def forward_gate(x, num_expert): - """ - x : torch.Size([bz*num_beams, 32, 768]) or torch.Size([bz, 32, 768]) - prob_gate : torch.Size([bz*num_beams, num_experts]) or torch.Size([bz, num_experts]) - """ - # attention_mask = torch.ones(x.shape[0], x.shape[1]).to(x.device) - # x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz*num_beams, 32, 768]) - # x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beams, 768]) - # logits_gate = gate(x_average) # torch.Size([bz, num_experts]) - logits_gate = torch.randn(x.shape[0], num_expert) - prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beams, num_experts]) - return prob_gate - -def beam_search(layer, current_scores, beam_scores, expert_route, num_beams): - if layer == 0 and beam_scores==None and expert_route==None: - topk_values, gate = torch.topk(current_scores, num_beams, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) - beam_scores = topk_values.view(num_beams*batch_size) # torch.Size([bz * num_beams]) - expert_route = gate.view(num_beams*batch_size).unsqueeze(1) # torch.Size([bz * num_beams]) - - else: - next_scores_raw = current_scores + beam_scores.unsqueeze(1) # torch.Size([4*3, 5]) # 取log 之后,可以直接相加概率 - next_scores_raw1 = next_scores_raw.view( - batch_size, num_beams * num_expert - ) # torch.Size([4, 3*5]) - next_scores, next_experts = torch.topk(next_scores_raw1, num_beams, dim=1, largest=True, sorted=True) - # next_scores torch.Size([4, 3*num_beams]) - # next_tokens torch.Size([4, 3*num_beams]) - - next_batch_beam = list() - for batch_idx in range(batch_size): - next_sent_beam = list() - print(batch_idx) - for rank, (expert_id, expert_score) in enumerate( - zip(next_experts[batch_idx], next_scores[batch_idx]) - ): - expert_id = expert_id.item() - beam_id = expert_id // num_expert - ex_id = expert_id % num_expert - effective_beam_id = batch_idx*num_beams + beam_id - - # print(expert_id, beam_id, ex_id, effective_beam_id, expert_score) - - next_sent_beam.append((expert_score, ex_id, effective_beam_id)) - next_batch_beam.extend(next_sent_beam) - - # print() - - import pdb;pdb.set_trace() - - beam_scores = beam_scores.new([x[0] for x in next_batch_beam]) - beam_experts = expert_route[:,-1].new([x[1] for x in next_batch_beam]) - beam_idx = expert_route[:,-1].new([x[2] for x in next_batch_beam]) - - pre_route = expert_route[beam_idx,:] - expert_route = torch.cat([pre_route, beam_experts.unsqueeze(1)], dim=-1) - - return beam_scores, expert_route - - -if __name__ == '__main__': - - batch_size = 3 - num_beams = 2 - num_expert = 5 - x = torch.randn(batch_size, 32, 768) - beam_scores, expert_route = None, None - - for layer in range(0,3): - # import pdb;pdb.set_trace() - - current_scores = forward_gate(x, num_expert) - import pdb;pdb.set_trace() - - beam_scores, expert_route = beam_search(layer, current_scores, beam_scores, expert_route, num_beams) - current_expert_select = expert_route[:,-1] - - if layer == 0: - replicated_tensor = x.unsqueeze(1).expand(batch_size, num_beams, 32, 768) - x = replicated_tensor.contiguous().view(-1, 32, 768) # [12,32,768] [bz*num_beams, 32,768] - else: - x = candidate_output - - candidate_output = forward_ffn(x, current_expert_select) # torch.Size([4*3, 5]) - - x = candidate_output - - - scores = beam_scores.view(batch_size, num_beams) - topk_values, gate = torch.topk(scores, 1, dim=1) - # gate [batch_size, 1] - # topk_values [batch_size, 1] - selects = [ (bz_idx * num_beams + gate[bz_idx].item()) for bz_idx in range(batch_size)] - final_scores = beam_scores[selects] - final_expert_route = expert_route[selects] - final_output = candidate_output[selects] - - - - - - - -# def forward_ffn_post(x_repeat, expert_select): -# """ -# x_repeat : [bz*num_beams, 32,768] -# expert_select : [bz*num_beams] -# prob_gate : torch.Size([bz*num_beams, num_experts]) -# """ -# outputs = list() -# logits_gate_lst = list() -# # attention_mask = torch.ones([batch_size, 32]) -# for i in range(num_beams*batch_size): -# output_x = forward_expert(x_repeat[i], expert_select[i]) # (32,768) -# outputs.append(output_x.unsqueeze(0)) -# # output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) -# # gate_acore = self.gates[expert_idx](output_x_aver) -# # gate_score = self.gate(output_x_aver) -# num_expert = 5 -# gate_score = torch.randn(1,num_expert) -# logits_gate_lst.append(gate_score) - -# candidate_output = torch.cat(outputs) # torch.Size([bz*num_beams, 32, 768]) -# logits_gate = torch.cat(logits_gate_lst,dim=0)# torch.Size([bz*num_beams, num_expert]) -# prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beams, num_experts]) -# return prob_gate, candidate_output \ No newline at end of file diff --git a/minigpt4/models/moe/moe_layer.py b/minigpt4/models/moe/moe_layer.py index 303862c..abd24b9 100644 --- a/minigpt4/models/moe/moe_layer.py +++ b/minigpt4/models/moe/moe_layer.py @@ -5,7 +5,7 @@ import torch.nn as nn import torch.nn.functional as F class MoELayer(nn.Module): - def __init__(self, hidden_size, expert, num_experts, route_method, topk=1, use_balance_loss=True, weight_type='l2_norm'): + def __init__(self, hidden_size, expert, num_experts, route_method, topk=1, use_balance_loss=True, weight_type='raw_prob'): # remove hash list nn.Module.__init__(self) self.num_experts = num_experts @@ -81,54 +81,6 @@ class MoELayer(nn.Module): return x, balance_loss, gate_load - def _forward_gate_sentence_top1_raw(self, x, attention_mask): - """ - x: query_attention_output , torch.Size([bz, 32, 768]) - attention_mask: torch.ones([bz, 32]) - - ### Notice: - the raw version of expert_attention_mask is the extended_attention_mask, - which will be add to attention_score directly - the values of extended_attention_mask are -0.0 or -10000 - it should be adjust to 1/0 version to be processed by experts - """ - attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) - x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) - x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) - logits_gate = self.gate(x_average) # torch.Size([bz, num_experts]) - prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) - gate = torch.argmax(prob_gate, dim=-1) # torch.Size([bz]) - - order = gate.argsort(0) - num_sentences = F.one_hot(gate, self.num_experts).gt(0).sum(0) - gate_load = num_sentences.clone() - x = x[order] # reorder according to expert number - x = x.split(num_sentences.tolist(), dim=0) # a list of length self.num_experts - - # compute the load balancing loss - P = prob_gate.mean(0) - temp = num_sentences.float() - f = temp / temp.sum(0, keepdim=True) - balance_loss = self.num_experts * torch.sum(P * f) - - prob_gate = prob_gate.gather(dim=1, index=gate.unsqueeze(1)) - prob_gate = prob_gate[order] - prob_gate = prob_gate.split(num_sentences.tolist(), dim=0) - - def forward_expert(input_x, prob_x, expert_idx): - input_x = self.experts[expert_idx].forward(input_x) - input_x = input_x * prob_x.unsqueeze(-1) - return input_x - - result = [] - for i in range(self.num_experts): - if x[i].size(0) > 0: - result.append(forward_expert(x[i], prob_gate[i], i)) - result = torch.vstack(result) - result = result[order.argsort(0)] # restore original order - - return result, balance_loss, gate_load - def _forward_gate_sentence_post(self, x, attention_mask): """ x: query_attention_output; torch.Size([bz, 32, 768]) @@ -174,13 +126,17 @@ class MoELayer(nn.Module): # importance loss importance_loss = self._importance_auxiliary_loss(prob_gate) - # output_average = candidate_output.sum(2) / candidate_attn_mask.unsqueeze(-1).sum(2) # torch.Size([num_expert, bz, 768]) - # output_average = torch.permute(output_average, (1, 0, 2)) # torch.Size([bz, num_expert, 768]) - # logits_gate = self.gate(output_average) # torch.Size([bz, num_experts, 1]) - prob_gate_topk = torch.zeros_like(prob_gate) prob_gate_topk.scatter_(1, gate, topk_values) - prob_gate_normalized = prob_gate_topk / prob_gate_topk.sum(dim=1, keepdim=True) # torch.Size([bz, num_expert]) + + if self.weight_type == 'average': + # torch.Size([bz, num_expert]) 未选中的expert prob_gate_norm为0 + prob_gate_normalized = prob_gate_topk / prob_gate_topk.sum(dim=1, keepdim=True) + elif self.weight_type == 'raw_prob': + prob_gate_normalized = prob_gate_topk + elif self.weight_type == 'softmax_norm': + prob_gate_normalized = F.softmax(prob_gate_topk, dim=-1) # torch.Size([bz, num_expert]) + candidate_output_ad = torch.permute(candidate_output, (1, 0, 2, 3)) # torch.Size([bz, num_expert, 32, 768]) results = prob_gate_normalized.unsqueeze(-1).unsqueeze(-1) * candidate_output_ad # torch.Size([bz, num_expert, 32, 768]) moe_result = torch.sum(results, dim=1) # torch.Size([bz, 32, 768]) @@ -188,6 +144,46 @@ class MoELayer(nn.Module): return moe_result, (balance_loss+importance_loss), prob_gate_normalized + def router(self, x, attention_mask): + # Prepare input x + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + x_average = torch.mean(x_masked, dim=1) # torch.Size([bz, 768]) + + # Forward Gate + # logits_gate: [bz, num_experts] + logits_gate = self.gate(x_average) + + # Probabilities for each sample of what expert it should be sent to. + # prob_gate: [bz, num_experts] + prob_gate = F.softmax(logits_gate, dim=-1) + + # Get Top-K experts for each sample + # gate: [bz, topk] + # select_prob_gate: [bz, topk] + select_prob_gate, gate = torch.topk(prob_gate, self.topk, dim=1) + + # Reshap Prob_gate & Gate + # expert_mask: [batch_size, topk, num_experts] + # expert_gate: [batch_size, topk, num_experts] + # combine_tensor: [batch_size, num_experts] + expert_mask = F.one_hot(gate, self.num_experts) + expert_gate = select_prob_gate.unsqueeze(-1) * expert_mask + combine_tensor = torch.sum(expert_gate, dim=1) + + # Calculate Balancing Loss + if self.use_balance_loss: + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + + # Calculate Importance Loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + # import pdb; pdb.set_trace() + + return expert_mask, combine_tensor, balance_loss, importance_loss def _forward_gate_sentence(self, x, attention_mask): """ @@ -200,81 +196,37 @@ class MoELayer(nn.Module): the values of extended_attention_mask are -0.0 or -10000 it should be adjust to 1/0 version to be processed by experts """ - attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) - x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) - x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) - logits_gate = self.gate(x_average) # torch.Size([bz, num_experts]) - prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) - select_prob_gate, gate = torch.topk(prob_gate, self.topk, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + # Forward Router + expert_mask, combine_tensor, balance_loss, importance_loss = self.router(x, attention_mask) + + # Forward Expert FFN + result = [] + for expert_idx in range(self.num_experts): + output_x = self.experts[expert_idx].forward(x) + result.append(output_x.unsqueeze(0)) + expert_output = torch.cat(result).permute(1,0,2,3) # torch.Size([batch_size, num_expert, num_tokens, hidden_states]) - # 这里用l2 norm 去加权 - if self.weight_type == 'l2_norm': - normalized_tensor = torch.nn.functional.normalize(select_prob_gate, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) - elif self.weight_type == 'average': - normalized_tensor = select_prob_gate / select_prob_gate.sum(dim=1, keepdim=True) + # multiply outputs of experts by the routing probability + if self.weight_type == 'raw_prob': + expert_outputs_combined = expert_output * combine_tensor.unsqueeze(-1).unsqueeze(-1) # torch.Size([batch_size, num_expert, num_tokens, hidden_states]) + elif self.weight_type == 'no_prob': + combine_index = torch.sum(expert_mask, dim=1) + expert_outputs_combined = expert_output * combine_index.unsqueeze(-1).unsqueeze(-1) # torch.Size([batch_size, num_expert, num_tokens, hidden_states]) - num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) - gate_load = num_sentences.clone() + outputs = torch.sum(expert_outputs_combined, dim=1) # torch.Size([batch_size, num_tokens, hidden_states]) - # load balancing loss - if self.use_balance_loss: - balance_loss = self._balancing_loss(prob_gate, num_sentences) - else: - balance_loss = 0.0 + # import pdb; pdb.set_trace() - # importance loss - importance_loss = self._importance_auxiliary_loss(prob_gate) - - # forward experts - def forward_expert(input_x, expert_idx): - input_x = self.experts[expert_idx].forward(input_x) - return input_x - - result_lst = list() - for i in range(self.topk): - # top1、top2... 分别为一组,进行gate分组之后过expert,然后乘以概率后相加 - tmp_gate = gate[:,i] - tmp_prob = normalized_tensor[:,i].unsqueeze(-1).unsqueeze(-1) - order = tmp_gate.argsort(0) - num_sentences_t = F.one_hot(tmp_gate, self.num_experts).gt(0).sum(0) - x1 = x[order] # reorder according to expert number - x1 = x1.split(num_sentences_t.tolist(), dim=0) # a list of length self.num_experts - - result = [] - for i in range(self.num_experts): - if x1[i].size(0) > 0: - result.append(forward_expert(x1[i], i)) - result = torch.vstack(result) - result = result[order.argsort(0)] # restore original order - # result_lst.append(result * tmp_prob) # result * prob - result_lst.append(result) # result * prob # add_1212 - - moe_result = sum(result_lst) - # import pdb;pdb.set_trace() - return moe_result, (balance_loss+importance_loss), gate - - def _forward_sentence_single_expert(self, x, attention_mask): - x_masked = x * attention_mask.unsqueeze(-1) - x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) - logits_gate = self.gate(x_average) - prob_gate = F.softmax(logits_gate, dim=-1) - gate = torch.argmax(prob_gate, dim=-1) - - gate_load = F.one_hot(gate, self.num_experts).gt(0).sum(0) - x = self.experts[gate.cpu().item()].forward(x) - return x, 0.0, gate_load + return outputs, (balance_loss+importance_loss), combine_tensor def forward(self, x, attention_mask): if self.route_method == "gate-token": x, balance_loss, gate_load = self._forward_gate_token(x) elif self.route_method == "gate-sentence": - if x.size(0) == 1: - x, balance_loss, gate_load = self._forward_sentence_single_expert(x, attention_mask) - else: - x, balance_loss, gate_load = self._forward_gate_sentence(x, attention_mask) + x, balance_loss, gate_load = self._forward_gate_sentence(x, attention_mask) elif self.route_method == "gate-sentence-post": x, balance_loss, gate_load = self._forward_gate_sentence_post(x, attention_mask) else: raise KeyError("Routing method not supported.") - + # import pdb; pdb.set_trace() return x, balance_loss, gate_load diff --git a/minigpt4/models/moe/moe_layer_backup.py b/minigpt4/models/moe/moe_layer_backup.py new file mode 100644 index 0000000..25f2e59 --- /dev/null +++ b/minigpt4/models/moe/moe_layer_backup.py @@ -0,0 +1,330 @@ +import copy +import pickle +import torch +import torch.nn as nn +import torch.nn.functional as F + +class MoELayer(nn.Module): + def __init__(self, hidden_size, expert, num_experts, route_method, topk=1, use_balance_loss=True, weight_type='l2_norm'): + # remove hash list + nn.Module.__init__(self) + self.num_experts = num_experts + self.experts = nn.ModuleList([copy.deepcopy(expert) for i in range(num_experts)]) + self.route_method = route_method + self.topk = topk + self.use_balance_loss = use_balance_loss + self.weight_type = weight_type + + if route_method in ["gate-token", "gate-sentence"]: + self.gate = nn.Linear(hidden_size, num_experts, bias=False).float() + elif route_method in ["gate-sentence-post"]: + gate = nn.Linear(hidden_size, 1, bias=False).float() + # self.gates = nn.ModuleList([copy.deepcopy(gate) for i in range(num_experts)]) + self.gate = gate + else: + raise KeyError("Routing method not supported.") + + def _balancing_loss(self, prob_gate, num_tokens): + # From MOEBERT + # compute the load balancing loss + # prob_gate,是 [bz, num_expert],每个样本被分配给每个expert的概率 + # 等价于 VMOE 中 _gshard_auxiliary_loss + P = prob_gate.mean(0) # torch.Size([num_expert]) 每个expert被分配到样本的平均概率 + temp = num_tokens.float() + f = temp / temp.sum(0, keepdim=True) # 每个expert被分配的sample比例 + balance_loss = self.num_experts * torch.sum(P * f) + return balance_loss + + def _importance_auxiliary_loss(self, prob_gate): + # From VMOE + # _importance_auxiliary_loss + axis = tuple(range(prob_gate.ndim - 1)) # All except last. + importance_per_expert = torch.sum(prob_gate, dim=axis) + std_importance_per_expert = torch.std(importance_per_expert) + mean_importance_per_expert = torch.mean(importance_per_expert) + # Compute coefficient of variation (i.e. std/mean) squared. + return (std_importance_per_expert / mean_importance_per_expert)**2 + + def _forward_gate_token(self, x): + bsz, seq_len, dim = x.size() + + x = x.view(-1, dim) + logits_gate = self.gate(x) + prob_gate = F.softmax(logits_gate, dim=-1) + gate = torch.argmax(prob_gate, dim=-1) + + order = gate.argsort(0) + num_tokens = F.one_hot(gate, self.num_experts).gt(0).sum(0) + gate_load = num_tokens.clone() + x = x[order] # reorder according to expert number + x = x.split(num_tokens.tolist(), dim=0) # a list of length self.num_experts + + # compute the load balancing loss + P = prob_gate.mean(0) + temp = num_tokens.float() + f = temp / temp.sum(0, keepdim=True) + balance_loss = self.num_experts * torch.sum(P * f) + + prob_gate = prob_gate.gather(dim=1, index=gate.unsqueeze(1)) + prob_gate = prob_gate[order] + prob_gate = prob_gate.split(num_tokens.tolist(), dim=0) + + def forward_expert(input_x, prob_x, expert_idx): + input_x = self.experts[expert_idx].forward(input_x) + input_x = input_x * prob_x + return input_x + + x = [forward_expert(x[i], prob_gate[i], i) for i in range(self.num_experts)] + x = torch.vstack(x) + x = x[order.argsort(0)] # restore original order + x = x.view(bsz, seq_len, dim) + + return x, balance_loss, gate_load + + def _forward_gate_sentence_top1_raw(self, x, attention_mask): + """ + x: query_attention_output , torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + + ### Notice: + the raw version of expert_attention_mask is the extended_attention_mask, + which will be add to attention_score directly + the values of extended_attention_mask are -0.0 or -10000 + it should be adjust to 1/0 version to be processed by experts + """ + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) + logits_gate = self.gate(x_average) # torch.Size([bz, num_experts]) + prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) + gate = torch.argmax(prob_gate, dim=-1) # torch.Size([bz]) + + order = gate.argsort(0) + num_sentences = F.one_hot(gate, self.num_experts).gt(0).sum(0) + gate_load = num_sentences.clone() + x = x[order] # reorder according to expert number + x = x.split(num_sentences.tolist(), dim=0) # a list of length self.num_experts + + # compute the load balancing loss + P = prob_gate.mean(0) + temp = num_sentences.float() + f = temp / temp.sum(0, keepdim=True) + balance_loss = self.num_experts * torch.sum(P * f) + + prob_gate = prob_gate.gather(dim=1, index=gate.unsqueeze(1)) + prob_gate = prob_gate[order] + prob_gate = prob_gate.split(num_sentences.tolist(), dim=0) + + def forward_expert(input_x, prob_x, expert_idx): + input_x = self.experts[expert_idx].forward(input_x) + input_x = input_x * prob_x.unsqueeze(-1) + return input_x + + result = [] + for i in range(self.num_experts): + if x[i].size(0) > 0: + result.append(forward_expert(x[i], prob_gate[i], i)) + result = torch.vstack(result) + result = result[order.argsort(0)] # restore original order + + return result, balance_loss, gate_load + + def _forward_gate_sentence_post(self, x, attention_mask): + """ + x: query_attention_output; torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + bz = 4 + x = torch.randn(bz,32,768) + attention_mask = torch.ones([bz, 32]) + + """ + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + + def forward_expert(input_x, expert_idx): + # input_x += torch.randn(4,32,768) + # return input_x + output_x = self.experts[expert_idx].forward(input_x) + return output_x + + outputs = list() + logits_gate_lst = list() + for expert_idx in range(self.num_experts): + output_x = forward_expert(x_masked, expert_idx) + outputs.append(output_x.unsqueeze(0)) + + output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) + # gate_acore = self.gates[expert_idx](output_x_aver) + gate_score = self.gate(output_x_aver) + logits_gate_lst.append(gate_score) + + candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz, 32, 768]) + logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz, num_expert]) + prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) + topk_values, gate = torch.topk(prob_gate, self.topk, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + gate_load = num_sentences.clone() + + # load balancing loss + if self.use_balance_loss: + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + + # importance loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + # output_average = candidate_output.sum(2) / candidate_attn_mask.unsqueeze(-1).sum(2) # torch.Size([num_expert, bz, 768]) + # output_average = torch.permute(output_average, (1, 0, 2)) # torch.Size([bz, num_expert, 768]) + # logits_gate = self.gate(output_average) # torch.Size([bz, num_experts, 1]) + + prob_gate_topk = torch.zeros_like(prob_gate) + prob_gate_topk.scatter_(1, gate, topk_values) + + if self.weight_type == 'average': + # torch.Size([bz, num_expert]) 未选中的expert prob_gate_norm为0 + prob_gate_normalized = prob_gate_topk / prob_gate_topk.sum(dim=1, keepdim=True) + elif self.weight_type == 'raw_prob': + prob_gate_normalized = prob_gate_topk + elif self.weight_type == 'softmax_norm': + prob_gate_normalized = F.softmax(prob_gate_topk, dim=-1) # torch.Size([bz, num_expert]) + + candidate_output_ad = torch.permute(candidate_output, (1, 0, 2, 3)) # torch.Size([bz, num_expert, 32, 768]) + results = prob_gate_normalized.unsqueeze(-1).unsqueeze(-1) * candidate_output_ad # torch.Size([bz, num_expert, 32, 768]) + moe_result = torch.sum(results, dim=1) # torch.Size([bz, 32, 768]) + # import pdb;pdb.set_trace() + + return moe_result, (balance_loss+importance_loss), prob_gate_normalized + + # def _forward_gate_sentence(self, x, attention_mask): + + # attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + # x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + # x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) + # logits_gate = self.gate(x_average) + # prob_gate = F.softmax(logits_gate, dim=-1) + # gate = torch.argmax(prob_gate, dim=-1) + + # order = gate.argsort(0) + # num_sentences = F.one_hot(gate, self.num_experts).gt(0).sum(0) + # gate_load = num_sentences.clone() + # x = x[order] # reorder according to expert number + # x = x.split(num_sentences.tolist(), dim=0) # a list of length self.num_experts + + # # compute the load balancing loss + # P = prob_gate.mean(0) + # temp = num_sentences.float() + # f = temp / temp.sum(0, keepdim=True) + # balance_loss = self.num_experts * torch.sum(P * f) + + # prob_gate = prob_gate.gather(dim=1, index=gate.unsqueeze(1)) + # prob_gate = prob_gate[order] + # prob_gate = prob_gate.split(num_sentences.tolist(), dim=0) + + # def forward_expert(input_x, prob_x, expert_idx): + # input_x = self.experts[expert_idx].forward(input_x) + # input_x = input_x * prob_x.unsqueeze(-1) + # return input_x + + # result = [] + # for i in range(self.num_experts): + # if x[i].size(0) > 0: + # result.append(forward_expert(x[i], prob_gate[i], i)) + # result = torch.vstack(result) + # result = result[order.argsort(0)] # restore original order + + # return result, balance_loss, gate_load + + def _forward_gate_sentence(self, x, attention_mask): + """ + x: query_attention_output , torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + + ### Notice: + the raw version of expert_attention_mask is the extended_attention_mask, + which will be add to attention_score directly + the values of extended_attention_mask are -0.0 or -10000 + it should be adjust to 1/0 version to be processed by experts + """ + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz, 768]) + logits_gate = self.gate(x_average) # torch.Size([bz, num_experts]) + prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) + select_prob_gate, gate = torch.topk(prob_gate, self.topk, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + + # 这里用l2 norm 去加权 + if self.weight_type == 'l2_norm': + # actually neigther dim=0 nor dim=1 is right + normalized_tensor = torch.nn.functional.normalize(select_prob_gate, p=2, dim=1) # L2 Normalization torch.Size([bz, topk]) + elif self.weight_type == 'l2_norm_0': + normalized_tensor = torch.nn.functional.normalize(select_prob_gate, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) + elif self.weight_type == 'average': + normalized_tensor = select_prob_gate / select_prob_gate.sum(dim=1, keepdim=True) + elif self.weight_type == 'raw_prob': + normalized_tensor = select_prob_gate + + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + gate_load = num_sentences.clone() + + # load balancing loss + if self.use_balance_loss: + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + + # importance loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + # forward experts + def forward_expert(input_x, expert_idx): + input_x = self.experts[expert_idx].forward(input_x) + return input_x + + result_lst = list() + for i in range(self.topk): + # top1、top2... 分别为一组,进行gate分组之后过expert,然后乘以概率后相加 + tmp_gate = gate[:,i] + tmp_prob = normalized_tensor[:,i].unsqueeze(-1).unsqueeze(-1) + order = tmp_gate.argsort(0) + num_sentences_t = F.one_hot(tmp_gate, self.num_experts).gt(0).sum(0) + x1 = x[order] # reorder according to expert number + x1 = x1.split(num_sentences_t.tolist(), dim=0) # a list of length self.num_experts + + result = [] + for i in range(self.num_experts): + if x1[i].size(0) > 0: + result.append(forward_expert(x1[i], i)) + result = torch.vstack(result) + result = result[order.argsort(0)] # restore original order + result_lst.append(result * tmp_prob) # result * prob + # result_lst.append(result) # result * prob # add_1212 + + moe_result = sum(result_lst) + return moe_result, (balance_loss+importance_loss), gate + + def _forward_sentence_single_expert(self, x, attention_mask): + x_masked = x * attention_mask.unsqueeze(-1) + x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) + logits_gate = self.gate(x_average) + prob_gate = F.softmax(logits_gate, dim=-1) + gate = torch.argmax(prob_gate, dim=-1) + + gate_load = F.one_hot(gate, self.num_experts).gt(0).sum(0) + x = self.experts[gate.cpu().item()].forward(x) + return x, 0.0, gate_load + + def forward(self, x, attention_mask): + if self.route_method == "gate-token": + x, balance_loss, gate_load = self._forward_gate_token(x) + elif self.route_method == "gate-sentence": + if x.size(0) == 1: + x, balance_loss, gate_load = self._forward_sentence_single_expert(x, attention_mask) + else: + x, balance_loss, gate_load = self._forward_gate_sentence(x, attention_mask) + elif self.route_method == "gate-sentence-post": + x, balance_loss, gate_load = self._forward_gate_sentence_post(x, attention_mask) + else: + raise KeyError("Routing method not supported.") + # import pdb; pdb.set_trace() + return x, balance_loss, gate_load diff --git a/minigpt4/models/moe/prompt_moe.py b/minigpt4/models/moe/prompt_moe.py index 8b5e2d2..8ea4cea 100644 --- a/minigpt4/models/moe/prompt_moe.py +++ b/minigpt4/models/moe/prompt_moe.py @@ -92,7 +92,6 @@ class PrePromptMoE(PromptMoEBase): self.topk = topk if route_method in ["gate-token", "gate-single-token", "gate-sentence"]: self.gate = nn.Linear(hidden_size, num_experts, bias=False).float() - print(self.gate) else: raise KeyError("Routing method not supported.") diff --git a/minigpt4/models/moe/route_moe_layer.py b/minigpt4/models/moe/route_moe_layer.py index 31b75c2..6012dd2 100644 --- a/minigpt4/models/moe/route_moe_layer.py +++ b/minigpt4/models/moe/route_moe_layer.py @@ -5,7 +5,7 @@ import torch.nn as nn import torch.nn.functional as F class RouteMoELayer(nn.Module): - def __init__(self, hidden_size, expert, num_experts, num_beams=2, layer_judge=None, route_method="pre-route"): + def __init__(self, hidden_size, expert, num_experts, num_beams=2, layer_judge=None, route_method="pre-route", weight_type="ffn_prob"): # remove hash list nn.Module.__init__(self) self.num_experts = num_experts @@ -13,6 +13,7 @@ class RouteMoELayer(nn.Module): self.num_beams = num_beams self.hidden_size = hidden_size self.layer_judge = layer_judge + self.weight_type = weight_type self.route_method = route_method if self.route_method == "pre-route": @@ -22,6 +23,17 @@ class RouteMoELayer(nn.Module): self.gate = gate # self.gates = nn.ModuleList([copy.deepcopy(gate) for i in range(num_experts)]) + def _importance_auxiliary_loss(self, prob_gate): + # From VMOE + # _importance_auxiliary_loss + axis = tuple(range(prob_gate.ndim - 1)) # All except last. + importance_per_expert = torch.sum(prob_gate, dim=axis) + std_importance_per_expert = torch.std(importance_per_expert) + mean_importance_per_expert = torch.mean(importance_per_expert) + # Compute coefficient of variation (i.e. std/mean) squared. + return (std_importance_per_expert / mean_importance_per_expert)**2 + + def forward_gate(self, x): """ x : torch.Size([bz*num_beams, 32, 768]) or torch.Size([bz, 32, 768]) @@ -29,7 +41,8 @@ class RouteMoELayer(nn.Module): """ attention_mask = torch.ones(x.shape[0], x.shape[1]).to(x.device) x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz*num_beams, 32, 768]) - x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beams, 768]) + # x_average = x_masked.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beams, 768]) + x_average = torch.mean(x_masked, dim=1) # torch.Size([bz*num_beams, 768]) logits_gate = self.gate(x_average) # torch.Size([bz*num_beams, num_experts]) prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beams, num_experts]) return prob_gate @@ -42,7 +55,7 @@ class RouteMoELayer(nn.Module): topk_values, gate = torch.topk(current_scores, self.num_beams, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) beam_scores = topk_values.view(self.num_beams * batch_size) # torch.Size([bz * num_beams]) expert_route = gate.view(self.num_beams * batch_size).unsqueeze(1) # torch.Size([bz * num_beams,1]) - beam_idx = None + beam_idx = torch.tensor(range(self.num_beams * batch_size)) else: if self.layer_judge=='first' and self.route_method == 'post-route': batch_size = batch_size @@ -89,54 +102,63 @@ class RouteMoELayer(nn.Module): return beam_scores, expert_route, beam_idx - - def forward_expert_ffn(self, x, expert_select, beam_scores): + def forward_expert_ffn(self, x, expert_select, current_scores): """ x_repeat : [bz*num_beams, 32,768] expert_select : [bz*num_beams] + current_scores : [bz*num_beams, num_experts] / [bz, num_experts] """ - # add_1212 l2_normalization - # normalized_tensor = torch.nn.functional.normalize(beam_scores, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) + # add_1228 l2_normalization + # normalized_tensor = torch.nn.functional.normalize(current_scores, p=2, dim=0) # L2 Normalization torch.Size([bz, topk]) # tmp_prob = normalized_tensor.unsqueeze(-1).unsqueeze(-1) - + # import pdb;pdb.set_trace() outputs = list() - for i in range(x.shape[0]): - output_x = self.experts[expert_select[i]].forward(x[i]) - outputs.append(output_x.unsqueeze(0)) - candidate_output = torch.cat(outputs) - - # candidate_output = candidate_output * tmp_prob - return candidate_output # torch.Size([bz*num_beams, 32, 768]) - + for i in range(self.num_experts): + output_x = self.experts[i].forward(x) + outputs.append(output_x.unsqueeze(1)) + candidate_output = torch.cat(outputs, dim=1) + expert_select_matrix = F.one_hot(expert_select, self.num_experts) + if self.weight_type == 'ffn_prob': + tmp_prob = current_scores * expert_select_matrix + candidate_output = candidate_output * tmp_prob.unsqueeze(-1).unsqueeze(-1) + else: + candidate_output = candidate_output * expert_select_matrix.unsqueeze(-1).unsqueeze(-1) + output = torch.sum(candidate_output, dim=1) + # import pdb;pdb.set_trace() + return output # torch.Size([bz*num_beams, 32, 768]) def forward_pre_route(self, x, beam_scores, expert_route, use_log=True): - current_scores = self.forward_gate(x) # [bz*num_beams, 5] + current_scores = self.forward_gate(x) # [bz, num_beams] / [bz*num_beams, num_beams] + + importance_loss = self._importance_auxiliary_loss(current_scores) if use_log: current_scores_log = torch.log(current_scores) # 取log之后可以直接相加 else: current_scores_log = current_scores - + # import pdb;pdb.set_trace() batch_size, num_tokens = x.shape[0], x.shape[1] beam_scores, expert_route, beam_idx = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) - current_expert_select = expert_route[:,-1] if self.layer_judge=='first': # expand first dim to batch_size * num_beams replicated_tensor = x.unsqueeze(1).expand(batch_size, self.num_beams, num_tokens, self.hidden_size) x = replicated_tensor.contiguous().view(-1, num_tokens, self.hidden_size) # [bz*num_beams, 32,768] + current_scores_t = current_scores.unsqueeze(1).expand(batch_size, self.num_beams, self.num_experts) + current_scores = current_scores_t.contiguous().view(-1, self.num_experts) # [bz*num_beams, num_experts] - candidate_output = self.forward_expert_ffn(x, current_expert_select, beam_scores) # [bz*num_beams, 32,768] - - return candidate_output, beam_scores, expert_route, beam_idx + input_x = x[beam_idx] + candidate_output = self.forward_expert_ffn(input_x, current_expert_select, current_scores) # [bz*num_beams, 32,768] + # import pdb;pdb.set_trace() + return candidate_output, beam_scores, expert_route, beam_idx, importance_loss def forward_post_route(self, x, beam_scores, expert_route, use_log=True): attention_mask = torch.ones(x.shape[0], x.shape[1]).to(x.device) x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) - + def forward_expert(input_x, expert_idx): output_x = self.experts[expert_idx].forward(input_x) return output_x @@ -145,12 +167,14 @@ class RouteMoELayer(nn.Module): logits_gate_lst = list() for expert_idx in range(self.num_experts): output_x = forward_expert(x_masked, expert_idx) - outputs.append(output_x.unsqueeze(0)) - output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beam, 768]) + # output_x_aver = output_x.sum(1) / attention_mask.unsqueeze(-1).sum(1) # torch.Size([bz*num_beam, 768]) + output_x_aver = torch.mean(output_x, dim=1) # gate_score = self.gates[expert_idx](output_x_aver) gate_score = self.gate(output_x_aver) logits_gate_lst.append(gate_score) - candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz*num_beam, 32, 768]) + outputs.append(output_x.unsqueeze(0)) + + candidate_output_raw = torch.cat(outputs) # torch.Size([num_expert, bz*num_beam, 32, 768]) logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz*num_beam, num_expert]) current_scores = F.softmax(logits_gate, dim=-1) # torch.Size([bz*num_beam, num_experts]) @@ -159,24 +183,33 @@ class RouteMoELayer(nn.Module): else: current_scores_log = current_scores - batch_size = x.shape[0] # bz*num_beam + # importance loss + importance_loss = self._importance_auxiliary_loss(current_scores) + + batch_size, num_tokens = x.shape[0], x.shape[1] # bz*num_beam beam_scores, expert_route, beam_idx = self.beam_search(current_scores_log, beam_scores, expert_route, batch_size) # beam_scores torch.Size([bz*num_beam]) # expert_route torch.Size([bz*num_beam, layer_n]) current_select_expert = expert_route[:,-1] + # current_select_expert torch.Size([bz*num_beam, 1]) - output = list() - for i in range(beam_idx.shape[0]): - b_idx = beam_idx[i] - ex_idx = current_select_expert[i] - ex_out = candidate_output[ex_idx, b_idx, :,:] - output.append(ex_out.unsqueeze(0)) - - final_output = torch.concat(output, dim=0) - - return final_output, beam_scores, expert_route, beam_idx - - + if self.layer_judge == 'first': + replicated_tensor = candidate_output_raw.unsqueeze(2).expand(self.num_experts, batch_size, self.num_beams, num_tokens, self.hidden_size) + candidate_output_raw = replicated_tensor.contiguous().view(self.num_experts, -1, num_tokens, self.hidden_size) # [bz*num_beams, 32,768] + current_scores_t = current_scores.unsqueeze(1).expand(batch_size, self.num_beams, self.num_experts) + current_scores = current_scores_t.contiguous().view(-1, self.num_experts) # [bz*num_beams, num_experts] + + candidate_output = candidate_output_raw.permute(1, 0, 2, 3)[beam_idx] # torch.Size([8, 2, 32, 768]) + expert_select_matrix = F.one_hot(current_select_expert, self.num_experts) + if self.weight_type == 'ffn_prob': + tmp_prob = current_scores[beam_idx] * expert_select_matrix + output = candidate_output * tmp_prob.unsqueeze(-1).unsqueeze(-1) + else: + output = candidate_output * expert_select_matrix.unsqueeze(-1).unsqueeze(-1) + final_output = torch.sum(output, dim=1) + + return final_output, beam_scores, expert_route, beam_idx, importance_loss + def forward(self, x, attention_mask, beam_scores, expert_route, use_log=True): """ if first_layer: x [bz, 32, 768] @@ -184,11 +217,11 @@ class RouteMoELayer(nn.Module): """ if self.route_method == 'pre-route': - candidate_output, beam_scores, expert_route, beam_idx = self.forward_pre_route(x, beam_scores, expert_route, use_log=True) + candidate_output, beam_scores, expert_route, beam_idx, importance_loss = self.forward_pre_route(x, beam_scores, expert_route, use_log=True) elif self.route_method == "post-route": - candidate_output, beam_scores, expert_route, beam_idx = self.forward_post_route(x, beam_scores, expert_route, use_log=True) + candidate_output, beam_scores, expert_route, beam_idx, importance_loss = self.forward_post_route(x, beam_scores, expert_route, use_log=True) - return candidate_output, beam_scores, expert_route, beam_idx + return candidate_output, beam_scores, expert_route, beam_idx, importance_loss diff --git a/minigpt4/models/moe/test_moe_layer.py b/minigpt4/models/moe/test_moe_layer.py new file mode 100644 index 0000000..5253340 --- /dev/null +++ b/minigpt4/models/moe/test_moe_layer.py @@ -0,0 +1,294 @@ +import copy +import pickle +import torch +import torch.nn as nn +import torch.nn.functional as F + +import copy +import pickle +import torch +import torch.nn as nn +import torch.nn.functional as F + +class MoELayer(nn.Module): + def __init__(self, hidden_size, expert, num_experts, route_method, topk=1, use_balance_loss=True, weight_type='raw_prob, topk(softmax)'): + # remove hash list + nn.Module.__init__(self) + self.num_experts = num_experts + self.experts = nn.ModuleList([copy.deepcopy(expert) for i in range(num_experts)]) + self.route_method = route_method + self.topk = topk + self.use_balance_loss = use_balance_loss + self.weight_type = weight_type + + if route_method in ["gate-token", "gate-sentence"]: + self.gate = nn.Linear(hidden_size, num_experts, bias=False).float() + elif route_method in ["gate-sentence-post"]: + gate = nn.Linear(hidden_size, 1, bias=False).float() + # self.gates = nn.ModuleList([copy.deepcopy(gate) for i in range(num_experts)]) + self.gate = gate + else: + raise KeyError("Routing method not supported.") + + def _balancing_loss(self, prob_gate, num_tokens): + # From MOEBERT + # compute the load balancing loss + # prob_gate,是 [bz, num_expert],每个样本被分配给每个expert的概率 + # 等价于 VMOE 中 _gshard_auxiliary_loss + P = prob_gate.mean(0) # torch.Size([num_expert]) 每个expert被分配到样本的平均概率 + temp = num_tokens.float() + f = temp / temp.sum(0, keepdim=True) # 每个expert被分配的sample比例 + balance_loss = self.num_experts * torch.sum(P * f) + return balance_loss + + def _importance_auxiliary_loss(self, prob_gate): + # From VMOE + # _importance_auxiliary_loss + axis = tuple(range(prob_gate.ndim - 1)) # All except last. + importance_per_expert = torch.sum(prob_gate, dim=axis) + std_importance_per_expert = torch.std(importance_per_expert) + mean_importance_per_expert = torch.mean(importance_per_expert) + # Compute coefficient of variation (i.e. std/mean) squared. + return (std_importance_per_expert / mean_importance_per_expert)**2 + + def _forward_gate_token(self, x): + bsz, seq_len, dim = x.size() + + x = x.view(-1, dim) + logits_gate = self.gate(x) + prob_gate = F.softmax(logits_gate, dim=-1) + gate = torch.argmax(prob_gate, dim=-1) + + order = gate.argsort(0) + num_tokens = F.one_hot(gate, self.num_experts).gt(0).sum(0) + gate_load = num_tokens.clone() + x = x[order] # reorder according to expert number + x = x.split(num_tokens.tolist(), dim=0) # a list of length self.num_experts + + # compute the load balancing loss + P = prob_gate.mean(0) + temp = num_tokens.float() + f = temp / temp.sum(0, keepdim=True) + balance_loss = self.num_experts * torch.sum(P * f) + + prob_gate = prob_gate.gather(dim=1, index=gate.unsqueeze(1)) + prob_gate = prob_gate[order] + prob_gate = prob_gate.split(num_tokens.tolist(), dim=0) + + def forward_expert(input_x, prob_x, expert_idx): + input_x = self.experts[expert_idx].forward(input_x) + input_x = input_x * prob_x + return input_x + + x = [forward_expert(x[i], prob_gate[i], i) for i in range(self.num_experts)] + x = torch.vstack(x) + x = x[order.argsort(0)] # restore original order + x = x.view(bsz, seq_len, dim) + + return x, balance_loss, gate_load + + def _forward_gate_sentence_post(self, x, attention_mask): + """ + x: query_attention_output; torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + bz = 4 + x = torch.randn(bz,32,768) + attention_mask = torch.ones([bz, 32]) + + """ + # Prepare Input x + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + + # FeedForward(x) & Forward Gate + outputs = list() + logits_gate_lst = list() + for expert_idx in range(self.num_experts): + output_x = self.experts[expert_idx].forward(x_masked) + outputs.append(output_x.unsqueeze(0)) + + output_x_aver = torch.mean(output_x, dim=1) + # gate_acore = self.gates[expert_idx](output_x_aver) + gate_score = self.gate(output_x_aver) + logits_gate_lst.append(gate_score) + candidate_output = torch.cat(outputs) # torch.Size([num_expert, bz, 32, 768]) + logits_gate = torch.cat(logits_gate_lst,dim=1)# torch.Size([bz, num_expert]) + + # Probabilities for each sample of what expert it should be sent to. + prob_gate = F.softmax(logits_gate, dim=-1) # torch.Size([bz, num_experts]) + if 'softmax(topk)' in self.weight_type: + prob_gate1, gate = torch.topk(logits_gate, self.topk, dim=1) + select_prob_gate = F.softmax(prob_gate1, dim=-1) + else: + select_prob_gate, gate = torch.topk(prob_gate, self.topk, dim=1) # gate, 每个样本被分配的expert: torch.Size([bz, topk]) + + # Calculate Balancing Loss + if self.use_balance_loss: + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + # Calculate Importance Loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + # Reshap Prob_gate & Gate + # expert_mask: [batch_size, topk, num_experts] + # expert_gate: [batch_size, topk, num_experts] + # combine_tensor: [batch_size, num_experts] + expert_mask = F.one_hot(gate, self.num_experts) + expert_gate = select_prob_gate.unsqueeze(-1) * expert_mask + combine_tensor = torch.sum(expert_gate, dim=1) + # combine_tensor = torch.zeros_like(prob_gate) + # combine_tensor.scatter_(1, gate, select_prob_gate) # 等价操作,但可能不可导 + + candidate_output_ad = torch.permute(candidate_output, (1, 0, 2, 3)) # torch.Size([bz, num_expert, 32, 768]) + results = candidate_output_ad * combine_tensor.unsqueeze(-1).unsqueeze(-1) # torch.Size([bz, num_expert, 32, 768]) + outputs = torch.sum(results, dim=1) # torch.Size([bz, 32, 768]) + import pdb;pdb.set_trace() + + return outputs, (balance_loss+importance_loss), combine_tensor + + def pre_router(self, x, attention_mask): + # Prepare input x + attention_mask = torch.ones(attention_mask.shape[0], attention_mask.shape[1]).to(x.device) + x_masked = x * attention_mask.unsqueeze(-1) # torch.Size([bz, 32, 768]) + x_average = torch.mean(x_masked, dim=1) # torch.Size([bz, 768]) + + # Forward Gate + # logits_gate: [bz, num_experts] + logits_gate = self.gate(x_average) + + # Probabilities for each sample of what expert it should be sent to. + # prob_gate: [bz, num_experts] + prob_gate = F.softmax(logits_gate, dim=-1) + + if 'softmax(topk)' in self.weight_type: + prob_gate1, gate = torch.topk(logits_gate, self.topk, dim=1) + select_prob_gate = F.softmax(prob_gate1, dim=-1) + else: + # topk(softmax) + # Get Top-K experts for each sample + # gate: [bz, topk] + # select_prob_gate: [bz, topk] + select_prob_gate, gate = torch.topk(prob_gate, self.topk, dim=1) + + # Reshap Prob_gate & Gate + # expert_mask: [batch_size, topk, num_experts] + # expert_gate: [batch_size, topk, num_experts] + # combine_tensor: [batch_size, num_experts] + expert_mask = F.one_hot(gate, self.num_experts) + expert_gate = select_prob_gate.unsqueeze(-1) * expert_mask + combine_tensor = torch.sum(expert_gate, dim=1) + + # Calculate Balancing Loss + if self.use_balance_loss: + num_sentences = F.one_hot(gate, self.num_experts).sum(1).gt(0).sum(0) # 每个expert被分配的样本数 torch.Size([num_expert]) + balance_loss = self._balancing_loss(prob_gate, num_sentences) + else: + balance_loss = 0.0 + + # Calculate Importance Loss + importance_loss = self._importance_auxiliary_loss(prob_gate) + + import pdb; pdb.set_trace() + + return expert_mask, combine_tensor, balance_loss, importance_loss + + def _forward_gate_sentence(self, x, attention_mask): + """ + x: query_attention_output , torch.Size([bz, 32, 768]) + attention_mask: torch.ones([bz, 32]) + + ### Notice: + the raw version of expert_attention_mask is the extended_attention_mask, + which will be add to attention_score directly + the values of extended_attention_mask are -0.0 or -10000 + it should be adjust to 1/0 version to be processed by experts + """ + # Forward Router + expert_mask, combine_tensor, balance_loss, importance_loss = self.pre_router(x, attention_mask) + + # Forward Expert FFN + result = [] + for expert_idx in range(self.num_experts): + output_x = self.experts[expert_idx].forward(x) + result.append(output_x.unsqueeze(0)) + expert_output = torch.cat(result).permute(1,0,2,3) # torch.Size([batch_size, num_expert, num_tokens, hidden_states]) + + # multiply outputs of experts by the routing probability + expert_outputs_combined = expert_output * combine_tensor.unsqueeze(-1).unsqueeze(-1) # torch.Size([batch_size, num_expert, num_tokens, hidden_states]) + outputs = torch.sum(expert_outputs_combined, dim=1) # torch.Size([batch_size, num_tokens, hidden_states]) + + import pdb; pdb.set_trace() + + return outputs, (balance_loss+importance_loss), combine_tensor + + + def forward(self, x, attention_mask): + if self.route_method == "gate-token": + x, balance_loss, gate_load = self._forward_gate_token(x) + elif self.route_method == "gate-sentence": + x, balance_loss, gate_load = self._forward_gate_sentence(x, attention_mask) + elif self.route_method == "gate-sentence-post": + x, balance_loss, gate_load = self._forward_gate_sentence_post(x, attention_mask) + else: + raise KeyError("Routing method not supported.") + # import pdb; pdb.set_trace() + return x, balance_loss, gate_load + +if __name__ == '__main__': + + import sys + sys.path.append("/mnt/pfs-guan-ssai/nlu/wanghanzi/multimodal/PromptMoE") + from minigpt4.models.QformerRouteMoE import BertConfig + from minigpt4.models.QformerRouteMoE import FeedForward + from minigpt4.models.moe.utils import ( + moe_layer_judge, + ) + + vision_width = 1408 + cross_attention_freq = 2 + num_query_token = 32 + # init_QformerMoE + config = BertConfig.from_pretrained("/mnt/pfs-guan-ssai/nlu/wanghanzi/models/bert-base-uncased") + config.encoder_width = vision_width + # insert cross-attention layer every other block + config.add_cross_attention = True + config.cross_attention_freq = cross_attention_freq + config.query_length = num_query_token + config.moebert_expert_num = 3 + config.moebert_num_beams = 2 + config.moebert_route_method = 'gate-sentence-post' + config.moe_topk = 1 + config.use_balance_loss = False + # config.moe_weight_type = 'raw_prob, softmax(topk)' + config.moe_weight_type = 'raw_prob, topk(softmax)' + + batch_size = 4 + x2 = torch.randn(batch_size, 32, 768) + beam_scores, expert_route = None, None + + for layer_num in [6, 8, 10]: + layer_judge = moe_layer_judge(layer_num) + ffn = FeedForward(config) + gate = nn.Linear(768, config.moebert_expert_num, bias=False).float() + + experts_moe = MoELayer( + hidden_size=config.hidden_size, + expert=ffn, + num_experts=config.moebert_expert_num, + route_method=config.moebert_route_method, + topk=config.moe_topk, + use_balance_loss=config.use_balance_loss, + weight_type=config.moe_weight_type, + ) + attn_mask = torch.ones([batch_size, 32]) + layer_output = experts_moe(x2, attn_mask) + hidden_states3, aux_loss, combine_tensor = layer_output + + print(combine_tensor) + print(aux_loss) + x2 = hidden_states3 + + print("------------------------------------") + import pdb; pdb.set_trace() \ No newline at end of file diff --git a/minigpt4/models/moe/utils.py b/minigpt4/models/moe/utils.py index 6f5858d..52f78b8 100644 --- a/minigpt4/models/moe/utils.py +++ b/minigpt4/models/moe/utils.py @@ -19,15 +19,33 @@ def use_experts(layer_idx): else: return False +def use_experts_route(layer_idx): + # if layer_idx % 2 == 0: + # use moe_ffn after cross_attns + # if int(layer_idx) in [0,2,4,6,8,10]: + if int(layer_idx) in [6,7,8,9,10,11]: + return True + else: + return False + def moe_layer_judge(layer_idx): if layer_idx == 6: return 'first' - elif layer_idx == 8: + elif layer_idx in [7,8,9,10]: return 'mid' - elif layer_idx == 10: + elif layer_idx == 11: return 'last' else: return None + + # if layer_idx == 0: + # return 'first' + # elif layer_idx in [2,4,6,8]: + # return 'mid' + # elif layer_idx == 10: + # return 'last' + # else: + # return None def process_ffn(model): if model.config.model_type == "bert": diff --git a/minigpt4/projects/qformer_moe_post_vicuna/train/mix_qformer_moe_post_blip2_vicuna7b_data_balance.yaml b/minigpt4/projects/qformer_moe_post_vicuna/train/mix_qformer_moe_post_blip2_vicuna7b_data_balance.yaml index b74d7aa..8c5e050 100644 --- a/minigpt4/projects/qformer_moe_post_vicuna/train/mix_qformer_moe_post_blip2_vicuna7b_data_balance.yaml +++ b/minigpt4/projects/qformer_moe_post_vicuna/train/mix_qformer_moe_post_blip2_vicuna7b_data_balance.yaml @@ -10,7 +10,6 @@ model: load_finetuned: False vit_model: eva_clip_g pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" - # finetuned: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/mix_coco_gqa_balance_raw_QformerMoE_Post_train_qf_train_qt_aver_weight_5ex_top1_1loss_textinqf_epo3_s42_1201/20231201184/checkpoint_best.pth" finetuned: "" q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" @@ -38,7 +37,7 @@ model: # moe use_moeqformer: True - moebert_expert_num: 5 + moebert_expert_num: 3 moebert_route_method: "gate-sentence-post" moebert_load_balance: 0 moe_topk: 1 @@ -110,6 +109,7 @@ run: max_epoch: 1 num_workers: 4 warmup_steps: 600 + iters_per_epoch: 1000 seed: 42 output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/mix_coco_gqa_balance_raw_QformerMoE_Post_train_qf_train_qt_aver_weight_5ex_top1_1loss_textinqf_epo3_s42_1201/" diff --git a/minigpt4/projects/qformer_moe_route_vicuna/eval/mix_vqa_coco_vicuna_eval.yaml b/minigpt4/projects/qformer_moe_route_vicuna/eval/mix_vqa_coco_vicuna_eval.yaml index c5a4d5a..74f4ab0 100644 --- a/minigpt4/projects/qformer_moe_route_vicuna/eval/mix_vqa_coco_vicuna_eval.yaml +++ b/minigpt4/projects/qformer_moe_route_vicuna/eval/mix_vqa_coco_vicuna_eval.yaml @@ -10,7 +10,7 @@ model: load_finetuned: True vit_model: eva_clip_g pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" - finetuned: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_linear_gate_3ex_3beam_1loss_top3layer_log_textinqf_epo3_1216/20231216155/checkpoint_best.pth" + finetuned: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_2ex_2beam_1gate_2loss_5e5lr_top6layer_textinqf_epo8_0112/20240112212/checkpoint_best.pth" q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" # vit encoder @@ -38,10 +38,12 @@ model: # moe use_moeqformer: True use_route_moe: True - moebert_expert_num: 3 - moebert_num_beams: 3 moebert_route_method: "post-route" - gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/route_save/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209_eval_latest1/" + moebert_load_balance: 0 + moebert_expert_num: 2 + moebert_num_beams: 2 + moe_weight_type: 'ffn_prob' + gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/route_save/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_2ex_2beam_1gate_2loss_5e5lr_top6layer_textinqf_epo8_0112/" datasets: gqa: @@ -81,19 +83,20 @@ run: task: instruction_tuning # optimizer lr_sched: "linear_warmup_cosine_lr" - init_lr: 2e-5 + init_lr: 5e-5 min_lr: 1e-6 warmup_lr: 1e-6 log_freq: 5 save_freq: 1500 weight_decay: 0.05 - max_epoch: 5 + max_epoch: 10 num_workers: 4 warmup_steps: 600 + iters_per_epoch: 3000 seed: 42 - output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/eval/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209/" + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/eval/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_2ex_2beam_1gate_2loss_5e5lr_top6layer_textinqf_epo8_0112/" amp: True resume_ckpt_path: null diff --git a/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance.yaml b/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance.yaml index 5ec25e0..16440dc 100644 --- a/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance.yaml +++ b/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance.yaml @@ -38,10 +38,12 @@ model: # moe use_moeqformer: True use_route_moe: True + moebert_route_method: "post-route" + moebert_load_balance: 0 moebert_expert_num: 3 moebert_num_beams: 3 - moebert_route_method: "post-route" - gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/route_save/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209/" + moe_weight_type: 'ffn_prob' + use_balance_loss: False datasets: gqa: # train: 943000, 12578, 12578) @@ -97,19 +99,20 @@ run: task: instruction_tuning # optimizer lr_sched: "linear_warmup_cosine_lr" - init_lr: 2e-5 + init_lr: 5e-5 min_lr: 1e-6 warmup_lr: 1e-6 log_freq: 5 save_freq: 1500 weight_decay: 0.05 - max_epoch: 5 + max_epoch: 8 num_workers: 4 warmup_steps: 600 + iters_per_epoch: 5000 seed: 42 - output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209/" + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_1gate_3ex_3beam_1loss_5e5lr_top6layer_textinqf_epo8_0117/" amp: True resume_ckpt_path: null diff --git a/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance_1220.yaml b/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance_1220.yaml new file mode 100644 index 0000000..8818143 --- /dev/null +++ b/minigpt4/projects/qformer_moe_route_vicuna/train/mix_qformer_moe_route_blip2_vicuna7b_data_balance_1220.yaml @@ -0,0 +1,129 @@ + # Copyright (c) 2022, salesforce.com, inc. + # All rights reserved. + # SPDX-License-Identifier: BSD-3-Clause + # For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause +# 0107test + +model: + arch: blip2_vicuna_instruct + model_type: vicuna7b_pretrain + load_pretrained: True + load_finetuned: False + vit_model: eva_clip_g + pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + # finetuned: "" + q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + + # vit encoder + image_size: 224 + drop_path_rate: 0 + use_grad_checkpoint: False + vit_precision: "fp16" + + # Q-Former + num_query_token: 32 + qformer_text_input: True + + # vicuna + llm_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/vicuna-7b-v1.1" + prompt: "" + max_txt_len: 256 + max_output_txt_len: 256 + + # freeze + freeze_vit: True + freeze_llm: True + freeze_qformer: False + freeze_t5_proj: False + + # moe + use_moeqformer: True + use_route_moe: True + moebert_route_method: "post-route" + moebert_load_balance: 0 + moebert_expert_num: 2 + moebert_num_beams: 2 + moe_weight_type: 'ffn_prob' + use_balance_loss: False + # gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/route_save/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209/" + +datasets: + # gqa: # train: 943000, 12578, 12578) + # type: balanced_sft_raw + # batch_size: 1 + # vis_processor: + # train: + # name: "blip2_image_train" + # image_size: 224 + # eval: + # name: "blip2_image_eval" + # image_size: 224 + # text_processor: + # train: + # name: "blip_caption" + # eval: + # name: "blip_caption" + # sample_ratio: 10 + + ok_vqa: # train, valid (9009, 5046) + batch_size: 1 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 1 + + # coco_vqa: # 658104 + # batch_size: 1 + # vis_processor: + # train: + # name: "blip2_image_train" + # image_size: 224 + # eval: + # name: "blip2_image_eval" + # image_size: 224 + # text_processor: + # train: + # name: "blip_caption" + # eval: + # name: "blip_caption" + # sample_ratio: 9 + +run: + task: instruction_tuning + # optimizer + lr_sched: "linear_warmup_cosine_lr" + init_lr: 2e-5 + min_lr: 1e-6 + warmup_lr: 1e-6 + log_freq: 5 + save_freq: 1500 + + weight_decay: 0.05 + max_epoch: 5 + num_workers: 4 + warmup_steps: 600 + + seed: 42 + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_balance_raw_QformerMoE_Route_linear_gate_5ex_2beam_1loss_textinqf_epo5_toplayer3_1209/" + + amp: True + resume_ckpt_path: null + + evaluate: False + train_splits: ["train"] + valid_splits: ["val"] + # test_splits: ["val"] + + device: "cuda" + world_size: 1 + dist_url: "env://" + distributed: True \ No newline at end of file diff --git a/minigpt4/projects/qformer_moe_vicuna/eval/vqa_benchmark_evaluation.yaml b/minigpt4/projects/qformer_moe_vicuna/eval/vqa_benchmark_evaluation.yaml index 3e02942..98de298 100644 --- a/minigpt4/projects/qformer_moe_vicuna/eval/vqa_benchmark_evaluation.yaml +++ b/minigpt4/projects/qformer_moe_vicuna/eval/vqa_benchmark_evaluation.yaml @@ -10,7 +10,7 @@ model: load_finetuned: True vit_model: eva_clip_g pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" - finetuned: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_1048k_raw_QformerMoE_Route_Post_NoNorm_5ex_2beam_1loss_top3layer_textinqf_epo6_1215/20231216161/checkpoint_best.pth" + finetuned: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_2ex_2beam_1gate_1loss_5e5lr_top6layer_textinqf_epo8_0111/20240111145/checkpoint_best.pth" q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" # vit encoder @@ -39,8 +39,11 @@ model: use_moeqformer: True use_route_moe: True moebert_route_method: "post-route" - moebert_expert_num: 5 + moebert_load_balance: 0 + moebert_expert_num: 2 moebert_num_beams: 2 + moe_weight_type: 'ffn_prob' + use_balance_loss: False datasets: ok_vqa: # train, valid (9009, 5046) @@ -78,7 +81,7 @@ evaluation_datasets: run: task: instruction_tuning name: vqa_benchmark_evaluation - save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/eval/benchmarks/mix_1048k_raw_QformerMoE_Route_Post_NoNorm_5ex_2beam_1loss_top3layer_textinqf_epo6_1215/" + save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/eval/benchmarks/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_2ex_2beam_1gate_1loss_5e5lr_top6layer_textinqf_epo8_0111/" seed: 42 diff --git a/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_3ex3beam_0112.yaml b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_3ex3beam_0112.yaml new file mode 100644 index 0000000..979e0a1 --- /dev/null +++ b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_3ex3beam_0112.yaml @@ -0,0 +1,131 @@ + # Copyright (c) 2022, salesforce.com, inc. + # All rights reserved. + # SPDX-License-Identifier: BSD-3-Clause + # For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + +model: + arch: blip2_vicuna_instruct + model_type: vicuna7b_pretrain + load_pretrained: True + load_finetuned: False + vit_model: eva_clip_g + pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + # finetuned: "" + q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + + # vit encoder + image_size: 224 + drop_path_rate: 0 + use_grad_checkpoint: False + vit_precision: "fp16" + + # Q-Former + num_query_token: 32 + qformer_text_input: True + + # vicuna7b + llm_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/vicuna-7b-v1.1" + prompt: "" + max_txt_len: 256 + max_output_txt_len: 256 + + # freeze + freeze_vit: True + freeze_llm: True + freeze_qformer: False + freeze_t5_proj: False + + # moe + use_moeqformer: True + use_route_moe: True + moebert_route_method: "post-route" + moebert_load_balance: 0.05 + moebert_expert_num: 3 + moebert_num_beams: 3 + moe_weight_type: 'ffn_prob' + use_balance_loss: False + +datasets: + gqa: # train: 943000, 12578, 12578) + type: balanced_sft_raw + # batch_size: 16 + batch_size: 32 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 50 + + ok_vqa: # train, valid (9009, 5046) + # batch_size: 16 + batch_size: 32 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 8 + + coco_vqa: # 658104 + # batch_size: 16 + batch_size: 32 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 15 + +run: + task: instruction_tuning + # optimizer + lr_sched: "linear_warmup_cosine_lr" + # init_lr: 2e-5 + init_lr: 5e-5 + min_lr: 1e-6 + warmup_lr: 1e-6 + log_freq: 5 + save_freq: 1500 + + weight_decay: 0.05 + max_epoch: 8 + num_workers: 4 + warmup_steps: 600 + iters_per_epoch: 5000 + + seed: 42 + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe_route/mix_coco_gqa_1610k_raw_QformerMoE_Route_Post_ffn_prob_linear_gate_3ex_3beam_1gate_2loss_5e5lr_top6layer_textinqf_epo8_0112/" + + amp: True + resume_ckpt_path: null + + evaluate: False + train_splits: ["train"] + valid_splits: ["val"] + + device: "cuda" + world_size: 1 + dist_url: "env://" + distributed: True \ No newline at end of file diff --git a/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_balance.yaml b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_balance.yaml index 2eccb6b..d3f21ec 100644 --- a/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_balance.yaml +++ b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_balance.yaml @@ -37,19 +37,19 @@ model: # moe use_moeqformer: True - moebert_expert_num: 5 + moebert_expert_num: 3 moebert_route_method: "gate-sentence" moebert_load_balance: 0 moe_topk: 1 use_balance_loss: False - moe_weight_type: 'l2_norm' - gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/gate_save/mix_coco_gqa_balance_raw_QformerMoE_train_qf_train_qt_linear_gate_5ex_top1_1loss_textinqf_training_epo5_toplayer3_1206/" + moe_weight_type: 'raw_prob' + # gate_save_path: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/gate_save/mix_coco_gqa_balance_raw_QformerMoE_train_qf_train_qt_linear_gate_5ex_top1_1loss_textinqf_training_epo5_toplayer3_1206/" datasets: gqa: # train: 94254 type: balanced_sft_raw_part - batch_size: 32 + batch_size: 1 vis_processor: train: name: "blip2_image_train" @@ -65,7 +65,7 @@ datasets: sample_ratio: 50 ok_vqa: # train, valid (9009, 5046 - batch_size: 32 + batch_size: 1 vis_processor: train: name: "blip2_image_train" @@ -80,22 +80,22 @@ datasets: name: "blip_caption" sample_ratio: 8 - coco_vqa: # 214352 vqa_val - type: vqa_v2_part - batch_size: 32 - vis_processor: - train: - name: "blip2_image_train" - image_size: 224 - eval: - name: "blip2_image_eval" - image_size: 224 - text_processor: - train: - name: "blip_caption" - eval: - name: "blip_caption" - sample_ratio: 15 + # coco_vqa: # 214352 vqa_val + # type: vqa_v2_part + # batch_size: 1 + # vis_processor: + # train: + # name: "blip2_image_train" + # image_size: 224 + # eval: + # name: "blip2_image_eval" + # image_size: 224 + # text_processor: + # train: + # name: "blip_caption" + # eval: + # name: "blip_caption" + # sample_ratio: 15 run: task: instruction_tuning @@ -108,12 +108,13 @@ run: save_freq: 1500 weight_decay: 0.05 - max_epoch: 5 + max_epoch: 1 num_workers: 4 warmup_steps: 600 + iters_per_epoch: 1000 seed: 42 - output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/mix_coco_gqa_balance_raw_QformerMoE_train_qf_train_qt_linear_gate_5ex_top1_1loss_textinqf_training_epo5_toplayer3_1206/" + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/mix_coco_gqa_balance_raw_QformerMoE_train_qf_train_qt_linear_gate_5ex_top1_1loss_textinqf_training_epo5_toplayer3_1220_test/" amp: True resume_ckpt_path: null diff --git a/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_raw_0112.yaml b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_raw_0112.yaml new file mode 100644 index 0000000..afdb4eb --- /dev/null +++ b/minigpt4/projects/qformer_moe_vicuna/train/mix_qformer_moe_blip2_vicuna7b_data_raw_0112.yaml @@ -0,0 +1,125 @@ + # Copyright (c) 2022, salesforce.com, inc. + # All rights reserved. + # SPDX-License-Identifier: BSD-3-Clause + # For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause + +model: + arch: blip2_vicuna_instruct + model_type: vicuna7b_pretrain + load_pretrained: True + load_finetuned: False + vit_model: eva_clip_g + pretrained: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + # finetuned: "" + q_former_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/blip2/blip2_vicuna7b/blip2_pretrained_vicuna7b.pth" + + # vit encoder + image_size: 224 + drop_path_rate: 0 + use_grad_checkpoint: False + vit_precision: "fp16" + + # Q-Former + num_query_token: 32 + qformer_text_input: True + + # vicuna7b + llm_model: "/mnt/pfs-guan-ssai/nlu/wanghanzi/models/vicuna-7b-v1.1" + prompt: "" + max_txt_len: 256 + max_output_txt_len: 256 + + # freeze + freeze_vit: True + freeze_llm: True + freeze_qformer: False + freeze_t5_proj: False + + # moe + use_moeqformer: False + moebert_expert_num: 1 + moebert_route_method: "gate-sentence" + moebert_load_balance: 0.05 + moe_topk: 1 + +datasets: + gqa: # train: 943000, 12578, 12578) + type: balanced_sft_raw + batch_size: 16 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 50 + + ok_vqa: # train, valid (9009, 5046) + batch_size: 16 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 8 + + coco_vqa: # 658104 + batch_size: 16 + vis_processor: + train: + name: "blip2_image_train" + image_size: 224 + eval: + name: "blip2_image_eval" + image_size: 224 + text_processor: + train: + name: "blip_caption" + eval: + name: "blip_caption" + sample_ratio: 15 + +run: + task: instruction_tuning + # optimizer + lr_sched: "linear_warmup_cosine_lr" + # init_lr: 2e-5 + init_lr: 5e-5 + min_lr: 1e-6 + warmup_lr: 1e-6 + log_freq: 5 + save_freq: 1500 + + weight_decay: 0.05 + max_epoch: 8 + num_workers: 4 + warmup_steps: 600 + iters_per_epoch: 5000 + + seed: 42 + output_dir: "/mnt/pfs-guan-ssai/nlu/wanghanzi/experiments/blip2/vicuna7b/qformer_moe/mix_coco_gqa_1610k_raw_QformerMoE_train_qf_train_qt_1ex_top1_textinqf_epo8_lr5e5_seed42_0112/" + + amp: True + resume_ckpt_path: null + + evaluate: False + train_splits: ["train"] + valid_splits: ["val"] + + device: "cuda" + world_size: 1 + dist_url: "env://" + distributed: True \ No newline at end of file diff --git a/minigpt4/runners/runner_base.py b/minigpt4/runners/runner_base.py index 89413a3..8bc071b 100644 --- a/minigpt4/runners/runner_base.py +++ b/minigpt4/runners/runner_base.py @@ -110,6 +110,7 @@ class RunnerBase: else: p_wd.append(p) num_parameters += p.data.nelement() + # import pdb; pdb.set_trace() # 0107test logging.info("number of trainable parameters: %d" % num_parameters) optim_params = [ { diff --git a/minigpt4/tasks/base_task.py b/minigpt4/tasks/base_task.py index 3a39fc8..f0993ce 100644 --- a/minigpt4/tasks/base_task.py +++ b/minigpt4/tasks/base_task.py @@ -238,13 +238,17 @@ class BaseTask: with torch.cuda.amp.autocast(enabled=use_amp): loss = self.train_step(model=model, samples=samples) - + # after_train_step() if use_amp: + # torch.autograd.set_detect_anomaly(True) + # 反向传播时检测是否有异常值,定位code + # with torch.autograd.detect_anomaly(): scaler.scale(loss).backward() else: loss.backward() + # import pdb; pdb.set_trace() # 0107test # update gradients every accum_grad_iters iterations if (i + 1) % accum_grad_iters == 0: if use_amp: @@ -252,6 +256,9 @@ class BaseTask: scaler.update() else: optimizer.step() + + # import pdb; pdb.set_trace()# 0107test + optimizer.zero_grad() # if self.cfg.wandb_log: # if self.cfg.run_cfg.wandb_log: diff --git a/requirements.txt b/requirements.txt index cbfa260..0d7634c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,4 +44,6 @@ wheel visualizer tensorboard kmeans_pytorch -visual_genome \ No newline at end of file +visual_genome +gpustat +torchviz \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..6a67455 --- /dev/null +++ b/setup.py @@ -0,0 +1,36 @@ +""" + Copyright (c) 2022, salesforce.com, inc. + All rights reserved. + SPDX-License-Identifier: BSD-3-Clause + For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause +""" + +from setuptools import setup, find_namespace_packages +import platform + +DEPENDENCY_LINKS = [] +if platform.system() == "Windows": + DEPENDENCY_LINKS.append("https://download.pytorch.org/whl/torch_stable.html") + + +def fetch_requirements(filename): + with open(filename) as f: + return [ln.strip() for ln in f.read().split("\n")] + + +setup( + name="PromptMoE", + version="1.0.1", + author="Hanzi Wang", + description="PromptMoE & QformerMoE Based on LAVIS", + long_description=open("README.md", "r", encoding="utf-8").read(), + long_description_content_type="text/markdown", + keywords="Vision-Language, Multimodal, Image Captioning, Generative AI, Deep Learning, Library, PyTorch", + license="3-Clause BSD", + packages=find_namespace_packages(include="lavis.*"), + install_requires=fetch_requirements("requirements.txt"), + python_requires=">=3.7.0", + include_package_data=True, + dependency_links=DEPENDENCY_LINKS, + zip_safe=False, +) \ No newline at end of file diff --git a/test.pdf/backward_graph b/test.pdf/backward_graph new file mode 100644 index 0000000..7867fb1 --- /dev/null +++ b/test.pdf/backward_graph @@ -0,0 +1,5570 @@ +digraph { + graph [size="778.8,778.8"] + node [align=left fontname=monospace fontsize=10 height=0.2 ranksep=0.1 shape=box style=filled] + 140509988778688 [label=" + (1, 49, 768)" fillcolor=darkolivegreen1] + 140509588281712 [label=CatBackward0] + 140509588282912 -> 140509588281712 + 140509588282912 [label=IndexBackward0] + 140509588281808 -> 140509588282912 + 140509588281808 [label=SumBackward1] + 140509588283152 -> 140509588281808 + 140509588283152 [label=MulBackward0] + 140509588282864 -> 140509588283152 + 140509588282864 [label=CatBackward0] + 140509591316848 -> 140509588282864 + 140509591316848 [label=UnsqueezeBackward0] + 140509591314640 -> 140509591316848 + 140509591314640 [label=NativeLayerNormBackward0] + 140509591317376 -> 140509591314640 + 140509591317376 [label=AddBackward0] + 140509588312944 -> 140509591317376 + 140509588312944 [label=NativeDropoutBackward0] + 140509588313424 -> 140509588312944 + 140509588313424 [label=ViewBackward0] + 140509588313232 -> 140509588313424 + 140509588313232 [label=AddmmBackward0] + 140509588312560 -> 140509588313232 + 140509588312560 [label=ToCopyBackward0] + 140509591318384 -> 140509588312560 + 140509591260672 [label="encoder.layer.11.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591260672 -> 140509591318384 + 140509591318384 [label=AccumulateGrad] + 140509588313040 -> 140509588313232 + 140509588313040 [label=ViewBackward0] + 140509588312368 -> 140509588313040 + 140509588312368 [label=GeluBackward0] + 140509588312176 -> 140509588312368 + 140509588312176 [label=ViewBackward0] + 140509588313328 -> 140509588312176 + 140509588313328 [label=AddmmBackward0] + 140509588313520 -> 140509588313328 + 140509588313520 [label=ToCopyBackward0] + 140509588313808 -> 140509588313520 + 140509591261072 [label="encoder.layer.11.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591261072 -> 140509588313808 + 140509588313808 [label=AccumulateGrad] + 140509588313616 -> 140509588313328 + 140509588313616 [label=ViewBackward0] + 140509588314096 -> 140509588313616 + 140509588314096 [label=ToCopyBackward0] + 140509588312608 -> 140509588314096 + 140509588312608 [label=SliceBackward0] + 140509588314048 -> 140509588312608 + 140509588314048 [label=SliceBackward0] + 140509588314288 -> 140509588314048 + 140509588314288 [label=SliceBackward0] + 140509588314480 -> 140509588314288 + 140509588314480 [label=SliceBackward0] + 140509588314528 -> 140509588314480 + 140509588314528 [label=SliceBackward0] + 140509588314768 -> 140509588314528 + 140509588314768 [label=NativeLayerNormBackward0] + 140509588314960 -> 140509588314768 + 140509588314960 [label=AddBackward0] + 140509588315248 -> 140509588314960 + 140509588315248 [label=NativeDropoutBackward0] + 140509588315632 -> 140509588315248 + 140509588315632 [label=ViewBackward0] + 140509588315824 -> 140509588315632 + 140509588315824 [label=AddmmBackward0] + 140509588316016 -> 140509588315824 + 140509588316016 [label=ToCopyBackward0] + 140509588315968 -> 140509588316016 + 140509591290880 [label="encoder.layer.11.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509591290880 -> 140509588315968 + 140509588315968 [label=AccumulateGrad] + 140509588315728 -> 140509588315824 + 140509588315728 [label=ViewBackward0] + 140509588316112 -> 140509588315728 + 140509588316112 [label=ViewBackward0] + 140509588345136 -> 140509588316112 + 140509588345136 [label=CloneBackward0] + 140509588345184 -> 140509588345136 + 140509588345184 [label=PermuteBackward0] + 140509588345424 -> 140509588345184 + 140509588345424 [label=UnsafeViewBackward0] + 140509588345616 -> 140509588345424 + 140509588345616 [label=BmmBackward0] + 140509588345664 -> 140509588345616 + 140509588345664 [label=ReshapeAliasBackward0] + 140509588346192 -> 140509588345664 + 140509588346192 [label=ExpandBackward0] + 140509588346288 -> 140509588346192 + 140509588346288 [label=ToCopyBackward0] + 140509588346480 -> 140509588346288 + 140509588346480 [label=NativeDropoutBackward0] + 140509588346672 -> 140509588346480 + 140509588346672 [label=SoftmaxBackward0] + 140509588346768 -> 140509588346672 + 140509588346768 [label=AddBackward0] + 140509588346960 -> 140509588346768 + 140509588346960 [label=DivBackward0] + 140509588347152 -> 140509588346960 + 140509588347152 [label=UnsafeViewBackward0] + 140509588347248 -> 140509588347152 + 140509588347248 [label=BmmBackward0] + 140509588347440 -> 140509588347248 + 140509588347440 [label=UnsafeViewBackward0] + 140509588347536 -> 140509588347440 + 140509588347536 [label=CloneBackward0] + 140509588347584 -> 140509588347536 + 140509588347584 [label=ExpandBackward0] + 140509588347824 -> 140509588347584 + 140509588347824 [label=PermuteBackward0] + 140509588348016 -> 140509588347824 + 140509588348016 [label=ViewBackward0] + 140509588348064 -> 140509588348016 + 140509588348064 [label=ViewBackward0] + 140509588348304 -> 140509588348064 + 140509588348304 [label=AddmmBackward0] + 140509588348496 -> 140509588348304 + 140509588348496 [label=ToCopyBackward0] + 140509588348784 -> 140509588348496 + 140509591291680 [label="encoder.layer.11.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509591291680 -> 140509588348784 + 140509588348784 [label=AccumulateGrad] + 140509588348592 -> 140509588348304 + 140509588348592 [label=ViewBackward0] + 140509588348544 -> 140509588348592 + 140509588348544 [label=ToCopyBackward0] + 140509588315344 -> 140509588348544 + 140509588315344 [label=CatBackward0] + 140509588369568 -> 140509588315344 + 140509588369568 [label=SumBackward1] + 140509588370096 -> 140509588369568 + 140509588370096 [label=MulBackward0] + 140509588370192 -> 140509588370096 + 140509588370192 [label=CatBackward0] + 140509588370288 -> 140509588370192 + 140509588370288 [label=UnsqueezeBackward0] + 140509588370672 -> 140509588370288 + 140509588370672 [label=NativeLayerNormBackward0] + 140509588370864 -> 140509588370672 + 140509588370864 [label=AddBackward0] + 140509588371152 -> 140509588370864 + 140509588371152 [label=NativeDropoutBackward0] + 140509588371248 -> 140509588371152 + 140509588371248 [label=ViewBackward0] + 140509588371440 -> 140509588371248 + 140509588371440 [label=AddmmBackward0] + 140509588371488 -> 140509588371440 + 140509588371488 [label=ToCopyBackward0] + 140509588371920 -> 140509588371488 + 140509591285568 [label="encoder.layer.10.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591285568 -> 140509588371920 + 140509588371920 [label=AccumulateGrad] + 140509588371632 -> 140509588371440 + 140509588371632 [label=ViewBackward0] + 140509588372112 -> 140509588371632 + 140509588372112 [label=GeluBackward0] + 140509588372304 -> 140509588372112 + 140509588372304 [label=ViewBackward0] + 140509588372496 -> 140509588372304 + 140509588372496 [label=AddmmBackward0] + 140509588372592 -> 140509588372496 + 140509588372592 [label=ToCopyBackward0] + 140509588372976 -> 140509588372592 + 140509591285488 [label="encoder.layer.10.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591285488 -> 140509588372976 + 140509588372976 [label=AccumulateGrad] + 140509588372400 -> 140509588372496 + 140509588372400 [label=ViewBackward0] + 140509588372880 -> 140509588372400 + 140509588372880 [label=ToCopyBackward0] + 140509588370960 -> 140509588372880 + 140509588370960 [label=SliceBackward0] + 140509588373264 -> 140509588370960 + 140509588373264 [label=SliceBackward0] + 140509588373456 -> 140509588373264 + 140509588373456 [label=NativeLayerNormBackward0] + 140509588373360 -> 140509588373456 + 140509588373360 [label=AddBackward0] + 140509588402672 -> 140509588373360 + 140509588402672 [label=NativeDropoutBackward0] + 140509588402624 -> 140509588402672 + 140509588402624 [label=ViewBackward0] + 140509588402864 -> 140509588402624 + 140509588402864 [label=AddmmBackward0] + 140509588403056 -> 140509588402864 + 140509588403056 [label=ToCopyBackward0] + 140509588403344 -> 140509588403056 + 140509591293840 [label="encoder.layer.10.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509591293840 -> 140509588403344 + 140509588403344 [label=AccumulateGrad] + 140509588403152 -> 140509588402864 + 140509588403152 [label=ViewBackward0] + 140509588403632 -> 140509588403152 + 140509588403632 [label=ViewBackward0] + 140509588403728 -> 140509588403632 + 140509588403728 [label=CloneBackward0] + 140509588403920 -> 140509588403728 + 140509588403920 [label=PermuteBackward0] + 140509588404112 -> 140509588403920 + 140509588404112 [label=UnsafeViewBackward0] + 140509588404208 -> 140509588404112 + 140509588404208 [label=BmmBackward0] + 140509588404400 -> 140509588404208 + 140509588404400 [label=ReshapeAliasBackward0] + 140509588404496 -> 140509588404400 + 140509588404496 [label=ExpandBackward0] + 140509588404544 -> 140509588404496 + 140509588404544 [label=ToCopyBackward0] + 140509588404784 -> 140509588404544 + 140509588404784 [label=NativeDropoutBackward0] + 140509588404976 -> 140509588404784 + 140509588404976 [label=SoftmaxBackward0] + 140509588405024 -> 140509588404976 + 140509588405024 [label=AddBackward0] + 140509588405264 -> 140509588405024 + 140509588405264 [label=DivBackward0] + 140509588405456 -> 140509588405264 + 140509588405456 [label=UnsafeViewBackward0] + 140509588405504 -> 140509588405456 + 140509588405504 [label=BmmBackward0] + 140509588405744 -> 140509588405504 + 140509588405744 [label=UnsafeViewBackward0] + 140509588406128 -> 140509588405744 + 140509588406128 [label=CloneBackward0] + 140509588405984 -> 140509588406128 + 140509588405984 [label=ExpandBackward0] + 140509588427056 -> 140509588405984 + 140509588427056 [label=PermuteBackward0] + 140509588427152 -> 140509588427056 + 140509588427152 [label=ViewBackward0] + 140509588427344 -> 140509588427152 + 140509588427344 [label=ViewBackward0] + 140509588427536 -> 140509588427344 + 140509588427536 [label=AddmmBackward0] + 140509588427632 -> 140509588427536 + 140509588427632 [label=ToCopyBackward0] + 140509588428016 -> 140509588427632 + 140509591312160 [label="encoder.layer.10.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509591312160 -> 140509588428016 + 140509588428016 [label=AccumulateGrad] + 140509588427440 -> 140509588427536 + 140509588427440 [label=ViewBackward0] + 140509588427920 -> 140509588427440 + 140509588427920 [label=ToCopyBackward0] + 140509588402384 -> 140509588427920 + 140509588402384 [label=SliceBackward0] + 140509588428304 -> 140509588402384 + 140509588428304 [label=SliceBackward0] + 140509588428496 -> 140509588428304 + 140509588428496 [label=SliceBackward0] + 140509588428592 -> 140509588428496 + 140509588428592 [label=NativeLayerNormBackward0] + 140509588428784 -> 140509588428592 + 140509588428784 [label=AddBackward0] + 140509588429072 -> 140509588428784 + 140509588429072 [label=NativeDropoutBackward0] + 140509588429168 -> 140509588429072 + 140509588429168 [label=ViewBackward0] + 140509588429360 -> 140509588429168 + 140509588429360 [label=AddmmBackward0] + 140509588429408 -> 140509588429360 + 140509588429408 [label=ToCopyBackward0] + 140509588429840 -> 140509588429408 + 140509591312960 [label="encoder.layer.10.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509591312960 -> 140509588429840 + 140509588429840 [label=AccumulateGrad] + 140509588429552 -> 140509588429360 + 140509588429552 [label=ViewBackward0] + 140509588430032 -> 140509588429552 + 140509588430032 [label=ViewBackward0] + 140509588430224 -> 140509588430032 + 140509588430224 [label=CloneBackward0] + 140509588430416 -> 140509588430224 + 140509588430416 [label=PermuteBackward0] + 140509588430512 -> 140509588430416 + 140509588430512 [label=UnsafeViewBackward0] + 140509588430704 -> 140509588430512 + 140509588430704 [label=BmmBackward0] + 140509588430608 -> 140509588430704 + 140509588430608 [label=ReshapeAliasBackward0] + 140509588459728 -> 140509588430608 + 140509588459728 [label=ExpandBackward0] + 140509588459824 -> 140509588459728 + 140509588459824 [label=ToCopyBackward0] + 140509588460016 -> 140509588459824 + 140509588460016 [label=NativeDropoutBackward0] + 140509588460064 -> 140509588460016 + 140509588460064 [label=SoftmaxBackward0] + 140509588460304 -> 140509588460064 + 140509588460304 [label=AddBackward0] + 140509588460496 -> 140509588460304 + 140509588460496 [label=DivBackward0] + 140509588460544 -> 140509588460496 + 140509588460544 [label=UnsafeViewBackward0] + 140509588460784 -> 140509588460544 + 140509588460784 [label=BmmBackward0] + 140509588460976 -> 140509588460784 + 140509588460976 [label=UnsafeViewBackward0] + 140509588461360 -> 140509588460976 + 140509588461360 [label=CloneBackward0] + 140509588461552 -> 140509588461360 + 140509588461552 [label=ExpandBackward0] + 140509588461648 -> 140509588461552 + 140509588461648 [label=PermuteBackward0] + 140509588461840 -> 140509588461648 + 140509588461840 [label=ViewBackward0] + 140509588462032 -> 140509588461840 + 140509588462032 [label=ViewBackward0] + 140509588462128 -> 140509588462032 + 140509588462128 [label=AddmmBackward0] + 140509588462320 -> 140509588462128 + 140509588462320 [label=ToCopyBackward0] + 140509588462608 -> 140509588462320 + 140509591313360 [label="encoder.layer.10.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509591313360 -> 140509588462608 + 140509588462608 [label=AccumulateGrad] + 140509588461984 -> 140509588462128 + 140509588461984 [label=ViewBackward0] + 140509588462464 -> 140509588461984 + 140509588462464 [label=ToCopyBackward0] + 140509588428880 -> 140509588462464 + 140509588428880 [label=CatBackward0] + 140509588462992 -> 140509588428880 + 140509588462992 [label=SumBackward1] + 140509588462944 -> 140509588462992 + 140509588462944 [label=MulBackward0] + 140509588463184 -> 140509588462944 + 140509588463184 [label=CatBackward0] + 140509588463568 -> 140509588463184 + 140509588463568 [label=UnsqueezeBackward0] + 140509588463424 -> 140509588463568 + 140509588463424 [label=NativeLayerNormBackward0] + 140509587960112 -> 140509588463424 + 140509587960112 [label=AddBackward0] + 140509587960400 -> 140509587960112 + 140509587960400 [label=NativeDropoutBackward0] + 140509587960784 -> 140509587960400 + 140509587960784 [label=ViewBackward0] + 140509587960976 -> 140509587960784 + 140509587960976 [label=AddmmBackward0] + 140509587961168 -> 140509587960976 + 140509587961168 [label=ToCopyBackward0] + 140509587961456 -> 140509587961168 + 140509591311680 [label="encoder.layer.9.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591311680 -> 140509587961456 + 140509587961456 [label=AccumulateGrad] + 140509587960880 -> 140509587960976 + 140509587960880 [label=ViewBackward0] + 140509587961360 -> 140509587960880 + 140509587961360 [label=GeluBackward0] + 140509587961552 -> 140509587961360 + 140509587961552 [label=ViewBackward0] + 140509587961600 -> 140509587961552 + 140509587961600 [label=AddmmBackward0] + 140509587961840 -> 140509587961600 + 140509587961840 [label=ToCopyBackward0] + 140509587962080 -> 140509587961840 + 140509591312000 [label="encoder.layer.9.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591312000 -> 140509587962080 + 140509587962080 [label=AccumulateGrad] + 140509587961936 -> 140509587961600 + 140509587961936 [label=ViewBackward0] + 140509587962416 -> 140509587961936 + 140509587962416 [label=ToCopyBackward0] + 140509587960496 -> 140509587962416 + 140509587960496 [label=SliceBackward0] + 140509587962512 -> 140509587960496 + 140509587962512 [label=SliceBackward0] + 140509587962560 -> 140509587962512 + 140509587962560 [label=SliceBackward0] + 140509587962800 -> 140509587962560 + 140509587962800 [label=SliceBackward0] + 140509587962992 -> 140509587962800 + 140509587962992 [label=SliceBackward0] + 140509587963040 -> 140509587962992 + 140509587963040 [label=NativeLayerNormBackward0] + 140509587963280 -> 140509587963040 + 140509587963280 [label=AddBackward0] + 140509587963520 -> 140509587963280 + 140509587963520 [label=NativeDropoutBackward0] + 140509587963760 -> 140509587963520 + 140509587963760 [label=ViewBackward0] + 140509587988784 -> 140509587963760 + 140509587988784 [label=AddmmBackward0] + 140509587988976 -> 140509587988784 + 140509587988976 [label=ToCopyBackward0] + 140509587989264 -> 140509587988976 + 140509591321152 [label="encoder.layer.9.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509591321152 -> 140509587989264 + 140509587989264 [label=AccumulateGrad] + 140509587988640 -> 140509587988784 + 140509587988640 [label=ViewBackward0] + 140509587989120 -> 140509587988640 + 140509587989120 [label=ViewBackward0] + 140509587989360 -> 140509587989120 + 140509587989360 [label=CloneBackward0] + 140509587989552 -> 140509587989360 + 140509587989552 [label=PermuteBackward0] + 140509587989600 -> 140509587989552 + 140509587989600 [label=UnsafeViewBackward0] + 140509587989840 -> 140509587989600 + 140509587989840 [label=BmmBackward0] + 140509587990032 -> 140509587989840 + 140509587990032 [label=ReshapeAliasBackward0] + 140509587990416 -> 140509587990032 + 140509587990416 [label=ExpandBackward0] + 140509587990608 -> 140509587990416 + 140509587990608 [label=ToCopyBackward0] + 140509587990704 -> 140509587990608 + 140509587990704 [label=NativeDropoutBackward0] + 140509587990896 -> 140509587990704 + 140509587990896 [label=SoftmaxBackward0] + 140509587991088 -> 140509587990896 + 140509587991088 [label=AddBackward0] + 140509587991184 -> 140509587991088 + 140509587991184 [label=DivBackward0] + 140509587991376 -> 140509587991184 + 140509587991376 [label=UnsafeViewBackward0] + 140509587991568 -> 140509587991376 + 140509587991568 [label=BmmBackward0] + 140509587991664 -> 140509587991568 + 140509587991664 [label=UnsafeViewBackward0] + 140509587991760 -> 140509587991664 + 140509587991760 [label=CloneBackward0] + 140509587991952 -> 140509587991760 + 140509587991952 [label=ExpandBackward0] + 140509587992000 -> 140509587991952 + 140509587992000 [label=PermuteBackward0] + 140509587992240 -> 140509587992000 + 140509587992240 [label=ViewBackward0] + 140509587992432 -> 140509587992240 + 140509587992432 [label=ViewBackward0] + 140509587991520 -> 140509587992432 + 140509587991520 [label=AddmmBackward0] + 140509588021456 -> 140509587991520 + 140509588021456 [label=ToCopyBackward0] + 140509588021696 -> 140509588021456 + 140509591321952 [label="encoder.layer.9.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509591321952 -> 140509588021696 + 140509588021696 [label=AccumulateGrad] + 140509588021552 -> 140509587991520 + 140509588021552 [label=ViewBackward0] + 140509588022032 -> 140509588021552 + 140509588022032 [label=ToCopyBackward0] + 140509587963664 -> 140509588022032 + 140509587963664 [label=CatBackward0] + 140509588022128 -> 140509587963664 + 140509588022128 [label=SumBackward1] + 140509588022512 -> 140509588022128 + 140509588022512 [label=MulBackward0] + 140509588022704 -> 140509588022512 + 140509588022704 [label=CatBackward0] + 140509588022656 -> 140509588022704 + 140509588022656 [label=UnsqueezeBackward0] + 140509588023184 -> 140509588022656 + 140509588023184 [label=NativeLayerNormBackward0] + 140509588023280 -> 140509588023184 + 140509588023280 [label=AddBackward0] + 140509588023664 -> 140509588023280 + 140509588023664 [label=NativeDropoutBackward0] + 140509588023616 -> 140509588023664 + 140509588023616 [label=ViewBackward0] + 140509588023856 -> 140509588023616 + 140509588023856 [label=AddmmBackward0] + 140509588024048 -> 140509588023856 + 140509588024048 [label=ToCopyBackward0] + 140509588024336 -> 140509588024048 + 140509591320272 [label="encoder.layer.8.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591320272 -> 140509588024336 + 140509588024336 [label=AccumulateGrad] + 140509588024144 -> 140509588023856 + 140509588024144 [label=ViewBackward0] + 140509588024624 -> 140509588024144 + 140509588024624 [label=GeluBackward0] + 140509588024720 -> 140509588024624 + 140509588024720 [label=ViewBackward0] + 140509588024912 -> 140509588024720 + 140509588024912 [label=AddmmBackward0] + 140509588025104 -> 140509588024912 + 140509588025104 [label=ToCopyBackward0] + 140509588025056 -> 140509588025104 + 140509591320192 [label="encoder.layer.8.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591320192 -> 140509588025056 + 140509588025056 [label=AccumulateGrad] + 140509588024816 -> 140509588024912 + 140509588024816 [label=ViewBackward0] + 140509588025200 -> 140509588024816 + 140509588025200 [label=ToCopyBackward0] + 140509588023376 -> 140509588025200 + 140509588023376 [label=SliceBackward0] + 140509588046224 -> 140509588023376 + 140509588046224 [label=SliceBackward0] + 140509588046416 -> 140509588046224 + 140509588046416 [label=NativeLayerNormBackward0] + 140509588046608 -> 140509588046416 + 140509588046608 [label=AddBackward0] + 140509588046800 -> 140509588046608 + 140509588046800 [label=NativeDropoutBackward0] + 140509588047184 -> 140509588046800 + 140509588047184 [label=ViewBackward0] + 140509588047376 -> 140509588047184 + 140509588047376 [label=AddmmBackward0] + 140509588047568 -> 140509588047376 + 140509588047568 [label=ToCopyBackward0] + 140509588047856 -> 140509588047568 + 140509591341312 [label="encoder.layer.8.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509591341312 -> 140509588047856 + 140509588047856 [label=AccumulateGrad] + 140509588047280 -> 140509588047376 + 140509588047280 [label=ViewBackward0] + 140509588047760 -> 140509588047280 + 140509588047760 [label=ViewBackward0] + 140509588047952 -> 140509588047760 + 140509588047952 [label=CloneBackward0] + 140509588048000 -> 140509588047952 + 140509588048000 [label=PermuteBackward0] + 140509588048240 -> 140509588048000 + 140509588048240 [label=UnsafeViewBackward0] + 140509588048432 -> 140509588048240 + 140509588048432 [label=BmmBackward0] + 140509588048480 -> 140509588048432 + 140509588048480 [label=ReshapeAliasBackward0] + 140509588049008 -> 140509588048480 + 140509588049008 [label=ExpandBackward0] + 140509588049104 -> 140509588049008 + 140509588049104 [label=ToCopyBackward0] + 140509588049296 -> 140509588049104 + 140509588049296 [label=NativeDropoutBackward0] + 140509588049488 -> 140509588049296 + 140509588049488 [label=SoftmaxBackward0] + 140509588049584 -> 140509588049488 + 140509588049584 [label=AddBackward0] + 140509588049776 -> 140509588049584 + 140509588049776 [label=DivBackward0] + 140509588049680 -> 140509588049776 + 140509588049680 [label=UnsafeViewBackward0] + 140509588074656 -> 140509588049680 + 140509588074656 [label=BmmBackward0] + 140509588074896 -> 140509588074656 + 140509588074896 [label=UnsafeViewBackward0] + 140509588074992 -> 140509588074896 + 140509588074992 [label=CloneBackward0] + 140509588075040 -> 140509588074992 + 140509588075040 [label=ExpandBackward0] + 140509588075280 -> 140509588075040 + 140509588075280 [label=PermuteBackward0] + 140509588075472 -> 140509588075280 + 140509588075472 [label=ViewBackward0] + 140509588075520 -> 140509588075472 + 140509588075520 [label=ViewBackward0] + 140509588075760 -> 140509588075520 + 140509588075760 [label=AddmmBackward0] + 140509588075952 -> 140509588075760 + 140509588075952 [label=ToCopyBackward0] + 140509588076240 -> 140509588075952 + 140509591342432 [label="encoder.layer.8.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509591342432 -> 140509588076240 + 140509588076240 [label=AccumulateGrad] + 140509588076048 -> 140509588075760 + 140509588076048 [label=ViewBackward0] + 140509588076528 -> 140509588076048 + 140509588076528 [label=ToCopyBackward0] + 140509588046896 -> 140509588076528 + 140509588046896 [label=SliceBackward0] + 140509588076480 -> 140509588046896 + 140509588076480 [label=SliceBackward0] + 140509588076720 -> 140509588076480 + 140509588076720 [label=SliceBackward0] + 140509588076912 -> 140509588076720 + 140509588076912 [label=NativeLayerNormBackward0] + 140509588076960 -> 140509588076912 + 140509588076960 [label=AddBackward0] + 140509588077392 -> 140509588076960 + 140509588077392 [label=NativeDropoutBackward0] + 140509588077776 -> 140509588077392 + 140509588077776 [label=ViewBackward0] + 140509588077968 -> 140509588077776 + 140509588077968 [label=AddmmBackward0] + 140509588078064 -> 140509588077968 + 140509588078064 [label=ToCopyBackward0] + 140509588078448 -> 140509588078064 + 140509590823056 [label="encoder.layer.8.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590823056 -> 140509588078448 + 140509588078448 [label=AccumulateGrad] + 140509588077872 -> 140509588077968 + 140509588077872 [label=ViewBackward0] + 140509588078352 -> 140509588077872 + 140509588078352 [label=ViewBackward0] + 140509588078400 -> 140509588078352 + 140509588078400 [label=CloneBackward0] + 140509588078160 -> 140509588078400 + 140509588078160 [label=PermuteBackward0] + 140509588103472 -> 140509588078160 + 140509588103472 [label=UnsafeViewBackward0] + 140509588103520 -> 140509588103472 + 140509588103520 [label=BmmBackward0] + 140509588103760 -> 140509588103520 + 140509588103760 [label=ReshapeAliasBackward0] + 140509588104144 -> 140509588103760 + 140509588104144 [label=ExpandBackward0] + 140509588104336 -> 140509588104144 + 140509588104336 [label=ToCopyBackward0] + 140509588104528 -> 140509588104336 + 140509588104528 [label=NativeDropoutBackward0] + 140509588104624 -> 140509588104528 + 140509588104624 [label=SoftmaxBackward0] + 140509588104816 -> 140509588104624 + 140509588104816 [label=AddBackward0] + 140509588105008 -> 140509588104816 + 140509588105008 [label=DivBackward0] + 140509588105104 -> 140509588105008 + 140509588105104 [label=UnsafeViewBackward0] + 140509588105296 -> 140509588105104 + 140509588105296 [label=BmmBackward0] + 140509588105488 -> 140509588105296 + 140509588105488 [label=UnsafeViewBackward0] + 140509588105440 -> 140509588105488 + 140509588105440 [label=CloneBackward0] + 140509588105680 -> 140509588105440 + 140509588105680 [label=ExpandBackward0] + 140509588105872 -> 140509588105680 + 140509588105872 [label=PermuteBackward0] + 140509588105920 -> 140509588105872 + 140509588105920 [label=ViewBackward0] + 140509588106160 -> 140509588105920 + 140509588106160 [label=ViewBackward0] + 140509588106352 -> 140509588106160 + 140509588106352 [label=AddmmBackward0] + 140509588106400 -> 140509588106352 + 140509588106400 [label=ToCopyBackward0] + 140509588106832 -> 140509588106400 + 140509590823536 [label="encoder.layer.8.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590823536 -> 140509588106832 + 140509588106832 [label=AccumulateGrad] + 140509588106544 -> 140509588106352 + 140509588106544 [label=ViewBackward0] + 140509588107024 -> 140509588106544 + 140509588107024 [label=ToCopyBackward0] + 140509588077488 -> 140509588107024 + 140509588077488 [label=CatBackward0] + 140509588107120 -> 140509588077488 + 140509588107120 [label=SumBackward1] + 140509588136240 -> 140509588107120 + 140509588136240 [label=MulBackward0] + 140509588136432 -> 140509588136240 + 140509588136432 [label=CatBackward0] + 140509588136528 -> 140509588136432 + 140509588136528 [label=UnsqueezeBackward0] + 140509588136912 -> 140509588136528 + 140509588136912 [label=NativeLayerNormBackward0] + 140509588137104 -> 140509588136912 + 140509588137104 [label=AddBackward0] + 140509588137392 -> 140509588137104 + 140509588137392 [label=NativeDropoutBackward0] + 140509588137488 -> 140509588137392 + 140509588137488 [label=ViewBackward0] + 140509588137536 -> 140509588137488 + 140509588137536 [label=AddmmBackward0] + 140509588137776 -> 140509588137536 + 140509588137776 [label=ToCopyBackward0] + 140509588138016 -> 140509588137776 + 140509591341952 [label="encoder.layer.7.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591341952 -> 140509588138016 + 140509588138016 [label=AccumulateGrad] + 140509588137872 -> 140509588137536 + 140509588137872 [label=ViewBackward0] + 140509588138352 -> 140509588137872 + 140509588138352 [label=GeluBackward0] + 140509588138544 -> 140509588138352 + 140509588138544 [label=ViewBackward0] + 140509588138640 -> 140509588138544 + 140509588138640 [label=AddmmBackward0] + 140509588138832 -> 140509588138640 + 140509588138832 [label=ToCopyBackward0] + 140509588139120 -> 140509588138832 + 140509591342272 [label="encoder.layer.7.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591342272 -> 140509588139120 + 140509588139120 [label=AccumulateGrad] + 140509588138496 -> 140509588138640 + 140509588138496 [label=ViewBackward0] + 140509588138976 -> 140509588138496 + 140509588138976 [label=ToCopyBackward0] + 140509588137056 -> 140509588138976 + 140509588137056 [label=SliceBackward0] + 140509588139504 -> 140509588137056 + 140509588139504 [label=SliceBackward0] + 140509588139600 -> 140509588139504 + 140509588139600 [label=SliceBackward0] + 140509588139792 -> 140509588139600 + 140509588139792 [label=SliceBackward0] + 140509588139984 -> 140509588139792 + 140509588139984 [label=SliceBackward0] + 140509588139888 -> 140509588139984 + 140509588139888 [label=NativeLayerNormBackward0] + 140509588164912 -> 140509588139888 + 140509588164912 [label=AddBackward0] + 140509588165200 -> 140509588164912 + 140509588165200 [label=NativeDropoutBackward0] + 140509588165296 -> 140509588165200 + 140509588165296 [label=ViewBackward0] + 140509588165488 -> 140509588165296 + 140509588165488 [label=AddmmBackward0] + 140509588165536 -> 140509588165488 + 140509588165536 [label=ToCopyBackward0] + 140509588165968 -> 140509588165536 + 140509590839360 [label="encoder.layer.7.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590839360 -> 140509588165968 + 140509588165968 [label=AccumulateGrad] + 140509588165680 -> 140509588165488 + 140509588165680 [label=ViewBackward0] + 140509588166160 -> 140509588165680 + 140509588166160 [label=ViewBackward0] + 140509588166352 -> 140509588166160 + 140509588166352 [label=CloneBackward0] + 140509588166544 -> 140509588166352 + 140509588166544 [label=PermuteBackward0] + 140509588166640 -> 140509588166544 + 140509588166640 [label=UnsafeViewBackward0] + 140509588166832 -> 140509588166640 + 140509588166832 [label=BmmBackward0] + 140509588167024 -> 140509588166832 + 140509588167024 [label=ReshapeAliasBackward0] + 140509588166976 -> 140509588167024 + 140509588166976 [label=ExpandBackward0] + 140509588167216 -> 140509588166976 + 140509588167216 [label=ToCopyBackward0] + 140509588167408 -> 140509588167216 + 140509588167408 [label=NativeDropoutBackward0] + 140509588167456 -> 140509588167408 + 140509588167456 [label=SoftmaxBackward0] + 140509588167696 -> 140509588167456 + 140509588167696 [label=AddBackward0] + 140509588167888 -> 140509588167696 + 140509588167888 [label=DivBackward0] + 140509588167936 -> 140509588167888 + 140509588167936 [label=UnsafeViewBackward0] + 140509588168176 -> 140509588167936 + 140509588168176 [label=BmmBackward0] + 140509588168368 -> 140509588168176 + 140509588168368 [label=UnsafeViewBackward0] + 140509588168416 -> 140509588168368 + 140509588168416 [label=CloneBackward0] + 140509588193584 -> 140509588168416 + 140509588193584 [label=ExpandBackward0] + 140509588193680 -> 140509588193584 + 140509588193680 [label=PermuteBackward0] + 140509588193872 -> 140509588193680 + 140509588193872 [label=ViewBackward0] + 140509588194064 -> 140509588193872 + 140509588194064 [label=ViewBackward0] + 140509588194160 -> 140509588194064 + 140509588194160 [label=AddmmBackward0] + 140509588194352 -> 140509588194160 + 140509588194352 [label=ToCopyBackward0] + 140509588194640 -> 140509588194352 + 140509590840320 [label="encoder.layer.7.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590840320 -> 140509588194640 + 140509588194640 [label=AccumulateGrad] + 140509588194016 -> 140509588194160 + 140509588194016 [label=ViewBackward0] + 140509588194496 -> 140509588194016 + 140509588194496 [label=ToCopyBackward0] + 140509588165008 -> 140509588194496 + 140509588165008 [label=CatBackward0] + 140509588195024 -> 140509588165008 + 140509588195024 [label=SumBackward1] + 140509588194976 -> 140509588195024 + 140509588194976 [label=MulBackward0] + 140509588195216 -> 140509588194976 + 140509588195216 [label=CatBackward0] + 140509588195600 -> 140509588195216 + 140509588195600 [label=UnsqueezeBackward0] + 140509588195696 -> 140509588195600 + 140509588195696 [label=NativeLayerNormBackward0] + 140509588195888 -> 140509588195696 + 140509588195888 [label=AddBackward0] + 140509588196176 -> 140509588195888 + 140509588196176 [label=NativeDropoutBackward0] + 140509588196560 -> 140509588196176 + 140509588196560 [label=ViewBackward0] + 140509588196752 -> 140509588196560 + 140509588196752 [label=AddmmBackward0] + 140509588196944 -> 140509588196752 + 140509588196944 [label=ToCopyBackward0] + 140509588197232 -> 140509588196944 + 140509590825776 [label="encoder.layer.6.experts.experts.0.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590825776 -> 140509588197232 + 140509588197232 [label=AccumulateGrad] + 140509588196656 -> 140509588196752 + 140509588196656 [label=ViewBackward0] + 140509588197040 -> 140509588196656 + 140509588197040 [label=GeluBackward0] + 140509588196896 -> 140509588197040 + 140509588196896 [label=ViewBackward0] + 140509587696464 -> 140509588196896 + 140509587696464 [label=AddmmBackward0] + 140509587696368 -> 140509587696464 + 140509587696368 [label=ToCopyBackward0] + 140509587693680 -> 140509587696368 + 140509590826256 [label="encoder.layer.6.experts.experts.0.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590826256 -> 140509587693680 + 140509587693680 [label=AccumulateGrad] + 140509587696752 -> 140509587696464 + 140509587696752 [label=ViewBackward0] + 140509587693728 -> 140509587696752 + 140509587693728 [label=ToCopyBackward0] + 140509588196272 -> 140509587693728 + 140509588196272 [label=ViewBackward0] + 140509587693872 -> 140509588196272 + 140509587693872 [label=CloneBackward0] + 140509587694064 -> 140509587693872 + 140509587694064 [label=ExpandBackward0] + 140509587694112 -> 140509587694064 + 140509587694112 [label=UnsqueezeBackward0] + 140509587694352 -> 140509587694112 + 140509587694352 [label=SliceBackward0] + 140509587694544 -> 140509587694352 + 140509587694544 [label=SliceBackward0] + 140509587694592 -> 140509587694544 + 140509587694592 [label=NativeLayerNormBackward0] + 140509587694832 -> 140509587694592 + 140509587694832 [label=AddBackward0] + 140509587695072 -> 140509587694832 + 140509587695072 [label=NativeDropoutBackward0] + 140509587695408 -> 140509587695072 + 140509587695408 [label=ViewBackward0] + 140509587695600 -> 140509587695408 + 140509587695600 [label=AddmmBackward0] + 140509587697232 -> 140509587695600 + 140509587697232 [label=ToCopyBackward0] + 140509587696992 -> 140509587697232 + 140509590842480 [label="encoder.layer.6.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590842480 -> 140509587696992 + 140509587696992 [label=AccumulateGrad] + 140509587697472 -> 140509587695600 + 140509587697472 [label=ViewBackward0] + 140509587697616 -> 140509587697472 + 140509587697616 [label=ViewBackward0] + 140509587696272 -> 140509587697616 + 140509587696272 [label=CloneBackward0] + 140509587696944 -> 140509587696272 + 140509587696944 [label=PermuteBackward0] + 140509587696512 -> 140509587696944 + 140509587696512 [label=UnsafeViewBackward0] + 140509587695984 -> 140509587696512 + 140509587695984 [label=BmmBackward0] + 140509587696032 -> 140509587695984 + 140509587696032 [label=ReshapeAliasBackward0] + 140509587852640 -> 140509587696032 + 140509587852640 [label=ExpandBackward0] + 140509587852544 -> 140509587852640 + 140509587852544 [label=ToCopyBackward0] + 140509587852448 -> 140509587852544 + 140509587852448 [label=NativeDropoutBackward0] + 140509587852352 -> 140509587852448 + 140509587852352 [label=SoftmaxBackward0] + 140509587852256 -> 140509587852352 + 140509587852256 [label=AddBackward0] + 140509587852160 -> 140509587852256 + 140509587852160 [label=DivBackward0] + 140509587852064 -> 140509587852160 + 140509587852064 [label=UnsafeViewBackward0] + 140509587851968 -> 140509587852064 + 140509587851968 [label=BmmBackward0] + 140509587851872 -> 140509587851968 + 140509587851872 [label=ReshapeAliasBackward0] + 140509587851824 -> 140509587851872 + 140509587851824 [label=ExpandBackward0] + 140509587851728 -> 140509587851824 + 140509587851728 [label=PermuteBackward0] + 140509587851632 -> 140509587851728 + 140509587851632 [label=ViewBackward0] + 140509587851536 -> 140509587851632 + 140509587851536 [label=ViewBackward0] + 140509587851440 -> 140509587851536 + 140509587851440 [label=AddmmBackward0] + 140509587851344 -> 140509587851440 + 140509587851344 [label=ToCopyBackward0] + 140509587851152 -> 140509587851344 + 140509590843200 [label="encoder.layer.6.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509590843200 -> 140509587851152 + 140509587851152 [label=AccumulateGrad] + 140509587851296 -> 140509587851440 + 140509587851296 [label=ViewBackward0] + 140509587851008 -> 140509587851296 + 140509587851008 [label=ToCopyBackward0] + 140509587695120 -> 140509587851008 + 140509587695120 [label=SliceBackward0] + 140509587850960 -> 140509587695120 + 140509587850960 [label=SliceBackward0] + 140509587850864 -> 140509587850960 + 140509587850864 [label=SliceBackward0] + 140509587850768 -> 140509587850864 + 140509587850768 [label=NativeLayerNormBackward0] + 140509587850672 -> 140509587850768 + 140509587850672 [label=AddBackward0] + 140509587850480 -> 140509587850672 + 140509587850480 [label=NativeDropoutBackward0] + 140509587850240 -> 140509587850480 + 140509587850240 [label=ViewBackward0] + 140509587850144 -> 140509587850240 + 140509587850144 [label=AddmmBackward0] + 140509587850048 -> 140509587850144 + 140509587850048 [label=ToCopyBackward0] + 140509587849856 -> 140509587850048 + 140509590856064 [label="encoder.layer.6.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590856064 -> 140509587849856 + 140509587849856 [label=AccumulateGrad] + 140509587850192 -> 140509587850144 + 140509587850192 [label=ViewBackward0] + 140509587849904 -> 140509587850192 + 140509587849904 [label=ViewBackward0] + 140509587849808 -> 140509587849904 + 140509587849808 [label=CloneBackward0] + 140509587849712 -> 140509587849808 + 140509587849712 [label=PermuteBackward0] + 140509587849616 -> 140509587849712 + 140509587849616 [label=UnsafeViewBackward0] + 140509587849520 -> 140509587849616 + 140509587849520 [label=BmmBackward0] + 140509587849424 -> 140509587849520 + 140509587849424 [label=ReshapeAliasBackward0] + 140509587852976 -> 140509587849424 + 140509587852976 [label=ExpandBackward0] + 140509587853072 -> 140509587852976 + 140509587853072 [label=ToCopyBackward0] + 140509587853168 -> 140509587853072 + 140509587853168 [label=NativeDropoutBackward0] + 140509587853264 -> 140509587853168 + 140509587853264 [label=SoftmaxBackward0] + 140509587849280 -> 140509587853264 + 140509587849280 [label=AddBackward0] + 140509587558608 -> 140509587849280 + 140509587558608 [label=DivBackward0] + 140509587558704 -> 140509587558608 + 140509587558704 [label=UnsafeViewBackward0] + 140509587558800 -> 140509587558704 + 140509587558800 [label=BmmBackward0] + 140509587558896 -> 140509587558800 + 140509587558896 [label=ReshapeAliasBackward0] + 140509587559040 -> 140509587558896 + 140509587559040 [label=ExpandBackward0] + 140509587559136 -> 140509587559040 + 140509587559136 [label=PermuteBackward0] + 140509587559232 -> 140509587559136 + 140509587559232 [label=ViewBackward0] + 140509587559328 -> 140509587559232 + 140509587559328 [label=ViewBackward0] + 140509587559424 -> 140509587559328 + 140509587559424 [label=AddmmBackward0] + 140509587559520 -> 140509587559424 + 140509587559520 [label=ToCopyBackward0] + 140509587559712 -> 140509587559520 + 140509590856784 [label="encoder.layer.6.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590856784 -> 140509587559712 + 140509587559712 [label=AccumulateGrad] + 140509587559472 -> 140509587559424 + 140509587559472 [label=ViewBackward0] + 140509587559760 -> 140509587559472 + 140509587559760 [label=ToCopyBackward0] + 140509587850432 -> 140509587559760 + 140509587850432 [label=CatBackward0] + 140509587559904 -> 140509587850432 + 140509587559904 [label=NativeLayerNormBackward0] + 140509587560048 -> 140509587559904 + 140509587560048 [label=AddBackward0] + 140509587560240 -> 140509587560048 + 140509587560240 [label=NativeDropoutBackward0] + 140509587560384 -> 140509587560240 + 140509587560384 [label=ViewBackward0] + 140509587560480 -> 140509587560384 + 140509587560480 [label=AddmmBackward0] + 140509587560576 -> 140509587560480 + 140509587560576 [label=ToCopyBackward0] + 140509587560768 -> 140509587560576 + 140509590857264 [label="encoder.layer.5.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590857264 -> 140509587560768 + 140509587560768 [label=AccumulateGrad] + 140509587560528 -> 140509587560480 + 140509587560528 [label=ViewBackward0] + 140509587560816 -> 140509587560528 + 140509587560816 [label=GeluBackward0] + 140509587560912 -> 140509587560816 + 140509587560912 [label=ViewBackward0] + 140509587561008 -> 140509587560912 + 140509587561008 [label=AddmmBackward0] + 140509587561104 -> 140509587561008 + 140509587561104 [label=ToCopyBackward0] + 140509587561296 -> 140509587561104 + 140509590857504 [label="encoder.layer.5.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590857504 -> 140509587561296 + 140509587561296 [label=AccumulateGrad] + 140509587561056 -> 140509587561008 + 140509587561056 [label=ViewBackward0] + 140509587561344 -> 140509587561056 + 140509587561344 [label=ToCopyBackward0] + 140509587560192 -> 140509587561344 + 140509587560192 [label=SliceBackward0] + 140509587561488 -> 140509587560192 + 140509587561488 [label=SliceBackward0] + 140509587561584 -> 140509587561488 + 140509587561584 [label=SliceBackward0] + 140509587561680 -> 140509587561584 + 140509587561680 [label=SliceBackward0] + 140509587561776 -> 140509587561680 + 140509587561776 [label=SliceBackward0] + 140509587561872 -> 140509587561776 + 140509587561872 [label=NativeLayerNormBackward0] + 140509587561968 -> 140509587561872 + 140509587561968 [label=AddBackward0] + 140509587562160 -> 140509587561968 + 140509587562160 [label=NativeDropoutBackward0] + 140509587562304 -> 140509587562160 + 140509587562304 [label=ViewBackward0] + 140509587562400 -> 140509587562304 + 140509587562400 [label=AddmmBackward0] + 140509587562448 -> 140509587562400 + 140509587562448 [label=ToCopyBackward0] + 140509587570944 -> 140509587562448 + 140509590859424 [label="encoder.layer.5.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590859424 -> 140509587570944 + 140509587570944 [label=AccumulateGrad] + 140509587562208 -> 140509587562400 + 140509587562208 [label=ViewBackward0] + 140509587570992 -> 140509587562208 + 140509587570992 [label=ViewBackward0] + 140509587571136 -> 140509587570992 + 140509587571136 [label=CloneBackward0] + 140509587571232 -> 140509587571136 + 140509587571232 [label=PermuteBackward0] + 140509587571328 -> 140509587571232 + 140509587571328 [label=UnsafeViewBackward0] + 140509587571424 -> 140509587571328 + 140509587571424 [label=BmmBackward0] + 140509587571520 -> 140509587571424 + 140509587571520 [label=ReshapeAliasBackward0] + 140509587571664 -> 140509587571520 + 140509587571664 [label=ExpandBackward0] + 140509587571760 -> 140509587571664 + 140509587571760 [label=ToCopyBackward0] + 140509587571856 -> 140509587571760 + 140509587571856 [label=NativeDropoutBackward0] + 140509587571952 -> 140509587571856 + 140509587571952 [label=SoftmaxBackward0] + 140509587572048 -> 140509587571952 + 140509587572048 [label=AddBackward0] + 140509587572144 -> 140509587572048 + 140509587572144 [label=DivBackward0] + 140509587572240 -> 140509587572144 + 140509587572240 [label=UnsafeViewBackward0] + 140509587572336 -> 140509587572240 + 140509587572336 [label=BmmBackward0] + 140509587572432 -> 140509587572336 + 140509587572432 [label=ReshapeAliasBackward0] + 140509587572576 -> 140509587572432 + 140509587572576 [label=ExpandBackward0] + 140509587572672 -> 140509587572576 + 140509587572672 [label=PermuteBackward0] + 140509587572768 -> 140509587572672 + 140509587572768 [label=ViewBackward0] + 140509587572864 -> 140509587572768 + 140509587572864 [label=ViewBackward0] + 140509587572960 -> 140509587572864 + 140509587572960 [label=AddmmBackward0] + 140509587573056 -> 140509587572960 + 140509587573056 [label=ToCopyBackward0] + 140509587573248 -> 140509587573056 + 140509590872528 [label="encoder.layer.5.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590872528 -> 140509587573248 + 140509587573248 [label=AccumulateGrad] + 140509587573008 -> 140509587572960 + 140509587573008 [label=ViewBackward0] + 140509587573296 -> 140509587573008 + 140509587573296 [label=ToCopyBackward0] + 140509587562112 -> 140509587573296 + 140509587562112 [label=CatBackward0] + 140509587573440 -> 140509587562112 + 140509587573440 [label=NativeLayerNormBackward0] + 140509587573584 -> 140509587573440 + 140509587573584 [label=AddBackward0] + 140509587573776 -> 140509587573584 + 140509587573776 [label=NativeDropoutBackward0] + 140509587573920 -> 140509587573776 + 140509587573920 [label=ViewBackward0] + 140509587574016 -> 140509587573920 + 140509587574016 [label=AddmmBackward0] + 140509587574112 -> 140509587574016 + 140509587574112 [label=ToCopyBackward0] + 140509587574304 -> 140509587574112 + 140509590873008 [label="encoder.layer.4.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590873008 -> 140509587574304 + 140509587574304 [label=AccumulateGrad] + 140509587574064 -> 140509587574016 + 140509587574064 [label=ViewBackward0] + 140509587574352 -> 140509587574064 + 140509587574352 [label=GeluBackward0] + 140509587574448 -> 140509587574352 + 140509587574448 [label=ViewBackward0] + 140509587574544 -> 140509587574448 + 140509587574544 [label=AddmmBackward0] + 140509587574640 -> 140509587574544 + 140509587574640 [label=ToCopyBackward0] + 140509587574736 -> 140509587574640 + 140509590873248 [label="encoder.layer.4.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590873248 -> 140509587574736 + 140509587574736 [label=AccumulateGrad] + 140509587574592 -> 140509587574544 + 140509587574592 [label=ViewBackward0] + 140509587591232 -> 140509587574592 + 140509587591232 [label=ToCopyBackward0] + 140509587573728 -> 140509587591232 + 140509587573728 [label=SliceBackward0] + 140509587591472 -> 140509587573728 + 140509587591472 [label=SliceBackward0] + 140509587591568 -> 140509587591472 + 140509587591568 [label=NativeLayerNormBackward0] + 140509587591664 -> 140509587591568 + 140509587591664 [label=AddBackward0] + 140509587591856 -> 140509587591664 + 140509587591856 [label=NativeDropoutBackward0] + 140509587592000 -> 140509587591856 + 140509587592000 [label=ViewBackward0] + 140509587592096 -> 140509587592000 + 140509587592096 [label=AddmmBackward0] + 140509587592192 -> 140509587592096 + 140509587592192 [label=ToCopyBackward0] + 140509587592384 -> 140509587592192 + 140509590875168 [label="encoder.layer.4.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590875168 -> 140509587592384 + 140509587592384 [label=AccumulateGrad] + 140509587592144 -> 140509587592096 + 140509587592144 [label=ViewBackward0] + 140509587592432 -> 140509587592144 + 140509587592432 [label=ViewBackward0] + 140509587592528 -> 140509587592432 + 140509587592528 [label=CloneBackward0] + 140509587592624 -> 140509587592528 + 140509587592624 [label=PermuteBackward0] + 140509587592720 -> 140509587592624 + 140509587592720 [label=UnsafeViewBackward0] + 140509587592816 -> 140509587592720 + 140509587592816 [label=BmmBackward0] + 140509587592912 -> 140509587592816 + 140509587592912 [label=ReshapeAliasBackward0] + 140509587593056 -> 140509587592912 + 140509587593056 [label=ExpandBackward0] + 140509587593152 -> 140509587593056 + 140509587593152 [label=ToCopyBackward0] + 140509587593248 -> 140509587593152 + 140509587593248 [label=NativeDropoutBackward0] + 140509587593344 -> 140509587593248 + 140509587593344 [label=SoftmaxBackward0] + 140509587593440 -> 140509587593344 + 140509587593440 [label=AddBackward0] + 140509587593536 -> 140509587593440 + 140509587593536 [label=DivBackward0] + 140509587593632 -> 140509587593536 + 140509587593632 [label=UnsafeViewBackward0] + 140509587593728 -> 140509587593632 + 140509587593728 [label=BmmBackward0] + 140509587593824 -> 140509587593728 + 140509587593824 [label=ReshapeAliasBackward0] + 140509587593968 -> 140509587593824 + 140509587593968 [label=ExpandBackward0] + 140509587594064 -> 140509587593968 + 140509587594064 [label=PermuteBackward0] + 140509587594160 -> 140509587594064 + 140509587594160 [label=ViewBackward0] + 140509587594256 -> 140509587594160 + 140509587594256 [label=ViewBackward0] + 140509587594352 -> 140509587594256 + 140509587594352 [label=AddmmBackward0] + 140509587594448 -> 140509587594352 + 140509587594448 [label=ToCopyBackward0] + 140509587594640 -> 140509587594448 + 140509590875888 [label="encoder.layer.4.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509590875888 -> 140509587594640 + 140509587594640 [label=AccumulateGrad] + 140509587594400 -> 140509587594352 + 140509587594400 [label=ViewBackward0] + 140509587594688 -> 140509587594400 + 140509587594688 [label=ToCopyBackward0] + 140509587591808 -> 140509587594688 + 140509587591808 [label=SliceBackward0] + 140509587594832 -> 140509587591808 + 140509587594832 [label=SliceBackward0] + 140509587594928 -> 140509587594832 + 140509587594928 [label=SliceBackward0] + 140509587595024 -> 140509587594928 + 140509587595024 [label=NativeLayerNormBackward0] + 140509587595120 -> 140509587595024 + 140509587595120 [label=AddBackward0] + 140509587595216 -> 140509587595120 + 140509587595216 [label=NativeDropoutBackward0] + 140509587607808 -> 140509587595216 + 140509587607808 [label=ViewBackward0] + 140509587607904 -> 140509587607808 + 140509587607904 [label=AddmmBackward0] + 140509587608000 -> 140509587607904 + 140509587608000 [label=ToCopyBackward0] + 140509587608192 -> 140509587608000 + 140509590892848 [label="encoder.layer.4.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590892848 -> 140509587608192 + 140509587608192 [label=AccumulateGrad] + 140509587607952 -> 140509587607904 + 140509587607952 [label=ViewBackward0] + 140509587608240 -> 140509587607952 + 140509587608240 [label=ViewBackward0] + 140509587608336 -> 140509587608240 + 140509587608336 [label=CloneBackward0] + 140509587608432 -> 140509587608336 + 140509587608432 [label=PermuteBackward0] + 140509587608528 -> 140509587608432 + 140509587608528 [label=UnsafeViewBackward0] + 140509587608624 -> 140509587608528 + 140509587608624 [label=BmmBackward0] + 140509587608720 -> 140509587608624 + 140509587608720 [label=ReshapeAliasBackward0] + 140509587608864 -> 140509587608720 + 140509587608864 [label=ExpandBackward0] + 140509587608960 -> 140509587608864 + 140509587608960 [label=ToCopyBackward0] + 140509587609056 -> 140509587608960 + 140509587609056 [label=NativeDropoutBackward0] + 140509587609152 -> 140509587609056 + 140509587609152 [label=SoftmaxBackward0] + 140509587609248 -> 140509587609152 + 140509587609248 [label=AddBackward0] + 140509587609344 -> 140509587609248 + 140509587609344 [label=DivBackward0] + 140509587609440 -> 140509587609344 + 140509587609440 [label=UnsafeViewBackward0] + 140509587609536 -> 140509587609440 + 140509587609536 [label=BmmBackward0] + 140509587609632 -> 140509587609536 + 140509587609632 [label=ReshapeAliasBackward0] + 140509587609776 -> 140509587609632 + 140509587609776 [label=ExpandBackward0] + 140509587609872 -> 140509587609776 + 140509587609872 [label=PermuteBackward0] + 140509587609968 -> 140509587609872 + 140509587609968 [label=ViewBackward0] + 140509587610064 -> 140509587609968 + 140509587610064 [label=ViewBackward0] + 140509587610160 -> 140509587610064 + 140509587610160 [label=AddmmBackward0] + 140509587610256 -> 140509587610160 + 140509587610256 [label=ToCopyBackward0] + 140509587610448 -> 140509587610256 + 140509590893568 [label="encoder.layer.4.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590893568 -> 140509587610448 + 140509587610448 [label=AccumulateGrad] + 140509587610208 -> 140509587610160 + 140509587610208 [label=ViewBackward0] + 140509587610496 -> 140509587610208 + 140509587610496 [label=ToCopyBackward0] + 140509587607664 -> 140509587610496 + 140509587607664 [label=CatBackward0] + 140509587610640 -> 140509587607664 + 140509587610640 [label=NativeLayerNormBackward0] + 140509587610784 -> 140509587610640 + 140509587610784 [label=AddBackward0] + 140509587610976 -> 140509587610784 + 140509587610976 [label=NativeDropoutBackward0] + 140509587611120 -> 140509587610976 + 140509587611120 [label=ViewBackward0] + 140509587611216 -> 140509587611120 + 140509587611216 [label=AddmmBackward0] + 140509587611312 -> 140509587611216 + 140509587611312 [label=ToCopyBackward0] + 140509587611504 -> 140509587611312 + 140509590894048 [label="encoder.layer.3.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590894048 -> 140509587611504 + 140509587611504 [label=AccumulateGrad] + 140509587611264 -> 140509587611216 + 140509587611264 [label=ViewBackward0] + 140509587611552 -> 140509587611264 + 140509587611552 [label=GeluBackward0] + 140509587611408 -> 140509587611552 + 140509587611408 [label=ViewBackward0] + 140509587624096 -> 140509587611408 + 140509587624096 [label=AddmmBackward0] + 140509587624192 -> 140509587624096 + 140509587624192 [label=ToCopyBackward0] + 140509587624384 -> 140509587624192 + 140509590894288 [label="encoder.layer.3.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590894288 -> 140509587624384 + 140509587624384 [label=AccumulateGrad] + 140509587624144 -> 140509587624096 + 140509587624144 [label=ViewBackward0] + 140509587624432 -> 140509587624144 + 140509587624432 [label=ToCopyBackward0] + 140509587610928 -> 140509587624432 + 140509587610928 [label=SliceBackward0] + 140509587624576 -> 140509587610928 + 140509587624576 [label=SliceBackward0] + 140509587624672 -> 140509587624576 + 140509587624672 [label=SliceBackward0] + 140509587624768 -> 140509587624672 + 140509587624768 [label=SliceBackward0] + 140509587624864 -> 140509587624768 + 140509587624864 [label=SliceBackward0] + 140509587624960 -> 140509587624864 + 140509587624960 [label=NativeLayerNormBackward0] + 140509587625056 -> 140509587624960 + 140509587625056 [label=AddBackward0] + 140509587625248 -> 140509587625056 + 140509587625248 [label=NativeDropoutBackward0] + 140509587625392 -> 140509587625248 + 140509587625392 [label=ViewBackward0] + 140509587625488 -> 140509587625392 + 140509587625488 [label=AddmmBackward0] + 140509587625584 -> 140509587625488 + 140509587625584 [label=ToCopyBackward0] + 140509587625776 -> 140509587625584 + 140509590896208 [label="encoder.layer.3.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590896208 -> 140509587625776 + 140509587625776 [label=AccumulateGrad] + 140509587625536 -> 140509587625488 + 140509587625536 [label=ViewBackward0] + 140509587625824 -> 140509587625536 + 140509587625824 [label=ViewBackward0] + 140509587625920 -> 140509587625824 + 140509587625920 [label=CloneBackward0] + 140509587626016 -> 140509587625920 + 140509587626016 [label=PermuteBackward0] + 140509587626112 -> 140509587626016 + 140509587626112 [label=UnsafeViewBackward0] + 140509587626208 -> 140509587626112 + 140509587626208 [label=BmmBackward0] + 140509587626304 -> 140509587626208 + 140509587626304 [label=ReshapeAliasBackward0] + 140509587626448 -> 140509587626304 + 140509587626448 [label=ExpandBackward0] + 140509587626544 -> 140509587626448 + 140509587626544 [label=ToCopyBackward0] + 140509587626640 -> 140509587626544 + 140509587626640 [label=NativeDropoutBackward0] + 140509587626736 -> 140509587626640 + 140509587626736 [label=SoftmaxBackward0] + 140509587626832 -> 140509587626736 + 140509587626832 [label=AddBackward0] + 140509587626928 -> 140509587626832 + 140509587626928 [label=DivBackward0] + 140509587627024 -> 140509587626928 + 140509587627024 [label=UnsafeViewBackward0] + 140509587627120 -> 140509587627024 + 140509587627120 [label=BmmBackward0] + 140509587627216 -> 140509587627120 + 140509587627216 [label=ReshapeAliasBackward0] + 140509587627360 -> 140509587627216 + 140509587627360 [label=ExpandBackward0] + 140509587627456 -> 140509587627360 + 140509587627456 [label=PermuteBackward0] + 140509587627552 -> 140509587627456 + 140509587627552 [label=ViewBackward0] + 140509587627648 -> 140509587627552 + 140509587627648 [label=ViewBackward0] + 140509587627744 -> 140509587627648 + 140509587627744 [label=AddmmBackward0] + 140509587627840 -> 140509587627744 + 140509587627840 [label=ToCopyBackward0] + 140509587627984 -> 140509587627840 + 140509590901120 [label="encoder.layer.3.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590901120 -> 140509587627984 + 140509587627984 [label=AccumulateGrad] + 140509587627792 -> 140509587627744 + 140509587627792 [label=ViewBackward0] + 140509587627936 -> 140509587627792 + 140509587627936 [label=ToCopyBackward0] + 140509587625200 -> 140509587627936 + 140509587625200 [label=CatBackward0] + 140509587640576 -> 140509587625200 + 140509587640576 [label=NativeLayerNormBackward0] + 140509587640720 -> 140509587640576 + 140509587640720 [label=AddBackward0] + 140509587640912 -> 140509587640720 + 140509587640912 [label=NativeDropoutBackward0] + 140509587641056 -> 140509587640912 + 140509587641056 [label=ViewBackward0] + 140509587641152 -> 140509587641056 + 140509587641152 [label=AddmmBackward0] + 140509587641248 -> 140509587641152 + 140509587641248 [label=ToCopyBackward0] + 140509587641440 -> 140509587641248 + 140509590901600 [label="encoder.layer.2.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590901600 -> 140509587641440 + 140509587641440 [label=AccumulateGrad] + 140509587641200 -> 140509587641152 + 140509587641200 [label=ViewBackward0] + 140509587641488 -> 140509587641200 + 140509587641488 [label=GeluBackward0] + 140509587641584 -> 140509587641488 + 140509587641584 [label=ViewBackward0] + 140509587641680 -> 140509587641584 + 140509587641680 [label=AddmmBackward0] + 140509587641776 -> 140509587641680 + 140509587641776 [label=ToCopyBackward0] + 140509587641968 -> 140509587641776 + 140509590901840 [label="encoder.layer.2.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590901840 -> 140509587641968 + 140509587641968 [label=AccumulateGrad] + 140509587641728 -> 140509587641680 + 140509587641728 [label=ViewBackward0] + 140509587642016 -> 140509587641728 + 140509587642016 [label=ToCopyBackward0] + 140509587640864 -> 140509587642016 + 140509587640864 [label=SliceBackward0] + 140509587642160 -> 140509587640864 + 140509587642160 [label=SliceBackward0] + 140509587642256 -> 140509587642160 + 140509587642256 [label=NativeLayerNormBackward0] + 140509587642352 -> 140509587642256 + 140509587642352 [label=AddBackward0] + 140509587642544 -> 140509587642352 + 140509587642544 [label=NativeDropoutBackward0] + 140509587642688 -> 140509587642544 + 140509587642688 [label=ViewBackward0] + 140509587642784 -> 140509587642688 + 140509587642784 [label=AddmmBackward0] + 140509587642880 -> 140509587642784 + 140509587642880 [label=ToCopyBackward0] + 140509587643072 -> 140509587642880 + 140509590903760 [label="encoder.layer.2.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590903760 -> 140509587643072 + 140509587643072 [label=AccumulateGrad] + 140509587642832 -> 140509587642784 + 140509587642832 [label=ViewBackward0] + 140509587643120 -> 140509587642832 + 140509587643120 [label=ViewBackward0] + 140509587643216 -> 140509587643120 + 140509587643216 [label=CloneBackward0] + 140509587643312 -> 140509587643216 + 140509587643312 [label=PermuteBackward0] + 140509587643408 -> 140509587643312 + 140509587643408 [label=UnsafeViewBackward0] + 140509587643504 -> 140509587643408 + 140509587643504 [label=BmmBackward0] + 140509587643600 -> 140509587643504 + 140509587643600 [label=ReshapeAliasBackward0] + 140509587643744 -> 140509587643600 + 140509587643744 [label=ExpandBackward0] + 140509587643840 -> 140509587643744 + 140509587643840 [label=ToCopyBackward0] + 140509587643936 -> 140509587643840 + 140509587643936 [label=NativeDropoutBackward0] + 140509587644032 -> 140509587643936 + 140509587644032 [label=SoftmaxBackward0] + 140509587644128 -> 140509587644032 + 140509587644128 [label=AddBackward0] + 140509587644224 -> 140509587644128 + 140509587644224 [label=DivBackward0] + 140509587644320 -> 140509587644224 + 140509587644320 [label=UnsafeViewBackward0] + 140509587644368 -> 140509587644320 + 140509587644368 [label=BmmBackward0] + 140509587656864 -> 140509587644368 + 140509587656864 [label=ReshapeAliasBackward0] + 140509587657008 -> 140509587656864 + 140509587657008 [label=ExpandBackward0] + 140509587657104 -> 140509587657008 + 140509587657104 [label=PermuteBackward0] + 140509587657200 -> 140509587657104 + 140509587657200 [label=ViewBackward0] + 140509587657296 -> 140509587657200 + 140509587657296 [label=ViewBackward0] + 140509587657392 -> 140509587657296 + 140509587657392 [label=AddmmBackward0] + 140509587657488 -> 140509587657392 + 140509587657488 [label=ToCopyBackward0] + 140509587657680 -> 140509587657488 + 140509590904480 [label="encoder.layer.2.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509590904480 -> 140509587657680 + 140509587657680 [label=AccumulateGrad] + 140509587657440 -> 140509587657392 + 140509587657440 [label=ViewBackward0] + 140509587657728 -> 140509587657440 + 140509587657728 [label=ToCopyBackward0] + 140509587642496 -> 140509587657728 + 140509587642496 [label=SliceBackward0] + 140509587657872 -> 140509587642496 + 140509587657872 [label=SliceBackward0] + 140509587657968 -> 140509587657872 + 140509587657968 [label=SliceBackward0] + 140509587658064 -> 140509587657968 + 140509587658064 [label=NativeLayerNormBackward0] + 140509587658160 -> 140509587658064 + 140509587658160 [label=AddBackward0] + 140509587658352 -> 140509587658160 + 140509587658352 [label=NativeDropoutBackward0] + 140509587658496 -> 140509587658352 + 140509587658496 [label=ViewBackward0] + 140509587658592 -> 140509587658496 + 140509587658592 [label=AddmmBackward0] + 140509587658688 -> 140509587658592 + 140509587658688 [label=ToCopyBackward0] + 140509587658880 -> 140509587658688 + 140509590913248 [label="encoder.layer.2.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590913248 -> 140509587658880 + 140509587658880 [label=AccumulateGrad] + 140509587658640 -> 140509587658592 + 140509587658640 [label=ViewBackward0] + 140509587658928 -> 140509587658640 + 140509587658928 [label=ViewBackward0] + 140509587659024 -> 140509587658928 + 140509587659024 [label=CloneBackward0] + 140509587659120 -> 140509587659024 + 140509587659120 [label=PermuteBackward0] + 140509587659216 -> 140509587659120 + 140509587659216 [label=UnsafeViewBackward0] + 140509587659312 -> 140509587659216 + 140509587659312 [label=BmmBackward0] + 140509587659408 -> 140509587659312 + 140509587659408 [label=ReshapeAliasBackward0] + 140509587659552 -> 140509587659408 + 140509587659552 [label=ExpandBackward0] + 140509587659648 -> 140509587659552 + 140509587659648 [label=ToCopyBackward0] + 140509587659744 -> 140509587659648 + 140509587659744 [label=NativeDropoutBackward0] + 140509587659840 -> 140509587659744 + 140509587659840 [label=SoftmaxBackward0] + 140509587659936 -> 140509587659840 + 140509587659936 [label=AddBackward0] + 140509587660032 -> 140509587659936 + 140509587660032 [label=DivBackward0] + 140509587660128 -> 140509587660032 + 140509587660128 [label=UnsafeViewBackward0] + 140509587660224 -> 140509587660128 + 140509587660224 [label=BmmBackward0] + 140509587660320 -> 140509587660224 + 140509587660320 [label=ReshapeAliasBackward0] + 140509587660464 -> 140509587660320 + 140509587660464 [label=ExpandBackward0] + 140509587660560 -> 140509587660464 + 140509587660560 [label=PermuteBackward0] + 140509587660656 -> 140509587660560 + 140509587660656 [label=ViewBackward0] + 140509587660752 -> 140509587660656 + 140509587660752 [label=ViewBackward0] + 140509587660368 -> 140509587660752 + 140509587660368 [label=AddmmBackward0] + 140509587673296 -> 140509587660368 + 140509587673296 [label=ToCopyBackward0] + 140509587673488 -> 140509587673296 + 140509590913968 [label="encoder.layer.2.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590913968 -> 140509587673488 + 140509587673488 [label=AccumulateGrad] + 140509587673248 -> 140509587660368 + 140509587673248 [label=ViewBackward0] + 140509587673536 -> 140509587673248 + 140509587673536 [label=ToCopyBackward0] + 140509587658304 -> 140509587673536 + 140509587658304 [label=CatBackward0] + 140509587673680 -> 140509587658304 + 140509587673680 [label=NativeLayerNormBackward0] + 140509587673824 -> 140509587673680 + 140509587673824 [label=AddBackward0] + 140509587674016 -> 140509587673824 + 140509587674016 [label=NativeDropoutBackward0] + 140509587674160 -> 140509587674016 + 140509587674160 [label=ViewBackward0] + 140509587674256 -> 140509587674160 + 140509587674256 [label=AddmmBackward0] + 140509587674352 -> 140509587674256 + 140509587674352 [label=ToCopyBackward0] + 140509587674544 -> 140509587674352 + 140509590914448 [label="encoder.layer.1.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590914448 -> 140509587674544 + 140509587674544 [label=AccumulateGrad] + 140509587674304 -> 140509587674256 + 140509587674304 [label=ViewBackward0] + 140509587674592 -> 140509587674304 + 140509587674592 [label=GeluBackward0] + 140509587674688 -> 140509587674592 + 140509587674688 [label=ViewBackward0] + 140509587674784 -> 140509587674688 + 140509587674784 [label=AddmmBackward0] + 140509587674880 -> 140509587674784 + 140509587674880 [label=ToCopyBackward0] + 140509587675072 -> 140509587674880 + 140509590914688 [label="encoder.layer.1.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590914688 -> 140509587675072 + 140509587675072 [label=AccumulateGrad] + 140509587674832 -> 140509587674784 + 140509587674832 [label=ViewBackward0] + 140509587675120 -> 140509587674832 + 140509587675120 [label=ToCopyBackward0] + 140509587673968 -> 140509587675120 + 140509587673968 [label=SliceBackward0] + 140509587675264 -> 140509587673968 + 140509587675264 [label=SliceBackward0] + 140509587675360 -> 140509587675264 + 140509587675360 [label=SliceBackward0] + 140509587675456 -> 140509587675360 + 140509587675456 [label=SliceBackward0] + 140509587675552 -> 140509587675456 + 140509587675552 [label=SliceBackward0] + 140509587675648 -> 140509587675552 + 140509587675648 [label=NativeLayerNormBackward0] + 140509587675744 -> 140509587675648 + 140509587675744 [label=AddBackward0] + 140509587675936 -> 140509587675744 + 140509587675936 [label=NativeDropoutBackward0] + 140509587676080 -> 140509587675936 + 140509587676080 [label=ViewBackward0] + 140509587676176 -> 140509587676080 + 140509587676176 [label=AddmmBackward0] + 140509587676272 -> 140509587676176 + 140509587676272 [label=ToCopyBackward0] + 140509587676464 -> 140509587676272 + 140509590916608 [label="encoder.layer.1.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590916608 -> 140509587676464 + 140509587676464 [label=AccumulateGrad] + 140509587676224 -> 140509587676176 + 140509587676224 [label=ViewBackward0] + 140509587676512 -> 140509587676224 + 140509587676512 [label=ViewBackward0] + 140509587676608 -> 140509587676512 + 140509587676608 [label=CloneBackward0] + 140509587676704 -> 140509587676608 + 140509587676704 [label=PermuteBackward0] + 140509587676800 -> 140509587676704 + 140509587676800 [label=UnsafeViewBackward0] + 140509587676896 -> 140509587676800 + 140509587676896 [label=BmmBackward0] + 140509587676992 -> 140509587676896 + 140509587676992 [label=ReshapeAliasBackward0] + 140509587677136 -> 140509587676992 + 140509587677136 [label=ExpandBackward0] + 140509587677040 -> 140509587677136 + 140509587677040 [label=ToCopyBackward0] + 140517615505616 -> 140509587677040 + 140517615505616 [label=NativeDropoutBackward0] + 140517615505712 -> 140517615505616 + 140517615505712 [label=SoftmaxBackward0] + 140517615505808 -> 140517615505712 + 140517615505808 [label=AddBackward0] + 140517615505904 -> 140517615505808 + 140517615505904 [label=DivBackward0] + 140517615506000 -> 140517615505904 + 140517615506000 [label=UnsafeViewBackward0] + 140517615506096 -> 140517615506000 + 140517615506096 [label=BmmBackward0] + 140517615506192 -> 140517615506096 + 140517615506192 [label=ReshapeAliasBackward0] + 140517615506336 -> 140517615506192 + 140517615506336 [label=ExpandBackward0] + 140517615506432 -> 140517615506336 + 140517615506432 [label=PermuteBackward0] + 140517615506528 -> 140517615506432 + 140517615506528 [label=ViewBackward0] + 140517615506624 -> 140517615506528 + 140517615506624 [label=ViewBackward0] + 140517615506720 -> 140517615506624 + 140517615506720 [label=AddmmBackward0] + 140517615506816 -> 140517615506720 + 140517615506816 [label=ToCopyBackward0] + 140517615507008 -> 140517615506816 + 140509590933808 [label="encoder.layer.1.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590933808 -> 140517615507008 + 140517615507008 [label=AccumulateGrad] + 140517615506768 -> 140517615506720 + 140517615506768 [label=ViewBackward0] + 140517615507056 -> 140517615506768 + 140517615507056 [label=ToCopyBackward0] + 140509587675888 -> 140517615507056 + 140509587675888 [label=CatBackward0] + 140517615507200 -> 140509587675888 + 140517615507200 [label=NativeLayerNormBackward0] + 140517615507344 -> 140517615507200 + 140517615507344 [label=AddBackward0] + 140517615507536 -> 140517615507344 + 140517615507536 [label=NativeDropoutBackward0] + 140517615507680 -> 140517615507536 + 140517615507680 [label=ViewBackward0] + 140517615507776 -> 140517615507680 + 140517615507776 [label=AddmmBackward0] + 140517615507872 -> 140517615507776 + 140517615507872 [label=ToCopyBackward0] + 140517615508064 -> 140517615507872 + 140509590934288 [label="encoder.layer.0.experts.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590934288 -> 140517615508064 + 140517615508064 [label=AccumulateGrad] + 140517615507824 -> 140517615507776 + 140517615507824 [label=ViewBackward0] + 140517615508112 -> 140517615507824 + 140517615508112 [label=GeluBackward0] + 140517615508208 -> 140517615508112 + 140517615508208 [label=ViewBackward0] + 140517615508304 -> 140517615508208 + 140517615508304 [label=AddmmBackward0] + 140517615508400 -> 140517615508304 + 140517615508400 [label=ToCopyBackward0] + 140517615508592 -> 140517615508400 + 140509590934528 [label="encoder.layer.0.experts.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590934528 -> 140517615508592 + 140517615508592 [label=AccumulateGrad] + 140517615508352 -> 140517615508304 + 140517615508352 [label=ViewBackward0] + 140517615508640 -> 140517615508352 + 140517615508640 [label=ToCopyBackward0] + 140517615507488 -> 140517615508640 + 140517615507488 [label=SliceBackward0] + 140517615508784 -> 140517615507488 + 140517615508784 [label=SliceBackward0] + 140517615508880 -> 140517615508784 + 140517615508880 [label=NativeLayerNormBackward0] + 140517615508976 -> 140517615508880 + 140517615508976 [label=AddBackward0] + 140517615509168 -> 140517615508976 + 140517615509168 [label=NativeDropoutBackward0] + 140517615509312 -> 140517615509168 + 140517615509312 [label=ViewBackward0] + 140517615509408 -> 140517615509312 + 140517615509408 [label=AddmmBackward0] + 140517615509456 -> 140517615509408 + 140517615509456 [label=ToCopyBackward0] + 140517615522048 -> 140517615509456 + 140509590936448 [label="encoder.layer.0.crossattention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590936448 -> 140517615522048 + 140517615522048 [label=AccumulateGrad] + 140517615509216 -> 140517615509408 + 140517615509216 [label=ViewBackward0] + 140517615522096 -> 140517615509216 + 140517615522096 [label=ViewBackward0] + 140517615522192 -> 140517615522096 + 140517615522192 [label=CloneBackward0] + 140517615522288 -> 140517615522192 + 140517615522288 [label=PermuteBackward0] + 140517615522384 -> 140517615522288 + 140517615522384 [label=UnsafeViewBackward0] + 140517615522480 -> 140517615522384 + 140517615522480 [label=BmmBackward0] + 140517615522576 -> 140517615522480 + 140517615522576 [label=ReshapeAliasBackward0] + 140517615522720 -> 140517615522576 + 140517615522720 [label=ExpandBackward0] + 140517615522816 -> 140517615522720 + 140517615522816 [label=ToCopyBackward0] + 140517615522912 -> 140517615522816 + 140517615522912 [label=NativeDropoutBackward0] + 140517615523008 -> 140517615522912 + 140517615523008 [label=SoftmaxBackward0] + 140517615523104 -> 140517615523008 + 140517615523104 [label=AddBackward0] + 140517615523200 -> 140517615523104 + 140517615523200 [label=DivBackward0] + 140517615523296 -> 140517615523200 + 140517615523296 [label=UnsafeViewBackward0] + 140517615523392 -> 140517615523296 + 140517615523392 [label=BmmBackward0] + 140517615523488 -> 140517615523392 + 140517615523488 [label=ReshapeAliasBackward0] + 140517615523632 -> 140517615523488 + 140517615523632 [label=ExpandBackward0] + 140517615523728 -> 140517615523632 + 140517615523728 [label=PermuteBackward0] + 140517615523824 -> 140517615523728 + 140517615523824 [label=ViewBackward0] + 140517615523920 -> 140517615523824 + 140517615523920 [label=ViewBackward0] + 140517615524016 -> 140517615523920 + 140517615524016 [label=AddmmBackward0] + 140517615524112 -> 140517615524016 + 140517615524112 [label=ToCopyBackward0] + 140517615524304 -> 140517615524112 + 140509590937168 [label="encoder.layer.0.crossattention.self.query.bias + (768)" fillcolor=lightblue] + 140509590937168 -> 140517615524304 + 140517615524304 [label=AccumulateGrad] + 140517615524064 -> 140517615524016 + 140517615524064 [label=ViewBackward0] + 140517615524352 -> 140517615524064 + 140517615524352 [label=ToCopyBackward0] + 140517615509120 -> 140517615524352 + 140517615509120 [label=SliceBackward0] + 140517615524496 -> 140517615509120 + 140517615524496 [label=SliceBackward0] + 140517615524592 -> 140517615524496 + 140517615524592 [label=SliceBackward0] + 140517615524688 -> 140517615524592 + 140517615524688 [label=NativeLayerNormBackward0] + 140517615524784 -> 140517615524688 + 140517615524784 [label=AddBackward0] + 140517615524976 -> 140517615524784 + 140517615524976 [label=NativeDropoutBackward0] + 140517615525120 -> 140517615524976 + 140517615525120 [label=ViewBackward0] + 140517615525216 -> 140517615525120 + 140517615525216 [label=AddmmBackward0] + 140517615525312 -> 140517615525216 + 140517615525312 [label=ToCopyBackward0] + 140517615525504 -> 140517615525312 + 140509590945936 [label="encoder.layer.0.attention.output.dense.bias + (768)" fillcolor=lightblue] + 140509590945936 -> 140517615525504 + 140517615525504 [label=AccumulateGrad] + 140517615525264 -> 140517615525216 + 140517615525264 [label=ViewBackward0] + 140517615525552 -> 140517615525264 + 140517615525552 [label=ViewBackward0] + 140517615525648 -> 140517615525552 + 140517615525648 [label=CloneBackward0] + 140517615525744 -> 140517615525648 + 140517615525744 [label=PermuteBackward0] + 140517615525840 -> 140517615525744 + 140517615525840 [label=UnsafeViewBackward0] + 140517615525456 -> 140517615525840 + 140517615525456 [label=BmmBackward0] + 140517615538384 -> 140517615525456 + 140517615538384 [label=ReshapeAliasBackward0] + 140517615538528 -> 140517615538384 + 140517615538528 [label=ExpandBackward0] + 140517615538624 -> 140517615538528 + 140517615538624 [label=ToCopyBackward0] + 140517615538720 -> 140517615538624 + 140517615538720 [label=NativeDropoutBackward0] + 140517615538816 -> 140517615538720 + 140517615538816 [label=SoftmaxBackward0] + 140517615538912 -> 140517615538816 + 140517615538912 [label=AddBackward0] + 140517615539008 -> 140517615538912 + 140517615539008 [label=DivBackward0] + 140517615539104 -> 140517615539008 + 140517615539104 [label=UnsafeViewBackward0] + 140517615539200 -> 140517615539104 + 140517615539200 [label=BmmBackward0] + 140517615539296 -> 140517615539200 + 140517615539296 [label=ReshapeAliasBackward0] + 140517615539440 -> 140517615539296 + 140517615539440 [label=ExpandBackward0] + 140517615539536 -> 140517615539440 + 140517615539536 [label=PermuteBackward0] + 140517615539632 -> 140517615539536 + 140517615539632 [label=ViewBackward0] + 140517615539728 -> 140517615539632 + 140517615539728 [label=ViewBackward0] + 140517615539824 -> 140517615539728 + 140517615539824 [label=AddmmBackward0] + 140517615539920 -> 140517615539824 + 140517615539920 [label=ToCopyBackward0] + 140517615540112 -> 140517615539920 + 140509590600896 [label="encoder.layer.0.attention.self.query.bias + (768)" fillcolor=lightblue] + 140509590600896 -> 140517615540112 + 140517615540112 [label=AccumulateGrad] + 140517615539872 -> 140517615539824 + 140517615539872 [label=ViewBackward0] + 140517615540160 -> 140517615539872 + 140517615540160 [label=ToCopyBackward0] + 140517615524928 -> 140517615540160 + 140517615524928 [label=NativeDropoutBackward0] + 140517615540304 -> 140517615524928 + 140517615540304 [label=NativeLayerNormBackward0] + 140517615540400 -> 140517615540304 + 140517615540400 [label=CatBackward0] + 140517615540592 -> 140517615540400 + 140517615540592 [label=ExpandBackward0] + 140517615540736 -> 140517615540592 + 140509590947296 [label=" + (1, 32, 768)" fillcolor=lightblue] + 140509590947296 -> 140517615540736 + 140517615540736 [label=AccumulateGrad] + 140517615540544 -> 140517615540400 + 140517615540544 [label=AddBackward0] + 140517615540784 -> 140517615540544 + 140517615540784 [label=EmbeddingBackward0] + 140517615540928 -> 140517615540784 + 140509590947856 [label="embeddings.word_embeddings.weight + (30523, 768)" fillcolor=lightblue] + 140509590947856 -> 140517615540928 + 140517615540928 [label=AccumulateGrad] + 140517615540832 -> 140517615540544 + 140517615540832 [label=EmbeddingBackward0] + 140517615540976 -> 140517615540832 + 140509939919504 [label="embeddings.position_embeddings.weight + (512, 768)" fillcolor=lightblue] + 140509939919504 -> 140517615540976 + 140517615540976 [label=AccumulateGrad] + 140517615540352 -> 140517615540304 + 140509590958304 [label="embeddings.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590958304 -> 140517615540352 + 140517615540352 [label=AccumulateGrad] + 140517615540016 -> 140517615540304 + 140509590946656 [label="embeddings.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590946656 -> 140517615540016 + 140517615540016 [label=AccumulateGrad] + 140517615539344 -> 140517615539824 + 140517615539344 [label=TBackward0] + 140517615540064 -> 140517615539344 + 140517615540064 [label=ToCopyBackward0] + 140517615540496 -> 140517615540064 + 140509986890912 [label="encoder.layer.0.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509986890912 -> 140517615540496 + 140517615540496 [label=AccumulateGrad] + 140517615539248 -> 140517615539200 + 140517615539248 [label=ReshapeAliasBackward0] + 140517615539584 -> 140517615539248 + 140517615539584 [label=ExpandBackward0] + 140517615539776 -> 140517615539584 + 140517615539776 [label=TransposeBackward0] + 140517615540256 -> 140517615539776 + 140517615540256 [label=PermuteBackward0] + 140517615541024 -> 140517615540256 + 140517615541024 [label=ViewBackward0] + 140517615540208 -> 140517615541024 + 140517615540208 [label=ViewBackward0] + 140517615540640 -> 140517615540208 + 140517615540640 [label=AddmmBackward0] + 140517615541120 -> 140517615540640 + 140517615541120 [label=ToCopyBackward0] + 140517615541312 -> 140517615541120 + 140509590946096 [label="encoder.layer.0.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590946096 -> 140517615541312 + 140517615541312 [label=AccumulateGrad] + 140517615540880 -> 140517615540640 + 140517615540880 [label=ViewBackward0] + 140517615541360 -> 140517615540880 + 140517615541360 [label=ToCopyBackward0] + 140517615524928 -> 140517615541360 + 140517615539392 -> 140517615540640 + 140517615539392 [label=TBackward0] + 140517615541216 -> 140517615539392 + 140517615541216 [label=ToCopyBackward0] + 140517615541504 -> 140517615541216 + 140509590600816 [label="encoder.layer.0.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590600816 -> 140517615541504 + 140517615541504 [label=AccumulateGrad] + 140517615538336 -> 140517615525456 + 140517615538336 [label=ReshapeAliasBackward0] + 140517615538672 -> 140517615538336 + 140517615538672 [label=ExpandBackward0] + 140517615538864 -> 140517615538672 + 140517615538864 [label=PermuteBackward0] + 140517615539056 -> 140517615538864 + 140517615539056 [label=ViewBackward0] + 140517615538432 -> 140517615539056 + 140517615538432 [label=ViewBackward0] + 140517615539680 -> 140517615538432 + 140517615539680 [label=AddmmBackward0] + 140517615540448 -> 140517615539680 + 140517615540448 [label=ToCopyBackward0] + 140517615541456 -> 140517615540448 + 140509590945856 [label="encoder.layer.0.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590945856 -> 140517615541456 + 140517615541456 [label=AccumulateGrad] + 140517615539968 -> 140517615539680 + 140517615539968 [label=ViewBackward0] + 140517615541264 -> 140517615539968 + 140517615541264 [label=ToCopyBackward0] + 140517615524928 -> 140517615541264 + 140517615538480 -> 140517615539680 + 140517615538480 [label=TBackward0] + 140517615541072 -> 140517615538480 + 140517615541072 [label=ToCopyBackward0] + 140517615541408 -> 140517615541072 + 140509590946176 [label="encoder.layer.0.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590946176 -> 140517615541408 + 140517615541408 [label=AccumulateGrad] + 140517615525024 -> 140517615525216 + 140517615525024 [label=TBackward0] + 140517615525696 -> 140517615525024 + 140517615525696 [label=ToCopyBackward0] + 140517615525792 -> 140517615525696 + 140509987117712 [label="encoder.layer.0.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509987117712 -> 140517615525792 + 140517615525792 [label=AccumulateGrad] + 140517615524928 -> 140517615524784 + 140517615524736 -> 140517615524688 + 140509590937328 [label="encoder.layer.0.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590937328 -> 140517615524736 + 140517615524736 [label=AccumulateGrad] + 140517615524208 -> 140517615524688 + 140509590937408 [label="encoder.layer.0.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590937408 -> 140517615524208 + 140517615524208 [label=AccumulateGrad] + 140517615523536 -> 140517615524016 + 140517615523536 [label=TBackward0] + 140517615524256 -> 140517615523536 + 140517615524256 [label=ToCopyBackward0] + 140517615524640 -> 140517615524256 + 140509590937088 [label="encoder.layer.0.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590937088 -> 140517615524640 + 140517615524640 [label=AccumulateGrad] + 140517615523440 -> 140517615523392 + 140517615523440 [label=ReshapeAliasBackward0] + 140517615523776 -> 140517615523440 + 140517615523776 [label=ExpandBackward0] + 140517615523968 -> 140517615523776 + 140517615523968 [label=TransposeBackward0] + 140517615524448 -> 140517615523968 + 140517615524448 [label=PermuteBackward0] + 140517615524880 -> 140517615524448 + 140517615524880 [label=ViewBackward0] + 140517615524400 -> 140517615524880 + 140517615524400 [label=ViewBackward0] + 140517615525168 -> 140517615524400 + 140517615525168 [label=AddmmBackward0] + 140517615525408 -> 140517615525168 + 140517615525408 [label=ToCopyBackward0] + 140517615538288 -> 140517615525408 + 140509590936928 [label="encoder.layer.0.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509590936928 -> 140517615538288 + 140517615538288 [label=AccumulateGrad] + 140517615525360 -> 140517615525168 + 140517615525360 [label=ViewBackward0] + 140517615538768 -> 140517615525360 + 140517615538768 [label=ToCopyBackward0] + 140517615539152 -> 140517615538768 + 140517615539152 [label=NativeLayerNormBackward0] + 140517615540688 -> 140517615539152 + 140509590598736 [label=" + (1408)" fillcolor=lightblue] + 140509590598736 -> 140517615540688 + 140517615540688 [label=AccumulateGrad] + 140517615539488 -> 140517615539152 + 140509590598976 [label=" + (1408)" fillcolor=lightblue] + 140509590598976 -> 140517615539488 + 140517615539488 [label=AccumulateGrad] + 140517615523584 -> 140517615525168 + 140517615523584 [label=TBackward0] + 140517615538240 -> 140517615523584 + 140517615538240 [label=ToCopyBackward0] + 140517615541168 -> 140517615538240 + 140509590936848 [label="encoder.layer.0.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509590936848 -> 140517615541168 + 140517615541168 [label=AccumulateGrad] + 140517615522528 -> 140517615522480 + 140517615522528 [label=ReshapeAliasBackward0] + 140517615522864 -> 140517615522528 + 140517615522864 [label=ExpandBackward0] + 140517615523056 -> 140517615522864 + 140517615523056 [label=PermuteBackward0] + 140517615523248 -> 140517615523056 + 140517615523248 [label=ViewBackward0] + 140517615522624 -> 140517615523248 + 140517615522624 [label=ViewBackward0] + 140517615523872 -> 140517615522624 + 140517615523872 [label=AddmmBackward0] + 140517615524544 -> 140517615523872 + 140517615524544 [label=ToCopyBackward0] + 140517615525600 -> 140517615524544 + 140509590936688 [label="encoder.layer.0.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509590936688 -> 140517615525600 + 140517615525600 [label=AccumulateGrad] + 140517615524160 -> 140517615523872 + 140517615524160 [label=ViewBackward0] + 140517615525072 -> 140517615524160 + 140517615525072 [label=ToCopyBackward0] + 140517615539152 -> 140517615525072 + 140517615522672 -> 140517615523872 + 140517615522672 [label=TBackward0] + 140517615538576 -> 140517615522672 + 140517615538576 [label=ToCopyBackward0] + 140517615538960 -> 140517615538576 + 140509590936608 [label="encoder.layer.0.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509590936608 -> 140517615538960 + 140517615538960 [label=AccumulateGrad] + 140517615521856 -> 140517615509408 + 140517615521856 [label=TBackward0] + 140517615522240 -> 140517615521856 + 140517615522240 [label=ToCopyBackward0] + 140517615522432 -> 140517615522240 + 140509590936368 [label="encoder.layer.0.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590936368 -> 140517615522432 + 140517615522432 [label=AccumulateGrad] + 140517615509120 -> 140517615508976 + 140517615508928 -> 140517615508880 + 140509590936128 [label="encoder.layer.0.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590936128 -> 140517615508928 + 140517615508928 [label=AccumulateGrad] + 140517615508496 -> 140517615508880 + 140509590936208 [label="encoder.layer.0.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590936208 -> 140517615508496 + 140517615508496 [label=AccumulateGrad] + 140517615508016 -> 140517615508304 + 140517615508016 [label=TBackward0] + 140517615508544 -> 140517615508016 + 140517615508544 [label=ToCopyBackward0] + 140517615509024 -> 140517615508544 + 140509590934448 [label="encoder.layer.0.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590934448 -> 140517615509024 + 140517615509024 [label=AccumulateGrad] + 140517615507584 -> 140517615507776 + 140517615507584 [label=TBackward0] + 140517615508256 -> 140517615507584 + 140517615508256 [label=ToCopyBackward0] + 140517615508736 -> 140517615508256 + 140509590934208 [label="encoder.layer.0.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590934208 -> 140517615508736 + 140517615508736 [label=AccumulateGrad] + 140517615507488 -> 140517615507344 + 140517615507296 -> 140517615507200 + 140509590933968 [label="encoder.layer.0.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590933968 -> 140517615507296 + 140517615507296 [label=AccumulateGrad] + 140517615507248 -> 140517615507200 + 140509590934048 [label="encoder.layer.0.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590934048 -> 140517615507248 + 140517615507248 [label=AccumulateGrad] + 140517615506960 -> 140509587675888 + 140517615506960 [label=NativeLayerNormBackward0] + 140517615507632 -> 140517615506960 + 140517615507632 [label=AddBackward0] + 140517615508448 -> 140517615507632 + 140517615508448 [label=NativeDropoutBackward0] + 140517615508160 -> 140517615508448 + 140517615508160 [label=ViewBackward0] + 140517615508688 -> 140517615508160 + 140517615508688 [label=AddmmBackward0] + 140517615509360 -> 140517615508688 + 140517615509360 [label=ToCopyBackward0] + 140517615522000 -> 140517615509360 + 140509590935728 [label="encoder.layer.0.output.dense.bias + (768)" fillcolor=lightblue] + 140509590935728 -> 140517615522000 + 140517615522000 [label=AccumulateGrad] + 140517615509264 -> 140517615508688 + 140517615509264 [label=ViewBackward0] + 140517615522144 -> 140517615509264 + 140517615522144 [label=GeluBackward0] + 140517615523152 -> 140517615522144 + 140517615523152 [label=ViewBackward0] + 140517615523680 -> 140517615523152 + 140517615523680 [label=AddmmBackward0] + 140517615524832 -> 140517615523680 + 140517615524832 [label=ToCopyBackward0] + 140517615541552 -> 140517615524832 + 140509590935968 [label="encoder.layer.0.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590935968 -> 140517615541552 + 140517615541552 [label=AccumulateGrad] + 140517615522768 -> 140517615523680 + 140517615522768 [label=ViewBackward0] + 140517615541792 -> 140517615522768 + 140517615541792 [label=ToCopyBackward0] + 140517615507968 -> 140517615541792 + 140517615507968 [label=SliceBackward0] + 140517615541936 -> 140517615507968 + 140517615541936 [label=SliceBackward0] + 140517615542032 -> 140517615541936 + 140517615542032 [label=SliceBackward0] + 140517615524688 -> 140517615542032 + 140517615541696 -> 140517615523680 + 140517615541696 [label=TBackward0] + 140517615541600 -> 140517615541696 + 140517615541600 [label=ToCopyBackward0] + 140517615542128 -> 140517615541600 + 140509590935888 [label="encoder.layer.0.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590935888 -> 140517615542128 + 140517615542128 [label=AccumulateGrad] + 140517615521904 -> 140517615508688 + 140517615521904 [label=TBackward0] + 140517615523344 -> 140517615521904 + 140517615523344 [label=ToCopyBackward0] + 140517615522960 -> 140517615523344 + 140509590935648 [label="encoder.layer.0.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590935648 -> 140517615522960 + 140517615522960 [label=AccumulateGrad] + 140517615507968 -> 140517615507632 + 140517615507440 -> 140517615506960 + 140509590935408 [label="encoder.layer.0.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590935408 -> 140517615507440 + 140517615507440 [label=AccumulateGrad] + 140517615507392 -> 140517615506960 + 140509590935488 [label="encoder.layer.0.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590935488 -> 140517615507392 + 140517615507392 [label=AccumulateGrad] + 140517615506240 -> 140517615506720 + 140517615506240 [label=TBackward0] + 140517615506912 -> 140517615506240 + 140517615506912 [label=ToCopyBackward0] + 140517615507920 -> 140517615506912 + 140509590933728 [label="encoder.layer.1.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590933728 -> 140517615507920 + 140517615507920 [label=AccumulateGrad] + 140517615506144 -> 140517615506096 + 140517615506144 [label=ReshapeAliasBackward0] + 140517615506480 -> 140517615506144 + 140517615506480 [label=ExpandBackward0] + 140517615506672 -> 140517615506480 + 140517615506672 [label=TransposeBackward0] + 140517615507152 -> 140517615506672 + 140517615507152 [label=PermuteBackward0] + 140517615509072 -> 140517615507152 + 140517615509072 [label=ViewBackward0] + 140517615507104 -> 140517615509072 + 140517615507104 [label=ViewBackward0] + 140517615522336 -> 140517615507104 + 140517615522336 [label=AddmmBackward0] + 140517615506288 -> 140517615522336 + 140517615506288 [label=ToCopyBackward0] + 140517615541840 -> 140517615506288 + 140509590917008 [label="encoder.layer.1.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590917008 -> 140517615541840 + 140517615541840 [label=AccumulateGrad] + 140517615541744 -> 140517615522336 + 140517615541744 [label=ViewBackward0] + 140517615542176 -> 140517615541744 + 140517615542176 [label=ToCopyBackward0] + 140509587675888 -> 140517615542176 + 140517615541888 -> 140517615522336 + 140517615541888 [label=TBackward0] + 140517615542080 -> 140517615541888 + 140517615542080 [label=ToCopyBackward0] + 140517615542224 -> 140517615542080 + 140509590933568 [label="encoder.layer.1.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590933568 -> 140517615542224 + 140517615542224 [label=AccumulateGrad] + 140509587676944 -> 140509587676896 + 140509587676944 [label=ReshapeAliasBackward0] + 140509587677088 -> 140509587676944 + 140509587677088 [label=ExpandBackward0] + 140517615505760 -> 140509587677088 + 140517615505760 [label=PermuteBackward0] + 140517615505952 -> 140517615505760 + 140517615505952 [label=ViewBackward0] + 140517615505472 -> 140517615505952 + 140517615505472 [label=ViewBackward0] + 140517615506576 -> 140517615505472 + 140517615506576 [label=AddmmBackward0] + 140517615507728 -> 140517615506576 + 140517615507728 [label=ToCopyBackward0] + 140517615541648 -> 140517615507728 + 140509590916848 [label="encoder.layer.1.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590916848 -> 140517615541648 + 140517615541648 [label=AccumulateGrad] + 140517615506864 -> 140517615506576 + 140517615506864 [label=ViewBackward0] + 140517615521952 -> 140517615506864 + 140517615521952 [label=ToCopyBackward0] + 140509587675888 -> 140517615521952 + 140517615505520 -> 140517615506576 + 140517615505520 [label=TBackward0] + 140517615541984 -> 140517615505520 + 140517615541984 [label=ToCopyBackward0] + 140517615591632 -> 140517615541984 + 140509590916768 [label="encoder.layer.1.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590916768 -> 140517615591632 + 140517615591632 [label=AccumulateGrad] + 140509587675984 -> 140509587676176 + 140509587675984 [label=TBackward0] + 140509587676656 -> 140509587675984 + 140509587676656 [label=ToCopyBackward0] + 140509587676848 -> 140509587676656 + 140509590916528 [label="encoder.layer.1.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590916528 -> 140509587676848 + 140509587676848 [label=AccumulateGrad] + 140509587675888 -> 140509587675744 + 140509587675696 -> 140509587675648 + 140509590916288 [label="encoder.layer.1.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590916288 -> 140509587675696 + 140509587675696 [label=AccumulateGrad] + 140509587674976 -> 140509587675648 + 140509590916368 [label="encoder.layer.1.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590916368 -> 140509587674976 + 140509587674976 [label=AccumulateGrad] + 140509587674496 -> 140509587674784 + 140509587674496 [label=TBackward0] + 140509587675024 -> 140509587674496 + 140509587675024 [label=ToCopyBackward0] + 140509587675408 -> 140509587675024 + 140509590914608 [label="encoder.layer.1.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590914608 -> 140509587675408 + 140509587675408 [label=AccumulateGrad] + 140509587674064 -> 140509587674256 + 140509587674064 [label=TBackward0] + 140509587674736 -> 140509587674064 + 140509587674736 [label=ToCopyBackward0] + 140509587675216 -> 140509587674736 + 140509590914368 [label="encoder.layer.1.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590914368 -> 140509587675216 + 140509587675216 [label=AccumulateGrad] + 140509587673968 -> 140509587673824 + 140509587673776 -> 140509587673680 + 140509590914128 [label="encoder.layer.1.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590914128 -> 140509587673776 + 140509587673776 [label=AccumulateGrad] + 140509587673728 -> 140509587673680 + 140509590914208 [label="encoder.layer.1.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590914208 -> 140509587673728 + 140509587673728 [label=AccumulateGrad] + 140509587673440 -> 140509587658304 + 140509587673440 [label=NativeLayerNormBackward0] + 140509587674112 -> 140509587673440 + 140509587674112 [label=AddBackward0] + 140509587674928 -> 140509587674112 + 140509587674928 [label=NativeDropoutBackward0] + 140509587674640 -> 140509587674928 + 140509587674640 [label=ViewBackward0] + 140509587675168 -> 140509587674640 + 140509587675168 [label=AddmmBackward0] + 140509587675840 -> 140509587675168 + 140509587675840 [label=ToCopyBackward0] + 140509587676368 -> 140509587675840 + 140509590915888 [label="encoder.layer.1.output.dense.bias + (768)" fillcolor=lightblue] + 140509590915888 -> 140509587676368 + 140509587676368 [label=AccumulateGrad] + 140509587675792 -> 140509587675168 + 140509587675792 [label=ViewBackward0] + 140509587676752 -> 140509587675792 + 140509587676752 [label=GeluBackward0] + 140509587676560 -> 140509587676752 + 140509587676560 [label=ViewBackward0] + 140509587676320 -> 140509587676560 + 140509587676320 [label=AddmmBackward0] + 140517615506048 -> 140509587676320 + 140517615506048 [label=ToCopyBackward0] + 140517615508832 -> 140517615506048 + 140509590916128 [label="encoder.layer.1.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590916128 -> 140517615508832 + 140517615508832 [label=AccumulateGrad] + 140517615505856 -> 140509587676320 + 140517615505856 [label=ViewBackward0] + 140517615591728 -> 140517615505856 + 140517615591728 [label=ToCopyBackward0] + 140509587674448 -> 140517615591728 + 140509587674448 [label=SliceBackward0] + 140517615591776 -> 140509587674448 + 140517615591776 [label=SliceBackward0] + 140517615591872 -> 140517615591776 + 140517615591872 [label=SliceBackward0] + 140509587675648 -> 140517615591872 + 140517615505568 -> 140509587676320 + 140517615505568 [label=TBackward0] + 140517615591536 -> 140517615505568 + 140517615591536 [label=ToCopyBackward0] + 140517615591968 -> 140517615591536 + 140509590916048 [label="encoder.layer.1.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590916048 -> 140517615591968 + 140517615591968 [label=AccumulateGrad] + 140509587675600 -> 140509587675168 + 140509587675600 [label=TBackward0] + 140509587676128 -> 140509587675600 + 140509587676128 [label=ToCopyBackward0] + 140517615506384 -> 140509587676128 + 140509590915808 [label="encoder.layer.1.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590915808 -> 140517615506384 + 140517615506384 [label=AccumulateGrad] + 140509587674448 -> 140509587674112 + 140509587673920 -> 140509587673440 + 140509590915568 [label="encoder.layer.1.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590915568 -> 140509587673920 + 140509587673920 [label=AccumulateGrad] + 140509587673872 -> 140509587673440 + 140509590915648 [label="encoder.layer.1.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590915648 -> 140509587673872 + 140509587673872 [label=AccumulateGrad] + 140509587673152 -> 140509587660368 + 140509587673152 [label=TBackward0] + 140509587673392 -> 140509587673152 + 140509587673392 [label=ToCopyBackward0] + 140509587674400 -> 140509587673392 + 140509590913888 [label="encoder.layer.2.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590913888 -> 140509587674400 + 140509587674400 [label=AccumulateGrad] + 140509587660272 -> 140509587660224 + 140509587660272 [label=ReshapeAliasBackward0] + 140509587660608 -> 140509587660272 + 140509587660608 [label=ExpandBackward0] + 140509587660704 -> 140509587660608 + 140509587660704 [label=TransposeBackward0] + 140509587673632 -> 140509587660704 + 140509587673632 [label=PermuteBackward0] + 140509587675504 -> 140509587673632 + 140509587675504 [label=ViewBackward0] + 140509587673584 -> 140509587675504 + 140509587673584 [label=ViewBackward0] + 140509587676416 -> 140509587673584 + 140509587676416 [label=AddmmBackward0] + 140517615505664 -> 140509587676416 + 140517615505664 [label=ToCopyBackward0] + 140517615591680 -> 140517615505664 + 140509590913728 [label="encoder.layer.2.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590913728 -> 140517615591680 + 140517615591680 [label=AccumulateGrad] + 140509587673200 -> 140509587676416 + 140509587673200 [label=ViewBackward0] + 140517615592016 -> 140509587673200 + 140517615592016 [label=ToCopyBackward0] + 140509587658304 -> 140517615592016 + 140517615591488 -> 140509587676416 + 140517615591488 [label=TBackward0] + 140517615591584 -> 140517615591488 + 140517615591584 [label=ToCopyBackward0] + 140517615592160 -> 140517615591584 + 140509590913648 [label="encoder.layer.2.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590913648 -> 140517615592160 + 140517615592160 [label=AccumulateGrad] + 140509587659360 -> 140509587659312 + 140509587659360 [label=ReshapeAliasBackward0] + 140509587659696 -> 140509587659360 + 140509587659696 [label=ExpandBackward0] + 140509587659888 -> 140509587659696 + 140509587659888 [label=PermuteBackward0] + 140509587660080 -> 140509587659888 + 140509587660080 [label=ViewBackward0] + 140509587659456 -> 140509587660080 + 140509587659456 [label=ViewBackward0] + 140509587660416 -> 140509587659456 + 140509587660416 [label=AddmmBackward0] + 140509587659504 -> 140509587660416 + 140509587659504 [label=ToCopyBackward0] + 140509587676032 -> 140509587659504 + 140509590913488 [label="encoder.layer.2.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590913488 -> 140509587676032 + 140509587676032 [label=AccumulateGrad] + 140509587674208 -> 140509587660416 + 140509587674208 [label=ViewBackward0] + 140517615591920 -> 140509587674208 + 140517615591920 [label=ToCopyBackward0] + 140509587658304 -> 140517615591920 + 140509587673344 -> 140509587660416 + 140509587673344 [label=TBackward0] + 140517615591824 -> 140509587673344 + 140517615591824 [label=ToCopyBackward0] + 140517615592064 -> 140517615591824 + 140509590913408 [label="encoder.layer.2.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590913408 -> 140517615592064 + 140517615592064 [label=AccumulateGrad] + 140509587658400 -> 140509587658592 + 140509587658400 [label=TBackward0] + 140509587659072 -> 140509587658400 + 140509587659072 [label=ToCopyBackward0] + 140509587659264 -> 140509587659072 + 140509590913168 [label="encoder.layer.2.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590913168 -> 140509587659264 + 140509587659264 [label=AccumulateGrad] + 140509587658304 -> 140509587658160 + 140509587658112 -> 140509587658064 + 140509590904640 [label="encoder.layer.2.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590904640 -> 140509587658112 + 140509587658112 [label=AccumulateGrad] + 140509587657584 -> 140509587658064 + 140509590904720 [label="encoder.layer.2.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590904720 -> 140509587657584 + 140509587657584 [label=AccumulateGrad] + 140509587656912 -> 140509587657392 + 140509587656912 [label=TBackward0] + 140509587657632 -> 140509587656912 + 140509587657632 [label=ToCopyBackward0] + 140509587658016 -> 140509587657632 + 140509590904400 [label="encoder.layer.2.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590904400 -> 140509587658016 + 140509587658016 [label=AccumulateGrad] + 140509587656816 -> 140509587644368 + 140509587656816 [label=ReshapeAliasBackward0] + 140509587657152 -> 140509587656816 + 140509587657152 [label=ExpandBackward0] + 140509587657344 -> 140509587657152 + 140509587657344 [label=TransposeBackward0] + 140509587657824 -> 140509587657344 + 140509587657824 [label=PermuteBackward0] + 140509587658256 -> 140509587657824 + 140509587658256 [label=ViewBackward0] + 140509587657776 -> 140509587658256 + 140509587657776 [label=ViewBackward0] + 140509587658544 -> 140509587657776 + 140509587658544 [label=AddmmBackward0] + 140509587658784 -> 140509587658544 + 140509587658784 [label=ToCopyBackward0] + 140509587658976 -> 140509587658784 + 140509590904240 [label="encoder.layer.2.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509590904240 -> 140509587658976 + 140509587658976 [label=AccumulateGrad] + 140509587658736 -> 140509587658544 + 140509587658736 [label=ViewBackward0] + 140509587659792 -> 140509587658736 + 140509587659792 [label=ToCopyBackward0] + 140517615539152 -> 140509587659792 + 140509587656960 -> 140509587658544 + 140509587656960 [label=TBackward0] + 140509587659600 -> 140509587656960 + 140509587659600 [label=ToCopyBackward0] + 140509587660512 -> 140509587659600 + 140509590904160 [label="encoder.layer.2.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509590904160 -> 140509587660512 + 140509587660512 [label=AccumulateGrad] + 140509587643552 -> 140509587643504 + 140509587643552 [label=ReshapeAliasBackward0] + 140509587643888 -> 140509587643552 + 140509587643888 [label=ExpandBackward0] + 140509587644080 -> 140509587643888 + 140509587644080 [label=PermuteBackward0] + 140509587644272 -> 140509587644080 + 140509587644272 [label=ViewBackward0] + 140509587675312 -> 140509587644272 + 140509587675312 [label=ViewBackward0] + 140509587643696 -> 140509587675312 + 140509587643696 [label=AddmmBackward0] + 140509587657536 -> 140509587643696 + 140509587657536 [label=ToCopyBackward0] + 140509587659168 -> 140509587657536 + 140509590904000 [label="encoder.layer.2.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509590904000 -> 140509587659168 + 140509587659168 [label=AccumulateGrad] + 140509587657248 -> 140509587643696 + 140509587657248 [label=ViewBackward0] + 140509587660176 -> 140509587657248 + 140509587660176 [label=ToCopyBackward0] + 140517615539152 -> 140509587660176 + 140509587656768 -> 140509587643696 + 140509587656768 [label=TBackward0] + 140509587658208 -> 140509587656768 + 140509587658208 [label=ToCopyBackward0] + 140509587658448 -> 140509587658208 + 140509590903920 [label="encoder.layer.2.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509590903920 -> 140509587658448 + 140509587658448 [label=AccumulateGrad] + 140509587642592 -> 140509587642784 + 140509587642592 [label=TBackward0] + 140509587643264 -> 140509587642592 + 140509587643264 [label=ToCopyBackward0] + 140509587643456 -> 140509587643264 + 140509590903680 [label="encoder.layer.2.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590903680 -> 140509587643456 + 140509587643456 [label=AccumulateGrad] + 140509587642496 -> 140509587642352 + 140509587642304 -> 140509587642256 + 140509590903440 [label="encoder.layer.2.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590903440 -> 140509587642304 + 140509587642304 [label=AccumulateGrad] + 140509587641872 -> 140509587642256 + 140509590903520 [label="encoder.layer.2.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590903520 -> 140509587641872 + 140509587641872 [label=AccumulateGrad] + 140509587641392 -> 140509587641680 + 140509587641392 [label=TBackward0] + 140509587641920 -> 140509587641392 + 140509587641920 [label=ToCopyBackward0] + 140509587642400 -> 140509587641920 + 140509590901760 [label="encoder.layer.2.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590901760 -> 140509587642400 + 140509587642400 [label=AccumulateGrad] + 140509587640960 -> 140509587641152 + 140509587640960 [label=TBackward0] + 140509587641632 -> 140509587640960 + 140509587641632 [label=ToCopyBackward0] + 140509587642112 -> 140509587641632 + 140509590901520 [label="encoder.layer.2.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590901520 -> 140509587642112 + 140509587642112 [label=AccumulateGrad] + 140509587640864 -> 140509587640720 + 140509587640672 -> 140509587640576 + 140509590901280 [label="encoder.layer.2.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590901280 -> 140509587640672 + 140509587640672 [label=AccumulateGrad] + 140509587640624 -> 140509587640576 + 140509590901360 [label="encoder.layer.2.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590901360 -> 140509587640624 + 140509587640624 [label=AccumulateGrad] + 140509587640480 -> 140509587625200 + 140509587640480 [label=NativeLayerNormBackward0] + 140509587641008 -> 140509587640480 + 140509587641008 [label=AddBackward0] + 140509587641824 -> 140509587641008 + 140509587641824 [label=NativeDropoutBackward0] + 140509587641536 -> 140509587641824 + 140509587641536 [label=ViewBackward0] + 140509587642064 -> 140509587641536 + 140509587642064 [label=AddmmBackward0] + 140509587642928 -> 140509587642064 + 140509587642928 [label=ToCopyBackward0] + 140509587643024 -> 140509587642928 + 140509590903040 [label="encoder.layer.2.output.dense.bias + (768)" fillcolor=lightblue] + 140509590903040 -> 140509587643024 + 140509587643024 [label=AccumulateGrad] + 140509587642736 -> 140509587642064 + 140509587642736 [label=ViewBackward0] + 140509587643168 -> 140509587642736 + 140509587643168 [label=GeluBackward0] + 140509587644176 -> 140509587643168 + 140509587644176 [label=ViewBackward0] + 140509587643648 -> 140509587644176 + 140509587643648 [label=AddmmBackward0] + 140509587659984 -> 140509587643648 + 140509587659984 [label=ToCopyBackward0] + 140517615592208 -> 140509587659984 + 140509590903280 [label="encoder.layer.2.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590903280 -> 140517615592208 + 140517615592208 [label=AccumulateGrad] + 140509587657920 -> 140509587643648 + 140509587657920 [label=ViewBackward0] + 140517615592304 -> 140509587657920 + 140517615592304 [label=ToCopyBackward0] + 140509587641344 -> 140517615592304 + 140509587641344 [label=SliceBackward0] + 140517615592448 -> 140509587641344 + 140517615592448 [label=SliceBackward0] + 140517615592544 -> 140517615592448 + 140517615592544 [label=SliceBackward0] + 140509587658064 -> 140517615592544 + 140509587657056 -> 140509587643648 + 140509587657056 [label=TBackward0] + 140517615592112 -> 140509587657056 + 140517615592112 [label=ToCopyBackward0] + 140517615592640 -> 140517615592112 + 140509590903200 [label="encoder.layer.2.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590903200 -> 140517615592640 + 140517615592640 [label=AccumulateGrad] + 140509587642640 -> 140509587642064 + 140509587642640 [label=TBackward0] + 140509587643792 -> 140509587642640 + 140509587643792 [label=ToCopyBackward0] + 140509587658832 -> 140509587643792 + 140509590902960 [label="encoder.layer.2.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590902960 -> 140509587658832 + 140509587658832 [label=AccumulateGrad] + 140509587641344 -> 140509587641008 + 140509587640816 -> 140509587640480 + 140509590902720 [label="encoder.layer.2.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590902720 -> 140509587640816 + 140509587640816 [label=AccumulateGrad] + 140509587640768 -> 140509587640480 + 140509590902800 [label="encoder.layer.2.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590902800 -> 140509587640768 + 140509587640768 [label=AccumulateGrad] + 140509587627264 -> 140509587627744 + 140509587627264 [label=TBackward0] + 140509587640384 -> 140509587627264 + 140509587640384 [label=ToCopyBackward0] + 140509587641296 -> 140509587640384 + 140509590901040 [label="encoder.layer.3.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590901040 -> 140509587641296 + 140509587641296 [label=AccumulateGrad] + 140509587627168 -> 140509587627120 + 140509587627168 [label=ReshapeAliasBackward0] + 140509587627504 -> 140509587627168 + 140509587627504 [label=ExpandBackward0] + 140509587627696 -> 140509587627504 + 140509587627696 [label=TransposeBackward0] + 140509587627888 -> 140509587627696 + 140509587627888 [label=PermuteBackward0] + 140509587642448 -> 140509587627888 + 140509587642448 [label=ViewBackward0] + 140509587640432 -> 140509587642448 + 140509587640432 [label=ViewBackward0] + 140509587643360 -> 140509587640432 + 140509587643360 [label=AddmmBackward0] + 140509587643984 -> 140509587643360 + 140509587643984 [label=ToCopyBackward0] + 140517615592256 -> 140509587643984 + 140509590900880 [label="encoder.layer.3.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590900880 -> 140517615592256 + 140517615592256 [label=AccumulateGrad] + 140509587640528 -> 140509587643360 + 140509587640528 [label=ViewBackward0] + 140517615592688 -> 140509587640528 + 140517615592688 [label=ToCopyBackward0] + 140509587625200 -> 140517615592688 + 140517615592352 -> 140509587643360 + 140517615592352 [label=TBackward0] + 140517615592400 -> 140517615592352 + 140517615592400 [label=ToCopyBackward0] + 140517615592832 -> 140517615592400 + 140509590900800 [label="encoder.layer.3.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590900800 -> 140517615592832 + 140517615592832 [label=AccumulateGrad] + 140509587626256 -> 140509587626208 + 140509587626256 [label=ReshapeAliasBackward0] + 140509587626592 -> 140509587626256 + 140509587626592 [label=ExpandBackward0] + 140509587626784 -> 140509587626592 + 140509587626784 [label=PermuteBackward0] + 140509587626976 -> 140509587626784 + 140509587626976 [label=ViewBackward0] + 140509587626352 -> 140509587626976 + 140509587626352 [label=ViewBackward0] + 140509587627600 -> 140509587626352 + 140509587627600 [label=AddmmBackward0] + 140509587627312 -> 140509587627600 + 140509587627312 [label=ToCopyBackward0] + 140509587642976 -> 140509587627312 + 140509590896448 [label="encoder.layer.3.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590896448 -> 140509587642976 + 140509587642976 [label=AccumulateGrad] + 140509587626400 -> 140509587627600 + 140509587626400 [label=ViewBackward0] + 140517615592592 -> 140509587626400 + 140517615592592 [label=ToCopyBackward0] + 140509587625200 -> 140517615592592 + 140509587641104 -> 140509587627600 + 140509587641104 [label=TBackward0] + 140517615592496 -> 140509587641104 + 140517615592496 [label=ToCopyBackward0] + 140517615592736 -> 140517615592496 + 140509590896368 [label="encoder.layer.3.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590896368 -> 140517615592736 + 140517615592736 [label=AccumulateGrad] + 140509587625296 -> 140509587625488 + 140509587625296 [label=TBackward0] + 140509587625968 -> 140509587625296 + 140509587625968 [label=ToCopyBackward0] + 140509587626160 -> 140509587625968 + 140509590896128 [label="encoder.layer.3.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590896128 -> 140509587626160 + 140509587626160 [label=AccumulateGrad] + 140509587625200 -> 140509587625056 + 140509587625008 -> 140509587624960 + 140509590895888 [label="encoder.layer.3.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590895888 -> 140509587625008 + 140509587625008 [label=AccumulateGrad] + 140509587624288 -> 140509587624960 + 140509590895968 [label="encoder.layer.3.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590895968 -> 140509587624288 + 140509587624288 [label=AccumulateGrad] + 140509587624000 -> 140509587624096 + 140509587624000 [label=TBackward0] + 140509587624336 -> 140509587624000 + 140509587624336 [label=ToCopyBackward0] + 140509587624720 -> 140509587624336 + 140509590894208 [label="encoder.layer.3.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590894208 -> 140509587624720 + 140509587624720 [label=AccumulateGrad] + 140509587611024 -> 140509587611216 + 140509587611024 [label=TBackward0] + 140509587611456 -> 140509587611024 + 140509587611456 [label=ToCopyBackward0] + 140509587624528 -> 140509587611456 + 140509590893968 [label="encoder.layer.3.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590893968 -> 140509587624528 + 140509587624528 [label=AccumulateGrad] + 140509587610928 -> 140509587610784 + 140509587610736 -> 140509587610640 + 140509590893728 [label="encoder.layer.3.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590893728 -> 140509587610736 + 140509587610736 [label=AccumulateGrad] + 140509587610688 -> 140509587610640 + 140509590893808 [label="encoder.layer.3.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590893808 -> 140509587610688 + 140509587610688 [label=AccumulateGrad] + 140509587610400 -> 140509587607664 + 140509587610400 [label=NativeLayerNormBackward0] + 140509587611072 -> 140509587610400 + 140509587611072 [label=AddBackward0] + 140509587611600 -> 140509587611072 + 140509587611600 [label=NativeDropoutBackward0] + 140509587624048 -> 140509587611600 + 140509587624048 [label=ViewBackward0] + 140509587624480 -> 140509587624048 + 140509587624480 [label=AddmmBackward0] + 140509587625152 -> 140509587624480 + 140509587625152 [label=ToCopyBackward0] + 140509587625680 -> 140509587625152 + 140509590895488 [label="encoder.layer.3.output.dense.bias + (768)" fillcolor=lightblue] + 140509590895488 -> 140509587625680 + 140509587625680 [label=AccumulateGrad] + 140509587625104 -> 140509587624480 + 140509587625104 [label=ViewBackward0] + 140509587626064 -> 140509587625104 + 140509587626064 [label=GeluBackward0] + 140509587625728 -> 140509587626064 + 140509587625728 [label=ViewBackward0] + 140509587626688 -> 140509587625728 + 140509587626688 [label=AddmmBackward0] + 140509587627072 -> 140509587626688 + 140509587627072 [label=ToCopyBackward0] + 140509587642208 -> 140509587627072 + 140509590895728 [label="encoder.layer.3.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590895728 -> 140509587642208 + 140509587642208 [label=AccumulateGrad] + 140509587626880 -> 140509587626688 + 140509587626880 [label=ViewBackward0] + 140517615593024 -> 140509587626880 + 140517615593024 [label=ToCopyBackward0] + 140509587611360 -> 140517615593024 + 140509587611360 [label=SliceBackward0] + 140517615593072 -> 140509587611360 + 140517615593072 [label=SliceBackward0] + 140517615593168 -> 140517615593072 + 140517615593168 [label=SliceBackward0] + 140509587624960 -> 140517615593168 + 140509587625632 -> 140509587626688 + 140509587625632 [label=TBackward0] + 140517615592784 -> 140509587625632 + 140517615592784 [label=ToCopyBackward0] + 140517615593264 -> 140517615592784 + 140509590895648 [label="encoder.layer.3.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590895648 -> 140517615593264 + 140517615593264 [label=AccumulateGrad] + 140509587624912 -> 140509587624480 + 140509587624912 [label=TBackward0] + 140509587625872 -> 140509587624912 + 140509587625872 [label=ToCopyBackward0] + 140509587627408 -> 140509587625872 + 140509590895408 [label="encoder.layer.3.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590895408 -> 140509587627408 + 140509587627408 [label=AccumulateGrad] + 140509587611360 -> 140509587611072 + 140509587610880 -> 140509587610400 + 140509590895168 [label="encoder.layer.3.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590895168 -> 140509587610880 + 140509587610880 [label=AccumulateGrad] + 140509587610832 -> 140509587610400 + 140509590895248 [label="encoder.layer.3.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590895248 -> 140509587610832 + 140509587610832 [label=AccumulateGrad] + 140509587609680 -> 140509587610160 + 140509587609680 [label=TBackward0] + 140509587610352 -> 140509587609680 + 140509587610352 [label=ToCopyBackward0] + 140509587611168 -> 140509587610352 + 140509590893488 [label="encoder.layer.4.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590893488 -> 140509587611168 + 140509587611168 [label=AccumulateGrad] + 140509587609584 -> 140509587609536 + 140509587609584 [label=ReshapeAliasBackward0] + 140509587609920 -> 140509587609584 + 140509587609920 [label=ExpandBackward0] + 140509587610112 -> 140509587609920 + 140509587610112 [label=TransposeBackward0] + 140509587610592 -> 140509587610112 + 140509587610592 [label=PermuteBackward0] + 140509587610544 -> 140509587610592 + 140509587610544 [label=ViewBackward0] + 140509587624240 -> 140509587610544 + 140509587624240 [label=ViewBackward0] + 140509587625440 -> 140509587624240 + 140509587625440 [label=AddmmBackward0] + 140509587626496 -> 140509587625440 + 140509587626496 [label=ToCopyBackward0] + 140517615592976 -> 140509587626496 + 140509590893328 [label="encoder.layer.4.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590893328 -> 140517615592976 + 140517615592976 [label=AccumulateGrad] + 140509587624816 -> 140509587625440 + 140509587624816 [label=ViewBackward0] + 140517615593312 -> 140509587624816 + 140517615593312 [label=ToCopyBackward0] + 140509587607664 -> 140517615593312 + 140517615592880 -> 140509587625440 + 140517615592880 [label=TBackward0] + 140517615592928 -> 140517615592880 + 140517615592928 [label=ToCopyBackward0] + 140517615593456 -> 140517615592928 + 140509590893248 [label="encoder.layer.4.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590893248 -> 140517615593456 + 140517615593456 [label=AccumulateGrad] + 140509587608672 -> 140509587608624 + 140509587608672 [label=ReshapeAliasBackward0] + 140509587609008 -> 140509587608672 + 140509587609008 [label=ExpandBackward0] + 140509587609200 -> 140509587609008 + 140509587609200 [label=PermuteBackward0] + 140509587609392 -> 140509587609200 + 140509587609392 [label=ViewBackward0] + 140509587608768 -> 140509587609392 + 140509587608768 [label=ViewBackward0] + 140509587610016 -> 140509587608768 + 140509587610016 [label=AddmmBackward0] + 140509587609728 -> 140509587610016 + 140509587609728 [label=ToCopyBackward0] + 140509587625344 -> 140509587609728 + 140509590893088 [label="encoder.layer.4.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590893088 -> 140509587625344 + 140509587625344 [label=AccumulateGrad] + 140509587610304 -> 140509587610016 + 140509587610304 [label=ViewBackward0] + 140517615593216 -> 140509587610304 + 140517615593216 [label=ToCopyBackward0] + 140509587607664 -> 140517615593216 + 140509587608816 -> 140509587610016 + 140509587608816 [label=TBackward0] + 140517615593120 -> 140509587608816 + 140517615593120 [label=ToCopyBackward0] + 140517615593360 -> 140517615593120 + 140509590893008 [label="encoder.layer.4.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590893008 -> 140517615593360 + 140517615593360 [label=AccumulateGrad] + 140509587607712 -> 140509587607904 + 140509587607712 [label=TBackward0] + 140509587608384 -> 140509587607712 + 140509587608384 [label=ToCopyBackward0] + 140509587608576 -> 140509587608384 + 140509590892768 [label="encoder.layer.4.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590892768 -> 140509587608576 + 140509587608576 [label=AccumulateGrad] + 140509587607664 -> 140509587595120 + 140509587595072 -> 140509587595024 + 140509590892608 [label="encoder.layer.4.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590892608 -> 140509587595072 + 140509587595072 [label=AccumulateGrad] + 140509587594544 -> 140509587595024 + 140509590876048 [label="encoder.layer.4.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590876048 -> 140509587594544 + 140509587594544 [label=AccumulateGrad] + 140509587593872 -> 140509587594352 + 140509587593872 [label=TBackward0] + 140509587594592 -> 140509587593872 + 140509587594592 [label=ToCopyBackward0] + 140509587594976 -> 140509587594592 + 140509590875808 [label="encoder.layer.4.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590875808 -> 140509587594976 + 140509587594976 [label=AccumulateGrad] + 140509587593776 -> 140509587593728 + 140509587593776 [label=ReshapeAliasBackward0] + 140509587594112 -> 140509587593776 + 140509587594112 [label=ExpandBackward0] + 140509587594304 -> 140509587594112 + 140509587594304 [label=TransposeBackward0] + 140509587594784 -> 140509587594304 + 140509587594784 [label=PermuteBackward0] + 140509587595168 -> 140509587594784 + 140509587595168 [label=ViewBackward0] + 140509587594736 -> 140509587595168 + 140509587594736 [label=ViewBackward0] + 140509587607856 -> 140509587594736 + 140509587607856 [label=AddmmBackward0] + 140509587608096 -> 140509587607856 + 140509587608096 [label=ToCopyBackward0] + 140509587608288 -> 140509587608096 + 140509590875648 [label="encoder.layer.4.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509590875648 -> 140509587608288 + 140509587608288 [label=AccumulateGrad] + 140509587608048 -> 140509587607856 + 140509587608048 [label=ViewBackward0] + 140509587609104 -> 140509587608048 + 140509587609104 [label=ToCopyBackward0] + 140517615539152 -> 140509587609104 + 140509587607616 -> 140509587607856 + 140509587607616 [label=TBackward0] + 140509587608912 -> 140509587607616 + 140509587608912 [label=ToCopyBackward0] + 140509587609824 -> 140509587608912 + 140509590875568 [label="encoder.layer.4.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509590875568 -> 140509587609824 + 140509587609824 [label=AccumulateGrad] + 140509587592864 -> 140509587592816 + 140509587592864 [label=ReshapeAliasBackward0] + 140509587593200 -> 140509587592864 + 140509587593200 [label=ExpandBackward0] + 140509587593392 -> 140509587593200 + 140509587593392 [label=PermuteBackward0] + 140509587593584 -> 140509587593392 + 140509587593584 [label=ViewBackward0] + 140509587592960 -> 140509587593584 + 140509587592960 [label=ViewBackward0] + 140509587594208 -> 140509587592960 + 140509587594208 [label=AddmmBackward0] + 140509587594880 -> 140509587594208 + 140509587594880 [label=ToCopyBackward0] + 140509587624624 -> 140509587594880 + 140509590875408 [label="encoder.layer.4.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509590875408 -> 140509587624624 + 140509587624624 [label=AccumulateGrad] + 140509587594496 -> 140509587594208 + 140509587594496 [label=ViewBackward0] + 140509587609488 -> 140509587594496 + 140509587609488 [label=ToCopyBackward0] + 140517615539152 -> 140509587609488 + 140509587593008 -> 140509587594208 + 140509587593008 [label=TBackward0] + 140509587607760 -> 140509587593008 + 140509587607760 [label=ToCopyBackward0] + 140509587608480 -> 140509587607760 + 140509590875328 [label="encoder.layer.4.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509590875328 -> 140509587608480 + 140509587608480 [label=AccumulateGrad] + 140509587591904 -> 140509587592096 + 140509587591904 [label=TBackward0] + 140509587592576 -> 140509587591904 + 140509587592576 [label=ToCopyBackward0] + 140509587592768 -> 140509587592576 + 140509590875088 [label="encoder.layer.4.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590875088 -> 140509587592768 + 140509587592768 [label=AccumulateGrad] + 140509587591808 -> 140509587591664 + 140509587591616 -> 140509587591568 + 140509590874848 [label="encoder.layer.4.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590874848 -> 140509587591616 + 140509587591616 [label=AccumulateGrad] + 140509587591376 -> 140509587591568 + 140509590874928 [label="encoder.layer.4.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590874928 -> 140509587591376 + 140509587591376 [label=AccumulateGrad] + 140509587574256 -> 140509587574544 + 140509587574256 [label=TBackward0] + 140509587591328 -> 140509587574256 + 140509587591328 [label=ToCopyBackward0] + 140509587591712 -> 140509587591328 + 140509590873168 [label="encoder.layer.4.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590873168 -> 140509587591712 + 140509587591712 [label=AccumulateGrad] + 140509587573824 -> 140509587574016 + 140509587573824 [label=TBackward0] + 140509587574496 -> 140509587573824 + 140509587574496 [label=ToCopyBackward0] + 140509587574688 -> 140509587574496 + 140509590872928 [label="encoder.layer.4.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590872928 -> 140509587574688 + 140509587574688 [label=AccumulateGrad] + 140509587573728 -> 140509587573584 + 140509587573536 -> 140509587573440 + 140509590872688 [label="encoder.layer.4.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590872688 -> 140509587573536 + 140509587573536 [label=AccumulateGrad] + 140509587573488 -> 140509587573440 + 140509590872768 [label="encoder.layer.4.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590872768 -> 140509587573488 + 140509587573488 [label=AccumulateGrad] + 140509587573200 -> 140509587562112 + 140509587573200 [label=NativeLayerNormBackward0] + 140509587573872 -> 140509587573200 + 140509587573872 [label=AddBackward0] + 140509587574400 -> 140509587573872 + 140509587574400 [label=NativeDropoutBackward0] + 140509587591424 -> 140509587574400 + 140509587591424 [label=ViewBackward0] + 140509587591280 -> 140509587591424 + 140509587591280 [label=AddmmBackward0] + 140509587592240 -> 140509587591280 + 140509587592240 [label=ToCopyBackward0] + 140509587592336 -> 140509587592240 + 140509590874448 [label="encoder.layer.4.output.dense.bias + (768)" fillcolor=lightblue] + 140509590874448 -> 140509587592336 + 140509587592336 [label=AccumulateGrad] + 140509587592048 -> 140509587591280 + 140509587592048 [label=ViewBackward0] + 140509587592480 -> 140509587592048 + 140509587592480 [label=GeluBackward0] + 140509587593488 -> 140509587592480 + 140509587593488 [label=ViewBackward0] + 140509587594016 -> 140509587593488 + 140509587594016 [label=AddmmBackward0] + 140509587593920 -> 140509587594016 + 140509587593920 [label=ToCopyBackward0] + 140517615593504 -> 140509587593920 + 140509590874688 [label="encoder.layer.4.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590874688 -> 140517615593504 + 140517615593504 [label=AccumulateGrad] + 140509587593104 -> 140509587594016 + 140509587593104 [label=ViewBackward0] + 140517615593600 -> 140509587593104 + 140517615593600 [label=ToCopyBackward0] + 140509587574208 -> 140517615593600 + 140509587574208 [label=SliceBackward0] + 140517615593744 -> 140509587574208 + 140517615593744 [label=SliceBackward0] + 140517615593840 -> 140517615593744 + 140517615593840 [label=SliceBackward0] + 140509587595024 -> 140517615593840 + 140509587609296 -> 140509587594016 + 140509587609296 [label=TBackward0] + 140517615593408 -> 140509587609296 + 140517615593408 [label=ToCopyBackward0] + 140517615593936 -> 140517615593408 + 140509590874608 [label="encoder.layer.4.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590874608 -> 140517615593936 + 140517615593936 [label=AccumulateGrad] + 140509587591952 -> 140509587591280 + 140509587591952 [label=TBackward0] + 140509587593680 -> 140509587591952 + 140509587593680 [label=ToCopyBackward0] + 140509587608144 -> 140509587593680 + 140509590874368 [label="encoder.layer.4.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590874368 -> 140509587608144 + 140509587608144 [label=AccumulateGrad] + 140509587574208 -> 140509587573872 + 140509587573680 -> 140509587573200 + 140509590874128 [label="encoder.layer.4.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590874128 -> 140509587573680 + 140509587573680 [label=AccumulateGrad] + 140509587573632 -> 140509587573200 + 140509590874208 [label="encoder.layer.4.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590874208 -> 140509587573632 + 140509587573632 [label=AccumulateGrad] + 140509587572480 -> 140509587572960 + 140509587572480 [label=TBackward0] + 140509587573152 -> 140509587572480 + 140509587573152 [label=ToCopyBackward0] + 140509587574160 -> 140509587573152 + 140509590872448 [label="encoder.layer.5.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590872448 -> 140509587574160 + 140509587574160 [label=AccumulateGrad] + 140509587572384 -> 140509587572336 + 140509587572384 [label=ReshapeAliasBackward0] + 140509587572720 -> 140509587572384 + 140509587572720 [label=ExpandBackward0] + 140509587572912 -> 140509587572720 + 140509587572912 [label=TransposeBackward0] + 140509587573392 -> 140509587572912 + 140509587573392 [label=PermuteBackward0] + 140509587573344 -> 140509587573392 + 140509587573344 [label=ViewBackward0] + 140509587572528 -> 140509587573344 + 140509587572528 [label=ViewBackward0] + 140509587592672 -> 140509587572528 + 140509587592672 [label=AddmmBackward0] + 140509587593296 -> 140509587592672 + 140509587593296 [label=ToCopyBackward0] + 140517615593552 -> 140509587593296 + 140509590872288 [label="encoder.layer.5.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590872288 -> 140517615593552 + 140517615593552 [label=AccumulateGrad] + 140509587591760 -> 140509587592672 + 140509587591760 [label=ViewBackward0] + 140517615593984 -> 140509587591760 + 140517615593984 [label=ToCopyBackward0] + 140509587562112 -> 140517615593984 + 140517615593648 -> 140509587592672 + 140517615593648 [label=TBackward0] + 140517615593696 -> 140517615593648 + 140517615593696 [label=ToCopyBackward0] + 140517615594128 -> 140517615593696 + 140509590872208 [label="encoder.layer.5.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590872208 -> 140517615594128 + 140517615594128 [label=AccumulateGrad] + 140509587571472 -> 140509587571424 + 140509587571472 [label=ReshapeAliasBackward0] + 140509587571808 -> 140509587571472 + 140509587571808 [label=ExpandBackward0] + 140509587572000 -> 140509587571808 + 140509587572000 [label=PermuteBackward0] + 140509587572192 -> 140509587572000 + 140509587572192 [label=ViewBackward0] + 140509587571568 -> 140509587572192 + 140509587571568 [label=ViewBackward0] + 140509587572816 -> 140509587571568 + 140509587572816 [label=AddmmBackward0] + 140509587573968 -> 140509587572816 + 140509587573968 [label=ToCopyBackward0] + 140509587592288 -> 140509587573968 + 140509590859664 [label="encoder.layer.5.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590859664 -> 140509587592288 + 140509587592288 [label=AccumulateGrad] + 140509587573104 -> 140509587572816 + 140509587573104 [label=ViewBackward0] + 140517615593888 -> 140509587573104 + 140517615593888 [label=ToCopyBackward0] + 140509587562112 -> 140517615593888 + 140509587571616 -> 140509587572816 + 140509587571616 [label=TBackward0] + 140517615593792 -> 140509587571616 + 140517615593792 [label=ToCopyBackward0] + 140517615594032 -> 140517615593792 + 140509590859584 [label="encoder.layer.5.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590859584 -> 140517615594032 + 140517615594032 [label=AccumulateGrad] + 140509587570752 -> 140509587562400 + 140509587570752 [label=TBackward0] + 140509587571184 -> 140509587570752 + 140509587571184 [label=ToCopyBackward0] + 140509587571376 -> 140509587571184 + 140509590859344 [label="encoder.layer.5.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590859344 -> 140509587571376 + 140509587571376 [label=AccumulateGrad] + 140509587562112 -> 140509587561968 + 140509587561920 -> 140509587561872 + 140509590859104 [label="encoder.layer.5.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590859104 -> 140509587561920 + 140509587561920 [label=AccumulateGrad] + 140509587561200 -> 140509587561872 + 140509590859184 [label="encoder.layer.5.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590859184 -> 140509587561200 + 140509587561200 [label=AccumulateGrad] + 140509587560720 -> 140509587561008 + 140509587560720 [label=TBackward0] + 140509587561248 -> 140509587560720 + 140509587561248 [label=ToCopyBackward0] + 140509587561632 -> 140509587561248 + 140509590857424 [label="encoder.layer.5.experts.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590857424 -> 140509587561632 + 140509587561632 [label=AccumulateGrad] + 140509587560288 -> 140509587560480 + 140509587560288 [label=TBackward0] + 140509587560960 -> 140509587560288 + 140509587560960 [label=ToCopyBackward0] + 140509587561440 -> 140509587560960 + 140509590857184 [label="encoder.layer.5.experts.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590857184 -> 140509587561440 + 140509587561440 [label=AccumulateGrad] + 140509587560192 -> 140509587560048 + 140509587560000 -> 140509587559904 + 140509590856944 [label="encoder.layer.5.experts.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590856944 -> 140509587560000 + 140509587560000 [label=AccumulateGrad] + 140509587559952 -> 140509587559904 + 140509590857024 [label="encoder.layer.5.experts.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590857024 -> 140509587559952 + 140509587559952 [label=AccumulateGrad] + 140509587559664 -> 140509587850432 + 140509587559664 [label=NativeLayerNormBackward0] + 140509587560336 -> 140509587559664 + 140509587560336 [label=AddBackward0] + 140509587561152 -> 140509587560336 + 140509587561152 [label=NativeDropoutBackward0] + 140509587560864 -> 140509587561152 + 140509587560864 [label=ViewBackward0] + 140509587561392 -> 140509587560864 + 140509587561392 [label=AddmmBackward0] + 140509587562064 -> 140509587561392 + 140509587562064 [label=ToCopyBackward0] + 140509587562352 -> 140509587562064 + 140509590858704 [label="encoder.layer.5.output.dense.bias + (768)" fillcolor=lightblue] + 140509590858704 -> 140509587562352 + 140509587562352 [label=AccumulateGrad] + 140509587562016 -> 140509587561392 + 140509587562016 [label=ViewBackward0] + 140509587571280 -> 140509587562016 + 140509587571280 [label=GeluBackward0] + 140509587570848 -> 140509587571280 + 140509587570848 [label=ViewBackward0] + 140509587571904 -> 140509587570848 + 140509587571904 [label=AddmmBackward0] + 140509587572288 -> 140509587571904 + 140509587572288 [label=ToCopyBackward0] + 140509587591520 -> 140509587572288 + 140509590858944 [label="encoder.layer.5.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590858944 -> 140509587591520 + 140509587591520 [label=AccumulateGrad] + 140509587572096 -> 140509587571904 + 140509587572096 [label=ViewBackward0] + 140517615594320 -> 140509587572096 + 140517615594320 [label=ToCopyBackward0] + 140509587560672 -> 140517615594320 + 140509587560672 [label=SliceBackward0] + 140517615594368 -> 140509587560672 + 140517615594368 [label=SliceBackward0] + 140517615594464 -> 140517615594368 + 140517615594464 [label=SliceBackward0] + 140509587561872 -> 140517615594464 + 140509587571088 -> 140509587571904 + 140509587571088 [label=TBackward0] + 140517615594080 -> 140509587571088 + 140517615594080 [label=ToCopyBackward0] + 140517615594560 -> 140517615594080 + 140509590858864 [label="encoder.layer.5.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590858864 -> 140517615594560 + 140517615594560 [label=AccumulateGrad] + 140509587561824 -> 140509587561392 + 140509587561824 [label=TBackward0] + 140509587571040 -> 140509587561824 + 140509587571040 [label=ToCopyBackward0] + 140509587572624 -> 140509587571040 + 140509590858624 [label="encoder.layer.5.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590858624 -> 140509587572624 + 140509587572624 [label=AccumulateGrad] + 140509587560672 -> 140509587560336 + 140509587560144 -> 140509587559664 + 140509590858384 [label="encoder.layer.5.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590858384 -> 140509587560144 + 140509587560144 [label=AccumulateGrad] + 140509587560096 -> 140509587559664 + 140509590858464 [label="encoder.layer.5.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590858464 -> 140509587560096 + 140509587560096 [label=AccumulateGrad] + 140509587558944 -> 140509587559424 + 140509587558944 [label=TBackward0] + 140509587559616 -> 140509587558944 + 140509587559616 [label=ToCopyBackward0] + 140509587560624 -> 140509587559616 + 140509590856704 [label="encoder.layer.6.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590856704 -> 140509587560624 + 140509587560624 [label=AccumulateGrad] + 140509587558848 -> 140509587558800 + 140509587558848 [label=ReshapeAliasBackward0] + 140509587559184 -> 140509587558848 + 140509587559184 [label=ExpandBackward0] + 140509587559376 -> 140509587559184 + 140509587559376 [label=TransposeBackward0] + 140509587559856 -> 140509587559376 + 140509587559856 [label=PermuteBackward0] + 140509587561728 -> 140509587559856 + 140509587561728 [label=ViewBackward0] + 140509587559808 -> 140509587561728 + 140509587559808 [label=ViewBackward0] + 140509587562256 -> 140509587559808 + 140509587562256 [label=AddmmBackward0] + 140509587571712 -> 140509587562256 + 140509587571712 [label=ToCopyBackward0] + 140517615594272 -> 140509587571712 + 140509590856544 [label="encoder.layer.6.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590856544 -> 140517615594272 + 140517615594272 [label=AccumulateGrad] + 140509587570800 -> 140509587562256 + 140509587570800 [label=ViewBackward0] + 140517615594608 -> 140509587570800 + 140517615594608 [label=ToCopyBackward0] + 140509587850432 -> 140517615594608 + 140517615594176 -> 140509587562256 + 140517615594176 [label=TBackward0] + 140517615594224 -> 140517615594176 + 140517615594224 [label=ToCopyBackward0] + 140517615594752 -> 140517615594224 + 140509590856464 [label="encoder.layer.6.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590856464 -> 140517615594752 + 140517615594752 [label=AccumulateGrad] + 140509587849376 -> 140509587849520 + 140509587849376 [label=ReshapeAliasBackward0] + 140509587853120 -> 140509587849376 + 140509587853120 [label=ExpandBackward0] + 140509587853216 -> 140509587853120 + 140509587853216 [label=PermuteBackward0] + 140509587558656 -> 140509587853216 + 140509587558656 [label=ViewBackward0] + 140509587558464 -> 140509587558656 + 140509587558464 [label=ViewBackward0] + 140509587559280 -> 140509587558464 + 140509587559280 [label=AddmmBackward0] + 140509587560432 -> 140509587559280 + 140509587560432 [label=ToCopyBackward0] + 140509587558992 -> 140509587560432 + 140509590856304 [label="encoder.layer.6.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590856304 -> 140509587558992 + 140509587558992 [label=AccumulateGrad] + 140509587559568 -> 140509587559280 + 140509587559568 [label=ViewBackward0] + 140517615594512 -> 140509587559568 + 140517615594512 [label=ToCopyBackward0] + 140509587850432 -> 140517615594512 + 140509587558512 -> 140509587559280 + 140509587558512 [label=TBackward0] + 140517615594416 -> 140509587558512 + 140517615594416 [label=ToCopyBackward0] + 140517615594656 -> 140517615594416 + 140509590856224 [label="encoder.layer.6.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590856224 -> 140517615594656 + 140517615594656 [label=AccumulateGrad] + 140509587850336 -> 140509587850144 + 140509587850336 [label=TBackward0] + 140509587849664 -> 140509587850336 + 140509587849664 [label=ToCopyBackward0] + 140509587849472 -> 140509587849664 + 140509590855984 [label="encoder.layer.6.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590855984 -> 140509587849472 + 140509587849472 [label=AccumulateGrad] + 140509587850432 -> 140509587850672 + 140509587850624 -> 140509587850768 + 140509590855744 [label="encoder.layer.6.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590855744 -> 140509587850624 + 140509587850624 [label=AccumulateGrad] + 140509587851248 -> 140509587850768 + 140509590855824 [label="encoder.layer.6.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590855824 -> 140509587851248 + 140509587851248 [label=AccumulateGrad] + 140509587851920 -> 140509587851440 + 140509587851920 [label=TBackward0] + 140509587851104 -> 140509587851920 + 140509587851104 [label=ToCopyBackward0] + 140509587850720 -> 140509587851104 + 140509590843120 [label="encoder.layer.6.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590843120 -> 140509587850720 + 140509587850720 [label=AccumulateGrad] + 140509587852016 -> 140509587851968 + 140509587852016 [label=ReshapeAliasBackward0] + 140509587851584 -> 140509587852016 + 140509587851584 [label=ExpandBackward0] + 140509587851392 -> 140509587851584 + 140509587851392 [label=TransposeBackward0] + 140509587850912 -> 140509587851392 + 140509587850912 [label=PermuteBackward0] + 140509587850576 -> 140509587850912 + 140509587850576 [label=ViewBackward0] + 140509587851056 -> 140509587850576 + 140509587851056 [label=ViewBackward0] + 140509587850288 -> 140509587851056 + 140509587850288 [label=AddmmBackward0] + 140509587849952 -> 140509587850288 + 140509587849952 [label=ToCopyBackward0] + 140509587849760 -> 140509587849952 + 140509590842960 [label="encoder.layer.6.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509590842960 -> 140509587849760 + 140509587849760 [label=AccumulateGrad] + 140509587850096 -> 140509587850288 + 140509587850096 [label=ViewBackward0] + 140509587853024 -> 140509587850096 + 140509587853024 [label=ToCopyBackward0] + 140517615539152 -> 140509587853024 + 140509587851776 -> 140509587850288 + 140509587851776 [label=TBackward0] + 140509587850000 -> 140509587851776 + 140509587850000 [label=ToCopyBackward0] + 140509587559088 -> 140509587850000 + 140509590842880 [label="encoder.layer.6.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509590842880 -> 140509587559088 + 140509587559088 [label=AccumulateGrad] + 140509587852880 -> 140509587695984 + 140509587852880 [label=ReshapeAliasBackward0] + 140509587852592 -> 140509587852880 + 140509587852592 [label=ExpandBackward0] + 140509587852400 -> 140509587852592 + 140509587852400 [label=PermuteBackward0] + 140509587852208 -> 140509587852400 + 140509587852208 [label=ViewBackward0] + 140509587852736 -> 140509587852208 + 140509587852736 [label=ViewBackward0] + 140509587851488 -> 140509587852736 + 140509587851488 [label=AddmmBackward0] + 140509587850816 -> 140509587851488 + 140509587850816 [label=ToCopyBackward0] + 140509587849328 -> 140509587850816 + 140509590842720 [label="encoder.layer.6.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509590842720 -> 140509587849328 + 140509587849328 [label=AccumulateGrad] + 140509587851200 -> 140509587851488 + 140509587851200 [label=ViewBackward0] + 140509587850384 -> 140509587851200 + 140509587850384 [label=ToCopyBackward0] + 140517615539152 -> 140509587850384 + 140509587852784 -> 140509587851488 + 140509587852784 [label=TBackward0] + 140509587849568 -> 140509587852784 + 140509587849568 [label=ToCopyBackward0] + 140509587561536 -> 140509587849568 + 140509590842640 [label="encoder.layer.6.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509590842640 -> 140509587561536 + 140509587561536 [label=AccumulateGrad] + 140509587695216 -> 140509587695600 + 140509587695216 [label=TBackward0] + 140509587697520 -> 140509587695216 + 140509587697520 [label=ToCopyBackward0] + 140509587695552 -> 140509587697520 + 140509590842400 [label="encoder.layer.6.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590842400 -> 140509587695552 + 140509587695552 [label=AccumulateGrad] + 140509587695120 -> 140509587694832 + 140509587696080 -> 140509587694592 + 140509590842160 [label="encoder.layer.6.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590842160 -> 140509587696080 + 140509587696080 [label=AccumulateGrad] + 140509587697040 -> 140509587694592 + 140509590842240 [label="encoder.layer.6.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590842240 -> 140509587697040 + 140509587697040 [label=AccumulateGrad] + 140509587697328 -> 140509587696464 + 140509587697328 [label=TBackward0] + 140509587693632 -> 140509587697328 + 140509587693632 [label=ToCopyBackward0] + 140509587694256 -> 140509587693632 + 140509590826016 [label="encoder.layer.6.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590826016 -> 140509587694256 + 140509587694256 [label=AccumulateGrad] + 140509588196464 -> 140509588196752 + 140509588196464 [label=TBackward0] + 140509588197136 -> 140509588196464 + 140509588197136 [label=ToCopyBackward0] + 140509587693968 -> 140509588197136 + 140509590826176 [label="encoder.layer.6.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590826176 -> 140509587693968 + 140509587693968 [label=AccumulateGrad] + 140509588196272 -> 140509588195888 + 140509588195984 -> 140509588195696 + 140509590825696 [label="encoder.layer.6.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590825696 -> 140509588195984 + 140509588195984 [label=AccumulateGrad] + 140509588195456 -> 140509588195696 + 140509590826496 [label="encoder.layer.6.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590826496 -> 140509588195456 + 140509588195456 [label=AccumulateGrad] + 140509588195408 -> 140509588195216 + 140509588195408 [label=UnsqueezeBackward0] + 140509588195936 -> 140509588195408 + 140509588195936 [label=NativeLayerNormBackward0] + 140509588196416 -> 140509588195936 + 140509588196416 [label=AddBackward0] + 140509587694640 -> 140509588196416 + 140509587694640 [label=NativeDropoutBackward0] + 140509587697424 -> 140509587694640 + 140509587697424 [label=ViewBackward0] + 140509587693776 -> 140509587697424 + 140509587693776 [label=AddmmBackward0] + 140509587694928 -> 140509587693776 + 140509587694928 [label=ToCopyBackward0] + 140509587696848 -> 140509587694928 + 140509590825936 [label="encoder.layer.6.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509590825936 -> 140509587696848 + 140509587696848 [label=AccumulateGrad] + 140509587694736 -> 140509587693776 + 140509587694736 [label=ViewBackward0] + 140509587695888 -> 140509587694736 + 140509587695888 [label=GeluBackward0] + 140509587696176 -> 140509587695888 + 140509587696176 [label=ViewBackward0] + 140509587695504 -> 140509587696176 + 140509587695504 [label=AddmmBackward0] + 140509587852304 -> 140509587695504 + 140509587852304 [label=ToCopyBackward0] + 140509587850528 -> 140509587852304 + 140509590825456 [label="encoder.layer.6.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509590825456 -> 140509587850528 + 140509587850528 [label=AccumulateGrad] + 140509587852496 -> 140509587695504 + 140509587852496 [label=ViewBackward0] + 140509587558560 -> 140509587852496 + 140509587558560 [label=ToCopyBackward0] + 140509588196272 -> 140509587558560 + 140509587852688 -> 140509587695504 + 140509587852688 [label=TBackward0] + 140509587851680 -> 140509587852688 + 140509587851680 [label=ToCopyBackward0] + 140517615594800 -> 140509587851680 + 140509590825536 [label="encoder.layer.6.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590825536 -> 140517615594800 + 140517615594800 [label=AccumulateGrad] + 140509587697136 -> 140509587693776 + 140509587697136 [label=TBackward0] + 140509587695312 -> 140509587697136 + 140509587695312 [label=ToCopyBackward0] + 140509587558752 -> 140509587695312 + 140509590825296 [label="encoder.layer.6.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590825296 -> 140509587558752 + 140509587558752 [label=AccumulateGrad] + 140509588196272 -> 140509588196416 + 140509588196368 -> 140509588195936 + 140509590825056 [label="encoder.layer.6.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590825056 -> 140509588196368 + 140509588196368 [label=AccumulateGrad] + 140509588195792 -> 140509588195936 + 140509590824976 [label="encoder.layer.6.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590824976 -> 140509588195792 + 140509588195792 [label=AccumulateGrad] + 140509588195312 -> 140509588194976 + 140509588195312 [label=UnsqueezeBackward0] + 140509588196848 -> 140509588195312 + 140509588196848 [label=UnsqueezeBackward0] + 140509588195504 -> 140509588196848 + 140509588195504 [label=MulBackward0] + 140509587695024 -> 140509588195504 + 140509587695024 [label=ViewBackward0] + 140509587696656 -> 140509587695024 + 140509587696656 [label=CloneBackward0] + 140509587852832 -> 140509587696656 + 140509587852832 [label=ExpandBackward0] + 140517615594896 -> 140509587852832 + 140517615594896 [label=UnsqueezeBackward0] + 140517615594992 -> 140517615594896 + 140517615594992 [label=SoftmaxBackward0] + 140517615595088 -> 140517615594992 + 140517615595088 [label=MmBackward0] + 140517615595184 -> 140517615595088 + 140517615595184 [label=ToCopyBackward0] + 140517615595328 -> 140517615595184 + 140517615595328 [label=DivBackward0] + 140517615595424 -> 140517615595328 + 140517615595424 [label=SumBackward1] + 140517615595472 -> 140517615595424 + 140517615595472 [label=MulBackward0] + 140509587694352 -> 140517615595472 + 140517615595136 -> 140517615595088 + 140517615595136 [label=TBackward0] + 140517615595232 -> 140517615595136 + 140517615595232 [label=ToCopyBackward0] + 140517615595280 -> 140517615595232 + 140509590839840 [label="encoder.layer.6.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509590839840 -> 140517615595280 + 140517615595280 [label=AccumulateGrad] + 140509588194448 -> 140509588165008 + 140509588194448 [label=ViewBackward0] + 140509588196080 -> 140509588194448 + 140509588196080 [label=CloneBackward0] + 140509588195120 -> 140509588196080 + 140509588195120 [label=ExpandBackward0] + 140509587852112 -> 140509588195120 + 140509587852112 [label=UnsqueezeBackward0] + 140509587694160 -> 140509587852112 + 140509587694160 [label=NativeLayerNormBackward0] + 140517615594848 -> 140509587694160 + 140517615594848 [label=AddBackward0] + 140517615726656 -> 140517615594848 + 140517615726656 [label=NativeDropoutBackward0] + 140517615726896 -> 140517615726656 + 140517615726896 [label=ViewBackward0] + 140517615726992 -> 140517615726896 + 140517615726992 [label=AddmmBackward0] + 140517615727088 -> 140517615726992 + 140517615727088 [label=ToCopyBackward0] + 140517615727280 -> 140517615727088 + 140509590841760 [label="encoder.layer.6.output.dense.bias + (768)" fillcolor=lightblue] + 140509590841760 -> 140517615727280 + 140517615727280 [label=AccumulateGrad] + 140517615727040 -> 140517615726992 + 140517615727040 [label=ViewBackward0] + 140517615727328 -> 140517615727040 + 140517615727328 [label=GeluBackward0] + 140517615727424 -> 140517615727328 + 140517615727424 [label=ViewBackward0] + 140517615727520 -> 140517615727424 + 140517615727520 [label=AddmmBackward0] + 140517615727616 -> 140517615727520 + 140517615727616 [label=ToCopyBackward0] + 140517615727808 -> 140517615727616 + 140509590842000 [label="encoder.layer.6.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590842000 -> 140517615727808 + 140517615727808 [label=AccumulateGrad] + 140517615727568 -> 140517615727520 + 140517615727568 [label=ViewBackward0] + 140517615727856 -> 140517615727568 + 140517615727856 [label=ToCopyBackward0] + 140517615726800 -> 140517615727856 + 140517615726800 [label=SliceBackward0] + 140517615728000 -> 140517615726800 + 140517615728000 [label=SliceBackward0] + 140517615728096 -> 140517615728000 + 140517615728096 [label=SliceBackward0] + 140509587850768 -> 140517615728096 + 140517615727232 -> 140517615727520 + 140517615727232 [label=TBackward0] + 140517615727760 -> 140517615727232 + 140517615727760 [label=ToCopyBackward0] + 140517615728192 -> 140517615727760 + 140509590841920 [label="encoder.layer.6.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509590841920 -> 140517615728192 + 140517615728192 [label=AccumulateGrad] + 140517615726752 -> 140517615726992 + 140517615726752 [label=TBackward0] + 140517615727472 -> 140517615726752 + 140517615727472 [label=ToCopyBackward0] + 140517615727952 -> 140517615727472 + 140509590841680 [label="encoder.layer.6.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590841680 -> 140517615727952 + 140517615727952 [label=AccumulateGrad] + 140517615726800 -> 140517615594848 + 140517615595040 -> 140509587694160 + 140509590841440 [label="encoder.layer.6.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590841440 -> 140517615595040 + 140517615595040 [label=AccumulateGrad] + 140517615594944 -> 140509587694160 + 140509590841520 [label="encoder.layer.6.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590841520 -> 140517615594944 + 140517615594944 [label=AccumulateGrad] + 140509588193344 -> 140509588194160 + 140509588193344 [label=TBackward0] + 140509588194544 -> 140509588193344 + 140509588194544 [label=ToCopyBackward0] + 140509588194928 -> 140509588194544 + 140509590840000 [label="encoder.layer.7.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590840000 -> 140509588194928 + 140509588194928 [label=AccumulateGrad] + 140509588168464 -> 140509588168176 + 140509588168464 [label=UnsafeViewBackward0] + 140509588168560 -> 140509588168464 + 140509588168560 [label=CloneBackward0] + 140509588193776 -> 140509588168560 + 140509588193776 [label=ExpandBackward0] + 140509588194256 -> 140509588193776 + 140509588194256 [label=TransposeBackward0] + 140509588194832 -> 140509588194256 + 140509588194832 [label=PermuteBackward0] + 140509587694448 -> 140509588194832 + 140509587694448 [label=ViewBackward0] + 140517615595376 -> 140509587694448 + 140517615595376 [label=ViewBackward0] + 140509588193392 -> 140517615595376 + 140509588193392 [label=AddmmBackward0] + 140517615727136 -> 140509588193392 + 140517615727136 [label=ToCopyBackward0] + 140517615728048 -> 140517615727136 + 140509590840560 [label="encoder.layer.7.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590840560 -> 140517615728048 + 140517615728048 [label=AccumulateGrad] + 140517615726944 -> 140509588193392 + 140517615726944 [label=ViewBackward0] + 140517615727376 -> 140517615726944 + 140517615727376 [label=ToCopyBackward0] + 140509588165008 -> 140517615727376 + 140517615726704 -> 140509588193392 + 140517615726704 [label=TBackward0] + 140517615727664 -> 140517615726704 + 140517615727664 [label=ToCopyBackward0] + 140517615728240 -> 140517615727664 + 140509590840240 [label="encoder.layer.7.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590840240 -> 140517615728240 + 140517615728240 [label=AccumulateGrad] + 140509588166736 -> 140509588166832 + 140509588166736 [label=UnsafeViewBackward0] + 140509588167504 -> 140509588166736 + 140509588167504 [label=CloneBackward0] + 140509588167792 -> 140509588167504 + 140509588167792 [label=ExpandBackward0] + 140509588168080 -> 140509588167792 + 140509588168080 [label=PermuteBackward0] + 140509588166928 -> 140509588168080 + 140509588166928 [label=ViewBackward0] + 140509588167120 -> 140509588166928 + 140509588167120 [label=ViewBackward0] + 140509588194736 -> 140509588167120 + 140509588194736 [label=AddmmBackward0] + 140517615594704 -> 140509588194736 + 140517615594704 [label=ToCopyBackward0] + 140517615727712 -> 140517615594704 + 140509590839760 [label="encoder.layer.7.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590839760 -> 140517615727712 + 140517615727712 [label=AccumulateGrad] + 140509587695792 -> 140509588194736 + 140509587695792 [label=ViewBackward0] + 140517615728336 -> 140509587695792 + 140517615728336 [label=ToCopyBackward0] + 140509588165008 -> 140517615728336 + 140509588193488 -> 140509588194736 + 140509588193488 [label=TBackward0] + 140517615727184 -> 140509588193488 + 140517615727184 [label=ToCopyBackward0] + 140517615728384 -> 140517615727184 + 140509590840480 [label="encoder.layer.7.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590840480 -> 140517615728384 + 140517615728384 [label=AccumulateGrad] + 140509588165056 -> 140509588165488 + 140509588165056 [label=TBackward0] + 140509588166256 -> 140509588165056 + 140509588166256 [label=ToCopyBackward0] + 140509588166496 -> 140509588166256 + 140509590839600 [label="encoder.layer.7.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590839600 -> 140509588166496 + 140509588166496 [label=AccumulateGrad] + 140509588165008 -> 140509588164912 + 140509588164720 -> 140509588139888 + 140509590839520 [label="encoder.layer.7.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590839520 -> 140509588164720 + 140509588164720 [label=AccumulateGrad] + 140509588164672 -> 140509588139888 + 140509985419152 [label="encoder.layer.7.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509985419152 -> 140509588164672 + 140509588164672 [label=AccumulateGrad] + 140509588138160 -> 140509588138640 + 140509588138160 [label=TBackward0] + 140509588138928 -> 140509588138160 + 140509588138928 [label=ToCopyBackward0] + 140509588139456 -> 140509588138928 + 140509591342032 [label="encoder.layer.7.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591342032 -> 140509588139456 + 140509588139456 [label=AccumulateGrad] + 140509588137296 -> 140509588137536 + 140509588137296 [label=TBackward0] + 140509588138448 -> 140509588137296 + 140509588138448 [label=ToCopyBackward0] + 140509588139216 -> 140509588138448 + 140509591341712 [label="encoder.layer.7.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591341712 -> 140509588139216 + 140509588139216 [label=AccumulateGrad] + 140509588137056 -> 140509588137104 + 140509588136816 -> 140509588136912 + 140509591341472 [label="encoder.layer.7.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591341472 -> 140509588136816 + 140509588136816 [label=AccumulateGrad] + 140509588136720 -> 140509588136912 + 140509591341792 [label="encoder.layer.7.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591341792 -> 140509588136720 + 140509588136720 [label=AccumulateGrad] + 140509588136624 -> 140509588136432 + 140509588136624 [label=UnsqueezeBackward0] + 140509588137200 -> 140509588136624 + 140509588137200 [label=NativeLayerNormBackward0] + 140509588137680 -> 140509588137200 + 140509588137680 [label=AddBackward0] + 140509588139024 -> 140509588137680 + 140509588139024 [label=NativeDropoutBackward0] + 140509588138256 -> 140509588139024 + 140509588138256 [label=ViewBackward0] + 140509588139312 -> 140509588138256 + 140509588139312 [label=AddmmBackward0] + 140509588137968 -> 140509588139312 + 140509588137968 [label=ToCopyBackward0] + 140509588165776 -> 140509588137968 + 140509591342192 [label="encoder.layer.7.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591342192 -> 140509588165776 + 140509588165776 [label=AccumulateGrad] + 140509588165104 -> 140509588139312 + 140509588165104 [label=ViewBackward0] + 140509588166448 -> 140509588165104 + 140509588166448 [label=GeluBackward0] + 140509588166064 -> 140509588166448 + 140509588166064 [label=ViewBackward0] + 140509588167600 -> 140509588166064 + 140509588167600 [label=AddmmBackward0] + 140509588168272 -> 140509588167600 + 140509588168272 [label=ToCopyBackward0] + 140509588193968 -> 140509588168272 + 140509591341552 [label="encoder.layer.7.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591341552 -> 140509588193968 + 140509588193968 [label=AccumulateGrad] + 140509588167984 -> 140509588167600 + 140509588167984 [label=ViewBackward0] + 140517615727904 -> 140509588167984 + 140517615727904 [label=ToCopyBackward0] + 140509588137056 -> 140517615727904 + 140509588165872 -> 140509588167600 + 140509588165872 [label=TBackward0] + 140517615726848 -> 140509588165872 + 140517615726848 [label=ToCopyBackward0] + 140517615728288 -> 140517615726848 + 140509591341232 [label="encoder.layer.7.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591341232 -> 140517615728288 + 140517615728288 [label=AccumulateGrad] + 140509588164816 -> 140509588139312 + 140509588164816 [label=TBackward0] + 140509588166016 -> 140509588164816 + 140509588166016 [label=ToCopyBackward0] + 140509588193536 -> 140509588166016 + 140509591340992 [label="encoder.layer.7.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591340992 -> 140509588193536 + 140509588193536 [label=AccumulateGrad] + 140509588137056 -> 140509588137680 + 140509588137584 -> 140509588137200 + 140509591340752 [label="encoder.layer.7.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591340752 -> 140509588137584 + 140509588137584 [label=AccumulateGrad] + 140509588136576 -> 140509588137200 + 140509591341072 [label="encoder.layer.7.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591341072 -> 140509588136576 + 140509588136576 [label=AccumulateGrad] + 140509588136096 -> 140509588136240 + 140509588136096 [label=UnsqueezeBackward0] + 140509588138064 -> 140509588136096 + 140509588138064 [label=UnsqueezeBackward0] + 140509588139408 -> 140509588138064 + 140509588139408 [label=MulBackward0] + 140509588139696 -> 140509588139408 + 140509588139696 [label=SoftmaxBackward0] + 140509588167312 -> 140509588139696 + 140509588167312 [label=MmBackward0] + 140509588165392 -> 140509588167312 + 140509588165392 [label=ToCopyBackward0] + 140517615728480 -> 140509588165392 + 140517615728480 [label=DivBackward0] + 140517615728672 -> 140517615728480 + 140517615728672 [label=SumBackward1] + 140517615728768 -> 140517615728672 + 140517615728768 [label=MulBackward0] + 140509588137056 -> 140517615728768 + 140517615728144 -> 140509588167312 + 140517615728144 [label=TBackward0] + 140517615728720 -> 140517615728144 + 140517615728720 [label=ToCopyBackward0] + 140517615728816 -> 140517615728720 + 140509590823376 [label="encoder.layer.7.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509590823376 -> 140517615728816 + 140517615728816 [label=AccumulateGrad] + 140509588106928 -> 140509588077488 + 140509588106928 [label=IndexBackward0] + 140509588137008 -> 140509588106928 + 140509588137008 [label=NativeLayerNormBackward0] + 140509588136336 -> 140509588137008 + 140509588136336 [label=AddBackward0] + 140517615728864 -> 140509588136336 + 140517615728864 [label=NativeDropoutBackward0] + 140517615728528 -> 140517615728864 + 140517615728528 [label=ViewBackward0] + 140517615729008 -> 140517615728528 + 140517615729008 [label=AddmmBackward0] + 140517615729104 -> 140517615729008 + 140517615729104 [label=ToCopyBackward0] + 140517615729296 -> 140517615729104 + 140509590826656 [label="encoder.layer.7.output.dense.bias + (768)" fillcolor=lightblue] + 140509590826656 -> 140517615729296 + 140517615729296 [label=AccumulateGrad] + 140517615729056 -> 140517615729008 + 140517615729056 [label=ViewBackward0] + 140517615729344 -> 140517615729056 + 140517615729344 [label=GeluBackward0] + 140517615729440 -> 140517615729344 + 140517615729440 [label=ViewBackward0] + 140517615729536 -> 140517615729440 + 140517615729536 [label=AddmmBackward0] + 140517615729632 -> 140517615729536 + 140517615729632 [label=ToCopyBackward0] + 140517615729824 -> 140517615729632 + 140509590826896 [label="encoder.layer.7.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509590826896 -> 140517615729824 + 140517615729824 [label=AccumulateGrad] + 140517615729584 -> 140517615729536 + 140517615729584 [label=ViewBackward0] + 140517615729872 -> 140517615729584 + 140517615729872 [label=ToCopyBackward0] + 140517615728624 -> 140517615729872 + 140517615728624 [label=SliceBackward0] + 140517615730016 -> 140517615728624 + 140517615730016 [label=SliceBackward0] + 140517615730112 -> 140517615730016 + 140517615730112 [label=SliceBackward0] + 140509588139888 -> 140517615730112 + 140517615729248 -> 140517615729536 + 140517615729248 [label=TBackward0] + 140517615729776 -> 140517615729248 + 140517615729776 [label=ToCopyBackward0] + 140517615730208 -> 140517615729776 + 140509985417872 [label="encoder.layer.7.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509985417872 -> 140517615730208 + 140517615730208 [label=AccumulateGrad] + 140517615728912 -> 140517615729008 + 140517615728912 [label=TBackward0] + 140517615729488 -> 140517615728912 + 140517615729488 [label=ToCopyBackward0] + 140517615729968 -> 140517615729488 + 140509590826416 [label="encoder.layer.7.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509590826416 -> 140517615729968 + 140517615729968 [label=AccumulateGrad] + 140517615728624 -> 140509588136336 + 140509588138736 -> 140509588137008 + 140509590826736 [label="encoder.layer.7.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590826736 -> 140509588138736 + 140509588138736 [label=AccumulateGrad] + 140509588136048 -> 140509588137008 + 140509590824496 [label="encoder.layer.7.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509590824496 -> 140509588136048 + 140509588136048 [label=AccumulateGrad] + 140509588105392 -> 140509588106352 + 140509588105392 [label=TBackward0] + 140509588106640 -> 140509588105392 + 140509588106640 [label=ToCopyBackward0] + 140509588165584 -> 140509588106640 + 140509590823616 [label="encoder.layer.8.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509590823616 -> 140509588165584 + 140509588165584 [label=AccumulateGrad] + 140509588105200 -> 140509588105296 + 140509588105200 [label=UnsafeViewBackward0] + 140509588136144 -> 140509588105200 + 140509588136144 [label=CloneBackward0] + 140509588106064 -> 140509588136144 + 140509588106064 [label=ExpandBackward0] + 140509588106448 -> 140509588106064 + 140509588106448 [label=TransposeBackward0] + 140509588107216 -> 140509588106448 + 140509588107216 [label=PermuteBackward0] + 140509588106880 -> 140509588107216 + 140509588106880 [label=ViewBackward0] + 140517615728960 -> 140509588106880 + 140517615728960 [label=ViewBackward0] + 140517615729200 -> 140517615728960 + 140517615729200 [label=AddmmBackward0] + 140517615729728 -> 140517615729200 + 140517615729728 [label=ToCopyBackward0] + 140517615729920 -> 140517615729728 + 140509590823776 [label="encoder.layer.8.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509590823776 -> 140517615729920 + 140517615729920 [label=AccumulateGrad] + 140517615729680 -> 140517615729200 + 140517615729680 [label=ViewBackward0] + 140517615730256 -> 140517615729680 + 140517615730256 [label=ToCopyBackward0] + 140509588077488 -> 140517615730256 + 140517615728432 -> 140517615729200 + 140517615728432 [label=TBackward0] + 140517615729392 -> 140517615728432 + 140517615729392 [label=ToCopyBackward0] + 140517615730400 -> 140517615729392 + 140509590823856 [label="encoder.layer.8.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509590823856 -> 140517615730400 + 140517615730400 [label=AccumulateGrad] + 140509588103856 -> 140509588103520 + 140509588103856 [label=UnsafeViewBackward0] + 140509588104240 -> 140509588103856 + 140509588104240 [label=CloneBackward0] + 140509588104480 -> 140509588104240 + 140509588104480 [label=ExpandBackward0] + 140509588104912 -> 140509588104480 + 140509588104912 [label=PermuteBackward0] + 140509588104048 -> 140509588104912 + 140509588104048 [label=ViewBackward0] + 140509588105968 -> 140509588104048 + 140509588105968 [label=ViewBackward0] + 140509588106736 -> 140509588105968 + 140509588106736 [label=AddmmBackward0] + 140509588105584 -> 140509588106736 + 140509588105584 [label=ToCopyBackward0] + 140517615730160 -> 140509588105584 + 140509590824016 [label="encoder.layer.8.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509590824016 -> 140517615730160 + 140517615730160 [label=AccumulateGrad] + 140509588103952 -> 140509588106736 + 140509588103952 [label=ViewBackward0] + 140517615730496 -> 140509588103952 + 140517615730496 [label=ToCopyBackward0] + 140509588077488 -> 140517615730496 + 140517615728576 -> 140509588106736 + 140517615728576 [label=TBackward0] + 140517615730064 -> 140517615728576 + 140517615730064 [label=ToCopyBackward0] + 140517615730544 -> 140517615730064 + 140509590824096 [label="encoder.layer.8.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509590824096 -> 140517615730544 + 140517615730544 [label=AccumulateGrad] + 140509588077584 -> 140509588077968 + 140509588077584 [label=TBackward0] + 140509588078256 -> 140509588077584 + 140509588078256 [label=ToCopyBackward0] + 140509588103664 -> 140509588078256 + 140509590823296 [label="encoder.layer.8.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509590823296 -> 140509588103664 + 140509588103664 [label=AccumulateGrad] + 140509588077488 -> 140509588076960 + 140509588077104 -> 140509588076912 + 140509590823136 [label="encoder.layer.8.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509590823136 -> 140509588077104 + 140509588077104 [label=AccumulateGrad] + 140509588076000 -> 140509588076912 + 140509591342912 [label="encoder.layer.8.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591342912 -> 140509588076000 + 140509588076000 [label=AccumulateGrad] + 140509588074800 -> 140509588075760 + 140509588074800 [label=TBackward0] + 140509588076336 -> 140509588074800 + 140509588076336 [label=ToCopyBackward0] + 140509588077008 -> 140509588076336 + 140509591342992 [label="encoder.layer.8.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509591342992 -> 140509588077008 + 140509588077008 [label=AccumulateGrad] + 140509588074704 -> 140509588074656 + 140509588074704 [label=UnsafeViewBackward0] + 140509588075376 -> 140509588074704 + 140509588075376 [label=CloneBackward0] + 140509588075664 -> 140509588075376 + 140509588075664 [label=ExpandBackward0] + 140509588076144 -> 140509588075664 + 140509588076144 [label=TransposeBackward0] + 140509588076816 -> 140509588076144 + 140509588076816 [label=PermuteBackward0] + 140509588077296 -> 140509588076816 + 140509588077296 [label=ViewBackward0] + 140509588077440 -> 140509588077296 + 140509588077440 [label=ViewBackward0] + 140509588077920 -> 140509588077440 + 140509588077920 [label=AddmmBackward0] + 140509588078544 -> 140509588077920 + 140509588078544 [label=ToCopyBackward0] + 140509588104432 -> 140509588078544 + 140509591342752 [label="encoder.layer.8.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509591342752 -> 140509588104432 + 140509588104432 [label=AccumulateGrad] + 140509588075088 -> 140509588077920 + 140509588075088 [label=ViewBackward0] + 140509588104720 -> 140509588075088 + 140509588104720 [label=ToCopyBackward0] + 140509588105776 -> 140509588104720 + 140509588105776 [label=ViewBackward0] + 140509588106256 -> 140509588105776 + 140509588106256 [label=CloneBackward0] + 140517615730352 -> 140509588106256 + 140517615730352 [label=ExpandBackward0] + 140517615730592 -> 140517615730352 + 140517615730592 [label=UnsqueezeBackward0] + 140517615539152 -> 140517615730592 + 140509588103568 -> 140509588077920 + 140509588103568 [label=TBackward0] + 140509588103280 -> 140509588103568 + 140509588103280 [label=ToCopyBackward0] + 140509588104960 -> 140509588103280 + 140509591342672 [label="encoder.layer.8.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509591342672 -> 140509588104960 + 140509588104960 [label=AccumulateGrad] + 140509588048624 -> 140509588048432 + 140509588048624 [label=UnsafeViewBackward0] + 140509588048960 -> 140509588048624 + 140509588048960 [label=CloneBackward0] + 140509588049392 -> 140509588048960 + 140509588049392 [label=ExpandBackward0] + 140509588048816 -> 140509588049392 + 140509588048816 [label=PermuteBackward0] + 140509588048720 -> 140509588048816 + 140509588048720 [label=ViewBackward0] + 140509588075568 -> 140509588048720 + 140509588075568 [label=ViewBackward0] + 140509588076624 -> 140509588075568 + 140509588076624 [label=AddmmBackward0] + 140509588076432 -> 140509588076624 + 140509588076432 [label=ToCopyBackward0] + 140509588103376 -> 140509588076432 + 140509591340592 [label="encoder.layer.8.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509591340592 -> 140509588103376 + 140509588103376 [label=AccumulateGrad] + 140509588077200 -> 140509588076624 + 140509588077200 [label=ViewBackward0] + 140509588104000 -> 140509588077200 + 140509588104000 [label=ToCopyBackward0] + 140509588105776 -> 140509588104000 + 140509588074608 -> 140509588076624 + 140509588074608 [label=TBackward0] + 140517615730640 -> 140509588074608 + 140517615730640 [label=ToCopyBackward0] + 140517615730448 -> 140517615730640 + 140509591342512 [label="encoder.layer.8.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509591342512 -> 140517615730448 + 140517615730448 [label=AccumulateGrad] + 140509588047088 -> 140509588047376 + 140509588047088 [label=TBackward0] + 140509588048144 -> 140509588047088 + 140509588048144 [label=ToCopyBackward0] + 140509588048528 -> 140509588048144 + 140509591340832 [label="encoder.layer.8.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509591340832 -> 140509588048528 + 140509588048528 [label=AccumulateGrad] + 140509588046896 -> 140509588046608 + 140509588046320 -> 140509588046416 + 140509591340512 [label="encoder.layer.8.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591340512 -> 140509588046320 + 140509588046320 [label=AccumulateGrad] + 140509588045888 -> 140509588046416 + 140509591340272 [label="encoder.layer.8.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591340272 -> 140509588045888 + 140509588045888 [label=AccumulateGrad] + 140509588024432 -> 140509588024912 + 140509588024432 [label=TBackward0] + 140509588046128 -> 140509588024432 + 140509588046128 [label=ToCopyBackward0] + 140509588046512 -> 140509588046128 + 140509591319952 [label="encoder.layer.8.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591319952 -> 140509588046512 + 140509588046512 [label=AccumulateGrad] + 140509588023568 -> 140509588023856 + 140509588023568 [label=TBackward0] + 140509588024576 -> 140509588023568 + 140509588024576 [label=ToCopyBackward0] + 140509588025008 -> 140509588024576 + 140509591320032 [label="encoder.layer.8.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591320032 -> 140509588025008 + 140509588025008 [label=AccumulateGrad] + 140509588023376 -> 140509588023280 + 140509588023088 -> 140509588023184 + 140509591319792 [label="encoder.layer.8.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591319792 -> 140509588023088 + 140509588023088 [label=AccumulateGrad] + 140509588022992 -> 140509588023184 + 140509591319712 [label="encoder.layer.8.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591319712 -> 140509588022992 + 140509588022992 [label=AccumulateGrad] + 140509588022800 -> 140509588022704 + 140509588022800 [label=UnsqueezeBackward0] + 140509588023472 -> 140509588022800 + 140509588023472 [label=NativeLayerNormBackward0] + 140509588023952 -> 140509588023472 + 140509588023952 [label=AddBackward0] + 140509588024528 -> 140509588023952 + 140509588024528 [label=NativeDropoutBackward0] + 140509588046032 -> 140509588024528 + 140509588046032 [label=ViewBackward0] + 140509588045936 -> 140509588046032 + 140509588045936 [label=AddmmBackward0] + 140509588047472 -> 140509588045936 + 140509588047472 [label=ToCopyBackward0] + 140509588047520 -> 140509588047472 + 140509591320512 [label="encoder.layer.8.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591320512 -> 140509588047520 + 140509588047520 [label=AccumulateGrad] + 140509588047040 -> 140509588045936 + 140509588047040 [label=ViewBackward0] + 140509588048048 -> 140509588047040 + 140509588048048 [label=GeluBackward0] + 140509588049440 -> 140509588048048 + 140509588049440 [label=ViewBackward0] + 140509588048912 -> 140509588049440 + 140509588048912 [label=AddmmBackward0] + 140509588077680 -> 140509588048912 + 140509588077680 [label=ToCopyBackward0] + 140517615729152 -> 140509588077680 + 140509591319472 [label="encoder.layer.8.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591319472 -> 140517615729152 + 140517615729152 [label=AccumulateGrad] + 140509588075856 -> 140509588048912 + 140509588075856 [label=ViewBackward0] + 140517615268000 -> 140509588075856 + 140517615268000 [label=ToCopyBackward0] + 140509588023376 -> 140517615268000 + 140509588074560 -> 140509588048912 + 140509588074560 [label=TBackward0] + 140517615267904 -> 140509588074560 + 140517615267904 [label=ToCopyBackward0] + 140517615268144 -> 140517615267904 + 140509591319552 [label="encoder.layer.8.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591319552 -> 140517615268144 + 140517615268144 [label=AccumulateGrad] + 140509588046992 -> 140509588045936 + 140509588046992 [label=TBackward0] + 140509588075184 -> 140509588046992 + 140509588075184 [label=ToCopyBackward0] + 140517615730304 -> 140509588075184 + 140509591319312 [label="encoder.layer.8.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591319312 -> 140517615730304 + 140517615730304 [label=AccumulateGrad] + 140509588023376 -> 140509588023952 + 140509588023760 -> 140509588023472 + 140509591319072 [label="encoder.layer.8.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591319072 -> 140509588023760 + 140509588023760 [label=AccumulateGrad] + 140509588022896 -> 140509588023472 + 140509591318992 [label="encoder.layer.8.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591318992 -> 140509588022896 + 140509588022896 [label=AccumulateGrad] + 140509588022416 -> 140509588022512 + 140509588022416 [label=UnsqueezeBackward0] + 140509588024240 -> 140509588022416 + 140509588024240 [label=UnsqueezeBackward0] + 140509588024096 -> 140509588024240 + 140509588024096 [label=MulBackward0] + 140509588047664 -> 140509588024096 + 140509588047664 [label=SoftmaxBackward0] + 140509588049200 -> 140509588047664 + 140509588049200 [label=MmBackward0] + 140509588046080 -> 140509588049200 + 140509588046080 [label=ToCopyBackward0] + 140517615268048 -> 140509588046080 + 140517615268048 [label=DivBackward0] + 140517615268336 -> 140517615268048 + 140517615268336 [label=SumBackward1] + 140517615268432 -> 140517615268336 + 140517615268432 [label=MulBackward0] + 140509588023376 -> 140517615268432 + 140517615267952 -> 140509588049200 + 140517615267952 [label=TBackward0] + 140517615268384 -> 140517615267952 + 140517615268384 [label=ToCopyBackward0] + 140517615268480 -> 140517615268384 + 140509591321392 [label="encoder.layer.8.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509591321392 -> 140517615268480 + 140517615268480 [label=AccumulateGrad] + 140509588021840 -> 140509587963664 + 140509588021840 [label=IndexBackward0] + 140509588023136 -> 140509588021840 + 140509588023136 [label=NativeLayerNormBackward0] + 140509588022608 -> 140509588023136 + 140509588022608 [label=AddBackward0] + 140517615268528 -> 140509588022608 + 140517615268528 [label=NativeDropoutBackward0] + 140517615268192 -> 140517615268528 + 140517615268192 [label=ViewBackward0] + 140517615268672 -> 140517615268192 + 140517615268672 [label=AddmmBackward0] + 140517615268768 -> 140517615268672 + 140517615268768 [label=ToCopyBackward0] + 140517615268960 -> 140517615268768 + 140509591339792 [label="encoder.layer.8.output.dense.bias + (768)" fillcolor=lightblue] + 140509591339792 -> 140517615268960 + 140517615268960 [label=AccumulateGrad] + 140517615268720 -> 140517615268672 + 140517615268720 [label=ViewBackward0] + 140517615269008 -> 140517615268720 + 140517615269008 [label=GeluBackward0] + 140517615269104 -> 140517615269008 + 140517615269104 [label=ViewBackward0] + 140517615269200 -> 140517615269104 + 140517615269200 [label=AddmmBackward0] + 140517615269296 -> 140517615269200 + 140517615269296 [label=ToCopyBackward0] + 140517615269488 -> 140517615269296 + 140509591340032 [label="encoder.layer.8.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509591340032 -> 140517615269488 + 140517615269488 [label=AccumulateGrad] + 140517615269248 -> 140517615269200 + 140517615269248 [label=ViewBackward0] + 140517615269536 -> 140517615269248 + 140517615269536 [label=ToCopyBackward0] + 140517615268288 -> 140517615269536 + 140517615268288 [label=SliceBackward0] + 140517615269680 -> 140517615268288 + 140517615269680 [label=SliceBackward0] + 140517615269776 -> 140517615269680 + 140517615269776 [label=SliceBackward0] + 140509588076912 -> 140517615269776 + 140517615268912 -> 140517615269200 + 140517615268912 [label=TBackward0] + 140517615269440 -> 140517615268912 + 140517615269440 [label=ToCopyBackward0] + 140517615269872 -> 140517615269440 + 140509591340352 [label="encoder.layer.8.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591340352 -> 140517615269872 + 140517615269872 [label=AccumulateGrad] + 140517615268576 -> 140517615268672 + 140517615268576 [label=TBackward0] + 140517615269152 -> 140517615268576 + 140517615269152 [label=ToCopyBackward0] + 140517615269632 -> 140517615269152 + 140509591340112 [label="encoder.layer.8.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591340112 -> 140517615269632 + 140517615269632 [label=AccumulateGrad] + 140517615268288 -> 140509588022608 + 140509588022176 -> 140509588023136 + 140509591339872 [label="encoder.layer.8.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591339872 -> 140509588022176 + 140509588022176 [label=AccumulateGrad] + 140509588046560 -> 140509588023136 + 140509591339552 [label="encoder.layer.8.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591339552 -> 140509588046560 + 140509588046560 [label=AccumulateGrad] + 140509588021312 -> 140509587991520 + 140509588021312 [label=TBackward0] + 140509588021648 -> 140509588021312 + 140509588021648 [label=ToCopyBackward0] + 140509588048336 -> 140509588021648 + 140509591321632 [label="encoder.layer.9.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509591321632 -> 140509588048336 + 140509588048336 [label=AccumulateGrad] + 140509587991472 -> 140509587991568 + 140509587991472 [label=UnsafeViewBackward0] + 140509587992144 -> 140509587991472 + 140509587992144 [label=CloneBackward0] + 140509587992528 -> 140509587992144 + 140509587992528 [label=ExpandBackward0] + 140509587991856 -> 140509587992528 + 140509587991856 [label=TransposeBackward0] + 140509588022320 -> 140509587991856 + 140509588022320 [label=PermuteBackward0] + 140509588021936 -> 140509588022320 + 140509588021936 [label=ViewBackward0] + 140517615268624 -> 140509588021936 + 140517615268624 [label=ViewBackward0] + 140517615268864 -> 140517615268624 + 140517615268864 [label=AddmmBackward0] + 140517615269392 -> 140517615268864 + 140517615269392 [label=ToCopyBackward0] + 140517615269584 -> 140517615269392 + 140509591322192 [label="encoder.layer.9.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509591322192 -> 140517615269584 + 140517615269584 [label=AccumulateGrad] + 140517615269344 -> 140517615268864 + 140517615269344 [label=ViewBackward0] + 140517615269920 -> 140517615269344 + 140517615269920 [label=ToCopyBackward0] + 140509587963664 -> 140517615269920 + 140517615268096 -> 140517615268864 + 140517615268096 [label=TBackward0] + 140517615269056 -> 140517615268096 + 140517615269056 [label=ToCopyBackward0] + 140517615270064 -> 140517615269056 + 140509591321872 [label="encoder.layer.9.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509591321872 -> 140517615270064 + 140517615270064 [label=AccumulateGrad] + 140509587990128 -> 140509587989840 + 140509587990128 [label=UnsafeViewBackward0] + 140509587990512 -> 140509587990128 + 140509587990512 [label=CloneBackward0] + 140509587990800 -> 140509587990512 + 140509587990800 [label=ExpandBackward0] + 140509587991040 -> 140509587990800 + 140509587991040 [label=PermuteBackward0] + 140509587990224 -> 140509587991040 + 140509587990224 [label=ViewBackward0] + 140509587992336 -> 140509587990224 + 140509587992336 [label=ViewBackward0] + 140509587990080 -> 140509587992336 + 140509587990080 [label=AddmmBackward0] + 140509588021360 -> 140509587990080 + 140509588021360 [label=ToCopyBackward0] + 140517615269824 -> 140509588021360 + 140509591322432 [label="encoder.layer.9.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509591322432 -> 140517615269824 + 140517615269824 [label=AccumulateGrad] + 140509588021744 -> 140509587990080 + 140509588021744 [label=ViewBackward0] + 140517615270160 -> 140509588021744 + 140517615270160 [label=ToCopyBackward0] + 140509587963664 -> 140517615270160 + 140517615268240 -> 140509587990080 + 140517615268240 [label=TBackward0] + 140517615269728 -> 140517615268240 + 140517615269728 [label=ToCopyBackward0] + 140517615270208 -> 140517615269728 + 140509591322112 [label="encoder.layer.9.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509591322112 -> 140517615270208 + 140517615270208 [label=AccumulateGrad] + 140509587988688 -> 140509587988784 + 140509587988688 [label=TBackward0] + 140509587989648 -> 140509587988688 + 140509587989648 [label=ToCopyBackward0] + 140509587989936 -> 140509587989648 + 140509591321712 [label="encoder.layer.9.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509591321712 -> 140509587989936 + 140509587989936 [label=AccumulateGrad] + 140509587963664 -> 140509587963280 + 140509587963376 -> 140509587963040 + 140509591321232 [label="encoder.layer.9.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591321232 -> 140509587963376 + 140509587963376 [label=AccumulateGrad] + 140509587962032 -> 140509587963040 + 140509591321472 [label="encoder.layer.9.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591321472 -> 140509587962032 + 140509587962032 [label=AccumulateGrad] + 140509587961120 -> 140509587961600 + 140509587961120 [label=TBackward0] + 140509587962224 -> 140509587961120 + 140509587962224 [label=ToCopyBackward0] + 140509587962896 -> 140509587962224 + 140509591311760 [label="encoder.layer.9.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591311760 -> 140509587962896 + 140509587962896 [label=AccumulateGrad] + 140509587960688 -> 140509587960976 + 140509587960688 [label=TBackward0] + 140509587961744 -> 140509587960688 + 140509587961744 [label=ToCopyBackward0] + 140509587962608 -> 140509587961744 + 140509591311440 [label="encoder.layer.9.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591311440 -> 140509587962608 + 140509587962608 [label=AccumulateGrad] + 140509587960496 -> 140509587960112 + 140509587960208 -> 140509588463424 + 140509591311200 [label="encoder.layer.9.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591311200 -> 140509587960208 + 140509587960208 [label=AccumulateGrad] + 140509587960016 -> 140509588463424 + 140509591311520 [label="encoder.layer.9.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591311520 -> 140509587960016 + 140509587960016 [label=AccumulateGrad] + 140509588463376 -> 140509588463184 + 140509588463376 [label=UnsqueezeBackward0] + 140509587960160 -> 140509588463376 + 140509587960160 [label=NativeLayerNormBackward0] + 140509587960640 -> 140509587960160 + 140509587960640 [label=AddBackward0] + 140509587963184 -> 140509587960640 + 140509587963184 [label=NativeDropoutBackward0] + 140509587961648 -> 140509587963184 + 140509587961648 [label=ViewBackward0] + 140509587962320 -> 140509587961648 + 140509587962320 [label=AddmmBackward0] + 140509587963472 -> 140509587962320 + 140509587963472 [label=ToCopyBackward0] + 140509587989168 -> 140509587963472 + 140509591311920 [label="encoder.layer.9.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591311920 -> 140509587989168 + 140509587989168 [label=AccumulateGrad] + 140509587963568 -> 140509587962320 + 140509587963568 [label=ViewBackward0] + 140509587989744 -> 140509587963568 + 140509587989744 [label=GeluBackward0] + 140509587989072 -> 140509587989744 + 140509587989072 [label=ViewBackward0] + 140509587990560 -> 140509587989072 + 140509587990560 [label=AddmmBackward0] + 140509587991280 -> 140509587990560 + 140509587991280 [label=ToCopyBackward0] + 140509588022224 -> 140509587991280 + 140509591311280 [label="encoder.layer.9.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591311280 -> 140509588022224 + 140509588022224 [label=AccumulateGrad] + 140509587990992 -> 140509587990560 + 140509587990992 [label=ViewBackward0] + 140517615270016 -> 140509587990992 + 140517615270016 [label=ToCopyBackward0] + 140509587960496 -> 140517615270016 + 140509587988880 -> 140509587990560 + 140509587988880 [label=TBackward0] + 140517615268816 -> 140509587988880 + 140517615268816 [label=ToCopyBackward0] + 140517615270112 -> 140517615268816 + 140509591310960 [label="encoder.layer.9.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591310960 -> 140517615270112 + 140517615270112 [label=AccumulateGrad] + 140509587961264 -> 140509587962320 + 140509587961264 [label=TBackward0] + 140509587989456 -> 140509587961264 + 140509587989456 [label=ToCopyBackward0] + 140509587992048 -> 140509587989456 + 140509591310720 [label="encoder.layer.9.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591310720 -> 140509587992048 + 140509587992048 [label=AccumulateGrad] + 140509587960496 -> 140509587960640 + 140509587960592 -> 140509587960160 + 140509591310480 [label="encoder.layer.9.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591310480 -> 140509587960592 + 140509587960592 [label=AccumulateGrad] + 140509587959920 -> 140509587960160 + 140509591310800 [label="encoder.layer.9.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591310800 -> 140509587959920 + 140509587959920 [label=AccumulateGrad] + 140509588463280 -> 140509588462944 + 140509588463280 [label=UnsqueezeBackward0] + 140509588463472 -> 140509588463280 + 140509588463472 [label=UnsqueezeBackward0] + 140509587962704 -> 140509588463472 + 140509587962704 [label=MulBackward0] + 140509587963856 -> 140509587962704 + 140509587963856 [label=SoftmaxBackward0] + 140509587990320 -> 140509587963856 + 140509587990320 [label=MmBackward0] + 140509587960304 -> 140509587990320 + 140509587960304 [label=ToCopyBackward0] + 140517615270304 -> 140509587960304 + 140517615270304 [label=DivBackward0] + 140517615270496 -> 140517615270304 + 140517615270496 [label=SumBackward1] + 140517615270592 -> 140517615270496 + 140517615270592 [label=MulBackward0] + 140509587960496 -> 140517615270592 + 140517615269968 -> 140509587990320 + 140517615269968 [label=TBackward0] + 140517615270544 -> 140517615269968 + 140517615270544 [label=ToCopyBackward0] + 140517615270640 -> 140517615270544 + 140509591313200 [label="encoder.layer.9.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509591313200 -> 140517615270640 + 140517615270640 [label=AccumulateGrad] + 140509588462416 -> 140509588428880 + 140509588462416 [label=IndexBackward0] + 140509588462896 -> 140509588462416 + 140509588462896 [label=NativeLayerNormBackward0] + 140509587963088 -> 140509588462896 + 140509587963088 [label=AddBackward0] + 140517615270688 -> 140509587963088 + 140517615270688 [label=NativeDropoutBackward0] + 140517615270352 -> 140517615270688 + 140517615270352 [label=ViewBackward0] + 140517615270832 -> 140517615270352 + 140517615270832 [label=AddmmBackward0] + 140517615270928 -> 140517615270832 + 140517615270928 [label=ToCopyBackward0] + 140517615271120 -> 140517615270928 + 140509591320672 [label="encoder.layer.9.output.dense.bias + (768)" fillcolor=lightblue] + 140509591320672 -> 140517615271120 + 140517615271120 [label=AccumulateGrad] + 140517615270880 -> 140517615270832 + 140517615270880 [label=ViewBackward0] + 140517615271168 -> 140517615270880 + 140517615271168 [label=GeluBackward0] + 140517615271264 -> 140517615271168 + 140517615271264 [label=ViewBackward0] + 140517615271360 -> 140517615271264 + 140517615271360 [label=AddmmBackward0] + 140517615271456 -> 140517615271360 + 140517615271456 [label=ToCopyBackward0] + 140517615271648 -> 140517615271456 + 140509591320752 [label="encoder.layer.9.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509591320752 -> 140517615271648 + 140517615271648 [label=AccumulateGrad] + 140517615271408 -> 140517615271360 + 140517615271408 [label=ViewBackward0] + 140517615271696 -> 140517615271408 + 140517615271696 [label=ToCopyBackward0] + 140517615270448 -> 140517615271696 + 140517615270448 [label=SliceBackward0] + 140517615271840 -> 140517615270448 + 140517615271840 [label=SliceBackward0] + 140517615271888 -> 140517615271840 + 140517615271888 [label=SliceBackward0] + 140509587963040 -> 140517615271888 + 140517615271072 -> 140517615271360 + 140517615271072 [label=TBackward0] + 140517615271600 -> 140517615271072 + 140517615271600 [label=ToCopyBackward0] + 140517615271552 -> 140517615271600 + 140509591320912 [label="encoder.layer.9.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591320912 -> 140517615271552 + 140517615271552 [label=AccumulateGrad] + 140517615270736 -> 140517615270832 + 140517615270736 [label=TBackward0] + 140517615271312 -> 140517615270736 + 140517615271312 [label=ToCopyBackward0] + 140517615271792 -> 140517615271312 + 140509591320992 [label="encoder.layer.9.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591320992 -> 140517615271792 + 140517615271792 [label=AccumulateGrad] + 140517615270448 -> 140509587963088 + 140509587962128 -> 140509588462896 + 140509591320432 [label="encoder.layer.9.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591320432 -> 140509587962128 + 140509587962128 [label=AccumulateGrad] + 140509587961072 -> 140509588462896 + 140509591318592 [label="encoder.layer.9.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591318592 -> 140509587961072 + 140509587961072 [label=AccumulateGrad] + 140509588461168 -> 140509588462128 + 140509588461168 [label=TBackward0] + 140509588462512 -> 140509588461168 + 140509588462512 [label=ToCopyBackward0] + 140509587988592 -> 140509588462512 + 140509591313440 [label="encoder.layer.10.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509591313440 -> 140509587988592 + 140509587988592 [label=AccumulateGrad] + 140509588461072 -> 140509588460784 + 140509588461072 [label=UnsafeViewBackward0] + 140509588461456 -> 140509588461072 + 140509588461456 [label=CloneBackward0] + 140509588461744 -> 140509588461456 + 140509588461744 [label=ExpandBackward0] + 140509588462224 -> 140509588461744 + 140509588462224 [label=TransposeBackward0] + 140509588463088 -> 140509588462224 + 140509588463088 [label=PermuteBackward0] + 140509588462800 -> 140509588463088 + 140509588462800 [label=ViewBackward0] + 140517615270784 -> 140509588462800 + 140517615270784 [label=ViewBackward0] + 140517615271024 -> 140517615270784 + 140517615271024 [label=AddmmBackward0] + 140517615271744 -> 140517615271024 + 140517615271744 [label=ToCopyBackward0] + 140517615321248 -> 140517615271744 + 140509591313600 [label="encoder.layer.10.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509591313600 -> 140517615321248 + 140517615321248 [label=AccumulateGrad] + 140517615271504 -> 140517615271024 + 140517615271504 [label=ViewBackward0] + 140517615321296 -> 140517615271504 + 140517615321296 [label=ToCopyBackward0] + 140509588428880 -> 140517615321296 + 140517615270256 -> 140517615271024 + 140517615270256 [label=TBackward0] + 140517615321152 -> 140517615270256 + 140517615321152 [label=ToCopyBackward0] + 140517615321440 -> 140517615321152 + 140509591313680 [label="encoder.layer.10.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509591313680 -> 140517615321440 + 140517615321440 [label=AccumulateGrad] + 140509588429936 -> 140509588430704 + 140509588429936 [label=UnsafeViewBackward0] + 140509588460112 -> 140509588429936 + 140509588460112 [label=CloneBackward0] + 140509588460400 -> 140509588460112 + 140509588460400 [label=ExpandBackward0] + 140509588460688 -> 140509588460400 + 140509588460688 [label=PermuteBackward0] + 140509588459632 -> 140509588460688 + 140509588459632 [label=ViewBackward0] + 140509588461504 -> 140509588459632 + 140509588461504 [label=ViewBackward0] + 140509588462704 -> 140509588461504 + 140509588462704 [label=AddmmBackward0] + 140509588461024 -> 140509588462704 + 140509588461024 [label=ToCopyBackward0] + 140517615271216 -> 140509588461024 + 140509591313840 [label="encoder.layer.10.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509591313840 -> 140517615271216 + 140517615271216 [label=AccumulateGrad] + 140509588459680 -> 140509588462704 + 140509588459680 [label=ViewBackward0] + 140517615321536 -> 140509588459680 + 140517615321536 [label=ToCopyBackward0] + 140509588428880 -> 140517615321536 + 140517615270400 -> 140509588462704 + 140517615270400 [label=TBackward0] + 140517615321392 -> 140517615270400 + 140517615321392 [label=ToCopyBackward0] + 140517615321584 -> 140517615321392 + 140509591313920 [label="encoder.layer.10.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509591313920 -> 140517615321584 + 140517615321584 [label=AccumulateGrad] + 140509588428928 -> 140509588429360 + 140509588428928 [label=TBackward0] + 140509588430128 -> 140509588428928 + 140509588430128 [label=ToCopyBackward0] + 140509588430368 -> 140509588430128 + 140509591313120 [label="encoder.layer.10.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509591313120 -> 140509588430368 + 140509588430368 [label=AccumulateGrad] + 140509588428880 -> 140509588428784 + 140509588428448 -> 140509588428592 + 140509591312640 [label="encoder.layer.10.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591312640 -> 140509588428448 + 140509588428448 [label=AccumulateGrad] + 140509588427824 -> 140509588428592 + 140509591312880 [label="encoder.layer.10.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591312880 -> 140509588427824 + 140509588427824 [label=AccumulateGrad] + 140509588426816 -> 140509588427536 + 140509588426816 [label=TBackward0] + 140509588427728 -> 140509588426816 + 140509588427728 [label=ToCopyBackward0] + 140509588428400 -> 140509588427728 + 140509591312720 [label="encoder.layer.10.crossattention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509591312720 -> 140509588428400 + 140509588428400 [label=AccumulateGrad] + 140509588405840 -> 140509588405504 + 140509588405840 [label=UnsafeViewBackward0] + 140509588406032 -> 140509588405840 + 140509588406032 [label=CloneBackward0] + 140509588427008 -> 140509588406032 + 140509588427008 [label=ExpandBackward0] + 140509588427488 -> 140509588427008 + 140509588427488 [label=TransposeBackward0] + 140509588428208 -> 140509588427488 + 140509588428208 [label=PermuteBackward0] + 140509588428688 -> 140509588428208 + 140509588428688 [label=ViewBackward0] + 140509588429264 -> 140509588428688 + 140509588429264 [label=ViewBackward0] + 140509588429744 -> 140509588429264 + 140509588429744 [label=AddmmBackward0] + 140509588430320 -> 140509588429744 + 140509588430320 [label=ToCopyBackward0] + 140509588460208 -> 140509588430320 + 140509591312480 [label="encoder.layer.10.crossattention.self.key.bias + (768)" fillcolor=lightblue] + 140509591312480 -> 140509588460208 + 140509588460208 [label=AccumulateGrad] + 140509588429648 -> 140509588429744 + 140509588429648 [label=ViewBackward0] + 140509588460592 -> 140509588429648 + 140509588460592 [label=ToCopyBackward0] + 140509588461264 -> 140509588460592 + 140509588461264 [label=ViewBackward0] + 140517615270976 -> 140509588461264 + 140517615270976 [label=CloneBackward0] + 140509588459584 -> 140517615270976 + 140509588459584 [label=ExpandBackward0] + 140517615321632 -> 140509588459584 + 140517615321632 [label=UnsqueezeBackward0] + 140517615539152 -> 140517615321632 + 140509588426864 -> 140509588429744 + 140509588426864 [label=TBackward0] + 140509588461936 -> 140509588426864 + 140509588461936 [label=ToCopyBackward0] + 140509588460880 -> 140509588461936 + 140509591312400 [label="encoder.layer.10.crossattention.self.key.weight + (768, 1408)" fillcolor=lightblue] + 140509591312400 -> 140509588460880 + 140509588460880 [label=AccumulateGrad] + 140509588404064 -> 140509588404208 + 140509588404064 [label=UnsafeViewBackward0] + 140509588404880 -> 140509588404064 + 140509588404880 [label=CloneBackward0] + 140509588405168 -> 140509588404880 + 140509588405168 [label=ExpandBackward0] + 140509588405552 -> 140509588405168 + 140509588405552 [label=PermuteBackward0] + 140509588404304 -> 140509588405552 + 140509588404304 [label=ViewBackward0] + 140509588405936 -> 140509588404304 + 140509588405936 [label=ViewBackward0] + 140509588427968 -> 140509588405936 + 140509588427968 [label=AddmmBackward0] + 140509588428112 -> 140509588427968 + 140509588428112 [label=ToCopyBackward0] + 140509588459920 -> 140509588428112 + 140509591310560 [label="encoder.layer.10.crossattention.self.value.bias + (768)" fillcolor=lightblue] + 140509591310560 -> 140509588459920 + 140509588459920 [label=AccumulateGrad] + 140509588428976 -> 140509588427968 + 140509588428976 [label=ViewBackward0] + 140509588429888 -> 140509588428976 + 140509588429888 [label=ToCopyBackward0] + 140509588461264 -> 140509588429888 + 140509588426960 -> 140509588427968 + 140509588426960 [label=TBackward0] + 140517615321680 -> 140509588426960 + 140517615321680 [label=ToCopyBackward0] + 140517615321344 -> 140517615321680 + 140509591312240 [label="encoder.layer.10.crossattention.self.value.weight + (768, 1408)" fillcolor=lightblue] + 140509591312240 -> 140517615321344 + 140517615321344 [label=AccumulateGrad] + 140509588402576 -> 140509588402864 + 140509588402576 [label=TBackward0] + 140509588403584 -> 140509588402576 + 140509588403584 [label=ToCopyBackward0] + 140509588404016 -> 140509588403584 + 140509591311040 [label="encoder.layer.10.crossattention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509591311040 -> 140509588404016 + 140509588404016 [label=AccumulateGrad] + 140509588402384 -> 140509588373360 + 140509588372784 -> 140509588373456 + 140509591293760 [label="encoder.layer.10.crossattention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591293760 -> 140509588372784 + 140509588372784 [label=AccumulateGrad] + 140509588402240 -> 140509588373456 + 140509591293520 [label="encoder.layer.10.crossattention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591293520 -> 140509588402240 + 140509588402240 [label=AccumulateGrad] + 140509588372016 -> 140509588372496 + 140509588372016 [label=TBackward0] + 140509588372688 -> 140509588372016 + 140509588372688 [label=ToCopyBackward0] + 140509588373168 -> 140509588372688 + 140509591289920 [label="encoder.layer.10.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591289920 -> 140509588373168 + 140509588373168 [label=AccumulateGrad] + 140509588371008 -> 140509588371440 + 140509588371008 [label=TBackward0] + 140509588372208 -> 140509588371008 + 140509588372208 [label=ToCopyBackward0] + 140509588372928 -> 140509588372208 + 140509591290240 [label="encoder.layer.10.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591290240 -> 140509588372928 + 140509588372928 [label=AccumulateGrad] + 140509588370960 -> 140509588370864 + 140509588370528 -> 140509588370672 + 140509591285328 [label="encoder.layer.10.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591285328 -> 140509588370528 + 140509588370528 [label=AccumulateGrad] + 140509588370576 -> 140509588370672 + 140509591285248 [label="encoder.layer.10.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591285248 -> 140509588370576 + 140509588370576 [label=AccumulateGrad] + 140509588370384 -> 140509588370192 + 140509588370384 [label=UnsqueezeBackward0] + 140509588371056 -> 140509588370384 + 140509588371056 [label=NativeLayerNormBackward0] + 140509588371536 -> 140509588371056 + 140509588371536 [label=AddBackward0] + 140509588373072 -> 140509588371536 + 140509588373072 [label=NativeDropoutBackward0] + 140509588371968 -> 140509588373072 + 140509588371968 [label=ViewBackward0] + 140509588402288 -> 140509588371968 + 140509588402288 [label=AddmmBackward0] + 140509588403248 -> 140509588402288 + 140509588403248 [label=ToCopyBackward0] + 140509588403440 -> 140509588403248 + 140509591284528 [label="encoder.layer.10.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591284528 -> 140509588403440 + 140509588403440 [label=AccumulateGrad] + 140509588402960 -> 140509588402288 + 140509588402960 [label=ViewBackward0] + 140509588403536 -> 140509588402960 + 140509588403536 [label=GeluBackward0] + 140509588405360 -> 140509588403536 + 140509588405360 [label=ViewBackward0] + 140509588404592 -> 140509588405360 + 140509588404592 [label=AddmmBackward0] + 140509588429456 -> 140509588404592 + 140509588429456 [label=ToCopyBackward0] + 140517615321776 -> 140509588429456 + 140509591284768 [label="encoder.layer.10.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591284768 -> 140517615321776 + 140517615321776 [label=AccumulateGrad] + 140509588427248 -> 140509588404592 + 140509588427248 [label=ViewBackward0] + 140517615321488 -> 140509588427248 + 140517615321488 [label=ToCopyBackward0] + 140509588370960 -> 140517615321488 + 140509588404688 -> 140509588404592 + 140509588404688 [label=TBackward0] + 140517615321728 -> 140509588404688 + 140517615321728 [label=ToCopyBackward0] + 140517615321968 -> 140517615321728 + 140509591285088 [label="encoder.layer.10.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591285088 -> 140517615321968 + 140517615321968 [label=AccumulateGrad] + 140509588402768 -> 140509588402288 + 140509588402768 [label=TBackward0] + 140509588405648 -> 140509588402768 + 140509588405648 [label=ToCopyBackward0] + 140509588405072 -> 140509588405648 + 140509591284848 [label="encoder.layer.10.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591284848 -> 140509588405072 + 140509588405072 [label=AccumulateGrad] + 140509588370960 -> 140509588371536 + 140509588371344 -> 140509588371056 + 140509591284608 [label="encoder.layer.10.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591284608 -> 140509588371344 + 140509588371344 [label=AccumulateGrad] + 140509588370480 -> 140509588371056 + 140509591285008 [label="encoder.layer.10.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591285008 -> 140509588370480 + 140509588370480 [label=AccumulateGrad] + 140509588370000 -> 140509588370096 + 140509588370000 [label=UnsqueezeBackward0] + 140509588371824 -> 140509588370000 + 140509588371824 [label=UnsqueezeBackward0] + 140509588371728 -> 140509588371824 + 140509588371728 [label=MulBackward0] + 140509588370048 -> 140509588371728 + 140509588370048 [label=SoftmaxBackward0] + 140509588403824 -> 140509588370048 + 140509588403824 [label=MmBackward0] + 140517615321824 -> 140509588403824 + 140517615321824 [label=ToCopyBackward0] + 140517615321872 -> 140517615321824 + 140517615321872 [label=DivBackward0] + 140517615322160 -> 140517615321872 + 140517615322160 [label=SumBackward1] + 140517615322256 -> 140517615322160 + 140517615322256 [label=MulBackward0] + 140509588370960 -> 140517615322256 + 140517615322064 -> 140509588403824 + 140517615322064 [label=TBackward0] + 140517615322208 -> 140517615322064 + 140517615322208 [label=ToCopyBackward0] + 140517615322304 -> 140517615322208 + 140509591291120 [label="encoder.layer.10.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509591291120 -> 140517615322304 + 140517615322304 [label=AccumulateGrad] + 140509588369520 -> 140509588315344 + 140509588369520 [label=IndexBackward0] + 140509588370768 -> 140509588369520 + 140509588370768 [label=NativeLayerNormBackward0] + 140509588372448 -> 140509588370768 + 140509588372448 [label=AddBackward0] + 140517615322352 -> 140509588372448 + 140517615322352 [label=NativeDropoutBackward0] + 140517615322016 -> 140517615322352 + 140517615322016 [label=ViewBackward0] + 140517615322496 -> 140517615322016 + 140517615322496 [label=AddmmBackward0] + 140517615322592 -> 140517615322496 + 140517615322592 [label=ToCopyBackward0] + 140517615322784 -> 140517615322592 + 140509591293040 [label="encoder.layer.10.output.dense.bias + (768)" fillcolor=lightblue] + 140509591293040 -> 140517615322784 + 140517615322784 [label=AccumulateGrad] + 140517615322544 -> 140517615322496 + 140517615322544 [label=ViewBackward0] + 140517615322832 -> 140517615322544 + 140517615322832 [label=GeluBackward0] + 140517615322928 -> 140517615322832 + 140517615322928 [label=ViewBackward0] + 140517615323024 -> 140517615322928 + 140517615323024 [label=AddmmBackward0] + 140517615323120 -> 140517615323024 + 140517615323120 [label=ToCopyBackward0] + 140517615323312 -> 140517615323120 + 140509591293280 [label="encoder.layer.10.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509591293280 -> 140517615323312 + 140517615323312 [label=AccumulateGrad] + 140517615323072 -> 140517615323024 + 140517615323072 [label=ViewBackward0] + 140517615323360 -> 140517615323072 + 140517615323360 [label=ToCopyBackward0] + 140517615322112 -> 140517615323360 + 140517615322112 [label=SliceBackward0] + 140517615323504 -> 140517615322112 + 140517615323504 [label=SliceBackward0] + 140517615323600 -> 140517615323504 + 140517615323600 [label=SliceBackward0] + 140509588428592 -> 140517615323600 + 140517615322736 -> 140517615323024 + 140517615322736 [label=TBackward0] + 140517615323264 -> 140517615322736 + 140517615323264 [label=ToCopyBackward0] + 140517615323696 -> 140517615323264 + 140509591293600 [label="encoder.layer.10.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591293600 -> 140517615323696 + 140517615323696 [label=AccumulateGrad] + 140517615322400 -> 140517615322496 + 140517615322400 [label=TBackward0] + 140517615322976 -> 140517615322400 + 140517615322976 [label=ToCopyBackward0] + 140517615323456 -> 140517615322976 + 140509591293360 [label="encoder.layer.10.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591293360 -> 140517615323456 + 140517615323456 [label=AccumulateGrad] + 140517615322112 -> 140509588372448 + 140509588369808 -> 140509588370768 + 140509591293120 [label="encoder.layer.10.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591293120 -> 140509588369808 + 140509588369808 [label=AccumulateGrad] + 140509588403104 -> 140509588370768 + 140509591292800 [label="encoder.layer.10.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591292800 -> 140509588403104 + 140509588403104 [label=AccumulateGrad] + 140509588347344 -> 140509588348304 + 140509588347344 [label=TBackward0] + 140509588348880 -> 140509588347344 + 140509588348880 [label=ToCopyBackward0] + 140509588402480 -> 140509588348880 + 140509591291360 [label="encoder.layer.11.attention.self.query.weight + (768, 768)" fillcolor=lightblue] + 140509591291360 -> 140509588402480 + 140509588402480 [label=AccumulateGrad] + 140509588347104 -> 140509588347248 + 140509588347104 [label=UnsafeViewBackward0] + 140509588347920 -> 140509588347104 + 140509588347920 [label=CloneBackward0] + 140509588348208 -> 140509588347920 + 140509588348208 [label=ExpandBackward0] + 140509588348688 -> 140509588348208 + 140509588348688 [label=TransposeBackward0] + 140509588347632 -> 140509588348688 + 140509588347632 [label=PermuteBackward0] + 140509588369712 -> 140509588347632 + 140509588369712 [label=ViewBackward0] + 140517615322448 -> 140509588369712 + 140517615322448 [label=ViewBackward0] + 140517615322688 -> 140517615322448 + 140517615322688 [label=AddmmBackward0] + 140517615323216 -> 140517615322688 + 140517615323216 [label=ToCopyBackward0] + 140517615323408 -> 140517615323216 + 140509591291920 [label="encoder.layer.11.attention.self.key.bias + (768)" fillcolor=lightblue] + 140509591291920 -> 140517615323408 + 140517615323408 [label=AccumulateGrad] + 140517615323168 -> 140517615322688 + 140517615323168 [label=ViewBackward0] + 140517615323744 -> 140517615323168 + 140517615323744 [label=ToCopyBackward0] + 140509588315344 -> 140517615323744 + 140517615321200 -> 140517615322688 + 140517615321200 [label=TBackward0] + 140517615322880 -> 140517615321200 + 140517615322880 [label=ToCopyBackward0] + 140517615323888 -> 140517615322880 + 140509591291600 [label="encoder.layer.11.attention.self.key.weight + (768, 768)" fillcolor=lightblue] + 140509591291600 -> 140517615323888 + 140517615323888 [label=AccumulateGrad] + 140509588345808 -> 140509588345616 + 140509588345808 [label=UnsafeViewBackward0] + 140509588346144 -> 140509588345808 + 140509588346144 [label=CloneBackward0] + 140509588346576 -> 140509588346144 + 140509588346576 [label=ExpandBackward0] + 140509588346864 -> 140509588346576 + 140509588346864 [label=PermuteBackward0] + 140509588346000 -> 140509588346864 + 140509588346000 [label=ViewBackward0] + 140509588348112 -> 140509588346000 + 140509588348112 [label=ViewBackward0] + 140509588348400 -> 140509588348112 + 140509588348400 [label=AddmmBackward0] + 140509588369616 -> 140509588348400 + 140509588369616 [label=ToCopyBackward0] + 140517615323648 -> 140509588369616 + 140509591292160 [label="encoder.layer.11.attention.self.value.bias + (768)" fillcolor=lightblue] + 140509591292160 -> 140517615323648 + 140517615323648 [label=AccumulateGrad] + 140509588369904 -> 140509588348400 + 140509588369904 [label=ViewBackward0] + 140517615323984 -> 140509588369904 + 140517615323984 [label=ToCopyBackward0] + 140509588315344 -> 140517615323984 + 140517615321920 -> 140509588348400 + 140517615321920 [label=TBackward0] + 140517615323552 -> 140517615321920 + 140517615323552 [label=ToCopyBackward0] + 140517615324032 -> 140517615323552 + 140509591291840 [label="encoder.layer.11.attention.self.value.weight + (768, 768)" fillcolor=lightblue] + 140509591291840 -> 140517615324032 + 140517615324032 [label=AccumulateGrad] + 140509588315536 -> 140509588315824 + 140509588315536 [label=TBackward0] + 140509588345328 -> 140509588315536 + 140509588345328 [label=ToCopyBackward0] + 140509588345712 -> 140509588345328 + 140509591291440 [label="encoder.layer.11.attention.output.dense.weight + (768, 768)" fillcolor=lightblue] + 140509591291440 -> 140509588345712 + 140509588345712 [label=AccumulateGrad] + 140509588315344 -> 140509588314960 + 140509588315056 -> 140509588314768 + 140509591290960 [label="encoder.layer.11.attention.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591290960 -> 140509588315056 + 140509588315056 [label=AccumulateGrad] + 140509588313568 -> 140509588314768 + 140509591291200 [label="encoder.layer.11.attention.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591291200 -> 140509588313568 + 140509588313568 [label=AccumulateGrad] + 140509588312272 -> 140509588313328 + 140509588312272 [label=TBackward0] + 140509588313904 -> 140509588312272 + 140509588313904 [label=ToCopyBackward0] + 140509588314576 -> 140509588313904 + 140509591260912 [label="encoder.layer.11.experts.experts.0.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591260912 -> 140509588314576 + 140509588314576 [label=AccumulateGrad] + 140509588312848 -> 140509588313232 + 140509588312848 [label=TBackward0] + 140509588312128 -> 140509588312848 + 140509588312128 [label=ToCopyBackward0] + 140509588314192 -> 140509588312128 + 140509591260592 [label="encoder.layer.11.experts.experts.0.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591260592 -> 140509588314192 + 140509588314192 [label=AccumulateGrad] + 140509588312608 -> 140509591317376 + 140509591314832 -> 140509591314640 + 140509591260352 [label="encoder.layer.11.experts.experts.0.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591260352 -> 140509591314832 + 140509591314832 [label=AccumulateGrad] + 140509591317568 -> 140509591314640 + 140509591260832 [label="encoder.layer.11.experts.experts.0.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591260832 -> 140509591317568 + 140509591317568 [label=AccumulateGrad] + 140509591315408 -> 140509588282864 + 140509591315408 [label=UnsqueezeBackward0] + 140509591268800 -> 140509591315408 + 140509591268800 [label=NativeLayerNormBackward0] + 140509588313088 -> 140509591268800 + 140509588313088 [label=AddBackward0] + 140509588314864 -> 140509588313088 + 140509588314864 [label=NativeDropoutBackward0] + 140509588312224 -> 140509588314864 + 140509588312224 [label=ViewBackward0] + 140509588314000 -> 140509588312224 + 140509588314000 [label=AddmmBackward0] + 140509588315008 -> 140509588314000 + 140509588315008 [label=ToCopyBackward0] + 140509588315920 -> 140509588315008 + 140509591259952 [label="encoder.layer.11.experts.experts.1.output_query.dense.bias + (768)" fillcolor=lightblue] + 140509591259952 -> 140509588315920 + 140509588315920 [label=AccumulateGrad] + 140509588315152 -> 140509588314000 + 140509588315152 [label=ViewBackward0] + 140509588315488 -> 140509588315152 + 140509588315488 [label=GeluBackward0] + 140509588345232 -> 140509588315488 + 140509588345232 [label=ViewBackward0] + 140509588346384 -> 140509588345232 + 140509588346384 [label=AddmmBackward0] + 140509588347056 -> 140509588346384 + 140509588347056 [label=ToCopyBackward0] + 140509588345904 -> 140509588347056 + 140509591260192 [label="encoder.layer.11.experts.experts.1.intermediate_query.dense.bias + (3072)" fillcolor=lightblue] + 140509591260192 -> 140509588345904 + 140509588345904 [label=AccumulateGrad] + 140509588346624 -> 140509588346384 + 140509588346624 [label=ViewBackward0] + 140517615323840 -> 140509588346624 + 140517615323840 [label=ToCopyBackward0] + 140509588312608 -> 140517615323840 + 140509588346096 -> 140509588346384 + 140509588346096 [label=TBackward0] + 140517615322640 -> 140509588346096 + 140517615322640 [label=ToCopyBackward0] + 140517615323936 -> 140517615322640 + 140509591260112 [label="encoder.layer.11.experts.experts.1.intermediate_query.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591260112 -> 140517615323936 + 140517615323936 [label=AccumulateGrad] + 140509588312464 -> 140509588314000 + 140509588312464 [label=TBackward0] + 140509588344944 -> 140509588312464 + 140509588344944 [label=ToCopyBackward0] + 140509588347728 -> 140509588344944 + 140509591259872 [label="encoder.layer.11.experts.experts.1.output_query.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591259872 -> 140509588347728 + 140509588347728 [label=AccumulateGrad] + 140509588312608 -> 140509588313088 + 140509588313136 -> 140509591268800 + 140509591259632 [label="encoder.layer.11.experts.experts.1.output_query.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591259632 -> 140509588313136 + 140509588313136 [label=AccumulateGrad] + 140509588312752 -> 140509591268800 + 140509591260432 [label="encoder.layer.11.experts.experts.1.output_query.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591260432 -> 140509588312752 + 140509588312752 [label=AccumulateGrad] + 140509588282672 -> 140509588283152 + 140509588282672 [label=UnsqueezeBackward0] + 140509591318432 -> 140509588282672 + 140509591318432 [label=UnsqueezeBackward0] + 140509588314384 -> 140509591318432 + 140509588314384 [label=MulBackward0] + 140509588315440 -> 140509588314384 + 140509588315440 [label=SoftmaxBackward0] + 140509588345520 -> 140509588315440 + 140509588345520 [label=MmBackward0] + 140509588312656 -> 140509588345520 + 140509588312656 [label=ToCopyBackward0] + 140517615324128 -> 140509588312656 + 140517615324128 [label=DivBackward0] + 140517615324320 -> 140517615324128 + 140517615324320 [label=SumBackward1] + 140517615324416 -> 140517615324320 + 140517615324416 [label=MulBackward0] + 140509588312608 -> 140517615324416 + 140517615323792 -> 140509588345520 + 140517615323792 [label=TBackward0] + 140517615324368 -> 140517615323792 + 140517615324368 [label=ToCopyBackward0] + 140517615324464 -> 140517615324368 + 140509591282928 [label="encoder.layer.11.experts.gate.weight + (2, 768)" fillcolor=lightblue] + 140509591282928 -> 140517615324464 + 140517615324464 [label=AccumulateGrad] + 140509588282432 -> 140509588281712 + 140509588282432 [label=IndexBackward0] + 140509588283248 -> 140509588282432 + 140509588283248 [label=IndexBackward0] + 140509591317952 -> 140509588283248 + 140509591317952 [label=NativeLayerNormBackward0] + 140509588345040 -> 140509591317952 + 140509588345040 [label=AddBackward0] + 140517615324560 -> 140509588345040 + 140517615324560 [label=NativeDropoutBackward0] + 140517615324608 -> 140517615324560 + 140517615324608 [label=ViewBackward0] + 140517615324704 -> 140517615324608 + 140517615324704 [label=AddmmBackward0] + 140517615324800 -> 140517615324704 + 140517615324800 [label=ToCopyBackward0] + 140517615324992 -> 140517615324800 + 140509591290400 [label="encoder.layer.11.output.dense.bias + (768)" fillcolor=lightblue] + 140509591290400 -> 140517615324992 + 140517615324992 [label=AccumulateGrad] + 140517615324752 -> 140517615324704 + 140517615324752 [label=ViewBackward0] + 140517615325040 -> 140517615324752 + 140517615325040 [label=GeluBackward0] + 140517615325136 -> 140517615325040 + 140517615325136 [label=ViewBackward0] + 140517615324944 -> 140517615325136 + 140517615324944 [label=AddmmBackward0] + 140517615382736 -> 140517615324944 + 140517615382736 [label=ToCopyBackward0] + 140517615382928 -> 140517615382736 + 140509591290480 [label="encoder.layer.11.intermediate.dense.bias + (3072)" fillcolor=lightblue] + 140509591290480 -> 140517615382928 + 140517615382928 [label=AccumulateGrad] + 140517615382688 -> 140517615324944 + 140517615382688 [label=ViewBackward0] + 140517615382976 -> 140517615382688 + 140517615382976 [label=ToCopyBackward0] + 140517615324512 -> 140517615382976 + 140517615324512 [label=SliceBackward0] + 140517615383120 -> 140517615324512 + 140517615383120 [label=SliceBackward0] + 140517615383216 -> 140517615383120 + 140517615383216 [label=SliceBackward0] + 140509588314768 -> 140517615383216 + 140517615382592 -> 140517615324944 + 140517615382592 [label=TBackward0] + 140517615382880 -> 140517615382592 + 140517615382880 [label=ToCopyBackward0] + 140517615383312 -> 140517615382880 + 140509591290640 [label="encoder.layer.11.intermediate.dense.weight + (3072, 768)" fillcolor=lightblue] + 140509591290640 -> 140517615383312 + 140517615383312 [label=AccumulateGrad] + 140517615324080 -> 140517615324704 + 140517615324080 [label=TBackward0] + 140517615324896 -> 140517615324080 + 140517615324896 [label=ToCopyBackward0] + 140517615383072 -> 140517615324896 + 140509591290720 [label="encoder.layer.11.output.dense.weight + (768, 3072)" fillcolor=lightblue] + 140509591290720 -> 140517615383072 + 140517615383072 [label=AccumulateGrad] + 140517615324512 -> 140509588345040 + 140509588314672 -> 140509591317952 + 140509591290160 [label="encoder.layer.11.output.LayerNorm.weight + (768)" fillcolor=lightblue] + 140509591290160 -> 140509588314672 + 140509588314672 [label=AccumulateGrad] + 140509588313712 -> 140509591317952 + 140509591290000 [label="encoder.layer.11.output.LayerNorm.bias + (768)" fillcolor=lightblue] + 140509591290000 -> 140509588313712 + 140509588313712 [label=AccumulateGrad] + 140509588281712 -> 140509988778688 +} diff --git a/test.pdf/backward_graph.pdf b/test.pdf/backward_graph.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7f162b0f3f945d423fb5c305e995c166ea4d9695 GIT binary patch literal 228604 zcmV)_K!3j_P((&8F)lR4?5av(28Y+-a|L}g=dWMv9IJ_>Vma%Ev{3V58!!p)9MC6Z)wymok9G1{QKM^b6p~HuUNGT0~1qJMMp%g^z`uX>*xN9 zlmGpVmp@X9rF{AR=G~Wn`z3i6N z-~N?+NcbhbfBDVF+du#DZ`|KFdCqTseESc-`tl!t_3QL2|Ig%)FG>FB{9BbjN|QhS zVRE{PPv=|y;+=_2E5dj^*+mYQ#_$_TeLoP`+jiwfExj;$ApeW*(DQ zK8Oo^(JCJ)@EO6s*Hp+~Y0y_567{*YyeAP?O5pqD3k2r(ck+W*3Cu6!+JuGwEeQP6 zqulH8!?0D~nAiFDrr%Hg=6lCb6smGa_}Nn?3A2~hIMm-;iO2MH?cLX4Gwl)b;T&le zHujZ=h0G!Mp3|W2-QtId8x!TN3#;546XmUoUny^6mLDI;8ZHWT10-%N!dlJov#0o8 z{MYuM~)1Al*{VugZyc|;3C2+US%;d@suoYG}4$7&oASSoWe6bcNC`jPh z`UMi>(8XRv2FtfwqA^Z&>~+Gx|1V_lFMpCh{sKY#!~eh^mn6@}Bu{$j#NLdZ_mQs5 zJO+|;%E}i5WaI-%%d~2fy1&?1NMI~1BW|Ao>fWw-oUpM){AST^d|A5OBJUkxsR{G` zJ2LO@<&Xa#g#Ewq&%fetKmR-VIGueESr%Jf6~NKsrj4yk`1fD@4n%v9kfQfupDOQ|`MN=FFrJMj z$F#~d9z~A4yU3wl-*IH*^vI;h4-En7@{xSt%uZesfnB{))XNu1jf0(PABgI*2=qj* z^HlwmviIvBr>=vZ6RTV;A{^2pfgK4fkI$cS^1lLg|M-vi<1Z?o^CPtP)seHB7eOrY z_v2y+3P4U510umag!MKc;yW3hxbpnfCT5E>@`{e)2fsxlunf{pkeN|5x{b*9 z8$3?vz~fnPWLHfOIqvx4MV>n0Y84zGNBZ$hdWcp`^(dAe1`mhW1|{T*tDT`?RwdCNi8klMYgk|=|5uyYU*5~&f?kVs%sd$z#>wJAez z(!AI)OE)1|u7nAtfAdEn=)c4t|M=G_bLSazN4eU9=f{s>Fn5GL2W>o-B+MPGI# z1`CP@St94Q%-V8QU}bd^#s(*UPs5MK38gm#_uqoCfBU-$scRME*mJ{b8isJyd*Th1 zML=XxkL818W8&Pi*n${w^lix7%Y_wBZbtctWJb(XI}*=;aHd=;VrHtk5n*c=@{$Yh zX7^2(gUm&wS0r^)bz&|$kuScNTdt;{BWr+T+=2w5#*&4%@5uZE6zA{%I6N3XzYkjf z)&7}(<-Ppvo&F76mp_31fBxli?Co;U;SX&1mp|jI@N)fo+2&7w8H@k=J|6c6toQ-{ z{0H0`zy0OcZ}_ZYH5cdPj{WjCqHjCrp$Qm8rCs3D5}K@Ke`=!Gpm(}Z}D6XtmM zM6T0;A%e!gi-vSeXWRgp`_6mzP(D}1lrMK!sSC=%H4s-{#Q@)t#QZ#B$HdvuHSOTg> zUe-Yibx>$CFVjLnTnJrUNf-3yP>+M!I*^3TjMg>~a9bV|n%@k@g3$9~W3bvr;&L&^ z$a}qPm6351Jj=)t&WcxPoEr@hIJhBesMlnbcfBSn)W*-qDkuGxtl+6DvW__yWZjoN zu3cu@wgDbsA?k{DnWH#jkZZ;vqHs8 zBI&2fX2cU~`1MuvcB5K_stV_O47o8rA)g8+w3>IJG*SM=axP+E1!|n31$xRvSrLI( zNV*Q|>(F1XsuI6WN5qv^bP?T3H6fe?TuNXF(SLl<B+wl>qs0CkstIP zj)7N=ET^i9TUhPHBz6PT_rr@_gsR@IqA0)vi0=dcU>I^RQ7Pq?u2B|>-kkS~{eFWL zXGgw}hpX<6cq|W}ba>$2to2$dM))-ND50*fx?0le7l{aIB@W49$=T$W2+w2NpnB5+ zAVi^>nWfdc!DNF47d5>qh?uY6KrZnhrl~XU?|u@({vOxR4-cwR zPL4v-vn_P5G)5V}<3$&$krpw+aVs$xunmZC`u@w?)xYQes0an(@N5HB{(q5QGLVh% zRqR67+Z%pYF*kYV8U!IUY$8-cNFX9K&SVift{o(zmy@CfbIa7dkG;839mQBI_iR&_ zaf18~U(8)zD!sW;j=nE8h%mo;b0-^oC&QwTWR=NT4=DCUfR#r%6#1oiW&Bqi0sTcq z#YqxdS5KmdlzQwNjR=Zta^J!$5#l0^gS;8G(OxJzyhRv>?fnK1GjCu%%@ffpS;&v| z)zK>#^E*$ZTwfrR{Cc6H@>Gy-l!Occc`-^~k<0mFKp9s5`DXvV`j6W`2E*G#_uU%f-A9sM<_&&rkkR`_^Z?4&krBVoz}LE6^Z18yY20@01{2CsECfhNcQOUTT=$##NbtHL;T`vwuoZ}L67=t8-xJ|a|+lOGVrF%6~A zLn_?X?S#p3f`mKxB$$_JHsXxHp)Ehliv=macbq1Axxv5h%ENdp7?0m)w!uOG&6n*X ztww{XfE;|Im4qCGOyB7)0Le#C5>7GRucBj8GRXt0c{u`40>giDJ1R*6^u=R=E8m=w z83(dEm5bSFMh@TKE?l1+buLvl5!6?Cd%u3+zGcwJm-@_oTR{T^?_P4>%J*hQT+*ne z(Hh^7!FDmL-VvP_@(0b0jL7B#SMe(aGqMmDK6c4Dcscc`1yb5|uenrII*ih;M_!wl z6?n~)(zlCOT+8@z$f;Tts$MB3dRzy$WsU`mVkg##Epv6b3d*9G@e{ z_nr|F7W+!wcF5~1C&3)dEM!%L*_~bXqD4{~P+UaSA)4o{fWf#s@@MN;sST<6EVW&l z8dmGn7So>s8Yy7L(%Vom@6a|-%{#OW^fT{JCMSY_&5bdZfz6DOGm}!r9Ca(-EL$Y2 z+!;?2HS}3}`XRuNF1++h&#_65{yvV&CH=mRJywOxEZIkeiV1d%2pL3J}CE ziZ0djeiA2Pf;4!`LFZwZBxxR`jHNwH()oF@W2T$J0wuT07vdyO^K^M7PZy+tN*o+&a);8&y(Dx+8uA#+ z%`E%b`UPhf%&O4JvN9*n#ll%?>XLDkVj<7SUf^k^aVpT|K+q;?T1Nsv_8J(H*OXgP z)MsT-rgnr*m*!c>FR7zNW=1-~z|6xTBZEjiRc3}lnX(>!X3!fm-*2#>Geh?e%{`Oh z7kE~i|ArZULU~&L@|Ym%j0U%%ro;4=LD9gFY0DJLOnNst^0gGrK*6^F3(3`WEKDMN zC)^EDzuYy40J&^jE4s3I0BY789u9)9&3$#Ze1ZHtG-4eu=loHa;ICir%nicl2tmkx zWy|>sFh?o}MM|JjKr9-^(7g<`{0`T=3{`a;i4_BH=}8t^ahgCCklyEf&|KN5cLf-5 zWJP5SFJfY)16H%5ChHgI%IK18-|gb5um~wmgEJc~Abf#rFXr1Z zqa)N%)Ls#z+{Ac|<*XV;3=Q|5NK=vjENsC;#K>V%m5?S{R+N}V)RQq$eZ5NO$@&!& z9KW&1^|0#wW^r98vn1B%d?ac!fY?QZu@c)0E3-ps7!a2 zA$Tm#t(LL44FwQ`G&hCcnh_gMQIS=eW^!&;%kBCFQyh6VastU>bgO$*_<*HkW#fqwjpOR-;UJu7&Nq$CB|1j>;KjLpl>U+D) z>YJzWa))jjT=&_-y?GnKQ+( zZ|i=npx0AIh;C9g`O^?Q4;rX6Mk2MY9IJVX#*x;HJ&F!Zf-xEMJrStu!Ls24@;G}qR4`>` zHj_-)*9uPMZHn0eU_Nyn(oChffI8aYPMoe^AUQv56gKg3jlVmcO=*^QuLY|R9Y2Eb z_ktyVBEMOBhuyt5`zgp%wU9~%kudO7OHfgU)|$gUA#vBLY&iEM6_gWV5j7d*R7 zUk#y=I)Xiu4HolQLXgW?Zrb%MmVkin9hLt**!h?L0@^a4?_WU8v~)XicYdTK&{ew6 zqZasoT#hs?72XECR&MMAqA8w~3ahz@Nm?qrEsJHS^c1l+Llu$hH47A`BN$cutG20L zS;7MM6#m!$9U3^u_lMst*rxWL$hx>DX<#<_1xeu|xgu$({&SLI(ltp@z;;Pen{h$X zZOtl4QNZ{dN#Xu_mAP;4>H960`hLTu!QF6a@DFe)Cf$%UTyv?-xFo4x=Tf>XprEX} zV;voqNICsh<<^6s@s?|099)qYmiQHkeR+UuG3lDbzFu>!&A1@(wq}KEu@D@%sI)~# z{Tf%yeFz5(`y;fq4-oqveQ2t(Z7=HDE!(Wn1sB+16%U($uZ9 zEp-Ivp41WC48UtCShG6LMd(KuGA-zV*6l zDaa{zc%+-K(+;tK+71;z~>yeJ=#Au;LUSct$Y{QtNsw5YY;cDB{;U$QYFXTb0gq+mC&uGLGLa2CT$% zAEoqIn#8xG&+W_7xUgbm1#JNoq4LNV=_AAt@H-QkNA}l|%5ezsRS!y=ZRbhNij4 z8=AU!LsNf#V<~;SzolvL*EIG1mZpCB#`5sDdU)JdGc5wNfgC1Wx{j_iNEdGzG{+kT zCG^E5F>`)^K{4r?n7LdtsLi+_=C)>)nDE^`MNE_izK)ow-f|`~mamAJ`VD7h_W);N z(hV{FHD}t4OJcewIFmGS;febQ_`dSLm*l1(BO(&&Hf-Ektg67H5>rVE^bpT!@q$B< z(+QB=at0;Jl}}9i5q9$hr(R5JTaNer>V?1oKTk}{-aka|urg10_Sx#4u64>j zmff9=mxH6)$Ew&{5!kL#A1;O#b2m{o!bBb)5yCvl-SqOoD(M(uTSCXnJl&M#Efl)m?S-(JJxZ6!stywRDf^;gXp1T$Z(BG1Y zE6WZAR0SPb46We;28S`P*|UD1KLyk(D#6Y#U;tiJ-7nSwY#M;j*Sv`<%ML}tVjEkI zdbZi}6>x+~k>l6vGg(F8!yNQz3DXC7l$`%s(&y#qyzGF>rhVZD$&Q;_Tf z8AW1m-`|cL{gZh*ifl$wGv3<2POhI+iAH9Ix#R`SE#K3URpOuZ4X#Aa=o3D!}{?_#iq(y66Bg2 z_gwd*TmpMK-4oThC5@8U`wbRqf|Mto5Z8$krs+@lF>#$9F`Qz%sg}) z(Yppu@7QT5GiplD;0$;jB4o0`3c4j$A~9@{%9*MzoYG$hS%6YZqF8#lVF!X}Msh>s zFGKGOpu{A&NNJBEnV;1YX|qQ?HYvyTKbVQ82AEj}3U%_8$XLo|hP09x0$|eqK!}+w zewe_?QK>>yZ?#Da@|`^r1-`CtlLK}+^<{^0GQ|-O5iE9A~n@!xYaBVKEU*%Z1>Xp>fw|{m5Qd2%eF5 z!9(j%;oY^fO^=n8gEEM!5TMFbT#GQCMJp_-iWPLYNnIIA)X77Agfofq>)>>WL8b!`RF_m^-zjP#ngh0mi2p-kCv;7O9^!z_QQ6rbqXMYgU>kxPwLmQ? zfyUjNG+U-|KN4oE4M=ho(@C|)U6$cure}e&4AMY`vLbp?m?1utf#ks^9h5OA@u3VT z5Jtx-_7GFzL!y=xUI?>_fI{%LWgZIWZ2jY8uDleH3bhJvo-1FEZ9iVX&NW%o)1ecH z>Gkq^wYpXW35-&VnEmchX$+G`hD3Ei5(Ce2Ke;!s9TQ3^3l!d1=+{-}gv>D29yC=0 zBAcL4Qcu>ea5SEhYFMun7h2=QrZz2IUe`UV;tjjh{Z48f%82O3axoy+0FL}V5b81F zVXm29A~b_8+?T~skqkOs%u&+bEL$Ke{6;SM<@iLluEDc3!{@Y2G!#^c2he*noT@{0 zu=Xd`)UI4bn6L!iB|uI>O5<=V$0fjtAB$y322~x=KzzBoeH^Vc;Bj3u(c=>u zoB~TgIC3T9jS;o`U!`mQZ_|_{qbZxJpV2#ON+N?z<8ls3XwWV)i~>du9kS5iy_8$V z+vh?Snp~#GoB^nIK0{758o^TgD#jQ%A=;EABM+XzLz&42+sYUB%NHy?1W73J7O!kE zv5q9(@`cT|P`nHiT9h)=Dg$^#U5`jrmH*?hCxktOU0}2$1LQ_U9qCI|mH>|!VS@%} zaq6m;A#Ir_f;5>S4%dn3yGIhzC2gDK5IsXf1xQGg(D2%Ugv3{egp`wtgH(Cd*kw3lKMnXHUm%V6gR%L$$C=m$VYEYKn&!p-a` z$AJ2AZ#S7~*~2POi@8@Eq0X?Q5K;{fFkVeo;zHrkdDgAK4H8AaAAixOcrwgEI7W3JQ9$k9L13L1G!+dy-ghol2< z7|EK5v`?vLiAXYSOkz^ezN}f|QDz%~F+;uH*K59eBO!bnwACCzAjB%7l|ye2dNt9N zLd};L0!f!WKO{sWeQh~}uB{hjq|xxnNWUXatV13dTAm6MS92Y({a4I~o&%)ym2pNB z?Jc$|E7caGY3EP6BMuA(HTzP12lwkA&pfC!YuCe9v1(Z6Yr|Jy5Hr@JwO#tqK|;wn zqKELB6bdtE*8#;v4J0!fL|h1i;#gZq3SyGExblHC;Fo}{h`a^ooLL$uofBb13omts zDPv=zV|(M}(CGqVL|*L$*cj}zt)ZQaFM~W+s<5;Gqjnn@0|jNH%*wkOIsE51JljA+ zi%HQHBh+!Zy?A^=piLq_Ea;@fo<4A%vjoF6%4<@<*bAbPZAz^(r2paRXPH>-* zDF@&+SzIZIKZHCe(q=f9XOF2FGE;knaBNg(&XzyUlr27eWyO|WePtzL3i&WtlvkFB z5pNfGB$#CrW-7zu8zZv2FcgY1AS8v{WQX)dN_yJfTA^`KA>KCiEm4J!z|LaZ3aW3o zG)eHu`p4sRp zip;Fq>)9c<%iA*`R`U>`>H$bh4$*gGEZ1@cW*aQ%1&+VgKhY{PDFbTe^b7O?2v2qo zcF5!()GkAU2Cyq5nnZ1fC=IMmqWd(6PE3^osgC84sS%|k1S@7H<4O*yt_KBakXw{$ zm8!@@ABnls4Hnp%v0yLjSKB0X`uIfA_?Fo*0Ar;9_qFZ3=#B0CX3m77F@)g!u;zy8 z7<@PjYD0Uq$P$Y)RQq!+Sby*C4T zL-aoDhP)i7K=&}3W!SK4{0*JQ=+>68Y-#z>RUkEGXgG!8`GZ0%LqfEZWCAY6H^j`5 zNsc~GivKLU7Bv3GF?-79WEVou);~_@7(i$-7*-YU6!}b8k}p!bqv!{2Yi(y#4C;_%DBW-|ki1u*{EnhiHroVzLJ?xm!b(T6XHN) z#!HI0aF%NcWCds{5G+}fTwzOt^&wQCcpjfBISgo6&wFv?y`$s_=`=%nQSpS>WFcBd z>3YfITunAusP<5KFHcycb5_AJlU~bo&PDBU6<$VXIOd!ZKWX}l{Ma&v*se%Mf;z?_ zR4RgPhjh*`9hCE{W0f?XAxBUzC(C{P31i*9FXR*)>?HGS{Q{ZMj;13CcHL)C^i-E= zv(;s|vV@Q&a$RK0I-0GfVs%-NC|NzZfM#Mb^DaG*%My91HvGq9rY_DgOoxea6x8Hy z1$`7A8o7}{h2S=UG?;p}!Ac1eHY}Z<$2H(BS<8#YOL} zrjYIfa{76LZUabsJcLb?@9Jz4A<*_^HJgr~cBX^KhLG>!S1ZEeN{O}90xDgp}go>CD)o^b6_@MgSSD7VZR z>J4)e&F7MksQdhskeGBsNO#SgHsgYj+nQBEdRg@xA>D*GSK$12qWD{mL{HgkLWUcT z4DkVu#H4FNhIGx5Hsg|zah)US`9&Y!RZ}5R;X_#Y<)*@TW1nxi6ovU$#P#)tOA+|` zl(?95OCi8R#AYl)A&9v(@P6+;ToBswVnmm^dd2_@0JKJD^_;6=7 zF&~$GWw|=6tTUjWbx)bc7sPgbcn`KA_ynz^;AJTE^(&Zon9!P{t7aH!{?UieQMiL#8I)tTZ6l&*>}`Nl^EO@8kk@tJhm)W88ltLLS;Mz z)yGfJxngOWg7-W@>7wmG8zI(AD2vio;93=KhW|F{5b`u-sOn9WSQ}Ni6aa+&jMkNL zJ{@)o#d z-N;=cGyG++D~@v!vXi%}C({c7^wO6RC<5*{EQglpjBjuzzTJm@02B@=%Z;!F%;QRC z3K|_%T2D53oYoc5zgApZz7#8TFcH*~_~&zuvIaRx27~un!5iiGA=Mva78p&aAwZ&l z3}yWesZjUeN^Ng`NNoVXAml{uit0))DCKH{P!aJjZ@@BqX6=1g3)wbC(YWBy*y8b=`cV2 zh$R~)>f*HUg?Q1fw)8)vDsp%h+gK-k8q{!G+8MBvB+qz2+?9 ziy!B#A_YO!7KB?&#cXKyqkJRxza_{tr~;LbNh+-LJ5M%P$fe}H3dyyavl{Y|;99

gjUhC_2RNAB#$wXei2bcH8IsF_t;oY>o)Kji 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

_8zMoF8qNM5BEhMv`EP&Mhw>#w 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%0Ac4}f=pQ&ThMrNOX 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 KC7~#Z{C@!Qri_*V literal 0 HcmV?d00001 diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..516c092 --- /dev/null +++ b/test.txt @@ -0,0 +1,360 @@ +tmp_name = [name for name, p in model.named_parameters() if (p.requires_grad and '10.expert' in name)] + +tmp = [p for name, p in model.named_parameters() if (p.requires_grad and '10.expert' in name)] + +tensor([[-1.4032e-02, 3.7242e-03, 8.4997e-03, -3.4016e-03, -6.4855e-03, + 4.3595e-02, 3.4423e-02, -8.6274e-03, -1.9702e-02, 9.1813e-03, + 1.1643e-02, 2.3939e-02, -2.0908e-02, 3.4555e-03, 9.1636e-03, + 1.5413e-02, 2.4148e-02, -1.0880e-03, 1.1193e-02, -1.3591e-02, + 9.3484e-03, 1.5999e-02, -9.6086e-04, 3.8322e-02, -8.0687e-03, + -1.4056e-02, 3.9486e-02, 3.5167e-02, -9.3226e-03, -1.0493e-02, + -2.5795e-02, -9.7541e-03, 4.4437e-03, 7.7226e-03, 7.5210e-03, + -1.3526e-02, -5.0316e-03, -1.1149e-02, 6.0583e-03, 2.0564e-02, + -6.4477e-03, 1.4170e-02, -3.7847e-02, 1.1780e-02, 1.3321e-02, + -8.2501e-03, -1.0298e-02, 1.4805e-02, -1.2432e-02, -1.9159e-02, + -5.7095e-04, -3.8618e-02, -2.4230e-02, -1.4991e-03, -1.4114e-02, + -1.5365e-02, 1.5640e-02, -4.8623e-02, -2.9991e-02, 1.2796e-02, + -4.9917e-03, 2.3846e-03, 7.7368e-03, 1.2913e-02, 1.5300e-02, + 8.5125e-03, 1.1582e-02, 8.1161e-03, 4.2259e-03, 7.6109e-03, + -2.0747e-02, -3.5099e-03, 2.2282e-02, 5.0493e-02, -1.7849e-02, + -3.7106e-02, -1.4944e-02, -1.4582e-02, -2.2458e-02, -4.6173e-05, + -8.1270e-03, 1.9037e-02, -2.0086e-02, 3.0980e-03, -9.3947e-03, + 1.3054e-02, 2.3203e-02, -9.9304e-03, -2.6038e-02, 1.8679e-02, + 9.2081e-03, -2.1770e-02, -1.6568e-03, -3.6503e-02, 2.0054e-02, + 1.2886e-02, -1.8021e-02, 3.4457e-02, -1.3704e-02, -6.1498e-03, + -8.6769e-03, 1.5024e-02, -1.3875e-02, 1.7416e-02, -1.1178e-02, + -2.4088e-02, -1.7802e-02, 3.3326e-02, -1.1216e-02, -8.6330e-03, + -5.5359e-03, -1.1939e-02, -1.7777e-02, -2.8666e-02, -3.8280e-02, + 4.2682e-02, 1.4946e-02, 9.6427e-03, 8.2754e-03, -1.0516e-03, + 2.9560e-02, 2.4552e-03, -4.8354e-02, 1.5568e-02, 2.5881e-02, + -1.7354e-02, -3.1232e-02, 2.3683e-02, -2.3239e-02, 2.2966e-02, + 5.6349e-03, -8.7595e-03, 1.5173e-02, 2.7660e-02, -4.3304e-03, + -2.5330e-02, -2.1795e-02, 1.6856e-02, -2.1587e-04, 2.3707e-02, + -2.3667e-02, 3.5378e-02, -7.9245e-03, 7.1029e-04, -3.2800e-02, + -1.5402e-03, -8.5634e-03, -1.1356e-02, -2.1935e-03, -1.8854e-02, + -1.9705e-03, -3.8333e-02, 2.9131e-02, -4.4470e-02, -2.0893e-03, + 1.2937e-02, -1.7116e-02, 2.7778e-02, 1.0311e-02, -6.4017e-03, + 3.7647e-02, -1.9953e-02, -5.3925e-03, 3.6978e-02, -1.5534e-02, + 1.2241e-02, 1.3597e-02, 2.0703e-03, 2.4213e-03, 9.2604e-03, + 6.6108e-03, -5.8213e-03, 9.8167e-03, -9.8300e-04, -1.0236e-02, + 2.9581e-02, 1.0987e-02, 2.0046e-02, -1.0500e-02, -3.2221e-03, + -2.6303e-02, 1.3688e-02, -2.2529e-02, -5.7654e-03, 1.1784e-02, + 1.6221e-02, 2.8743e-02, 5.7565e-03, 1.8129e-02, 1.5140e-02, + -1.1748e-02, -1.7528e-02, 4.7977e-02, 1.5568e-02, 4.7030e-04, + 3.2757e-03, 1.6631e-02, 1.9986e-02, -7.3463e-03, 1.1435e-02, + -1.4739e-02, -3.2959e-03, -2.8770e-03, 2.9260e-02, 1.7007e-02, + 3.0611e-02, 2.2102e-02, -3.3819e-02, -1.9403e-02, 2.5524e-02, + 3.0738e-02, -1.9951e-02, -1.4553e-02, -1.5796e-02, -2.3143e-02, + -2.8826e-02, 2.4739e-02, -5.8602e-03, 4.1871e-02, 5.0821e-04, + 3.3493e-02, 2.3524e-02, 2.3191e-02, 9.0416e-03, 3.3262e-02, + -1.6805e-02, 1.1545e-02, -1.7195e-02, -3.8696e-02, -8.4358e-04, + -8.1605e-03, 3.1372e-03, 1.0726e-03, 1.0865e-03, 1.0760e-02, + -5.2421e-03, 1.3039e-02, 3.6873e-04, 1.0464e-02, -1.1544e-02, + -2.2775e-02, -4.8439e-02, -1.0711e-02, 4.4236e-03, 2.0351e-02, + 2.4479e-03, -1.9968e-02, -2.2941e-02, -2.0486e-02, -1.9528e-02, + -2.3176e-02, -3.2731e-03, 1.1789e-02, 2.0921e-02, 2.9809e-03, + -8.8507e-03, -3.5716e-02, 8.8418e-03, 5.3665e-05, -1.1288e-02, + -7.5571e-03, 2.1053e-02, -3.7381e-03, -4.0165e-03, -2.2628e-03, + 3.7554e-03, -1.6597e-02, 7.6946e-03, -3.2689e-02, 2.2016e-02, + 5.5122e-03, 4.5455e-02, 6.7586e-03, 1.5714e-02, 5.2125e-03, + 3.9596e-03, 1.8134e-02, 1.5834e-03, -1.6239e-02, -1.3889e-02, + -2.3522e-02, 1.4738e-02, 5.5867e-03, -7.0727e-03, -2.8140e-03, + 1.6849e-02, -3.1327e-02, -3.2443e-02, 4.7851e-03, 1.2980e-02, + -2.0014e-04, -9.9475e-03, 8.0657e-03, 1.9468e-02, -1.5774e-02, + 1.7017e-02, -8.7196e-03, -4.0681e-03, -6.9754e-03, -2.2007e-02, + -6.6217e-03, -1.8219e-02, 4.2186e-02, -5.6621e-03, -9.3449e-03, + -1.1662e-02, 2.8700e-02, -9.0654e-03, 3.1569e-02, -2.9825e-03, + -3.8198e-02, -5.2723e-02, -4.8325e-02, -2.7871e-03, 5.1127e-03, + 1.4511e-02, 9.3245e-03, -2.3339e-02, -8.6658e-03, 1.5276e-02, + -1.5823e-02, -3.4476e-03, 1.4601e-02, 6.3504e-03, -1.4307e-02, + 2.2817e-02, 2.1998e-02, 1.7330e-02, -2.4448e-02, 4.0178e-03, + 3.2280e-03, -1.2721e-02, 1.9661e-02, 7.5263e-03, 2.0245e-02, + 4.5525e-02, -1.5658e-02, -4.0676e-02, 9.3160e-03, 1.1920e-02, + -1.9317e-02, 1.7848e-02, -5.8601e-03, 1.1786e-03, 8.3864e-03, + -1.8341e-02, 2.5985e-02, -1.1387e-02, -1.5069e-02, -2.8097e-02, + 2.4966e-02, 1.4790e-02, 2.0424e-02, -1.3062e-02, 3.1314e-02, + 1.7811e-02, 7.2393e-03, 1.4413e-02, -1.2746e-02, 3.1039e-02, + -1.1697e-02, -1.4826e-02, -8.8397e-03, 1.5157e-02, -1.5855e-02, + -1.8157e-03, 1.3024e-02, -1.8902e-03, 2.5212e-02, -3.4886e-02, + 4.3029e-02, -4.0842e-02, 1.1362e-02, -1.4654e-02, -1.3337e-02, + -3.1832e-02, 3.6222e-03, 8.2804e-03, -1.4269e-02, 2.8399e-03, + -1.2008e-02, 2.4685e-02, -4.3070e-03, 6.3163e-03, -1.3517e-02, + -1.3807e-02, 2.4617e-02, 2.1453e-02, 4.7332e-03, 9.1636e-03, + -1.2881e-02, 1.9077e-02, 1.7571e-04, -5.2817e-03, -2.8821e-02, + 5.8223e-03, -3.0979e-02, 2.4609e-02, 3.6666e-02, -1.0950e-02, + 2.0421e-02, -2.6378e-03, 3.1825e-02, -9.6689e-04, -2.8398e-02, + -2.7513e-02, 1.6946e-02, -2.4110e-02, -1.3575e-02, -1.3443e-02, + 8.4217e-03, 2.6754e-02, -2.3309e-03, -2.5086e-02, 1.1844e-02, + 1.4152e-02, 1.2989e-02, -5.7336e-03, 4.7391e-03, 3.4106e-02, + 1.0142e-02, -1.8029e-02, -1.5410e-04, -1.3548e-02, 9.1742e-03, + -3.0150e-02, 1.5666e-02, 4.3049e-03, 1.6273e-02, 2.0672e-02, + -1.2458e-02, 4.5496e-02, 3.2131e-02, -3.0967e-03, 2.1891e-02, + 2.5524e-02, -1.1998e-02, -1.8866e-03, -1.0945e-02, 5.9930e-03, + -8.4233e-03, -8.9095e-03, -1.8261e-02, 1.9308e-02, -1.9728e-02, + -1.4216e-02, 1.4952e-02, 5.7355e-04, -2.4753e-02, -1.0948e-02, + 1.0965e-02, 1.3607e-03, 3.4974e-02, -4.1396e-03, 2.5519e-02, + 1.0364e-02, -1.5851e-02, -4.9224e-03, 1.0903e-02, -1.0523e-04, + 3.1355e-02, -1.5105e-02, 5.6972e-03, -8.4078e-03, -1.9868e-02, + 1.7186e-03, 2.9396e-02, -4.1439e-02, 1.4124e-02, -3.7745e-03, + 3.3007e-02, 8.0368e-04, 8.5574e-03, 1.7269e-02, 1.1955e-02, + 8.8142e-03, -1.3123e-02, 1.6817e-02, -1.5456e-02, -1.3868e-02, + 2.4139e-02, -9.1566e-03, -1.8477e-02, -4.7972e-03, -6.8459e-03, + 1.6818e-02, 3.1645e-03, -3.0901e-02, -5.6036e-03, -1.4758e-02, + 2.0473e-02, -7.5411e-05, 2.0673e-03, -7.0061e-03, 9.5544e-03, + 1.6600e-02, -1.7315e-02, -2.0168e-02, -5.3008e-03, 2.0206e-02, + 2.4209e-03, 2.1205e-02, -8.9188e-03, -4.1350e-04, -1.0638e-02, + 1.3705e-02, 9.5925e-05, 3.8877e-02, 3.2884e-02, -2.7730e-03, + 1.0052e-02, 1.9311e-02, 1.1341e-02, -1.2988e-02, -1.7157e-02, + 3.2095e-02, -1.8493e-02, -9.2551e-03, -2.6509e-03, -1.1130e-02, + 1.6581e-02, 1.0216e-02, 1.3687e-02, 1.1860e-02, -3.0462e-03, + -1.2082e-02, 2.8502e-03, -1.2620e-02, 8.8330e-03, 1.7357e-02, + 1.8383e-02, -2.3130e-02, -3.2654e-02, 1.2853e-02, -7.8144e-03, + 1.9418e-04, 3.8635e-03, 4.9333e-02, 1.9350e-02, -2.0643e-02, + 8.4650e-04, 5.0242e-02, 1.6576e-02, -8.9166e-03, -5.8805e-03, + -4.1484e-02, 9.3217e-03, -1.1292e-02, -8.7944e-03, -3.3190e-03, + 5.7970e-03, -6.6078e-03, -2.4052e-02, -5.6347e-03, 8.4539e-03, + 1.9250e-02, 7.9559e-03, -3.0055e-03, -3.0398e-04, 2.7007e-02, + 3.1046e-03, 1.8332e-02, 5.5470e-03, 6.6815e-03, 1.1466e-02, + 1.9738e-02, 1.2176e-02, -2.0220e-02, 8.6928e-03, 4.2451e-03, + 4.4517e-03, -5.1524e-03, 1.0805e-02, -2.1935e-02, -1.7575e-02, + -1.2529e-02, -2.2191e-02, -1.0854e-02, -9.4462e-03, -2.9102e-02, + 2.6752e-02, -1.0919e-02, -2.6724e-02, 8.3694e-04, 2.9832e-03, + 1.4416e-02, -2.9906e-02, 2.3556e-02, -6.6624e-03, 2.6671e-02, + -3.6474e-02, 1.7237e-02, -2.5176e-02, 6.5560e-03, -2.6062e-02, + -2.3838e-02, 3.0629e-02, 2.5382e-02, 1.2302e-02, -1.1665e-02, + -7.0603e-03, 1.9931e-02, 2.3401e-02, -2.6047e-03, -2.7728e-02, + -1.7212e-02, 2.3061e-02, -2.5961e-02, 3.9764e-04, -2.9022e-02, + -1.5546e-03, 4.5519e-03, 2.3589e-02, -3.5005e-02, 4.1890e-03, + -1.5586e-02, 1.2389e-02, -2.1045e-02, 1.6377e-03, -1.1328e-02, + 1.0195e-02, 6.4322e-03, -3.8431e-02, 2.2918e-02, -4.0123e-03, + 6.6680e-02, 4.1135e-02, -1.5031e-02, -1.3550e-02, -2.2566e-02, + -2.3622e-03, -2.9323e-02, 2.1756e-02, 1.8399e-03, -4.2460e-03, + -1.5128e-03, -2.4731e-02, 1.8663e-02, 1.3469e-02, -1.3897e-02, + 2.6399e-02, -8.0740e-03, -4.6753e-03, 3.9857e-02, 6.2364e-03, + 2.2371e-03, 2.1501e-03, 5.9443e-02, 1.3574e-02, 7.6483e-03, + -6.2290e-03, 1.4324e-02, 1.2572e-02, 2.7331e-02, -6.0165e-03, + -5.9154e-03, -3.7000e-02, 1.4001e-02, 1.2869e-02, -2.8854e-02, + -9.4147e-03, 8.3965e-03, -1.4530e-03, -7.4215e-03, 9.0369e-03, + -2.4612e-02, 2.0625e-02, 2.2329e-02, -1.5216e-02, 1.4947e-03, + -3.6020e-02, -2.0702e-02, -4.0410e-02, -1.3157e-02, -1.5085e-02, + 1.2911e-02, -2.7552e-02, -2.9781e-02, -4.7424e-03, 2.0521e-02, + -4.0043e-02, -4.8763e-02, -1.3175e-02, 2.6802e-02, 2.8869e-02, + 6.5014e-03, -2.3213e-02, 1.4438e-02, -7.6318e-03, -1.9928e-03, + 1.8509e-03, 2.9728e-03, 1.5225e-02, -2.9405e-03, -7.2875e-03, + 2.9562e-05, -1.8661e-02, 9.1341e-03, -2.4919e-02, 2.9786e-02, + 9.5186e-03, 1.5435e-02, -1.1080e-02, 1.1192e-02, -2.7315e-03, + 6.9769e-05, -1.5392e-02, 4.9892e-03, 7.9857e-03, 2.0063e-02, + -2.0283e-02, -1.2596e-02, -4.1985e-04, -6.9686e-03, -5.4704e-02, + -1.9142e-02, 9.9706e-03, 2.3217e-02, -5.0579e-03, -4.9132e-02, + 2.0023e-02, -2.6238e-02, 1.0709e-02, 2.1528e-02, -1.6390e-03, + -6.7829e-03, 1.3211e-02, -9.6793e-03, 1.3130e-02, -1.2878e-02, + 1.7365e-02, 1.2509e-02, 1.2986e-03, -3.9292e-02, 9.5784e-03, + -8.0514e-03, -3.5619e-02, -3.2298e-02, 6.5933e-04, 9.9298e-03, + 3.7268e-02, -3.4047e-02, -7.8385e-03, 2.3999e-02, 1.0386e-02, + 1.7853e-02, -1.0122e-04, 5.2483e-04, -7.3150e-03, 1.0818e-02, + 1.6245e-02, -3.5619e-02, -9.9190e-03, 4.0132e-03, 9.7788e-03, + 2.7039e-02, -4.7858e-02, -2.0010e-02, -2.3702e-02, 7.8376e-04, + -2.5326e-02, 1.1698e-02, -1.3041e-02, 3.8634e-03, 9.3083e-03, + 4.8204e-03, 3.9503e-02, -4.1356e-03]], requires_grad=True) +model.Qformer.bert.encoder.layer[10].experts.gate.weight + +layer 11 +0: +model.Qformer.bert.encoder.layer[11].output.dense.weight.grad +model.Qformer.bert.encoder.layer[11].intermediate.dense.weight.grad + +nan: +model.Qformer.bert.encoder.layer[11].attention.output.dense.weight.grad +model.Qformer.bert.encoder.layer[11].attention.self.query.weight.grad +model.Qformer.bert.encoder.layer[11].experts.intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[11].experts.output_query.dense.weight.grad + +None: +model.Qformer.bert.encoder.layer[11].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[11].output_query.dense.weight.grad + +layer 8 +0: +model.Qformer.bert.encoder.layer[8].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[2].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[0].output_query.dense.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[2].output_query.dense.weight.grad + +nan: +model.Qformer.bert.encoder.layer[8].experts.experts[1].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[1].output_query.dense.weight.grad +(Qformer)model.Qformer.bert.encoder.layer[8].intermediate_query.dense.weight.grad + +None: +model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad == None +model.Qformer.bert.encoder.layer[8].experts.gate.weight.requires_grad == True + + +model.Qformer.bert.encoder.layer[6].experts.gate.weight +Qformer.bert.encoder.layer.6.experts.gate.weight + +tensor([[-0.0089, -0.0123, -0.0168, ..., -0.0072, 0.0295, -0.0167], + [ 0.0305, 0.0277, -0.0215, ..., 0.0149, 0.0016, -0.0415], + [ 0.0199, 0.0151, 0.0237, ..., 0.0007, 0.0023, 0.0167]], + requires_grad=True) + +tensor([[-0.0089, -0.0123, -0.0168, ..., -0.0072, 0.0295, -0.0167], + [ 0.0305, 0.0277, -0.0215, ..., 0.0149, 0.0016, -0.0415], + [ 0.0199, 0.0151, 0.0237, ..., 0.0007, 0.0023, 0.0167]], + requires_grad=True) + + +tensor([[ 4.5972e-02, -1.5231e-02, -6.9533e-03, 3.2431e-02, -7.9703e-03, + 1.5567e-02, 2.9619e-03, -2.2609e-04, 1.8580e-02, -2.8783e-02, + 1.3093e-02, -1.0594e-02, 1.1918e-02, 4.4701e-02, 2.0108e-02, + -1.1011e-03, -8.2449e-03, 8.8876e-03, 4.6096e-03, 2.3274e-02, + -9.2557e-03, 2.5704e-03, 1.8919e-02, -5.3251e-03, -3.2665e-03, + -3.2663e-02, -5.6756e-02, -2.3400e-02, 1.3674e-02, -6.6185e-03, + 1.4429e-03, 1.2354e-02, 2.5934e-03, 2.1895e-02, -1.9793e-02, + 1.5497e-03, 4.3056e-03, -4.0023e-02, 9.8740e-03, 3.8631e-03, + -1.2918e-02, -3.6782e-02, -9.8365e-03, 3.2182e-02, 2.3729e-02, + 2.3509e-03, 1.8473e-02, 1.5583e-02, -1.1029e-02, -1.0738e-02, + -3.0278e-02, -9.8731e-03, -1.0500e-02, 7.9832e-05, -1.0345e-02, + 8.2803e-03, -5.9923e-03, -1.2669e-02, 1.2065e-03, 7.5720e-03, + -1.9286e-02, 4.0070e-02, 3.6221e-03, -1.7486e-02, 2.1725e-02, + -3.3231e-02, 7.3948e-03, -1.0924e-02, 3.1448e-02, 1.2101e-02, + 6.1737e-03, -2.0851e-02, -3.7964e-02, 8.0938e-03, -8.8967e-03, + 2.5925e-02, -7.8063e-04, 8.6102e-03, 2.7370e-02, 1.2323e-02, + 4.0606e-03, 3.9316e-02, -1.0837e-02, -2.6835e-03, 3.1941e-03, + -1.2017e-02, -2.3022e-02, 8.3533e-03, -2.2668e-02, 1.4438e-02, + -2.3664e-02, 4.5595e-02, -1.0962e-02, 1.7547e-02, -1.6739e-03, + 1.2048e-02, 2.0544e-02, 2.8837e-02, -1.6736e-02, 2.1207e-02, + 8.7612e-03, 2.8757e-02, -3.8561e-03, 8.4050e-03, -1.1503e-02, + -5.8332e-03, 1.5734e-02, -1.0773e-02, 7.5827e-03, 6.5794e-03, + 2.4291e-02, 2.6811e-02, 1.1681e-02, -3.3246e-02, 4.5776e-03, + -9.0628e-04, -2.9400e-02, 4.2933e-03, 1.5885e-03, 5.5757e-02, + 7.5518e-03, 1.0099e-02, 5.3507e-03, -3.0182e-02, 2.0830e-02, + 1.0102e-02, -9.3074e-03, 3.1161e-02, -1.7800e-02, -4.4445e-03, + -3.1503e-02, 2.3028e-02, 8.3472e-03, 7.4444e-03, 1.8838e-02, + -1.1977e-02, -2.6713e-02, 1.1364e-02, 8.3522e-04, 3.3736e-03, + 6.9425e-03, -2.0632e-02, 1.8155e-02, -2.1711e-02, -3.4703e-02, + -3.6268e-03, -4.8810e-03, -2.8142e-02, -1.5781e-02, -3.3166e-02, + -2.9910e-02, -9.7459e-03, -6.7474e-03, 1.7988e-02, 9.0176e-03, + 1.9452e-02, 4.2009e-02, 1.7217e-02, 1.4959e-02, -1.6552e-02, + -3.8206e-03, -2.4889e-02, 7.7993e-03, -1.9285e-02, -1.9770e-02, + 2.6936e-02, -5.0484e-03, -2.5117e-02, -2.3122e-02, 1.3754e-02, + 1.6025e-02, -9.1569e-03, -2.0068e-02, -1.6013e-02, -2.1775e-02, + -2.4154e-02, 6.2840e-03, -1.3684e-02, 2.5378e-02, -1.3166e-02, + -1.2201e-02, 1.0011e-02, -8.2324e-03, -5.6623e-03, -1.0383e-02, + -1.6251e-02, 1.0723e-02, -3.0207e-03, -6.9374e-03, -2.3161e-03, + -2.0850e-03, -3.4216e-02, 3.3997e-02, 3.7444e-02, -3.4273e-02, + 1.5051e-02, -9.5605e-03, -2.6979e-03, 1.8848e-02, 2.3090e-02, + 1.9669e-02, -3.9656e-02, 1.0453e-02, 5.2222e-03, -7.2493e-03, + 1.4122e-02, 5.6583e-04, -1.3991e-02, 4.0975e-02, 1.3947e-02, + 4.6919e-03, 7.9121e-03, 2.6936e-02, 1.2338e-02, 1.9048e-02, + 7.7740e-03, -6.4494e-03, -5.2965e-02, 8.1929e-03, -1.3503e-02, + 3.7466e-03, -3.3504e-02, -8.1192e-03, 1.0463e-02, -2.1568e-02, + 1.0076e-02, -1.3420e-02, -6.3353e-04, 7.4253e-03, 2.2281e-02, + 5.2829e-03, 1.4102e-02, 1.4427e-02, 1.6331e-02, -2.3305e-04, + -4.4875e-02, 6.5300e-03, 2.4963e-02, 2.2141e-03, 3.9830e-02, + 1.1405e-02, 8.6810e-03, -2.0404e-03, -1.8579e-03, 1.4765e-02, + 5.4752e-03, -1.3364e-02, -1.3082e-03, 1.5873e-03, 1.9309e-02, + 3.4367e-02, 1.8459e-02, -1.1323e-02, -1.8764e-02, -1.5370e-02, + 3.6180e-03, 2.8253e-02, -1.6867e-03, 3.5884e-03, -2.1952e-02, + -1.5026e-02, -2.1070e-02, -1.2149e-02, 1.1162e-02, -3.0343e-02, + -4.1372e-02, 1.0880e-02, 2.2365e-02, 1.2896e-02, 2.9694e-02, + -8.4248e-03, -7.8876e-03, -6.7049e-03, 2.3700e-02, 4.7528e-03, + -7.8350e-03, -5.9220e-03, 3.8396e-02, -4.1598e-02, -2.3161e-03, + 1.3419e-02, 7.1029e-03, 1.4195e-02, -1.1124e-02, 1.5812e-02, + -1.9789e-02, -2.3883e-02, -8.2788e-04, 1.4670e-02, -2.1482e-02, + -1.1182e-02, -1.6532e-02, -8.0637e-03, -3.7822e-02, 3.9402e-02, + -1.4097e-03, -7.6648e-03, -3.7156e-02, 2.5791e-02, 6.1038e-03, + -6.3429e-03, 3.2865e-03, 3.6277e-02, 9.4312e-03, -2.1003e-02, + -3.6885e-03, 1.7147e-02, -1.3079e-02, -4.9414e-02, -3.2066e-02, + 1.4835e-02, -2.9742e-02, 1.8358e-02, -2.1733e-02, 3.0256e-03, + 1.7825e-02, 1.1079e-02, 1.1619e-02, -2.3680e-02, -7.8721e-03, + 2.4456e-03, 4.3608e-02, -4.5674e-03, -3.6818e-02, 3.3952e-02, + 3.3108e-02, -3.1665e-03, -2.3468e-03, 1.5091e-02, 7.0856e-03, + 1.1723e-02, -2.0713e-02, -6.9180e-03, 3.7929e-02, 3.7671e-03, + 4.6663e-02, 9.5301e-03, 1.2638e-02, -6.5623e-03, -3.1771e-03, + -1.7568e-02, 1.8711e-03, -1.2310e-02, 2.1518e-02, 4.3408e-03, + -6.7171e-03, -5.0451e-03, 2.6870e-02, -1.9832e-02, 7.0422e-03, + 1.1274e-02, -2.4637e-02, -4.8450e-03, 2.1892e-02, -2.6059e-02, + 1.5605e-02, -1.1617e-02, -1.9273e-02, -8.6735e-04, -9.8002e-04, + -1.8553e-02, 2.1239e-02, 2.1078e-02, -1.2091e-02, 9.7025e-03, + 1.3426e-02, -1.1710e-02, -2.2242e-03, 6.4133e-03, -1.4820e-02, + 1.4682e-02, 3.0679e-02, 1.1526e-02, 1.0072e-02, -1.1572e-02, + 2.6128e-02, 4.0879e-03, -1.7936e-02, 1.3715e-02, -2.3667e-02, + 2.0419e-03, -1.6887e-02, 1.2595e-02, -2.1988e-02, -2.3777e-02, + -1.0399e-02, 2.4868e-03, -1.2265e-02, -1.8543e-02, 3.4672e-02, + 2.1114e-02, 2.0523e-02, 7.6818e-03, 2.9282e-02, -5.9593e-03, + -2.8496e-02, 2.8482e-03, 3.6874e-04, 4.7455e-02, -2.9770e-02, + -2.0684e-02, -2.0749e-02, -5.7681e-02, -2.6175e-03, -2.4488e-02, + -5.2550e-03, -7.1191e-03, 3.8192e-02, 4.3438e-02, 5.4181e-03, + 2.8392e-02, 1.9493e-02, -3.5262e-02, 1.4839e-02, 4.6481e-03, + 1.7219e-02, 2.0160e-02, 4.9998e-03, 2.1316e-02, -8.7929e-04, + -2.1542e-02, 3.9816e-03, 1.5879e-02, 9.9231e-03, 1.3962e-02, + -5.3418e-03, 3.9857e-02, 2.0997e-02, -2.1291e-05, 1.8133e-02, + -1.2472e-02, 4.9437e-03, -1.5099e-02, 4.8860e-02, 6.1980e-03, + 2.0197e-02, 1.3141e-04, -3.1087e-03, -2.2718e-03, 2.3804e-02, + 6.0726e-03, -2.0485e-02, -2.0514e-02, -2.7679e-02, -3.0412e-02, + -1.7661e-02, -1.7462e-02, 7.5216e-03, 2.2238e-02, 1.1413e-03, + 2.6647e-02, -2.3855e-02, 2.2652e-03, -4.3256e-03, -9.3274e-03, + 2.5149e-02, 6.8432e-03, 4.2664e-03, 3.8221e-02, 7.7480e-03, + 8.7203e-03, -1.2851e-03, -1.1325e-02, -1.0650e-02, -2.8079e-02, + -1.5375e-02, 2.2630e-02, -4.3439e-03, 1.3493e-02, -1.8223e-02, + 9.9750e-03, -2.4560e-02, 1.0904e-03, -3.1198e-02, 4.7331e-03, + 1.6713e-02, -1.7653e-02, -3.8674e-02, 1.5458e-02, 4.0555e-02, + 6.9451e-03, 1.1988e-03, 8.0718e-04, 3.9985e-03, -2.2781e-02, + 8.1173e-04, 2.0106e-02, -1.2800e-02, -1.2961e-02, -2.1273e-02, + -4.4104e-05, -3.6080e-02, -1.9392e-02, 3.2862e-02, -5.6041e-03, + 2.3288e-02, -4.6795e-02, 1.7282e-02, 5.7052e-03, 2.2405e-02, + 1.9871e-03, -1.4333e-02, 5.3773e-03, 4.3568e-02, 9.8980e-03, + -1.9403e-03, 1.8981e-02, -2.5712e-02, -3.3621e-03, 2.9886e-02, + 1.3326e-03, 1.1318e-02, -3.3238e-03, -1.5494e-02, -3.0565e-02, + 1.7137e-02, -2.7874e-02, -1.1257e-02, 3.2250e-02, -2.5293e-02, + -3.0693e-03, -2.7787e-02, 1.4931e-02, 2.4202e-03, -4.0572e-03, + 5.0273e-03, 9.7496e-03, 2.2601e-02, 3.2389e-02, -1.1910e-02, + 9.1037e-03, 5.6000e-02, -1.9640e-02, 1.5469e-02, -3.3027e-02, + 1.4839e-02, 2.5071e-02, -1.2687e-02, -1.3466e-02, 1.9031e-02, + -7.3403e-03, -1.5207e-02, -1.4486e-02, 2.0678e-02, -4.1996e-02, + 1.0585e-02, 3.6276e-02, 6.1149e-03, 1.6405e-02, 1.5643e-02, + 1.5060e-02, -5.1235e-03, -2.2824e-02, -1.3752e-02, -1.5742e-02, + 2.4032e-02, -2.1782e-03, -1.3158e-02, 3.9482e-03, 3.2267e-02, + -2.2632e-03, 1.2055e-02, 4.4731e-02, 1.8271e-02, -1.1486e-02, + 1.7836e-02, 1.7886e-03, -2.4020e-02, 2.6064e-02, -2.2122e-04, + 1.8643e-02, -2.9808e-02, -6.1845e-03, -4.4464e-03, 8.8374e-04, + 1.5268e-02, 1.7205e-03, 5.7832e-02, -1.7486e-02, 1.1897e-02, + 5.8081e-02, 1.7667e-02, -7.7282e-03, 1.4036e-02, -1.4936e-03, + 6.0635e-04, 1.6124e-03, -1.6916e-02, -1.1239e-02, 1.8497e-02, + 1.2334e-03, -2.0706e-02, 3.2959e-03, 2.9186e-02, 3.7506e-02, + 1.2037e-02, -1.4903e-02, 8.5606e-03, 3.4136e-03, 1.1850e-02, + -7.4782e-03, 5.3924e-03, -2.4772e-02, 2.6840e-02, -2.7656e-02, + -3.2637e-02, -1.2779e-02, 1.0730e-02, 1.4096e-03, 3.1572e-02, + 7.8976e-04, 3.1674e-02, 8.5333e-03, -1.2679e-02, 1.1176e-02, + -2.0446e-02, 1.8628e-02, -4.0158e-02, -2.3358e-02, -2.2504e-02, + -2.8759e-02, -1.4597e-02, -8.5879e-03, 1.0550e-02, -3.5556e-02, + -1.9046e-02, -1.9159e-02, -2.2703e-02, -7.2056e-03, 4.2380e-02, + -9.7475e-03, -2.4754e-02, 1.3992e-03, -1.0411e-02, 1.5708e-02, + -8.2899e-03, -6.4856e-03, 1.6359e-02, -5.1969e-04, -5.0958e-03, + -4.1232e-02, 2.7349e-03, -1.7723e-02, 1.3388e-02, 2.2776e-03, + -2.0786e-02, -1.8082e-02, -2.4866e-03, 2.2141e-02, 6.9998e-03, + -5.5714e-03, 2.1088e-02, 5.8745e-03, 1.2788e-02, 4.2977e-03, + 5.8631e-03, -1.8121e-02, 1.9242e-03, 2.3622e-02, 1.4917e-02, + -5.3198e-03, -3.9222e-02, -2.4697e-02, 9.1218e-03, -1.0711e-02, + 1.0268e-02, 1.5148e-02, -4.4508e-02, 4.6783e-03, 2.8093e-03, + 9.1253e-03, -7.3281e-03, 1.0114e-03, -9.2369e-04, 1.4841e-02, + 2.2642e-02, 2.3675e-02, 1.3902e-02, -5.6343e-03, 1.4851e-02, + -9.5169e-03, -3.1721e-02, 1.6696e-02, 2.9285e-02, -1.4090e-02, + 2.1128e-02, 4.8656e-02, 3.8431e-02, -3.5470e-02, -4.8230e-03, + -1.6513e-02, 4.1917e-02, 8.9090e-03, -1.4022e-04, 4.0182e-03, + 7.1723e-03, 3.1419e-02, -4.8508e-03, 1.7768e-03, -7.3688e-03, + 3.4637e-03, -2.3227e-02, 3.9606e-05, -2.4731e-02, -1.3640e-02, + -5.1718e-03, 2.6662e-02, -1.2871e-02, -1.6009e-02, -5.3720e-03, + 2.7397e-04, -3.4016e-03, 2.6429e-02, 3.8069e-02, 1.0929e-02, + -1.0620e-02, 1.2165e-02, -2.6018e-02, 1.6021e-02, 4.0644e-02, + -8.0898e-03, -3.5198e-02, -1.9602e-02, 2.4986e-02, -5.8400e-03, + 3.2070e-02, -1.8265e-02, -5.4518e-03, 2.8195e-02, 5.5598e-02, + -3.9959e-02, 1.5521e-02, -2.8416e-02, 3.1130e-02, -1.0038e-02, + 2.1522e-02, -1.1654e-02, 2.2382e-02, -5.4467e-03, -2.2840e-02, + 2.7036e-03, -4.4607e-02, -4.1953e-02, 2.0079e-02, -5.0121e-03, + -1.7495e-02, 4.4070e-03, 3.7400e-04, 1.0899e-02, 1.7008e-02, + -1.6307e-02, -1.9986e-02, -2.3865e-02, -2.5618e-02, -2.9981e-02, + -2.7230e-03, 2.7079e-02, 5.2920e-03, 2.1069e-02, -2.5896e-02, + -1.6256e-02, -1.4182e-03, 1.1829e-02, 1.0360e-02, 2.8883e-02, + -6.8762e-03, 1.4032e-02, -4.3389e-03]], requires_grad=True) \ No newline at end of file diff --git a/test1.txt b/test1.txt new file mode 100644 index 0000000..a6e7a8b --- /dev/null +++ b/test1.txt @@ -0,0 +1,109 @@ +from torchviz import make_dot +dot = make_dot(query_output.last_hidden_state, params=dict(self.Qformer.bert.named_parameters())) +log_dir = '/mnt/pfs-guan-ssai/nlu/wanghanzi/multimodal/PromptMoE/' +dot.render(filename="Pre_PromptMoE_RawProb_backward_graph", directory=log_dir, format="pdf") + + +# Pre-Prompt-MoE +model.Qformer.bert.encoder.layer[6].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[10].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[6].experts.experts[0].dense1.weight.grad +model.Qformer.bert.encoder.layer[10].experts.experts[0].dense1.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[0].dense1.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[1].dense1.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[2].dense1.weight.grad + + +model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[9].intermediate_query.dense.weight +model.Qformer.bert.encoder.layer[9].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[10].intermediate.dense.weight.grad +model.Qformer.bert.encoder.layer[11].intermediate.dense.weight.grad + +model.Qformer.bert.encoder.layer[10].intermediate_query.dense.weight +model.Qformer.bert.encoder.layer[10].experts.experts[2].dense1.weight +model.Qformer.bert.encoder.layer[10].experts.experts[1].dense1.weight +model.Qformer.bert.encoder.layer[10].experts.experts[0].dense1.weight +model.Qformer.bert.encoder.layer[10].intermediate_query.dense.weight == model.Qformer.bert.encoder.layer[10].experts.experts[0].dense1.weight + +# Pre-MoE gate-sentence +# model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad 不更新 + +# Pre-MoE gate-token +# 正常更新 + +# Post-MoE gate-sentence +model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad +# model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad 正常更新 +# model.Qformer.bert.encoder.layer[6].experts.gate.weight.grad 全是0/-0 +# model.Qformer.bert.encoder.layer[10].experts.gate.weight.grad 全是0/-0 + +# Route-MoE +# Pre-MoE 算的beam_scores有问题 + +# Post-Route 会更新多个expert的参数;会更新gate的参数 +# Layer 6 更新了两个expert的参数 (layer 6 layer 8) +# model.Qformer.bert.encoder.layer[11].intermediate.dense.weight.grad 是0?都是0 +# model.Qformer.bert.encoder.layer[11].output.dense.weight.grad + +model.Qformer.bert.encoder.layer[6].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[6].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[6].experts.experts[1].intermediate_query.dense.weight.grad + +model.Qformer.bert.encoder.layer[7].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[7].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[7].experts.experts[1].intermediate_query.dense.weight.grad + +model.Qformer.bert.encoder.layer[8].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[8].experts.experts[1].intermediate_query.dense.weight.grad + +model.Qformer.bert.encoder.layer[9].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[9].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[9].experts.experts[1].intermediate_query.dense.weight.grad + +model.Qformer.bert.encoder.layer[10].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[10].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[10].experts.experts[1].intermediate_query.dense.weight.grad + +model.Qformer.bert.encoder.layer[11].experts.gate.weight.grad +model.Qformer.bert.encoder.layer[11].experts.experts[0].intermediate_query.dense.weight.grad +model.Qformer.bert.encoder.layer[11].experts.experts[1].intermediate_query.dense.weight.grad + + +(Pdb) [p for n, p in self.model.named_parameters() if n == 'Qformer.bert.encoder.layer.10.experts.experts.0.dense1.weight'] +[Parameter containing: +tensor([[-0.0328, 0.0414, 0.0010, ..., -0.0068, 0.0244, 0.0587], + [ 0.0120, 0.0458, 0.0171, ..., -0.0439, -0.0107, -0.0397], + [ 0.0239, 0.0191, -0.0145, ..., 0.0008, -0.0067, 0.0090], + ..., + [ 0.0174, -0.0465, -0.0106, ..., -0.0095, 0.0153, -0.0195], + [-0.0151, -0.0082, -0.0320, ..., -0.0016, -0.0232, -0.0147], + [ 0.0142, -0.0286, 0.0161, ..., -0.0160, -0.0306, -0.0272]], + device='cuda:0', requires_grad=True)] +(Pdb) [p for n, p in self.model.named_parameters() if n == 'Qformer.bert.encoder.layer.8.experts.experts.0.dense1.weight'] +[Parameter containing: +tensor([[ 0.0024, 0.0218, -0.0186, ..., -0.0178, -0.0067, 0.0820], + [-0.0759, -0.0002, -0.0548, ..., 0.0292, 0.0531, 0.0779], + [-0.0220, -0.0037, -0.0520, ..., -0.0426, -0.0261, -0.0357], + ..., + [-0.0448, 0.0471, 0.0133, ..., -0.0062, -0.0217, -0.0203], + [ 0.0532, 0.0197, 0.0320, ..., -0.0010, -0.0838, 0.0682], + [ 0.0284, 0.0038, -0.0007, ..., -0.0305, 0.0296, 0.0056]], + device='cuda:0', requires_grad=True)] +(Pdb) [p for n, p in self.model.named_parameters() if n == 'Qformer.bert.encoder.layer.6.experts.experts.0.dense1.weight'] +[Parameter containing: +tensor([[ 6.5176e-02, -4.6473e-02, -2.7396e-02, ..., 2.1774e-03, + 6.1457e-02, 1.9180e-03], + [ 7.3707e-03, 6.1392e-02, -2.7108e-02, ..., 4.0778e-02, + -1.9791e-02, -1.1612e-02], + [ 2.1193e-02, -3.8323e-02, -6.0238e-02, ..., -1.4539e-02, + 9.2965e-02, 3.9153e-02], + ..., + [ 5.3203e-03, -1.7276e-02, -3.2191e-02, ..., -1.6435e-02, + -1.8553e-02, -2.8158e-02], + [-6.9853e-02, 9.2719e-03, -1.8895e-03, ..., -2.6425e-02, + 1.4880e-03, 3.4505e-02], + [-1.2168e-03, 3.7038e-02, 4.8047e-02, ..., -3.4523e-03, + -1.3030e-05, -1.4778e-02]], device='cuda:0', requires_grad=True)] \ No newline at end of file