This demo shows how to easily deploy a simple machine learning workload to Trusted Execution Enviroment on a host using Enarx. In this example it is assumed that the user wants to protect the machine model by training the model in a TEE using an external data the workload has been given access to.
The Tee is where the training and processing takes place, this ensures model remains confidential during processing as this gurantees data confidentiality, code integrity and data integrity.
In this demo a simple ML model using decision tree algorithm was created on the PIMA Indian Diabetes dataset to predict if a particular observation is at a risk of developing diabetes, given the independent factors.
The decision tree Algorithm belongs to the family of supervised machine learning algorithms. It can be used for both a classification problems as well as for regression problems. It is a tree-structured classifier, where internal nodes represent the features of a dataset, branches represent the decision rules and each leaf node represents the outcome. You can read more on decision algorithm trees here
To compile this demo, you must install the following.
Go to rust-lang.org and follow the instructions using rustup.
install Wastime
curl https://wasmtime.dev/install.sh -sSf | bash
Visit Enarx Project home page and follow the instructons
git clone https://github.com/jnyfah/Enarx-Demo
cd Enarx-Demo
cargo build
cargo run data/diabetes.csv
Please see this wiki page for more instructions.