Track, compare, and optimize your ML models with ease
The ExperimentHub platform uses a modern containerized architecture with the following components:
-
Frontend Container:
- Next.js Application (UI) for the main interface
- Job Management UI for monitoring training progress
- Communicates with backend via REST API and WebSocket for real-time updates
-
Backend Container:
- FastAPI Server handling API requests and WebSocket connections
- ML Model Training Modules for executing experiments
- Integrates with SQLite for job/experiment tracking
- Manages MNIST dataset access for training
-
Data & Persistence:
- SQLite Database for storing experiment metadata and results
- MNIST Dataset for model training
The system uses Docker Compose for orchestration, making it easy to deploy and scale. The architecture ensures real-time communication between components through WebSocket connections for live training updates and REST APIs for general operations.
- Experiment Management: Create, organize, and track machine learning experiments
- Model Training: Train MLP, CNN, and RNN models with customizable hyperparameters
- Real-time Monitoring: Track metrics and progress during training via WebSockets
- Interactive Visualizations: Compare performance metrics across models and experiments
- Job Queue: Manage multiple training jobs simultaneously
The project is organized into two main components:
- Frontend: Next.js-based web interface (React 19, Tailwind CSS)
- Backend: FastAPI server with PyTorch model training
The easiest way to run the entire application stack is with Docker Compose:
# Start all services
docker-compose up
# Access the frontend at http://localhost:3000
# Access the backend API at http://localhost:8000
For development, you can set up the frontend and backend separately:
-
Backend:
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e ".[dev]" uvicorn app.main:app --reload
-
Frontend:
cd experimenthub npm install npm run dev
See the individual README files in the frontend and backend directories for detailed development instructions.
MIT