Making a Pipeline Production-Ready: Challenges and Lessons Learned in the Healthcare Domain

Daniel Angelo Esteves Lawand, Lucas Quaresma Medina Lam, Roberto Oliveira Bolgheroni, Renato Cordeiro Ferreira, Alfredo Goldman +1 more
6/7/2025
cs.SEcs.AIcs.LG

No official code found. Best implementation: spirabr/SPIRA-training-v2 (1 star, PyTorch, last commit 2025-07-06). 1 more below.

Abstract

Deploying a Machine Learning (ML) training pipeline into production requires good software engineering practices. Unfortunately, the typical data science workflow often leads to code that lacks critical software quality attributes. This experience report investigates this problem in SPIRA, a project whose goal is to create an ML-Enabled System (MLES) to pre-diagnose insufficiency respiratory via speech analysis. This paper presents an overview of the architecture of the MLES, then compares three versions of its Continuous Training subsystem: from a proof of concept Big Ball of Mud (v1), to a design pattern-based Modular Monolith (v2), to a test-driven set of Microservices (v3) Each version improved its overall extensibility, maintainability, robustness, and resiliency. The paper shares challenges and lessons learned in this process, offering insights for researchers and practitioners seeking to productionize their pipelines.

View on arXivView PDF

Code Implementations(2)

PyTorch

SPIRA Model Trainer v2 (redesigned pipeline) by @danlawand

11Python, MakefileAug 10, 20231 years ago
audio-processingcnnmlopsmodel-trainingmonolith+3 more
PyTorch

SPIRA Model Trainer v3 (productionized pipeline) by @lucasqml and @bolgheroni

01Python, MakefileMar 23, 20241 years ago
audio-processingcnnmicroservicesmlopsmodel-training+3 more

Similar Papers

Cite this paper

@article{lawand2025making,
  title  = {Making a Pipeline Production-Ready: Challenges and Lessons Learned in the Healthcare Domain},
  author = {Daniel Angelo Esteves Lawand and Lucas Quaresma Medina Lam and Roberto Oliveira Bolgheroni and Renato Cordeiro Ferreira and Alfredo Goldman and Marcelo Finger},
  year   = {2025},
  eprint = {2506.06946},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2506.06946v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2506.06946.svg)](https://codeofpaper.com/paper/2506.06946)

Discussion