
From trained model to reviewed prediction.
Upload a model bundle, run predictions through a form generated from its schema, ask people to review the results and export everything for evaluation or retraining. Every result keeps the exact model and schema that produced it.
Open source under the MIT license. Use the live instance or self-host it with Docker Compose.
- Upload a bundleA .mlbundle carries the model, its manifest and its input schema.
- Shape the schemaCombine models into one form, edit it as a reviewed change, publish a snapshot.
- Run and keepRun one record or a whole file. Saved runs stay tied to their snapshot.
- Review and exportMembers answer for each result. Answers become columns you export.
Start from a bundle.
Drop in .mlbundle files exported with MLbundle. MLsuite reads the algorithm, its classes and parameters, and the feature importance from the model itself. It accepts no other artifact format.
Four libraries, no pickle
scikit-learn, XGBoost, CatBoost and ONNX models in their native formats, for tabular classification and regression.
The schema comes with it
Fields inferred from the training data by MLschema arrive with the bundle. Without it, every feature becomes a number field.
Identity you can check
The stored file's SHA-256, the bundle id, the hash of every member and the training environment it declares.
The schema is the contract.
One versioned schema draws the form with MLform, maps each value to the model's own feature names and names every column of the results. Changing it is a reviewed step, never a silent edit.
One form, several models
A schema combines the inputs and reports of the models you pick. Each field maps to every model that reads it.
Changes, then snapshots
Edit labels, units, ranges and help as a change, review it as a diff, then publish a numbered snapshot.
Bookmarks point to one snapshot
Predict, public pages and API clients run a bookmark, so they always run the exact snapshot it names.
Every run, kept.
Inferences lists every run in the organization, from the workspace, a public page or an API client. Each schema's inputs, outputs and reviewer answers become columns.
One record or a whole file
Fill the form, or upload a CSV or XLSX file to run every row. Runs wait in a session until you save them.
Kept with what made them
A saved run keeps its inputs, each model's output, the bookmark, the snapshot and where it came from.
Every column, one table
Search, filter on any input, output or answer, sort, and export what you see to CSV.
Feedback closes the loop.
A prediction is not the end. Ask the people who know the domain to check results, record what was right, and turn their answers into evaluation and retraining data.
- AssignPick a snapshot's inferences and the members who review them, with an expiry date.
- AnswerEach report asks for the correct class or value, or its own questionnaire when the schema defines one.
- SendSaved answers wait in the reviewer's tray until the review is completed, then appear in Inferences and the export.
Built from the family.
MLsuite is the last step of the eshkra path. The libraries before it work on their own; here they meet.
- MLbundle
Packages the model, its manifest and its schema in the one file MLsuite accepts. The runtime loads models through it.
- MLschema
Infers the fields from the training data on your machine, at export. MLsuite starts every schema from them.
- MLform
Renders every form, result and review questionnaire, and runs the fields and reports that plugins add.
Three runtimes, one product.
Results return through the API, so the model, schema, inputs, outputs and feedback of a run stay traceable from end to end.
- clientReact + MLformDraws forms, results and reviews.
- apiSpring BootSign-in, workspace permissions, persistence and every business rule.
- runtimePythonLoads bundles, checks records and runs predictions and explanations.
- statePostgreSQL
- artifactsMinIO
Organizations
Members, roles, invitations and permissions. A new account starts with its own personal organization.
Plugins
Upload TypeScript plugins that add MLform fields and reports to a workspace's schemas.
Explanations
Supported decision-tree models can be explained with Crystal Tree.
Administration
Superadmins moderate public bookmarks, watch API traffic and set each organization's monthly limit.
Try it, or run your own.
MLsuite is early software: expect rough edges and breaking changes. The full stack is open to inspect, change and fork.
Use the live instance
Create an account at mlsuite.irlab.org. It comes with a personal organization, ready for your first bundle.
Create an accountSelf-host with Docker Compose
You need Git and Docker. Fill in every blank secret in .env before you start.
git clone https://github.com/UlloaSP/mlsuite.git
cd mlsuite && cp .env.example .env
docker compose -f docker-compose.yml \
-f docker-compose.dev.yml up --build -d
# then open http://localhost:5173