-
Notifications
You must be signed in to change notification settings - Fork 181
[GPTQ] Change actorder default to "static" #1425
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
nice! |
@kylesayrs quick question from my side. Since the old default was None, do we risk defaulting to an incorrect value for older recipes that don't include it? Especially for ones that specified it in the quantization scheme? |
|
## Purpose ## * Make actorder option more intuitive for users * Enable easier adjustment of actorder default #1425 * This change is conceptually intuitive because activation ordering is a concept that only applies to the GPTQ algorithm (the only algorithm for which quantization group order matters) ## Changes ## * Add `actorder` argument to `GPTQModifier` * Override `resolve_quantization_config` method to resolve config groups with `actorder` argument * (Misc) rearrange method order to match the typical order in which they are called in the modifier lifecycle ## Testing ## * Ran llama w4a16 example to completion Signed-off-by: Kyle Sayers <[email protected]>
The base branch was changed.
Signed-off-by: Kyle Sayers <[email protected]>
8cf408e
to
8b9f795
Compare
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
8b9f795
to
f6a0e25
Compare
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
## Purpose ## * Fix false assumption that `actorder` field is of enum type * Despite the fact that actorder passes through a [field_validator](https://github.com/neuralmagic/compressed-tensors/blob/main/src/compressed_tensors/quantization/quant_args.py#L200), `QuantizationArgs` has the [use_enum_values](https://github.com/neuralmagic/compressed-tensors/blob/main/src/compressed_tensors/quantization/quant_args.py#L128) configuration set, meaning that enum values are converted to strings. * This was done in relation to [this fix](neuralmagic/sparseml#2327) * Remove conflict with recipes which manually specify activation ordering by using a sentinel value ## Follow ups ## * #1425 ## Testing ## * Ran llama3 example with manually specified `actorder=group` --------- Signed-off-by: Kyle Sayers <[email protected]> Co-authored-by: Dipika Sikka <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Waiting for next weekly to run before merging |
The base branch was changed.
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
Signed-off-by: Kyle Sayers <[email protected]>
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.
FYI this will incorrectly save models for our e2e testing:
https://github.com/vllm-project/llm-compressor/tree/main/tests/e2e/vLLM/configs (specifically, essentially remove the cases where there is no act order while duplicating some cases)
Same for lm-eval tests:
https://github.com/vllm-project/llm-compressor/tree/main/tests/lmeval/configs
Turning all non-specified actorder cases into actorder cases is the intention of this PR. As for duplicating tests, I don't think any are actually duplicated? In order for a duplication to occur, it must conflict with an existing weight actorder config
These are all w4a16. If you grep for non-specified w4a16 configs, you get
All of the other w4a16 configs test for different things, except for maybe |
|
Just posted a run above
Since actorder is now the default, we do not need to include it in model names, since the convention is that default arguments are not included in the model name
As I mentioned previously, these two tests are slightly different. After the above nightly finishes, I'll delete |
This is for our internal testing. Please keep the naming convention until we have adaptability of this case being our default. And as I mentioned, we still need to test a case with no act order. |
Purpose
Prerequisites
Changes
Testing