Skip to main content

No project description provided

Project description

Auptimizer Logo

Documentation GPL 3.0 License Build Status coverage report

Auptimizer is an optimization tool for Machine Learning (ML) that automates many of the tedious parts of the model building and deployment process. Currently, Auptimizer helps with:

  • Getting the best models in minimum time - Generate optimal models and achieve better performance by employing state-of-the-art hyperparameter optimization (HPO) and model compression techniques. Auptimizer will run and record sophisticated HPO and model compression experiments on compute resources of your choice with effortless consistency and reproducibility.

  • Making your models edge-ready - Get model-device compatibility and enhanced on-device performance by converting models into the industry-standard ONNX and TensorFlow Lite formats. Auptimizer-Converter provides validated conversion techniques to ensure worry-free format transformations.

  • Selecting the most suitable model for your edge deployment effortlessly - Compare how different models will perform under specific compute and memory constraints on a CPU-based edge device. Auptimizer-Profiler will help you identify the most efficient models without the hustle of going through multiple physical deployment cycles.

Best of all, Auptimizer offers a consistent interface that allows users to switch between different HPO and compression algorithms, conversion frameworks, and computing resources with minimal changes to the existing code.

What's New in Auptimizer v2.0

Auptimizer v2.0 introduces two core capabilites - Dashboard and Compressor!

Dashboard

Auptimizer Dashboard is a powerful analytics tool that complements Auptimizer's core hyperparameter optimization (HPO) and model compression capabilities. It provides insightful visualizations to help you track experiment progress, analyze and contrast jobs, experiments, and optimization approaches. Additionally, it can be used to control an experiment or even set up a new Auptimizer environment.

Compressor

Compressor is a model compression tool that helps reduce memory complexity and inference time of neural networks. It is particularly useful for adapting ML models for deployment on resource-constrained edge devices.

Similar to Auptimizer-Hyperparameter Optimization (HPO), Compressor aims to provide a unified interface to the existing state-of-the-art toolkits. Currently, Compressor leverages NNI (version 2.0) model compression modules. NNI is an open-source toolkit that supports two types of compression, pruning and quantization, for TensorFlow, and PyTorch models. In the future, we will be integrating other off-the-shelf toolkits to expand the selection of model compression approaches.

Capabilities

Hyperparameter Optimization

Auptimizer automates tedious experimentation by performing and recording hyperparameter optimization experiments. Auptimizer provides a single seamless access point to top-notch HPO algorithms, including Bayesian optimization and multi-armed bandit. You can even integrate your own proprietary solution. Moreover, with Auptimizer, you can make the best use of your compute-resources. Whether you are using a couple of GPUs or AWS, Auptimizer will help you orchestrate compute resources for faster hyperparameter tuning.

The table below shows a full list of currently supported techniques and resources for hyperparameter optimization.

Supported HPO Algorithms Supported Infrastructure
Random
Grid
Hyperband
Hyperopt
Spearmint
BOHB
EAS (experimental)
Passive
Multiple CPUs
Multiple GPUs
Multiple Machines (SSH)
AWS EC2 instances

Profiler

Profiler is a simulator for profiling performance of machine learning model scripts. Given compute- and memory resource constraints for a CPU-based Edge device, Profiler can provide estimates of compute and memory usage for model scripts on the device. These estimations can be used to choose the best performing models or, in certain cases, to predict how much compute and memory models will use on the target device.

Because Profiler mimics the target device environment on the user's development machine, the user can gain insights into the performance and resource needs of a model script without having to deploy it on the target device. Profiler helps accelerate the model selection cycle and simplifies finding model-device fit. Please see Profiler for usages.

Converter

Converter is a format conversion tool for machine learning models. It encapsulates best practices of individual machine learning model conversions under a single API. Converter makes ML models suitable for edge (on-device) deployments by transforming them into the industry-standard ONNX and TensorFlow Lite formats and reducing model size through quantization.

Install

Auptimizer currently is well tested on Linux systems, it may require some tweaks for Windows users.

pip install auptimizer

Note Dependencies are not included. Using pip install requirements.txt will install necessary libraries for all functionalities.

Usage for the UI dashboard:

dashboard --path <Auptimizer database path> --port <frontend port>

Documentation

See more in documentation

Example

cd Examples/demo
# Setup environment (Interactively create the environment file based on user input)
python -m aup.setup
# Setup experiment
python -m aup.init
# Create training script - auto.py
python -m aup.convert origin.py experiment.json demo_func
# Run aup for this experiment
python -m aup experiment.json

Each job's hyperparameter configuration is saved separately under jobs/*.json and is also recorded in the SQLite file .aup/sqlite3.db.

gif demo

More examples are under Examples.

License

GPL 3.0 License

Cite

If you have used this software for research, please cite the following paper (accepted at IEEE Big Data 2019):

@misc{liu2019auptimizer,
    title={Auptimizer -- an Extensible, Open-Source Framework for Hyperparameter Tuning},
    author={Jiayi Liu and Samarth Tripathi and Unmesh Kurup and Mohak Shah},
    year={2019},
    eprint={1911.02522},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Auptimizer-2.0.tar.gz (3.6 MB view details)

Uploaded Source

Built Distribution

Auptimizer-2.0-py3-none-any.whl (3.8 MB view details)

Uploaded Python 3

File details

Details for the file Auptimizer-2.0.tar.gz.

File metadata

  • Download URL: Auptimizer-2.0.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.1

File hashes

Hashes for Auptimizer-2.0.tar.gz
Algorithm Hash digest
SHA256 f908ead96594765d29b214245dd61b7880a6af177d569cb1e8453b4ffaa6e969
MD5 7c055007932d9569e4e65319d280c19d
BLAKE2b-256 d4de2fe06c268ba133fc6d95ad1eebd2f18a28dd27e1c91bd513b0def7df4d76

See more details on using hashes here.

File details

Details for the file Auptimizer-2.0-py3-none-any.whl.

File metadata

  • Download URL: Auptimizer-2.0-py3-none-any.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.1

File hashes

Hashes for Auptimizer-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e964e429f45fd8021cc1f50c604a93f0a61e03abadc8d91bad4dc3578146f8ac
MD5 b6d5b58999b6dbbf55a4eb4f7885bcbb
BLAKE2b-256 e6f89649e63dad506e0f5108a824eabf10ffba37e2e589a7e2ad6a4be533eb25

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page