# a2ml - Automation of AutoML
[![CircleCI](https://img.shields.io/circleci/build/gh/augerai/a2ml/master)](https://circleci.com/gh/augerai/a2ml)
[![Join the chat](https://img.shields.io/gitter/room/augerai/a2ml.svg)](https://gitter.im/augerai/a2ml)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/augerai/a2ml/master/LICENSE)
[![Python](https://img.shields.io/pypi/pyversions/a2ml.svg)](https://pypi.org/project/a2ml/)
[![PyPI - A2ML Versions](https://img.shields.io/pypi/v/a2ml.svg)](https://pypi.org/project/a2ml/)
The A2ML ("Automate AutoML") project is a Python API and set of command line tools to automate Automated Machine Learning tools from multiple vendors. The intention is to provide a common API for all Cloud-oriented AutoML vendors. Data scientists can then train their datasets against multiple AutoML models to get the best possible predictive model. May the best "algorithm/hyperparameter search" win. Full documentation for A2ML is available at [a2ml.org](http://a2ml.org)
## The PREDIT Pipeline
Every AutoML vendor has their own API to manage the datasets and create and
manage predictive models. They are similar but not identical APIs. But they share a
common set of stages:
* Importing data for training
* Train models with multiple algorithms and hyperparameters
* Evaluate model performance and choose one or more for deployment
* Deploy selected models
* Predict results with new data against deployed models
* Review performance of deployed models
Since ITEDPR is hard to remember we refer to this pipeline by its conveniently mnemonic anagram: "PREDIT" (French for "predict"). The A2ML project provides classes which implement this pipeline for various Cloud AutoML providers
and a command line interface that invokes stages of the pipeline.
## Setup
A2ML is distributed as a python package, so to install it:
```sh
$ pip install -U a2ml
```
It will install Auger provider.
To use Azure AutoML:
### Mac:
```sh
$ brew install libomp
```
#### For Mac OS High Sierra and below:
```sh
$ SKLEARN_NO_OPENMP=1 pip install "scikit-learn==0.21.3"
$ pip install "a2ml[azure]" --ignore-installed onnxruntime onnx nimbusml
```
### Linux:
```sh
$ apt-get update && apt-get -y install gcc g++ libgomp1
```
```sh
$ pip install "a2ml[azure]"
```
To use Google Cloud:
```sh
$ pip install "a2ml[google]"
```
To install everything including testing and server code:
```sh
$ pip install "a2ml[all]"
```
## Development
To release a new version the flow should be:
1. Change the `__version__` variable in `a2ml/__init__.py` to match what you want to release, minus the "v". By default it would be "<current-milestone>.dev0", for example "0.3.0.dev0". This ensures we don’t accidentally release a dev version to pypi.org. So for when we’re ready to release 0.3.0, the `__version__` variable should simply be "0.3.0".
2. Commit and push the changes above.
```sh
git tag v<the-version> (for example: git tag v0.3.0)
git push --tags
```
3. verify circleci build passed and docker image tag exists:
```sh
pip install -U a2ml==0.3.0
docker pull augerai/a2ml:v0.3.0
```
4. Increment the `__version__` variable in `a2ml/__init__.py` to the next version in the current milestone. For example, "0.3.1.dev0"
Raw data
{
"_id": null,
"home_page": "https://a2ml.org",
"name": "a2ml",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "azure, augerai, ai, machine learning, automl, deeplearn, api, sdk",
"author": "Auger AI",
"author_email": "hello@auger.ai",
"download_url": "https://files.pythonhosted.org/packages/32/96/94e52f5c23a9b84fead53ba7067ec0190fb76c1261f401b2e46b782632b8/a2ml-1.1.0.tar.gz",
"platform": "any",
"description": "# a2ml - Automation of AutoML \n\n[![CircleCI](https://img.shields.io/circleci/build/gh/augerai/a2ml/master)](https://circleci.com/gh/augerai/a2ml)\n[![Join the chat](https://img.shields.io/gitter/room/augerai/a2ml.svg)](https://gitter.im/augerai/a2ml)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/augerai/a2ml/master/LICENSE)\n[![Python](https://img.shields.io/pypi/pyversions/a2ml.svg)](https://pypi.org/project/a2ml/)\n[![PyPI - A2ML Versions](https://img.shields.io/pypi/v/a2ml.svg)](https://pypi.org/project/a2ml/)\n\nThe A2ML (\"Automate AutoML\") project is a Python API and set of command line tools to automate Automated Machine Learning tools from multiple vendors. The intention is to provide a common API for all Cloud-oriented AutoML vendors. Data scientists can then train their datasets against multiple AutoML models to get the best possible predictive model. May the best \"algorithm/hyperparameter search\" win. Full documentation for A2ML is available at [a2ml.org](http://a2ml.org)\n\n## The PREDIT Pipeline\n\nEvery AutoML vendor has their own API to manage the datasets and create and\nmanage predictive models. They are similar but not identical APIs. But they share a\ncommon set of stages:\n\n* Importing data for training\n* Train models with multiple algorithms and hyperparameters\n* Evaluate model performance and choose one or more for deployment\n* Deploy selected models\n* Predict results with new data against deployed models\n* Review performance of deployed models\n\nSince ITEDPR is hard to remember we refer to this pipeline by its conveniently mnemonic anagram: \"PREDIT\" (French for \"predict\"). The A2ML project provides classes which implement this pipeline for various Cloud AutoML providers\nand a command line interface that invokes stages of the pipeline.\n\n## Setup\n\nA2ML is distributed as a python package, so to install it:\n\n```sh\n$ pip install -U a2ml\n```\n\nIt will install Auger provider.\n\nTo use Azure AutoML:\n\n### Mac:\n\n```sh\n$ brew install libomp\n\n```\n#### For Mac OS High Sierra and below:\n\n```sh\n$ SKLEARN_NO_OPENMP=1 pip install \"scikit-learn==0.21.3\"\n$ pip install \"a2ml[azure]\" --ignore-installed onnxruntime onnx nimbusml\n```\n\n### Linux:\n\n```sh\n$ apt-get update && apt-get -y install gcc g++ libgomp1\n```\n\n```sh\n$ pip install \"a2ml[azure]\"\n```\n\nTo use Google Cloud:\n\n```sh\n$ pip install \"a2ml[google]\"\n```\n\nTo install everything including testing and server code:\n\n```sh\n$ pip install \"a2ml[all]\"\n```\n\n## Development\n\nTo release a new version the flow should be:\n\n1. Change the `__version__` variable in `a2ml/__init__.py` to match what you want to release, minus the \"v\". By default it would be \"<current-milestone>.dev0\", for example \"0.3.0.dev0\". This ensures we don\u2019t accidentally release a dev version to pypi.org. So for when we\u2019re ready to release 0.3.0, the `__version__` variable should simply be \"0.3.0\".\n\n2. Commit and push the changes above.\n\n```sh\ngit tag v<the-version> (for example: git tag v0.3.0)\ngit push --tags\n```\n\n3. verify circleci build passed and docker image tag exists:\n\n```sh\npip install -U a2ml==0.3.0\ndocker pull augerai/a2ml:v0.3.0\n```\n\n4. Increment the `__version__` variable in `a2ml/__init__.py` to the next version in the current milestone. For example, \"0.3.1.dev0\"\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "A powerful API to Automate Machine Learning workflows from multiple vendors.",
"version": "1.1.0",
"project_urls": {
"Changelog": "https://github.com/augerai/a2ml/releases",
"Documentation": "https://a2ml.org",
"Homepage": "https://a2ml.org",
"Issue Tracker": "https://github.com/augerai/a2ml/issues"
},
"split_keywords": [
"azure",
" augerai",
" ai",
" machine learning",
" automl",
" deeplearn",
" api",
" sdk"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "460f7a9776385f6c3cd361545a18e9637b587e38cc77070287aaed6b13a03149",
"md5": "71826d546634f81ed3a803a77ff7412c",
"sha256": "00b606e14efaae4c10d51784de6d51aeacabf0922fe93e77632420daefdf00a1"
},
"downloads": -1,
"filename": "a2ml-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71826d546634f81ed3a803a77ff7412c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 189221,
"upload_time": "2024-12-21T03:14:06",
"upload_time_iso_8601": "2024-12-21T03:14:06.687769Z",
"url": "https://files.pythonhosted.org/packages/46/0f/7a9776385f6c3cd361545a18e9637b587e38cc77070287aaed6b13a03149/a2ml-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "329694e52f5c23a9b84fead53ba7067ec0190fb76c1261f401b2e46b782632b8",
"md5": "b642093bd512ca6cbd163aca4224b920",
"sha256": "49ae779f15b5413fe76124537cd2c2c7fad9576cb3892cf58bb969bee58b026d"
},
"downloads": -1,
"filename": "a2ml-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b642093bd512ca6cbd163aca4224b920",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 141697,
"upload_time": "2024-12-21T03:14:09",
"upload_time_iso_8601": "2024-12-21T03:14:09.713249Z",
"url": "https://files.pythonhosted.org/packages/32/96/94e52f5c23a9b84fead53ba7067ec0190fb76c1261f401b2e46b782632b8/a2ml-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-21 03:14:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "augerai",
"github_project": "a2ml",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "a2ml"
}