Local-first LLM fine-tuning workstation — a modern UI over raw command-line scripts.
Real-time GPU telemetry, live loss curves, and VRAM pre-flight checks on consumer GPUs.
Architecture • Features • Quick Start • Tech Stack
┌──────────────────────────────────────────────────────────────┐
│ Finetuning-Forge │
│ │
│ ┌─────────────────────────┐ ┌────────────────────────┐ │
│ │ Next.js Frontend │ │ FastAPI Backend │ │
│ │ │ │ │ │
│ │ ┌─────────────────┐ │ │ ┌──────────────────┐ │ │
│ │ │ Script Lab │ │◄──►│ │ Orchestrator │ │ │
│ │ │ (Monaco Editor) │ │ │ │ (Multi-Engine) │ │ │
│ │ └─────────────────┘ │ │ └────────┬─────────┘ │ │
│ │ │ │ │ │ │
│ │ ┌─────────────────┐ │ │ ┌────────▼─────────┐ │ │
│ │ │ GPU Dashboard │◄──┼────┼──│ WebSocket │ │ │
│ │ │ (Live Charts) │ │ │ │ Streaming │ │ │
│ │ └─────────────────┘ │ │ └────────┬─────────┘ │ │
│ │ │ │ │ │ │
│ │ ┌─────────────────┐ │ │ ┌────────▼─────────┐ │ │
│ │ │ VRAM Pre-flight │ │ │ │ Training Backend│ │ │
│ │ │ Check │ │ │ │ Unsloth/Axolotl │ │ │
│ │ └─────────────────┘ │ │ │ /Torchtune │ │ │
│ └─────────────────────────┘ │ └──────────────────┘ │ │
│ └────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
│
┌─────────▼──────────┐
│ Your GPU / CUDA │
│ nvidia-smi │
└────────────────────┘
User selects model + dataset
│
▼
VRAM Pre-flight Check ──── Not enough VRAM? ──── Warning shown
│ (OK)
▼
Training backend spawned (Unsloth / Axolotl / Torchtune)
│
├── Live loss curves ──────────────────► Frontend charts
├── GPU telemetry (VRAM/temp/util) ────► GPU Dashboard
└── Training logs ─────────────────────► Script Lab
| Feature | Description |
|---|---|
| 🔧 Multi-Engine Orchestrator | Switch between Unsloth, Axolotl, and Torchtune without reconfiguring |
| 📝 Script Lab | Monaco Editor with live-synced training scripts — edit and run in one place |
| 📊 GPU Command Center | Real-time VRAM usage, temperature, utilization via nvidia-smi |
| 📈 Live Loss Curves | Training loss streamed live over WebSocket — no polling |
| ✅ VRAM Pre-flight Checks | Validates available GPU memory before starting — prevents OOM crashes |
| 🌑 Tactical Obsidian UI | Dark mode with safety-orange accents — built for long training sessions |
# Clone
git clone https://github.com/PeakScripter/Finetuning-Forge.git
cd Finetuning-Forge
# Frontend (Terminal 1)
npm install
npm run dev
# → http://localhost:3000
# Backend (Terminal 2)
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8001
# → http://localhost:8001# Pick one (or all):
pip install unsloth
pip install axolotl
pip install torchtuneFinetuning-Forge/
├── app/ # Next.js pages & API routes
├── backend/ # FastAPI server (Python)
│ ├── main.py # Entry point
│ └── orchestrator/ # Training backend abstraction
├── components/ # React UI components
├── context/ # Global state management
├── lib/orchestrator/ # Frontend-side backend abstraction
├── models/ # Local model files
└── datasets/ # Training data (JSONL format)
- Node.js 18+
- Python 3.10+
- NVIDIA GPU with CUDA (recommended)
- NVIDIA Drivers (nvidia-smi accessible)
- At least one training backend installed (Unsloth, Axolotl, or Torchtune)
Frontend: Next.js 16, React 19, Tailwind CSS, Framer Motion, Monaco Editor
Backend: FastAPI, WebSocket streaming, nvidia-smi integration
Training: Unsloth, Axolotl, Torchtune
Language: TypeScript + Python
MIT License — see LICENSE for details.
