-
Notifications
You must be signed in to change notification settings - Fork 27.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[VITS] Fix nightly tests #25986
[VITS] Fix nightly tests #25986
Conversation
The documentation is not available anymore as the PR was closed or merged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot. Just a few nits for the comments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! The tokenizers integration tests should rather use k
as padding as we discussed!
* fix tokenizer * make bs even * fix multi gpu test * style * model forward * fix torch import * revert tok pin
* fix tokenizer * make bs even * fix multi gpu test * style * model forward * fix torch import * revert tok pin
* fix tokenizer * make bs even * fix multi gpu test * style * model forward * fix torch import * revert tok pin
What does this PR do?
Fixes the tokenizer integration test and multi-GPU test that failed on the nightly run: https://github.com/huggingface/transformers/actions/runs/6068405445/job/16461410319
The tokenizer fix is trivial (needed to update the commit ID)!
The multi-GPU test was failing because the output sequence length for VITS is a function of the model inputs, rather than being a function of the input sequence lengths only.
Let's say we have 2 GPUs over which we want to run DP:
N
, which is computed based on the input in the first element of the batchx
M
, which is computed based on the input in the second element of the batchy
=> there is nothing to enforce that
N = M
, since the VITS output sequence length is a function of the inputs. Thus, we cannot concatenate the inputs after running the forward pass, since they have different dims.The fix for the test is to pass the same inputs to both GPUs, and disable the stochastic duration predictor. This way, we get consistent outputs across our GPUs.