Complete setup guide for ModelForge on Linux with full feature support.
- Linux Distribution: Ubuntu 20.04+, Debian 11+, Fedora 35+, or similar
- Python 3.11.x (Python 3.12 not yet supported)
- NVIDIA GPU with 4GB+ VRAM (6GB+ recommended)
- NVIDIA Drivers: Version 525.60 or newer
- CUDA Toolkit: 11.8 or 12.x
- HuggingFace Account: Create account and generate access token
Ubuntu/Debian:
sudo apt update && sudo apt upgrade -yFedora:
sudo dnf update -yArch Linux:
sudo pacman -SyuUbuntu/Debian:
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3.11-dev python3-pipFedora:
sudo dnf install -y python3.11 python3.11-develArch Linux:
sudo pacman -S python311Verify installation:
python3.11 --versionCheck if drivers are already installed:
nvidia-smiIf not installed:
Ubuntu/Debian:
# Add graphics-drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
# Install latest driver (or specific version like nvidia-driver-535)
sudo ubuntu-drivers autoinstall
# Reboot
sudo rebootFedora:
# Enable RPM Fusion repositories
sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# Install NVIDIA drivers
sudo dnf install -y akmod-nvidia
# Reboot
sudo rebootAfter reboot, verify:
nvidia-smiUbuntu/Debian (CUDA 12.6):
# Download and install CUDA repository package
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# Install CUDA Toolkit
sudo apt-get install -y cuda-toolkit-12-6Fedora (CUDA 12.6):
sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora37/x86_64/cuda-fedora37.repo
sudo dnf clean all
sudo dnf install -y cuda-toolkit-12-6Add CUDA to PATH:
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrcVerify:
nvcc --version# Create project directory
mkdir ~/ModelForge
cd ~/ModelForge
# Create virtual environment
python3.11 -m venv venv
# Activate virtual environment
source venv/bin/activatepip install modelforge-finetuning
# Optional extras
pip install modelforge-finetuning[cli] # CLI wizard
pip install modelforge-finetuning[quantization] # 4-bit/8-bit quantizationVisit PyTorch Installation Page for the latest command.
For CUDA 12.6:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126For CUDA 11.8:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118pip install unslothpython -c "import torch; print(f'CUDA Available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"None\"}')"Expected output:
CUDA Available: True
GPU: NVIDIA GeForce RTX 3060
Option A: Export (temporary):
export HUGGINGFACE_TOKEN="your_token_here"Option B: .env file (persistent):
echo "HUGGINGFACE_TOKEN=your_token_here" > .envOption C: .bashrc (permanent):
echo 'export HUGGINGFACE_TOKEN="your_token_here"' >> ~/.bashrc
source ~/.bashrcmodelforge # Launch web UI
modelforge cli # Launch CLI wizard (headless/SSH alternative)Open browser to: http://localhost:8000
To run ModelForge as a systemd service:
sudo nano /etc/systemd/system/modelforge.serviceAdd:
[Unit]
Description=ModelForge Fine-Tuning Service
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/home/your_username/ModelForge
Environment="PATH=/home/your_username/ModelForge/venv/bin"
Environment="HUGGINGFACE_TOKEN=your_token_here"
ExecStart=/home/your_username/ModelForge/venv/bin/modelforge
Restart=always
[Install]
WantedBy=multi-user.targetReplace your_username and your_token_here with your values.
sudo systemctl daemon-reload
sudo systemctl enable modelforge
sudo systemctl start modelforgesudo systemctl status modelforgesudo journalctl -u modelforge -fProblem: torch.cuda.is_available() returns False
Solutions:
- Verify NVIDIA drivers:
nvidia-smi
- Check CUDA installation:
nvcc --version
- Reinstall PyTorch with correct CUDA version
- Check LD_LIBRARY_PATH includes CUDA libs:
echo $LD_LIBRARY_PATH
Problem: CUDA driver version is insufficient
Solution: Update NVIDIA drivers to version 525.60 or newer.
Problem: Cannot create files/directories
Solution:
sudo chown -R $USER:$USER ~/ModelForgeProblem: Address already in use: 8000
Solutions:
- Check what's using port 8000:
sudo lsof -i :8000
- Kill the process or use a different port:
modelforge --port 8080
Problem: Training crashes with OOM error
Solutions:
- Use QLoRA strategy for memory efficiency
- Reduce batch size
- Use gradient checkpointing
- Use a smaller model
- See Performance Optimization
Ubuntu:
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USERLog out and back in for group changes to take effect.
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart dockerCreate a Dockerfile:
FROM ubuntu:22.04
# Install Python 3.11
RUN apt-get update && apt-get install -y \
software-properties-common \
&& add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update \
&& apt-get install -y \
python3.11 \
python3.11-venv \
python3.11-dev \
python3-pip \
git \
wget \
&& rm -rf /var/lib/apt/lists/*
# Set Python 3.11 as default
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
# Install CUDA (if needed for GPU support)
# Skip if using NVIDIA base image
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
&& dpkg -i cuda-keyring_1.1-1_all.deb \
&& apt-get update \
&& apt-get install -y cuda-toolkit-12-6 \
&& rm cuda-keyring_1.1-1_all.deb
# Install ModelForge from PyPI
RUN pip install --no-cache-dir modelforge-finetuning
# Install PyTorch with CUDA
RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
# Install Unsloth (optional)
RUN pip install --no-cache-dir unsloth
# Set working directory
WORKDIR /workspace
# Expose port
EXPOSE 8000
# Run ModelForge
CMD ["modelforge", "--host", "0.0.0.0"]Build and run:
# Build the image
docker build -t modelforge:latest .
# Run container
docker run --gpus all -p 8000:8000 \
-e HUGGINGFACE_TOKEN=your_token_here \
-v modelforge-data:/root/.local/share/modelforge \
modelforge:latest- Post-Installation Setup - Configure ModelForge
- Quick Start Guide - Run your first training
- Configuration Guide - Learn all options
- Unsloth Provider - Enable 2x faster training
Need Help? Check Common Issues or ask in GitHub Discussions.