# llama-cpp-python Prebuilt Wheels for HuggingFace Spaces (Free CPU) Prebuilt `llama-cpp-python` wheels optimized for HuggingFace Spaces free tier (16GB RAM, 2 vCPU, CPU-only). ## Purpose These wheels include the latest llama.cpp backend with support for newer model architectures: - **LFM2 MoE** architecture (32 experts) for LFM2-8B-A1B - Latest IQ4_XS quantization support - OpenBLAS CPU acceleration ## Available Wheels | Wheel File | Python | Platform | llama.cpp | Features | |------------|--------|----------|-----------|----------| | `llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl` | 3.10 | Linux x86_64 | Latest (Jan 2026) | LFM2 MoE, IQ4_XS, OpenBLAS | ## Usage ### Setting Up HuggingFace Spaces with Python 3.10 These wheels are built for **Python 3.10**. To use them in HuggingFace Spaces: **Step 1: Switch to Docker** 1. Go to your Space settings 2. Change "Space SDK" from **Gradio** to **Docker** 3. This enables custom Dockerfile support **Step 2: Create a Dockerfile with Python 3.10** Your Dockerfile should start with `python:3.10-slim` as the base image: ```dockerfile # Use Python 3.10 explicitly (required for these wheels) FROM python:3.10-slim WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ gcc g++ make cmake git libopenblas-dev \ && rm -rf /var/lib/apt/lists/* # Install llama-cpp-python from prebuilt wheel RUN pip install --no-cache-dir \ https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl # Install other dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Set environment variables ENV PYTHONUNBUFFERED=1 ENV GRADIO_SERVER_NAME=0.0.0.0 # Expose Gradio port EXPOSE 7860 # Run the app CMD ["python", "app.py"] ``` **Complete Example:** See the template below for a production-ready setup. ### Why Docker SDK? When you use a custom Dockerfile: - ✅ Explicit Python version control (`FROM python:3.10-slim`) - ✅ Full control over system dependencies - ✅ Can use prebuilt wheels for faster builds - ✅ No need for `runtime.txt` (Dockerfile takes precedence) ### Dockerfile (Recommended) ```dockerfile FROM python:3.10-slim # Install system dependencies for OpenBLAS RUN apt-get update && apt-get install -y \ gcc g++ make cmake git libopenblas-dev \ && rm -rf /var/lib/apt/lists/* # Install llama-cpp-python from prebuilt wheel (fast) RUN pip install --no-cache-dir \ https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl ``` ### With Fallback to Source Build ```dockerfile # Try prebuilt wheel first, fall back to source build if unavailable RUN if pip install --no-cache-dir https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl; then \ echo "✅ Using prebuilt wheel"; \ else \ echo "⚠️ Building from source"; \ pip install --no-cache-dir git+https://github.com/JamePeng/llama-cpp-python.git@5a0391e8; \ fi ``` ## Why This Fork? These wheels are built from the **JamePeng/llama-cpp-python** fork (v0.3.22) instead of the official abetlen/llama-cpp-python: | Repository | Latest Version | llama.cpp | LFM2 MoE Support | |------------|---------------|-----------|-----------------| | JamePeng fork | v0.3.22 (Jan 2026) | Latest | ✅ Yes | | Official (abetlen) | v0.3.16 (Aug 2025) | Outdated | ❌ No | **Key Difference:** LFM2-8B-A1B requires llama.cpp backend with LFM2 MoE architecture support (added Oct 2025). The official llama-cpp-python hasn't been updated since August 2025. ## Build Configuration ```bash CMAKE_ARGS="-DGGML_OPENBLAS=ON -DGGML_NATIVE=OFF" FORCE_CMAKE=1 pip wheel --no-deps git+https://github.com/JamePeng/llama-cpp-python.git@5a0391e8 ``` ## Supported Models These wheels enable the following IQ4_XS quantized models: - **LFM2-8B-A1B** (LiquidAI) - 8.3B params, 1.5B active, MoE with 32 experts - **Granite-4.0-h-micro** (IBM) - Ultra-fast inference - **Granite-4.0-h-tiny** (IBM) - Balanced speed/quality - All standard llama.cpp models (Llama, Gemma, Qwen, etc.) ## Performance - **Build time savings:** ~4 minutes → 3 seconds (98% faster) - **Memory footprint:** Fits in 16GB RAM with context up to 8192 tokens - **CPU acceleration:** OpenBLAS optimized for x86_64 ## Limitations - **CPU-only:** No GPU/CUDA support (optimized for HF Spaces free tier) - **Platform:** Linux x86_64 only - **Python:** 3.10 only (matches HF Spaces default) ## License These wheels include code from: - [llama-cpp-python](https://github.com/JamePeng/llama-cpp-python) (MIT license) - [llama.cpp](https://github.com/ggerganov/llama.cpp) (MIT license) See upstream repositories for full license information. ## Maintenance Built from: https://github.com/JamePeng/llama-cpp-python/tree/5a0391e8 To rebuild: See `build_wheel.sh` in the main project repository. ## Related - Main project: [gemma-book-summarizer](https://huggingface.co/spaces/Luigi/gemma-book-summarizer) - JamePeng fork: https://github.com/JamePeng/llama-cpp-python - Original project: https://github.com/abetlen/llama-cpp-python