Skip to main content

No project description provided

Project description

mlflow-algorithmia

PyPI Testing License

Deploy MLflow models to Algorithmia

Install

pip install mlflow-algorithmia

Usage

This is based on the mlflow tutorial we reproduce some steps here but for more details please see the official mlflow docs.

Create a model by running this script:

python examples/sklearn_elasticnet_wine/train.py

This will create an mlruns directory that contains the trained model, you can run the mlflow UI running mlflow ui or serve the model locally using the mlflow server running:

$ mlflow models serve -m mlruns/0/<run-id>/artifacts/model -p 1234

And make a test query

$ curl -X POST -H "Content-Type:application/json; format=pandas-split" --data '{"columns":["alcohol", "chlorides", "citric acid", "density", "fixed acidity", "free sulfur dioxide", "pH", "residual sugar", "sulphates", "total sulfur dioxide", "volatile acidity"],"data":[[12.8, 0.029, 0.48, 0.98, 6.2, 29, 3.33, 1.2, 0.39, 75, 0.66]]}' http://127.0.0.1:1234/invocations

[5.120775719594933]

Now let's deploy the same model in Algorithmia, you will need:

  1. An Algorithmia API key with Read + Write data access
  2. The path to the model (under mlruns) you want to deploy, for example: mlruns/0/<run-id>/artifacts/model

Set your Algorithmia API key and username as environment variables:

export ALGORITHMIA_USERNAME=<username>
export ALGORITHMIA_API_KEY=<api-key>

Create the deployment:

mlflow deployments create -t algorithmia --name mlflow_sklearn_demo -m mlruns/0/<run-id>/artifacts/model
INFO: Creating Mlflow bundle
INFO: Uploading Mlflow bundle
INFO: MLflow bundle uploaded to: ...
INFO: Cloning algorithm source to: ./algorithmia_tmp/
INFO: Updating algorithm source and building model
INFO: Algorithm repo updated: Update - MLflow run_id: 6df340cd6d294fe59d1b4652fb25969a
INFO: New model version ready: c6b883b325ee0bb63d91dd0cadfe0baf6bd84fb3

Save the new model version from the output to query the model.

Query the model in Algorithmia

You need the new model version from above and the ALGORITHMIA_USERNAME and ALGORITHMIA_API_KEY variables you used before.

Replace <version> with the model version from the previous command output.

curl -X POST -d '{"columns":["alcohol", "chlorides", "citric acid", "density", "fixed acidity", "free sulfur dioxide", "pH", "residual sugar", "sulphates", "total sulfur dioxide", "volatile acidity"],"data":[[12.8, 0.029, 0.48, 0.98, 6.2, 29, 3.33, 1.2, 0.39, 75, 0.66]]}' -H 'Content-Type: application/json' -H 'Authorization: Simple '${ALGORITHMIA_API_KEY} https://api.algorithmia.com/v1/algo/$ALGORITHMIA_USERNAME/mlflow_sklearn_demo/<version>

You can also use mlflow deployments predict command to query the model, on this case it will always query the latest public published version of the model, to query a specific version use the method described above.

First create a predict_input.json file:

echo '{"alcohol":{"0":12.8},"chlorides":{"0":0.029},"citric acid":{"0":0.48},"density":{"0":0.98},"fixed acidity":{"0":6.2},"free sulfur dioxide":{"0":29},"pH":{"0":3.33},"residual sugar":{"0":1.2},"sulphates":{"0":0.39},"total sulfur dioxide":{"0":75},"volatile acidity":{"0":0.66}}' > predict_input.json

Now query the latest public published version of the model:

mlflow deployments predict -t algorithmia --name mlflow_sklearn_demo -I predict_input.json

To update deployment, for example after training a new model:

mlflow deployments update -t algorithmia --name mlflow_sklearn_demo -m <path-to-new-model-dir>

To delete the deployment:

mlflow deployments delete -t algorithmia --name mlflow_sklearn_demo

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

mlflow-algorithmia-0.1.3.tar.gz (20.5 kB view details)

Uploaded Source

File details

Details for the file mlflow-algorithmia-0.1.3.tar.gz.

File metadata

  • Download URL: mlflow-algorithmia-0.1.3.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2.post20210112 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.7.9

File hashes

Hashes for mlflow-algorithmia-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d433914232ad0669f990de844bb8486adf0976899164cf816713260060567838
MD5 8135deeca13485186f4a29da36c66b01
BLAKE2b-256 6f21eac46f04cb084c184782d3c980b370d4aa3a3c7db0c1181600902385d8c0

See more details on using hashes here.

Supported by

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