Generate: get the correct beam index on eos token #18851
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes #18839
We were not storing the correct beam index when an
eos_token
was generated (except for the first batch member), resulting in the issue linked above.Confirming the change -- let's consider the following script, which gets the scores from
output.sequences_scores
and frommodel.compute_transition_beam_scores
. Since there is no length penalty, the sum of the transition scores divided by the sequence length should matchoutput.sequences_scores
-- with the current codebase, it was not true except for the first batch.🚫 output before this PR:
✅ output after this PR: