Implement nas.convert() api for the compress algorithm#482
Implement nas.convert() api for the compress algorithm#482danielkorzekwa merged 52 commits intofeature/compressfrom
Conversation
using MIP-based NAS search algorithm. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…ation. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…ress module. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…ntal/ folder to not be run by CICD yet. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Keval Morabia <28916987+kevalmorabia97@users.noreply.github.com>
…tmp_path. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…thm. Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…o_decilm_convertion
…as_convert Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
…rtion Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## feature/compress #482 +/- ##
=================================================
Coverage 73.40% 73.40%
=================================================
Files 180 180
Lines 18127 18127
=================================================
Hits 13306 13306
Misses 4821 4821 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| hydra_config_dir = project_root_path / "tests/experimental/torch/_compress/resources/configs" | ||
| hydra_config_name = "Llama-3_1-8B" |
There was a problem hiding this comment.
Any reason for passing hydra_config_dir and hydra_config_name instead of just 1 argument hydra_config_path?
There was a problem hiding this comment.
there could be multiple models supported, not just Llama-3_1-8B, currently, by design for each model there is a dedicated hydra file,
for the user facing interface we could simplify it, but we need to think how.
tests/experimental/torch/_compress/nas/plugins/test_nas_convert.py
Outdated
Show resolved
Hide resolved
| setup_puzzle_dir(puzzle_dir) | ||
| save_dummy_dataset(dataset_path) | ||
|
|
||
| # Create a small Llama model | ||
| tokenizer = create_tokenizer(project_root_path) | ||
| create_and_save_small_llama_model( | ||
| llama_checkpoint_path, vocab_size=tokenizer.vocab_size, tokenizer=tokenizer | ||
| ) |
There was a problem hiding this comment.
We can move this to test_utils.py and reuse in test_compress.py
There was a problem hiding this comment.
already did as part of the next nas_search() MR, let's wait till you see it there.
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
| # | ||
| # Run the mnt.convert() step | ||
| # | ||
| input_model = CompressModel() |
There was a problem hiding this comment.
Is the CompressModel just a placeholder so it can pass the API requirements? Lets discuss in our meeting tomorrow how to better handle this
There was a problem hiding this comment.
it is there because it is needed by mtn api, but I agree it is not really used. let's discuss.
| from hydra import compose, initialize, initialize_config_dir | ||
| from omegaconf import DictConfig, OmegaConf |
There was a problem hiding this comment.
Please add hydra and omegaconf to setup.py puzzle dependencies
There was a problem hiding this comment.
done, do we have some integration test that will set setup.py? for:
# Dependedencies for modelopt.torch._compress subpackage
"compress": [
"fire",
"hydra-core==1.3.2",
"omegaconf==2.3.0",
],
There was a problem hiding this comment.
I will work on the integration test next week
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
Signed-off-by: Daniel Korzekwa <dkorzekwa@nvidia.com>
What does this PR do?
Implement nas.convert() api for the compress algorithm