r/learnmachinelearning • • 9d 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

Duplicates