| # 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 | |