-
New Feature
-
Resolution: Fixed
-
Critical
-
3.8
-
MOODLE_38_STABLE
-
MOODLE_38_STABLE
-
MDL-66004_master -
Moodle includes two machine learning backends, one written in PHP and a much superior option written in python. The python one is the recommended choice. However, we require sys admins to install the moodle-mlbackend-python package into the web server, which is not ideal as the ML training process affects the web server workload.
The communication between Moodle and the python backend is through files (.csv with training data) and, at the moment, the python ML backend reads the input files from the web server filesystem. Sites with multiple frontend servers can use a directory shared among the web servers (https://docs.moodle.org/37/en/Analytics#Models_output_directory) but that is not enough to keep the processes separated. If we want the python backend to live in a separate server we should send the files through HTTP requests to it.
We should discuss some points:
- Do we want a separate mlbackend plugin? We can hide/show admin settings using JS since
MDL-52167but even with that having a separate plugin may be clearer. - What security measures should we implement? Or should the python ML service be only available in the local network? We should ideally provide security settings to allow people to connect to servers that are not part of the local network.
- Python Flask to expose the python package functionalities through an API accessible through HTTP? It seems the best candidate.
- Docker? Once we have the Flask service we can easily setup a docker image for people to quickly deploy a container with it.
- blocks
-
MDL-66476 Use the F1 value instead of the phi value as a final score for a model
- Closed
- has a QA test
-
MDLQA-15391 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-15980 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-16623 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-17239 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-17826 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-18330 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-18821 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-19284 CLONE - An admin can set up the Python machine learning backend on a separate server
- Passed
-
MDLQA-14114 An admin can set up the Python machine learning backend on a separate server
- On Hold
- will help resolve
-
MDL-66117 Improve unit tests to explain test skips
- Closed