Conversation
Add merge_group trigger to all required status check workflows to support GitHub's merge queue feature. This enables automatic PR merging without the rebase treadmill. Changes: - Add merge_group trigger to test-check.yaml (base/pytorch tests) - Add merge_group trigger to test-check-transformers.yaml - Add merge_group trigger to quality-check.yaml - Add merge_group trigger to linkcheck.yml - Add merge_group trigger to ready-label-check.yaml with auto-pass logic (merge queue branches don't have PR labels) These workflows are all required status checks and must run on merge queue branches for the queue to function properly. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
👋 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. |
Summary of ChangesHello, 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 significantly enhances the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Ignored Files
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
|
|
Closing to recreate with clean branch (contained unrelated commits) |
There was a problem hiding this comment.
Code Review
This pull request introduces support for quantizing the Qwen3.5-MoE model, including new calibration logic and example scripts. The changes to handle recent updates in the transformers library are also included. My review focuses on improving code clarity and correctness in the new example scripts and model implementation. A critical point to address is that the pull request title and description are misleading, as they refer to CI workflow changes rather than the actual model support being added. This should be corrected for repository history clarity.
| messgages = [] | ||
| for message in example["messages"]: | ||
| messgages.append( | ||
| { | ||
| "role": message["role"], | ||
| "content": [{"type": "text", "text": message["content"]}], | ||
| } | ||
| ) | ||
|
|
||
| return processor.apply_chat_template( | ||
| messgages, |
There was a problem hiding this comment.
There is a typo in the variable name messgages. It should be messages. This typo appears multiple times within the preprocess_function.
| messgages = [] | |
| for message in example["messages"]: | |
| messgages.append( | |
| { | |
| "role": message["role"], | |
| "content": [{"type": "text", "text": message["content"]}], | |
| } | |
| ) | |
| return processor.apply_chat_template( | |
| messgages, | |
| messages = [] | |
| for message in example["messages"]: | |
| messages.append( | |
| { | |
| "role": message["role"], | |
| "content": [{"type": "text", "text": message["content"]}], | |
| } | |
| ) | |
| return processor.apply_chat_template( | |
| messages, |
| moe_calibrate_all_experts=True) | ||
|
|
||
| # Save to disk in compressed-tensors format. | ||
| SAVE_DIR = "/raid/engine/dsikka/" + "Qwen3.5-397B-A17B" + "-NVFP4" |
There was a problem hiding this comment.
Using + for string concatenation to build a file path can be fragile and less readable. It's better to define the full path as a single string literal for clarity, or use os.path.join for better portability (which would require importing os).
| SAVE_DIR = "/raid/engine/dsikka/" + "Qwen3.5-397B-A17B" + "-NVFP4" | |
| SAVE_DIR = "/raid/engine/dsikka/Qwen3.5-397B-A17B-NVFP4" |
| oneshot(model=model, recipe=recipe) | ||
|
|
||
| # Save to disk in compressed-tensors format. | ||
| SAVE_DIR = "/raid/engine/dsikka/" + "Qwen3.5-397B-A17B" + "-FP8-Dynamic-NoLinearAttn" |
There was a problem hiding this comment.
Using + for string concatenation to build a file path can be fragile and less readable. It's better to define the full path as a single string literal for clarity, or use os.path.join for better portability (which would require importing os).
| SAVE_DIR = "/raid/engine/dsikka/" + "Qwen3.5-397B-A17B" + "-FP8-Dynamic-NoLinearAttn" | |
| SAVE_DIR = "/raid/engine/dsikka/Qwen3.5-397B-A17B-FP8-Dynamic-NoLinearAttn" |
| return original | ||
|
|
||
|
|
||
| class SequentialQwen3VLMoeTextExperts(torch.nn.ModuleList): |
There was a problem hiding this comment.
There's a naming inconsistency. This class name SequentialQwen3VLMoeTextExperts and the filename qwen3_5_vl_moe.py suggest a Vision-Language model. However, the code in this file seems to target the non-VL Qwen3_5Moe model. This is likely a copy-paste artifact. For clarity, this class should be renamed to SequentialQwen3_5MoeTextExperts. You'll also need to update its usage in CalibrateQwen3_5MoeTextSparseMoeBlock.__init__ on line 35.
| class SequentialQwen3VLMoeTextExperts(torch.nn.ModuleList): | |
| class SequentialQwen3_5MoeTextExperts(torch.nn.ModuleList): |
Summary
merge_grouptrigger to all required status check workflows to enable GitHub merge queue functionalityChanges
merge_grouptrigger totest-check.yaml(base/pytorch tests)merge_grouptrigger totest-check-transformers.yamlmerge_grouptrigger toquality-check.yamlmerge_grouptrigger tolinkcheck.ymlmerge_grouptrigger toready-label-check.yamlwith auto-pass logicWhy the changes?
When merge queue is enabled in branch protection settings, GitHub creates temporary branches with the pattern
gh-readonly-queue/{base}/{pr}-{sha}to test PRs. These workflows need to trigger onmerge_groupevents for the queue to function.Special note on ready-label-check: Added conditional logic to auto-pass when triggered by merge queue, since merge queue branches don't have PR labels attached.
Next steps after merge
main🤖 Generated with Claude Code