How to use MLOps Desktop
This page is the everyday user manual. It explains what to click, what to check, and how to decide the next step after each run.
MLOps Desktop is most useful when you already have a CSV and want a repeatable local workflow for training scikit-learn models. It does not replace every notebook or production platform. It helps you move the common loop into one place: load data, train, evaluate, compare, explain, export, and serve.
The normal workflow
Section titled “The normal workflow”Most pipelines follow this shape:
DataLoader → DataSplit → Trainer → EvaluatorAdd these only when you need them:
Trainer → Model ExporterTrainer/Evaluator → Explainability, Runs, Models, Serving panelsUse this rule of thumb:
| If you need to | Start with |
|---|---|
| Train a model from a CSV | DataLoader → DataSplit → Trainer → Evaluator |
| Try a better configuration | Change the Trainer, run again, compare in Runs |
| Search many configurations | Set Trainer to Tune, then watch Trials |
| Understand model behavior | Open the Metrics run and click Explain |
| Save a model file | Add Model Exporter after Trainer |
| Test an HTTP prediction endpoint | Use the Serving and playground panels |
1. Start with a clean CSV
Section titled “1. Start with a clean CSV”Before building nodes, check the data file once:
- The target column exists and has the exact name you plan to select.
- The first row contains headers.
- Empty values are expected and not a file export mistake.
- Very high-cardinality text columns, IDs, and free-form notes are either removed or intentionally kept.
2. Load and inspect data
Section titled “2. Load and inspect data”- Add a
DataLoadernode to the canvas. - Select the node, then choose your CSV file.
- Run the pipeline once with only the data node if you want to confirm the file loads.
- Open the
Data Profiletab and check row count, column names, types, and missing values.
If the profile looks wrong, fix the CSV before adding model nodes. Bad column names or unexpected empty columns are faster to fix at this stage.
3. Split before training
Section titled “3. Split before training”Add DataSplit between DataLoader and Trainer for a clearer train/test boundary.
Recommended starting values:
| Setting | Start with | Notes |
|---|---|---|
| Test split | 0.2 | Use 20% of rows for evaluation |
| Random state | 42 | Keeps runs comparable |
| Stratify column | target column | Use for classification when classes are imbalanced |
For very small datasets, a large test split can leave too little training data. If you see unstable metrics, try a smaller split or use cross-validation during tuning.
4. Train the first baseline
Section titled “4. Train the first baseline”Add Trainer, connect it after DataSplit, and configure:
| Setting | Classification baseline | Regression baseline |
|---|---|---|
| Model type | Random Forest Classifier | Random Forest Regressor |
| Target column | Your label column | Your numeric target column |
| Mode | Train | Train |
Run the pipeline and watch the Logs tab. A good first run is not about getting the best score. It is about proving that the data, target, and model configuration work end to end.
5. Evaluate before changing things
Section titled “5. Evaluate before changing things”Add Evaluator after Trainer, run again, then review the Metrics tab.
For classification, check:
Accuracyfor a quick overview.Precision,Recall, andF1when false positives or false negatives matter.- The confusion matrix to see which classes are being mixed up.
For regression, check:
R²for overall fit.RMSEwhen large errors should hurt more.MAEwhen you want an error in the same unit as the target.
6. Compare runs instead of trusting one score
Section titled “6. Compare runs instead of trusting one score”Each run is saved in the Runs panel. Use it to answer practical questions:
| Question | What to compare |
|---|---|
| Did the new model improve? | Same dataset, same split, different model type |
| Did tuning help? | Baseline run vs tuned run |
| Is the score stable? | Same config across repeated runs or cross-validation |
| Is the model worth keeping? | Metrics, notes, tags, and explainability outputs |
Use notes and tags on runs when you change something important, such as baseline, rf-depth-10, tuned, or removed-id-columns.
7. Tune only after the workflow is stable
Section titled “7. Tune only after the workflow is stable”Switch the Trainer to Tune mode when you have a working baseline and want to search better parameters.
Start small:
| Setting | Practical starting point |
|---|---|
| Search strategy | Bayesian / TPE |
| Trials | 20 to 50 |
| CV folds | 3 |
| Metric | accuracy or f1 for classification, r2 for regression |
Watch the Trials tab while it runs. If trials are slow, reduce the trial count, reduce CV folds, or choose a faster model before trying a bigger search.
8. Explain the model when you need confidence
Section titled “8. Explain the model when you need confidence”After an evaluation run, use Explain from the metrics area to generate explanation outputs.
Look for:
- Feature importance: which columns drive the model most.
- SHAP outputs: how features push predictions up or down.
- Partial dependence plots: how the prediction changes as one feature changes.
Use explanations to catch obvious problems. If customer_id, row_number, or another accidental ID dominates feature importance, go back to the data and remove it.
9. Export or serve only the model you trust
Section titled “9. Export or serve only the model you trust”When a model is worth keeping:
- Use the
Modelspanel to register and compare versions. - Promote stages only when the model has a clear purpose:
Staging,Production, orArchived. - Add
Model Exporterif you need a.joblib, pickle, ONNX, or CoreML file. - Use
Servingand the playground to test local HTTP predictions before wiring the model into another app.
Keep the exported model and its metadata together. If feature order or package versions change, loading the model later can fail or produce wrong predictions.
What to do when a run fails
Section titled “What to do when a run fails”Check issues in this order:
Logstab — read the first real error, not only the last line.- Python path — confirm the app is using the Python installation where packages are installed.
- Packages — install missing packages such as
scikit-learn,pandas,optuna, orshap. - CSV columns — confirm target and feature column names match exactly.
- Model choice — confirm classification models are used for class labels and regression models for numeric targets.
- Data size — confirm you have enough rows after splitting.
If you are stuck, copy the error from Logs and compare it with the troubleshooting guide.
A simple checklist before sharing a result
Section titled “A simple checklist before sharing a result”- The pipeline loads from a saved file.
- The same run can be repeated without changing the CSV path.
- Metrics are from a held-out split or cross-validation.
- The target column is correct.
- Obvious leakage columns were removed.
- Important runs have notes or tags.
- The model version has metadata and an export path if it will be used outside the app.