-
Notifications
You must be signed in to change notification settings - Fork 29
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
Sparsify.alpha.auto #179
Sparsify.alpha.auto #179
Conversation
Update: stitch functions slightly
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.
LGTM pending GHA issues, are these related?
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.
LGTM, good stuff @rahul-tuli! We do need some verification that the end to end runs are producing the expected results. We can land without the full testing, but let's be ready to follow up with another PR in case there's updates to be made
I agree, I ran a few runs that ended fine, but will keep an eye out for solidifying the code |
Note: CLOSED this PR by mistake, reopened now |
implement own strtobool function
* Update: sparsify.version to match with main * Delete: sparsify.package * Empty commit * Add: stitch functions * Update: Env var name Update: stitch functions slightly * Add: Sparsifyml to dependencies in setup.py * Style: Fixes * Some more fixers * OLD IC integration working * Run Integration Tests only when sparsifyml installed * Fix yolov5 integration * Propagate student args to teacher * Update teacher kwargs only when key not present for safety * Updated: integration_test * Updated: num trials to 2 * Fix: failing GHA * make sparsifyml optional implement own strtobool function
* Update: sparsify.version to match with main * Delete: sparsify.package * Empty commit * Add: stitch functions * Update: Env var name Update: stitch functions slightly * Add: Sparsifyml to dependencies in setup.py * Style: Fixes * Some more fixers * OLD IC integration working * Run Integration Tests only when sparsifyml installed * Fix yolov5 integration * Propagate student args to teacher * Update teacher kwargs only when key not present for safety * Updated: integration_test * Updated: num trials to 2 * Fix: failing GHA * make sparsifyml optional implement own strtobool function
* Clear existing sparsify source * Add back version file * Port of sparsify.auto from private repository (#124) * remove javascript deps * Initial port of autosparse to sparsify.auto * Initial port autosparse -> sparsify.auto * Added tests and fixes * Add back yarn * Add github workflow for test checks * Update workflows Co-authored-by: Benjamin Fineran <bfineran@users.noreply.github.com> workflow * Add GHA tests for base, package, and auto (#133) * `sparsify.package` base CLI (#125) * bump up main to 1.2.0 (#128) Co-authored-by: dhuang <dhuang@MacBook-Pro.local> * Adds the following: * Setup directory Structure * `from sparsify import package` importable + callable function * A constants file with supported tasks, criterions, and deployment scenarios (Should probably converted to `Enums` or something better than `python lists`) * Add `click` as a required dependency * Additional CLI helpers for updated acceptance criterion * `sparsify.package` cli utility * setup test directory * Add tests for CLI * Setup Entrypoints * Remove old docstring * - Moved utils outside `package` - Renamed package_ to package - Add more tests - Update Usage command - Rebased on `sparsify.alpha` - Add typing - Add version info to cli Apply review comments from @corey-nm - Remove `cli_helpers.py` and rely on `click` * Remove unintended change added while resolving merge conflicts * Style * Add dataset registry update cli to use dataset registry * Fix failing tests * Centralize task registry (#132) * Centralize task name and alias handeling * Propagate TaskName updates to auto tasks * Fix click parse args call * Fix failing tests after TASK name updates * Prevent auto install of integrations on sparsify import (#134) * * Change `NO_VNNI` --> `DEFAULT` * Refactor CLI arg parsing cause originally `System.exit()` was thrown on invoking help * Rename `scenario` --> `target` * Remove single character shortcuts, as suggested by @bfineran * Default directory to `None` for now, logic to choose an appropriate name will be added to diff #130 * Added show defaults at the top level `click.command()` decorator * Added a `DEFAULT_OPTIMIZNG_METRIC` * Added a `DEFAULT_DEPLOYMENT_SCENARIO` * Changed `optimizing_metric` help message * Updated Tests * - Style - Example Usage Co-authored-by: dhuangnm <74931910+dhuangnm@users.noreply.github.com> Co-authored-by: dhuang <dhuang@MacBook-Pro.local> Co-authored-by: Konstantin Gulin <66528950+KSGulin@users.noreply.github.com> * Add DDP support (#126) * `sparsify.package` backend-call (#130) * bump up main to 1.2.0 (#128) Co-authored-by: dhuang <dhuang@MacBook-Pro.local> * Adds the following: * Setup directory Structure * `from sparsify import package` importable + callable function * A constants file with supported tasks, criterions, and deployment scenarios (Should probably converted to `Enums` or something better than `python lists`) * Add `click` as a required dependency * Additional CLI helpers for updated acceptance criterion * `sparsify.package` cli utility * setup test directory * Add tests for CLI * Setup Entrypoints * Remove old docstring * - Moved utils outside `package` - Renamed package_ to package - Add more tests - Update Usage command - Rebased on `sparsify.alpha` - Add typing - Add version info to cli Apply review comments from @corey-nm - Remove `cli_helpers.py` and rely on `click` * Remove unintended change added while resolving merge conflicts * Style * Add dataset registry update cli to use dataset registry * Fix failing tests * Centralize task registry (#132) * Centralize task name and alias handeling * Propagate TaskName updates to auto tasks * Fix click parse args call * Fix failing tests after TASK name updates * Prevent auto install of integrations on sparsify import (#134) * * Change `NO_VNNI` --> `DEFAULT` * Refactor CLI arg parsing cause originally `System.exit()` was thrown on invoking help * Rename `scenario` --> `target` * Remove single character shortcuts, as suggested by @bfineran * Default directory to `None` for now, logic to choose an appropriate name will be added to diff #130 * Added show defaults at the top level `click.command()` decorator * Added a `DEFAULT_OPTIMIZNG_METRIC` * Added a `DEFAULT_DEPLOYMENT_SCENARIO` * Changed `optimizing_metric` help message * Updated Tests * - Style - Example Usage * Add proper commands + gha workflows * Refactor package function to make a call to the backend service * Add template function for output Add importable Backend Base url Remove unnecessary args from package function Add end to end integration test * Updated tests, addressed comments * Base Cli + importable function * Style * Remove files added in faulty rebase * Changed base url, styling Co-authored-by: dhuangnm <74931910+dhuangnm@users.noreply.github.com> Co-authored-by: dhuang <dhuang@MacBook-Pro.local> Co-authored-by: Konstantin Gulin <66528950+KSGulin@users.noreply.github.com> Co-authored-by: Konstantin <konstantin@neuralmagic.com> * `sparsify.package` updates (#141) * Update output to also print model metrics Update `--optimizing_metrics` to take in a string containing comma separated metrics for example `--optimizing_metric "compression, accuracy"`(added a `_csv_callback` function for that) Update Usage instructions accordingly Add a log statement to package function Added more tests * Address comments * Rename `normalized_metric` --> `metric_` to avoid potential confusion * Add a getter for TASK_REGISTRY and DATASET_REGISTRY (#142) * Add a getter for TASK_REGISTRY and DATASET_REGISTRY * typing * fix potential bug * Add None to test * Updated tests according to comments from @bfineran * Make test cleaner based on feedback from @corey-nm * Remove config creator (#136) * [Auto] Add Tensorboard Support (#147) * Support for Hyperparameter Tuning (#145) * force convert yolov5 metric keys to float (#151) * [Auto] Update function name and description to be more generic (#149) * rename and flip logic for stopping_condition flag (#152) * [Auto] Support for multi-stage tuning (#157) * Support for updated tuning flow (#159) * Support tuning of CLI args (#158) * Support multiple optimizing metrics (#160) * Log important updates with an easily visible format (#161) * Update the user output for `sparsify.package` (#166) * Add Dockerfile Download deployment directory, and Update instructions for user Update tests * Add volume mount to docker command * [Auto] Update interface for sparsifyml (#173) * Fix: remove debug line * Update sparsify.auto interface for sparsifyml * rename interface -> schemas * Sparsify.alpha.auto (#179) * Update: sparsify.version to match with main * Delete: sparsify.package * Empty commit * Add: stitch functions * Update: Env var name Update: stitch functions slightly * Add: Sparsifyml to dependencies in setup.py * Style: Fixes * Some more fixers * OLD IC integration working * Run Integration Tests only when sparsifyml installed * Fix yolov5 integration * Propagate student args to teacher * Update teacher kwargs only when key not present for safety * Updated: integration_test * Updated: num trials to 2 * Fix: failing GHA * make sparsifyml optional implement own strtobool function * [Create] alpha implementation (#181) * [Create] alpha implementation * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: corey-nm <109536191+corey-nm@users.noreply.github.com> --------- Co-authored-by: corey-nm <109536191+corey-nm@users.noreply.github.com> * Adding one shot cli (#184) * [Feature branch] standard clis (#187) * Adding skeleton clis * [CLI standardization] sparsify.run one-shot impl (#188) * [CLI standardization] sparsify.run one-shot impl * Fixing one-shot cli --------- Co-authored-by: Corey Lowman <corey@neuralmagic.com> * [WIP][CLI standardization] sparsify.run training-aware and spares-transfer initial impl (#189) * [CLI standardization] sparsify.run one-shot impl * [WIP][CLI standardization] sparsify.run training-aware and spares-transfer initial impl * Fixing training-aware/sparse-transfer --------- Co-authored-by: Corey Lowman <corey@neuralmagic.com> * Adding docstring to sparsify.run * Moving use case to top arg * Removing apply/init --------- Co-authored-by: Benjamin Fineran <bfineran@users.noreply.github.com> * Style changes for sparsify.alpha (#194) * Update: Minimum supported Python Version to `3.7` as it's consistent with our other repos (#193) * [Add] `sparsify.login` CLI and function (#180) * Adding sparsify.login entrypoint and function * Adding docstring to exception * Adding pip install of sparsifyml * Respond to review * Adding help message at top * Adding setup python to workflow * Adding checked sparsifyml import * Apply suggestions from code review Co-authored-by: Danny Guinther <dannyguinther@gmail.com> * check against major minor version only * add client_id and other bug fixes * Fix: `--index` --> `--index-url` * Update install command missed during rebase * * Clean up code * Remove Global variables * Update PyPi Server link * Add Logging * Move exceptions to their own file * Style fixes * Apply suggestions from code review Add: suggestion from @KSGulin Co-authored-by: Konstantin Gulin <66528950+KSGulin@users.noreply.github.com> * Update src/sparsify/login.py Co-authored-by: Konstantin Gulin <66528950+KSGulin@users.noreply.github.com> * remove comment --------- Co-authored-by: Benjamin Fineran <bfineran@users.noreply.github.com> Co-authored-by: Danny Guinther <dannyguinther@gmail.com> Co-authored-by: Benjamin <ben@neuralmagic.com> Co-authored-by: rahul-tuli <rahul@neuralmagic.com> Co-authored-by: Konstantin Gulin <66528950+KSGulin@users.noreply.github.com> * training aware and sparse transfer run mode support (#191) * add sparsifyml dependencies to sparsify install (#195) * update task registry + generalize matching (#201) * rename performance to optim-level in legacy auto api (#199) * [sparsify.run one-shot] CLI propagation of recipe_args (#198) * Remove hardware optimization options (#200) * Remove hardware optimization options * Rename instead of remove optim_level * Add OPTIM_LEVEL back to all list * simple fixes in initial one-shot testing flow (#206) * fixes for initial E2E runs of sparse transfer and training aware (#207) * fixes for initial E2E runs of sparse transfer and training aware * quality * [Alpha] Rework Auto main script into Training-Aware and Sparse-Transfer script (#208) * Initial scratch work * Complete, but untested implementation * Working yolov5 * Working across all integrations * IC path fix * Require model * Remove debug adds * make API KEY an argument (#211) * Update integration and unit tests (#214) * Update integration and unit tests * Update IC base test model * Add login step to test setup (#216) * bump up version to 1.6.0 (#215) (#218) Co-authored-by: dhuang <dhuang@MacBook-Pro-2.local> (cherry picked from commit 699a476) Co-authored-by: dhuangnm <74931910+dhuangnm@users.noreply.github.com> * [BugFixes] Fix failing tests in `sparsify.alpha` (#223) * Intermediate commit should be amended * Remove failing test as synced with @KSGulin * Explicitly pin protobuff depencies. (#225) * Default num_samples to None (#227) * remove legacy UI cmds from `make build` (#229) * Remove dev print statements from IC runner (#231) * Remove dev print statements * Remove logger * Fix incomplete wheel build (#232) * Fix incomplete wheel build * Add license string * Add environment hecks * Address review comments * Catch generic Exception * signal test --------- Co-authored-by: Rahul Tuli <rahul@neuralmagic.com> Co-authored-by: dhuangnm <74931910+dhuangnm@users.noreply.github.com> Co-authored-by: dhuang <dhuang@MacBook-Pro.local> Co-authored-by: Benjamin Fineran <bfineran@users.noreply.github.com> Co-authored-by: corey-nm <109536191+corey-nm@users.noreply.github.com> Co-authored-by: Danny Guinther <dannyguinther@gmail.com> Co-authored-by: Benjamin <ben@neuralmagic.com>
This PR stitches together
sparsify.auto
withsparsifyml
Consists of the following pre-approved pieces:
And following unapproved pieces:
sparsifyml
installed locally, else skip.Additionally remove
sparsifyml
fromnm_dependencies
Usage:
Example Commands:
Depends on: https://github.com/neuralmagic/sparsifyml/pull/25