examples/sktime/README.md
This example trains a Sktime NaiveForecaster model using the Longley dataset for
forecasting with exogenous variables. It shows a custom model type implementation
that logs the training hyper-parameters, evaluation metrics and the trained model
as an artifact.
Run the train.py module to create a new MLflow experiment and to
compute interval forecasts loading the trained model in native sktime
flavor and pyfunc flavor:
python train.py
To view the newly created experiment and logged artifacts open the MLflow UI:
mlflow server
This section illustrates an example of serving the pyfunc flavor to a local REST
API endpoint and subsequently requesting a prediction from the served model. To serve the model run the command below where you substitute the run id printed during execution of the train.py module:
mlflow models serve -m runs:/<run_id>/model --env-manager local --host 127.0.0.1
Open a new terminal and run the score_model.py module to request a prediction from the served model (for more details read the MLflow deployment API reference):
python score_model.py
You can also run the code as a project as follows:
mlflow run .
The test_sktime_model_export.py module includes a number of tests that can be
executed as follows:
pytest test_sktime_model_export.py
While these tests will depend on the specifics of each individual flavor and in particular the design of the model wrapper interface (e.g. _SktimeModelWrapper), the above module can provide some orientation
for the type of tests that can be useful when creating a new custom model flavor.