As an open-source project, Renku is intended to be collaborative. Therefore, we encourage users to customise their own Renku experience through the capacity to define custom templates, install additional software in containers and extend existing Renku tools via plug-ins.
Machine Learning and Renku
One such plug-in is the Renku-MLS (Machine Learning Schema) plug-in developed by a now-Renku developer Viktor Gal. If you have used machine learning for common tasks like classification, you will know that there are a range of software packages providing a number of different models with sets of metrics. There are thus many combinations of such data pipelines and keeping track of them is crucial. Renku can help with keeping track of the provenance of files (inputs and outputs) through the use of the renku command-line interface (CLI). It is already installed by default on all sessions that you run on Renkulab, so any Renku user has it at their fingertips. The second part of the story, chiefly concerned with dealing with machine learning models and metrics, can be handled with the Renku-MLS plug-in. Several popular frameworks, namely ‘scikit-learn’, ‘keras’ and ‘XGBoost’ are supported and will thus apply to a wide range of audiences.
The plug-in is a command-line tool, much like the Renku CLI and its usage is similar, too. We have prepared a sample project for you to dive into the MLS plug-in and you can start a session right away using the following link: Start session.
You can of course fork the project and modify it as you see fit. If you’d like to read more about it, see the README.
If you would like to start your MLS-plugin powered project from scratch, For convenience we have prepared a Renku template for Python projects intending to use the MLS plugin: click here to start the project directly: Instantiate template. Fill in your project name, description and click ‘Create project’.
For example:
It is based on the following template repository: GitHub - vigsterkr/renku-mls-template: Renku with MLSchema extension templates. Once you are there, you can follow the README linked above to get started with using it. Alternatively, you can simply add renku-mls
to the requirements.txt file and let your project rebuild.
Off to you!
Inspired to start writing your own plug-in to contribute to the Renku community? See our documentation on different types of plug-ins that Renku is compatible with: https://renku.readthedocs.io/projects/renku-python/en/latest/reference/plugins.html.