A CPU-optimized LLM fine-tuning studio powered by LM Studio for completely local AI development
FineTuneLite is a lightweight, CPU-only LLM fine-tuning studio designed for local execution on consumer hardware. Fine-tune and chat with small open-source language models using PEFT (Parameter-Efficient Fine-Tuning) and LoRA, all powered by LM Studio. No GPU required, no cloud dependencies, and no API keys needed.
- Features
- Prerequisites
- Installation
- Quick Start
- Usage
- Testing
- Deployment
- Architecture
- Documentation
- Contributing
- License
- Author
- Dataset Manager: Upload and manage training datasets in JSON, CSV, or TXT formats
- Fine-tuning Configurator: Wizard-style interface for configuring model fine-tuning
- CPU-Optimized Training: Efficient training using PEFT and LoRA techniques
- Training Dashboard: Real-time monitoring of training progress and metrics
- Playground: Interactive chat interface for testing models
- Teacher/Critic Mode: Dual-model evaluation system for quality assessment
- Dynamic Model Loading: Automatically detects and lists all available LM Studio models
- IBM Granite 4.0 H Tiny: Optimized default model for CPU inference
- Model Switching: Seamlessly switch between different models in your library
- Teacher/Critic Evaluation: Use stronger models to evaluate and improve weaker ones
- 100% Local: Complete offline operation with no external dependencies
- Modern Web Interface: Built with Next.js 15 and React
- RESTful API: FastAPI backend with automatic OpenAPI documentation
- Docker Support: Production-ready containerization
- Comprehensive Testing: Automated test suite with performance benchmarking
- Professional UI: Clean, responsive interface with shadcn/ui components
Before installing FineTuneLite, ensure you have the following:
- Node.js 20+: JavaScript runtime for the frontend
- Python 3.10+: Python runtime for the backend
- LM Studio: Download from lmstudio.ai
- 8GB RAM minimum: Recommended for smooth operation
- 2GB free disk space: For application and model storage
- Download LM Studio from lmstudio.ai
- Install and open the application
- Download IBM Granite 4.0 H Tiny (recommended for CPU)
- Start the Local Server on port 1234
git clone <repository-url>
cd ciousBackend:
cd backend
pip install -r requirements.txtFrontend:
cd frontend
npm installBackend (.env):
cd backend
cp .env.example .env
# Edit .env if needed (defaults work for local development)Frontend (.env.local):
cd frontend
# Create .env.local if custom configuration needed
# Default: NEXT_PUBLIC_API_URL=http://localhost:8000Windows:
start.batLinux/Mac:
chmod +x start.sh
./start.shTerminal 1 - Backend:
cd backend
python -m uvicorn main:app --reloadTerminal 2 - Frontend:
cd frontend
npm run devWindows:
deploy-docker.batLinux/Mac:
chmod +x deploy-docker.sh
./deploy-docker.sh- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Settings & Testing: http://localhost:3000/settings
Upload a Dataset:
- Navigate to the Datasets page
- Click "Upload Dataset"
- Select a JSON or CSV file
- View your uploaded datasets in the list
Dataset Format (JSON):
[
{
"input": "User question or prompt",
"output": "Expected model response"
}
]Basic Chat:
- Go to the Playground page
- Select a model from the dropdown
- Type your message and send
- View the model's response
Teacher/Critic Mode:
- Enable Teacher/Critic mode toggle
- Select a student model (for responses)
- Select a teacher model (for evaluation)
- Chat and receive both responses and critiques
Configure Training:
- Navigate to the Fine-tune page
- Select a base model
- Choose your training dataset
- Configure hyperparameters:
- Epochs: 1-3 recommended
- Batch Size: 1 for CPU
- Learning Rate: 0.0002 default
- PEFT Type: LoRA
Note: Full training implementation is in progress. The UI and workflow are ready for demonstration.
Configure Application:
- Go to Settings page
- Verify connection status
- Configure API endpoints
- Adjust model preferences
Run Tests:
- Navigate to Settings > Testing tab
- Click "Run Tests"
- Review test results
- Download test report if needed
python test_suite.pyTests:
- Backend health check
- LM Studio connectivity
- Model listing
- Chat completion
- Teacher/Critic evaluation
- Dataset management
python comprehensive_test.pyFeatures:
- All API endpoints
- Multiple chat scenarios
- Performance benchmarking
- Detailed HTML reports
- Success rate tracking
| Operation | Expected Time |
|---|---|
| Health Check | < 0.1s |
| Model List | 0.2-0.5s |
| Chat (short) | 10-15s |
| Chat (long) | 15-25s |
| Evaluation | 10-20s |
| Dataset Upload | 0.1-1s |
Use the startup scripts or manual commands as described in Quick Start.
Build and Start:
cd infra
docker-compose up --build -dView Logs:
docker-compose logs -fStop Services:
docker-compose downRefer to DEPLOYMENT.md for detailed production deployment instructions, including:
- Server setup
- Environment configuration
- Nginx reverse proxy
- SSL/TLS setup
- Process management
- Monitoring and logging
User → Frontend (Next.js) → Backend (FastAPI) → LM Studio
↓
SQLite Database
↓
File Storage
Frontend:
- Next.js 15 (React framework)
- TypeScript (type safety)
- Tailwind CSS (styling)
- shadcn/ui (components)
Backend:
- FastAPI (web framework)
- SQLAlchemy (ORM)
- PyTorch (training)
- PEFT (fine-tuning)
- httpx (HTTP client)
Infrastructure:
- Docker (containerization)
- SQLite (database)
- LM Studio (model runtime)
For detailed architecture diagrams, see docs/architecture.md.
- SETUP_GUIDE.md - Detailed setup instructions
- TESTING_GUIDE.md - Testing procedures and best practices
- DEPLOYMENT.md - Production deployment guide
- PROJECT_STRUCTURE.md - File organization and structure
- docs/architecture.md - System architecture diagrams
- docs/demo_script.md - Demo walkthrough script
- docs/test_summary.md - Testing documentation
Access the interactive API documentation at http://localhost:8000/docs when the backend is running.
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Write or update tests
- Update documentation
- Submit a pull request
- Follow the installation instructions
- Install development dependencies
- Run tests before committing
- Follow the existing code style
This project is licensed under the MIT License. See the LICENSE file for details.
Made by Aditya Shenvi
- Website: adityacuz.dev
- LinkedIn: linkedin.com/in/adityashenvi
- Open for collaboration and feedback
- LM Studio for providing an excellent local model runtime
- IBM for the Granite model series
- Hugging Face for PEFT and LoRA libraries
- FastAPI and Next.js communities for excellent frameworks
For issues, questions, or feature requests:
- Check the documentation in the
docs/directory - Review the SETUP_GUIDE.md for common issues
- Run the test suite for diagnostics:
python comprehensive_test.py - Create an issue on the repository with detailed information
Current Version: 1.0.0
Status: Production Ready
Last Updated: 2025-11-29
Features Complete:
- Dataset management
- Chat playground
- Teacher/Critic mode
- Settings and testing interface
- Docker deployment
- Comprehensive documentation
In Progress:
- Full PEFT/LoRA training implementation
- WebSocket for live training updates
- Advanced hyperparameter tuning
Made with dedication for the local AI community
No cloud dependencies, no API keys, no subscriptions—just pure local AI development