Comprehensive Workflow and Version Control in Machine Learning Using Various Cloud Platforms

Table of Contents

Workflow

scikit-learn

  • Load
  • Data analysis (numeric vs. categorical)
  • Preprocess Pipeline (features union, impute, fill, scale)
  • Features, Target
  • Estimator (fit)
  • Pickle
  • Version and Deploy
  • Input
  • Preprocess Pipeline
  • Predict

AWS (Machine Learning)

https://docs.aws.amazon.com/machine-learning/latest/dg/the-machine-learning-process.html

  • Analyze your data
  • Split data into training and evaluation datasources
  • Shuffle your training data
  • Process features
  • Train the model
  • Select model parameters
  • Evaluate the model performance
  • Feature selection
  • Set a score threshold for prediction accuracy
  • Use the model
  • Prediction input to S3
  • Boto3 batch prediction
  • Waiter poll
  • Prediction response (S3)
  • Clean data source, model, and batch prediction resources

AWS (SageMaker)

https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-notebooks-instances.html

  • Explore and Preprocess Data
  • Model Training
  • Model Deployment
  • Validating Models
  • Programming Model

Google (ML Engine)

https://github.com/GoogleCloudPlatform/cloudml-samples

  • Model
  • Version
  • Framework (e.g., scikit-learn)
  • Notebook: joblib: model.pkl

Azure (Cognitive Services)

https://github.com/Azure/MachineLearningNotebooks

  • Experiments
  • Pipelines
  • Compute
  • Models
  • Images
  • Deployments
  • Activities

Models

  • Azure notebooks
  • Load data
  • Cleanse data
  • Convert types and filter
  • Split and rename columns
  • Transform data
  • Clean up resources
  • Train the automatic regression model
  • Test the best model accuracy

IBM

Oracle

Project Pipeline

Task Features v2 Target v2 Clustering Model 2 Model 3
Data Collection          
Data Integration          
Data Cleaning          
Analysis Tools          
Data Analysis          
Feature Engineering          
Pipeline Management          
Model Training          
Tuning          
Model Evaluation          
Configuration          
Deployment          
A/B Testing          
Resource Management          
Feature Extraction          
Target Management          
Model Deprecation          
// 2019 ML workflow — five-stage pipeline with monitoring → retraining feedback
digraph ml_pipeline_2019 {
    rankdir=LR;
    graph [bgcolor="white", fontname="Helvetica", fontsize=11,
           pad="0.3", nodesep="0.3", ranksep="0.45"];
    node  [shape=box, style="rounded,filled", fontname="Helvetica",
           fontsize=10, fillcolor="#f5f5f5", color="#888"];
    edge  [color="#aaa"];

    // Stage 1: Data
    subgraph cluster_data {
        label="Data"; labeljust="l"; color="#d36";
        fontcolor="#d36"; style="rounded";
        d1 [label="Collect\n(S3 / GCS / Blob)"];
        d2 [label="Integrate\n& clean"];
        d3 [label="Split\ntrain / eval"];
    }

    // Stage 2: Feature
    subgraph cluster_feat {
        label="Feature"; labeljust="l"; color="#d63";
        fontcolor="#d63"; style="rounded";
        f1 [label="Engineer\n(impute, scale)"];
        f2 [label="Select &\nunion"];
    }

    // Stage 3: Train
    subgraph cluster_train {
        label="Train"; labeljust="l"; color="#693";
        fontcolor="#693"; style="rounded";
        t1 [label="Fit estimator\n(SGD / linreg)"];
        t2 [label="Tune\nhyperparams"];
    }

    // Stage 4: Eval
    subgraph cluster_eval {
        label="Eval"; labeljust="l"; color="#369";
        fontcolor="#369"; style="rounded";
        e1 [label="Holdout / k-fold\nMSE, accuracy"];
        e2 [label="Threshold &\nA/B gating"];
    }

    // Stage 5: Serve
    subgraph cluster_serve {
        label="Serve"; labeljust="l"; color="#639";
        fontcolor="#639"; style="rounded";
        s1 [label="Pickle / joblib\nversion artifact"];
        s2 [label="Deploy\n(SageMaker / ML Engine)"];
        s3 [label="Predict\n(batch or online)"];
    }

    // Monitoring (drives feedback)
    subgraph cluster_mon {
        label="Monitor"; labeljust="l"; color="#963";
        fontcolor="#963"; style="rounded";
        m1 [label="Drift, latency,\nerror rate"];
    }

    // Forward flow
    d1 -> d2 -> d3 -> f1 -> f2 -> t1 -> t2 -> e1 -> e2 -> s1 -> s2 -> s3 -> m1;

    // Feedback: monitoring triggers retraining
    m1 -> t1 [label="retrain", style=dashed, color="#d36", fontcolor="#d36"];
}

diagram-2019-ml-pipeline.png

Training and Prediction Input Pipelines

Versioning

Validation

  • MSE
  • Training Error
  • Resubstitution
  • Hold-out
  • K-fold cross-validation
  • LOOCV
  • Random subsampling
  • Bootstrapping
  • Over-Fit
  • Confidence

Exploration

Deployment

Algorithms

AWS Machine Learning

Four our purposes we are simply using linear regression (squared loss function and SGD)

Models

Frameworks

Training / Conferences

Related notes

Postscript (2026)

The 2019 cloud-by-cloud comparison reads like a museum tour now: the workflow itself survived, but the stack rebuilt around it. The "Project Pipeline" table is roughly what MLOps principles codified by 2021 and what Kubeflow Pipelines and MLflow now provide as off-the-shelf orchestration plus experiment tracking. Feature engineering moved out of notebook scripts into managed feature stores — Feast being the open-source baseline — so the "features union, impute, fill, scale" bullets are now declarative registry entries shared between training and online serving. Data versioning, which 2019 handled via blog posts on pickling models, is now DVC (or LakeFS, or Delta Lake) tracking datasets alongside code in git. The Validation section's MSE / k-fold list still applies to tabular models, but for generative systems the dominant 2026 pattern is LLM-as-judge eval harnesses such as LangSmith or OpenAI Evals, where the "score threshold" is a rubric prompt rather than a number. The cloud-vendor matrix is also flatter: SageMaker, Vertex AI, and Azure ML have converged on the same managed-pipeline + model-registry + endpoint shape, so the interesting choices in 2026 are about feature stores, eval methodology, and agent-tool wiring rather than which cloud's notebook to open.

Author: Jason Walsh

j@wal.sh

Last Updated: 2026-04-18 21:57:45

build: 2026-04-18 22:03 | sha: 8ac55c2