Hey,
After doing the change to run on CPU (I don’t have a GPU on my machine), I can’t seem to reproduce this:
when create_graph is True
loss                     :18.81757354736328
/data/users/albandes/pytorch/3.6_debug_source/torch/functional.py:1242: UserWarning: torch.norm is deprecated and may be removed in a future PyTorch release. Use torch.linalg.norm instead.
  "torch.norm is deprecated and may be removed in a future PyTorch release. "
classifier grad norm     :394.94049072265625
bert embedding grad norm :20.38188934326172
When create_graph is False
loss                     :18.81757354736328
classifier grad norm     :394.94049072265625
bert embedding grad norm :20.38188934326172

So I will guess that some of the cuda libraries change and lead to different numerical value.
Can you try to:

disable cudnn: torch.backends.cudnn.enabled=False

increase the precision to double: input = input.double() and net.double()

test on cpu (remove the .cuda() and add a map_location=torch.device('cpu') to the model loading)