The conditions during validation should mimic test conditions as closely as possible. So it depends on what you are trying to do. Typically in a seq2seq problem, your model has to generate the entire output and therefore it would be better to use the generated token to predict the next token. In some cases, you may just want to check whether your model is actually learning something meaningful (in case your model’s performance is low on validation for example) then you can provide the target token at every time step (this is called teacher forcing) and measure its performance. Using the loss (assuming you are talking about negative log likelihood loss) makes sense when you are using teacher forcing but is not the best way for measuring your model’s performance without teacher forcing because the inputs at every time step may not match the target tokens. Instead, you should use your “metric of interest” during validation without teacher forcing such as BLEU (or METEOR) if you are doing machine translation or ROUGE if you are doing summarization.