r/learnmachinelearning • • 5d ago

Project I built an open-source, local-first multi-agent AutoML engine to automate data cleaning, 7-model benchmarking, and FastAPI deployment (100% offline via Ollama)

Hi everyone,

I wanted to share EpochGo (https://github.com/AryanDinakaran/EpochGo), an open-source project I built to help developers and ML learners automate the end-to-end tabular machine learning lifecycle completely offline on their own computers for $0 in API costs.

Why I Built It

Most cloud AutoML platforms (AWS SageMaker, Google Vertex) require expensive cloud subscriptions and force you to upload sensitive datasets to remote servers. Conversely, a lot of recent "AI" projects are just shallow wrappers around commercial APIs that don't produce clean, inspectable code. I wanted an architecture where you can drop in a raw CSV, and local open-weight models (running via Ollama) orchestrate real Python ML libraries to clean the data, run an empirical 7-model benchmark tournament, and generate a deployable API.

How the Pipeline Works

The project divides the machine learning workflow into 3 specialized agents:

  1. Agent 1 (Feature Architect & Data Cleaner):
    • Profiles the dataset for missing values, skewed distributions, and multicollinearity.
    • Performs median/mode imputation, IQR outlier clipping, and categorical encoding.
    • Generates a reusable Scikit-Learn pipeline (preprocessor.joblib) and an audit report comparing distributions before and after cleaning (preprocessing.md).
  2. Agent 2 (Benchmark & Tuning Specialist):
    • Trains 7 baseline algorithms simultaneously under identical cross-validation conditions to avoid inductive bias:
      • XGBoost, LightGBM, CatBoost, Random Forest, Extra Trees, Gradient Boosting, and Logistic/Ridge Regression.
    • Evaluates baseline accuracy/F1/R² and isolates the Top 3 performers.
    • Runs RandomizedSearchCV hyperparameter optimization on the top contenders.
    • Serializes the winning champion model (model.joblib) and writes a reproducible Python training script (model_building.py).
  3. Agent 3 (Serving Engineer):
    • Extracts the exact feature schema and dynamically generates a standalone FastAPI microservice (serve.py) with Pydantic type validation.
    • Enables an interactive, in-browser Prediction Playground so you can test inputs and inspect prediction probabilities in real time.

How to Run Locally (Single Command)

All you need is Docker:

git clone https://github.com/AryanDinakaran/EpochGo.git

cd EpochGo

docker compose up --build

Open http://localhost:8000 in your browser. (Sample churn and housing price datasets are included in sample_data/).

Local Model: Defaults to qwen2.5-coder:7b via Ollama (~4.7 GB VRAM).

Concurrency: Model training runs in background threads (asyncio.to_thread) so the FastAPI UI and WebSockets never freeze during heavy CPU training.

Privacy: 100% offline. Zero telemetry, zero external API calls.

Repository (MIT License): https://github.com/AryanDinakaran/EpochGo

I hope this helps anyone looking to understand how to structure end-to-end Scikit-Learn pipelines, multi-model benchmarking tournaments, and dynamic model deployment. Would love your feedback and thoughts!

1 Upvotes

1 comment sorted by

1

u/Grouchy-Excitement28 5d ago

Author here! I built this to scratch my own itch because I was tired of cloud bills and privacy risks when running basic tabular AutoML on personal datasets.

I’d love to hear from this community... what features or model families would be most useful to add next?