Ваша маска неверна. Попробуйте
scores = scores.masked_fill(scores == 0, -np.inf)
scores
теперь выглядит как
tensor([[1.4796, 1.2361, 1.2137, 0.9487, -inf, -inf],
[0.6889, 0.4428, 0.6302, 0.4388, -inf, -inf],
[0.8842, 0.7614, 0.8311, 0.6431, -inf, -inf],
[0.9884, 0.8430, 0.7982, 0.7323, -inf, -inf],
[ -inf, -inf, -inf, -inf, -inf, -inf],
[ -inf, -inf, -inf, -inf, -inf, -inf]])