Does this mean that the decoder has forwarded 7 times during training(with beam search, topp sampling or greedy search)?

No. During training, each training example is only forwarded once. We compare the outputs of the model (i.e. logits) to the labels, for all token positions.
Only at inference time, the generation happens sequentially (using .generate()), because then we feed the predictions of the model as input to the following