-
Notifications
You must be signed in to change notification settings - Fork 279
Adding new MoE e2e tests #1960
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
base: main
Are you sure you want to change the base?
Adding new MoE e2e tests #1960
Conversation
Summary of ChangesHello @HDCharles, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily focuses on expanding the test coverage for advanced model architectures by introducing new end-to-end tests for Mixture-of-Experts (MoE) models within the vLLM framework. These tests cover various quantization configurations, ensuring broader validation of model performance and stability. Additionally, a minor but important change was made to improve the robustness of a core utility function, allowing it to handle a wider range of model implementations without error. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request introduces new end-to-end (e2e) tests for MoE (Mixture of Experts) models and includes a modification to the untie_word_embeddings function to handle cases where get_input_embeddings and get_output_embeddings are not implemented. The new tests are defined in YAML configuration files, and the test_vllm.py file is updated to accommodate these new configurations. The untie_word_embeddings function is updated to handle NotImplementedError exceptions.
src/llmcompressor/transformers/compression/compressed_tensors_utils.py
Outdated
Show resolved
Hide resolved
|
👋 Hi! Thank you for contributing to llm-compressor. Please add the ready label when the PR is ready for review. Note: This is required to complete the testing suite, please only add the label once the PR is code complete and local testing has been performed. |
3322e08 to
8b3ace7
Compare
a08b69f to
d227968
Compare
f0c7d33 to
a9d56db
Compare
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.
In the future can you explain in the PR description things like why you're ignoring the first 20 layers? I assume this is just to cut runtime (which is a good enough reason for me)
dsikka
left a comment
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.
Please add generated checkpoints to your PR description
dsikka
left a comment
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.
Do you have a run where the e2e test passed? The job you linked failed
not yet, failures are due to being unable to upload the model, trying to get it to run |
brian-dellabetta
left a comment
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.
nice! LGTM pending other comments
Summary new e2e tests for MoE + various techniques Signed-off-by: HDCharles <charlesdavidhernandez@gmail.com>
Summary Signed-off-by: HDCharles <charlesdavidhernandez@gmail.com>
Summary Signed-off-by: HDCharles <charlesdavidhernandez@gmail.com>
Summary Signed-off-by: HDCharles <charlesdavidhernandez@gmail.com>
Summary Signed-off-by: HDCharles <charlesdavidhernandez@gmail.com>
SUMMARY:
adding e2e tests for MoE
also small fix so scheme: None doesn't error
we ignore all but first N layers of int4 because in e2e run on one H100 it takes about 2.5 minutes per expert layer so running all 48 layers would result in ~ 2 hours of additional test time.
TEST PLAN:
in progress: https://github.com/neuralmagic/llm-compressor-testing/actions/runs/19169597134
local (after disabling the cadence skip)
export TEST_DATA_FILE="${REPOS}/llm-compressor/tests/e2e/vLLM/configs/fp8_dynamic_per_tensor_moe.yaml"
pytest tests/e2e/vLLM/test_vllm.py -vs 2>&1 | tee log-fp8.log
export TEST_DATA_FILE="${REPOS}/llm-compressor/tests/e2e/vLLM/configs/w4a16_grouped_quant.yaml"
pytest tests/e2e/vLLM/test_vllm.py -vs 2>&1 | tee log-int4.log
export TEST_DATA_FILE="${REPOS}/llm-compressor/tests/e2e/vLLM/configs/fp4_nvfp4_moe.yaml"
pytest tests/e2e/vLLM/test_vllm.py -vs 2>&1 | tee log-fp4.log