Catalog PyPI
Back to packageRELEASE DETAILS

1.1.0

PyPI

a2ml

A powerful API to Automate Machine Learning workflows from multiple vendors.

aiapiaugeraiautomlazuredeeplearnlearningmachinesdk
Published21 Dec 2024
Direct dependencies41
Transitive dependenciesNot calculated

README

Version 1.1.0 documentation

a2ml - Automation of AutoML

CircleCI Join the chat License Python PyPI - A2ML Versions

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

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:

$ pip install -U a2ml

It will install Auger provider.

To use Azure AutoML:

Mac:

$ brew install libomp

For Mac OS High Sierra and below:

$ SKLEARN_NO_OPENMP=1 pip install "scikit-learn==0.21.3"
$ pip install "a2ml[azure]" --ignore-installed onnxruntime onnx nimbusml

Linux:

$ apt-get update && apt-get -y install gcc g++ libgomp1
$ pip install "a2ml[azure]"

To use Google Cloud:

$ pip install "a2ml[google]"

To install everything including testing and server code:

$ 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 ".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.

git tag v<the-version> (for example: git tag v0.3.0)
git push --tags
  1. verify circleci build passed and docker image tag exists:
pip install -U a2ml==0.3.0
docker pull augerai/a2ml:v0.3.0
  1. Increment the __version__ variable in a2ml/__init__.py to the next version in the current milestone. For example, "0.3.1.dev0"

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 61

Native requirements
41 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
numpy==1.23.5runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pandas==1.5.0runtime
joblib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
joblibruntime
ruamel.yaml
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
ruamel.yamlruntime
pyarrow
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pyarrowruntime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
scipy==1.9.3runtime
asyncio
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
asyncioruntime
boto3
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
boto3runtime
auger-hub-api-client
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
auger-hub-api-client==0.7.4runtime
click
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
clickruntime
shortuuid
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
shortuuidruntime
docutils
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
docutils<0.16,>=0.10runtime
requests
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
requestsruntime
smart-open
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
smart-open==6.2.0runtime
jsonpickle
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
jsonpickleruntime
websockets
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
websocketsruntime
liac-arff
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
liac-arff==2.4.0runtime
xlrd
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
xlrd==2.0.1runtime
multiprocess
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
multiprocessruntime
flake8
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
flake8<=3.7.9,>=3.1.0; extra == "all"runtime
mock
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
mock; extra == "all"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "all"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov; extra == "all"runtime
pytest-runner
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-runner; extra == "all"runtime
pytest-xdist
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-xdist; extra == "all"runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
twine; extra == "all"runtime
vcrpy
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
vcrpy; extra == "all"runtime
wheel
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
wheel<0.31.0,>=0.30.0; extra == "all"runtime
sphinx
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
sphinx; extra == "all"runtime
anyio
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
anyio==3.7.1; extra == "all"runtime
celery
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
celery==5.2.7; extra == "all"runtime
fastapi
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
fastapi==0.85; extra == "all"runtime
gevent
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
gevent; extra == "all"runtime
redis
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
redis; extra == "all"runtime
s3fs
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
s3fs<0.5.0,>=0.4.0; extra == "all"runtime
uvicorn
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
uvicorn; extra == "all"runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn==1.2.0; extra == "all"runtime
azureml-sdk
Environment
{
  "extras": "automl",
  "marker": "extra == \"azure\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
azureml-sdk[automl]==1.29.0; extra == "azure"runtime
sphinx
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
sphinx; extra == "docs"runtime
google-cloud-automl
Environment
{
  "extras": "",
  "marker": "extra == \"google\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
google-cloud-automl; extra == "google"runtime
auger.ai.predict
Environment
{
  "extras": "all",
  "marker": "extra == \"predict\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
auger.ai.predict[all]==1.1.012; extra == "predict"runtime
auger.ai.predict
Environment
{
  "extras": "no_cat_lgbm",
  "marker": "extra == \"predict-no-cat-lgbm\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
auger.ai.predict[no_cat_lgbm]==1.1.012; extra == "predict-no-cat-lgbm"runtime
auger.ai.predict
Environment
{
  "extras": "no_cat_lgbm",
  "marker": "extra == \"predict-no-lgbm\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
auger.ai.predict[no_cat_lgbm]==1.1.012; extra == "predict-no-lgbm"runtime
catboost
Environment
{
  "extras": "",
  "marker": "extra == \"predict-no-lgbm\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
catboost; extra == "predict-no-lgbm"runtime
anyio
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
anyio==3.7.1; extra == "server"runtime
celery
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
celery==5.2.7; extra == "server"runtime
fastapi
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
fastapi==0.85; extra == "server"runtime
gevent
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
gevent; extra == "server"runtime
redis
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
redis; extra == "server"runtime
s3fs
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
s3fs<0.5.0,>=0.4.0; extra == "server"runtime
uvicorn
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
uvicorn; extra == "server"runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": "extra == \"server\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn==1.2.0; extra == "server"runtime
flake8
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
flake8<=3.7.9,>=3.1.0; extra == "testing"runtime
mock
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
mock; extra == "testing"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "testing"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov; extra == "testing"runtime
pytest-runner
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-runner; extra == "testing"runtime
pytest-xdist
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pytest-xdist; extra == "testing"runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
twine; extra == "testing"runtime
vcrpy
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
vcrpy; extra == "testing"runtime
wheel
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
wheel<0.31.0,>=0.30.0; extra == "testing"runtime

Distribution files

2 collected
a2ml-1.1.0-py3-none-any.whl

bdist_wheel · 184.79 KB · Python py3

Source file
a2ml-1.1.0.tar.gz

sdist · 138.38 KB · Python source

Source file

Repository

PENDING
augerai/a2ml

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:33 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:03d8e1e545d310982f731a3147fcd9d4d632fbd465e848de4ef1b980c080e1ed

Other collected versions

View all collected versions →