-
Notifications
You must be signed in to change notification settings - Fork 10
[WIP][Quantization] Update default observer to be MSE
#300
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?
Conversation
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.
Let's go!
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.
This seems like a pretty significant one-line change, that would affect pretty much every quantization pathway. Do we always want MSE over MinMax? Should we start a CHANGELOG so users are aware of internal changes like this?
Co-authored-by: Brian Dellabetta <[email protected]>
@brian-dellabetta : @dalistarh has validated that the MSE observer is better across the board (within reason). Logging changes is another topic outside of the scope of this PR I believe |
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.
Since observers are only used by LLM Compressor, this change is safe to make without affecting existing checkpoints.
Just FYI for the future, this is not the case for actorder
, as the checkpoints do not write the actorder explicitly, so modifying the CT checkpoint default will modify existing checkpoints. If we want to modify the actorder
default, it will likely require adding an actorder
field to GPTQModifier
and resolving that with existing QuantizationArgs
.
But side note aside, looks great!
Thanks Kyle! Will keep that in mind. |
We should run through our lm-eval testing after this change lands. Ive already spoken to Helen about running the test |
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.
We likely need to do two sets of validations before landing
- Run through our lm-eval tests to ensure no regression
- Validate timings/potential slowdowns.
We can connect on how to set this up @shanjiaz
MSE
MSE
Test results available here. |
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.
First PR! 🥳 🥇
Description
This PR addresses the following issue. Update such that the MSE is used as the default observer as opposed to MinMax.
Testing
Ran
examples/quantization_w4a16
and inspected the observer. SeeQuantizationArgs
:More details:

Concern
@anmarques @eldarkurtic Wanted to reach out to confirm if this is what we wanted : )