MABtt:

I found that the net did not predicted any of them except for the neutral one


This is what I suspected, from the behaviour that you described in your post.
I am not familiar with BERT, but here are a couple of things you could try to fix this:

See if you are missing some normalization step in input processing. Specifically, a normalization step that makes all the input numbers small. An example of such a step from computer vision would be: dividing all pixel values by 255 so that they are all at most 1.
More generally: many networks work best when we scale the input features so that they are all within a comparable range. Is there such a step involved in training BERT? If so, have you done this step?
Reduce the initial learning rate till your net starts finding more than one class. From your code above you have lr set to 1e-3. Try reducing it to 1e-4, then 1e-5, and so on, till more classes start appearing in the predictions. Finding the right learning rate may require some trial and error.

Edited to add: From the denominator it looks like all your validation instances have their (correct/ground truth) label set to “Neutral”. This does not look like a good thing for multiclass validation. Usually we want the validation set to have all classes in the same proportion (as far as possible) as the training set.