# llama-cpp-turboquant + CUDA в Docker (Qwen3.x / крупные GGUF на 12 ГБ VRAM: гибрид GPU+CPU). # Образы собираются локально из клона TheTom/llama-cpp-turboquant (см. docker/). # # CUDA 12 (дефолт) — RTX 30xx / драйвер CUDA 12.x # CUDA 13 — Blackwell (RTX 50xx, sm_120), драйвер ≥ CUDA 13.1: # LLAMA_IMAGE_TAG=server-cuda13 LLAMA_DOCKERFILE=../llama-space/docker/server-cuda13.Dockerfile \ # docker-compose build # # Источник: LLAMA_CPP_SRC (дефолт ../llama-cpp-turboquant). # dockerfile — путь относительно context (так требует docker-compose 1.x). # # Сборка: docker-compose build # Запуск: docker-compose up -d # Podman: ./podman-llama.sh # Проверка: curl http://localhost:8080/health # # Нужны: драйвер NVIDIA, NVIDIA Container Toolkit, runtime nvidia в Docker. # Модель: ./models/ + MODEL_FILE в .env. # # OOM: уменьшите CTX_SIZE (дефолт 50000), -ngl и/или cache types; при «каше» попробуйте bf16/f16 для KV (больше VRAM). # MoE: в .env CPU_MOE=1 при необходимости; число слоёв MoE на CPU — N_CPU_MOE (дефолт 99 в command); для dense оставьте CPU_MOE=0. # --mlock + Docker: поднимите memlock ниже; если предупреждение остаётся — проверьте default-ulimits в /etc/docker/daemon.json и лимиты пользователя на хосте. # Дефолт chat-template: instruct (enable_thinking=false). Режим thinking — поменяйте JSON у --chat-template-kwargs. version: "3.8" services: llama-server: # image: ghcr.io/ggml-org/llama.cpp:server-cuda13 image: llama-turboquant:${LLAMA_IMAGE_TAG:-server-cuda12} build: context: ${LLAMA_CPP_SRC:-../llama-cpp-turboquant} # Relative to context (sibling of llama-space). Override for CUDA 13 — см. шапку. dockerfile: ${LLAMA_DOCKERFILE:-../llama-space/docker/server-cuda12.Dockerfile} container_name: llama-server ports: # Явный IPv4 на хосте (избегаем привязки только к [::] в части окружений). - "0.0.0.0:${PORT:-8080}:8080" volumes: - ./models:/models:ro # Старый docker-compose v1 не знает ключ `gpus:` — используем runtime nvidia (см. daemon.json от toolkit). runtime: nvidia environment: NVIDIA_VISIBLE_DEVICES: all # llama.cpp: https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md LLAMA_ARG_CPU_MOE: "${CPU_MOE:-0}" shm_size: 1gb ulimits: memlock: soft: -1 hard: -1 command: - "-m" - "/models/${MODEL_FILE:-model.gguf}" - "--host" - "0.0.0.0" - "--port" - "8080" - "--n-cpu-moe" - "${N_CPU_MOE:-99}" - "-c" - "${CTX_SIZE:-50000}" - "-np" - "4" - "-fa" - "on" - "--cache-type-k" - "${CACHE_TYPE_K:-q8_0}" - "--cache-type-v" - "${CACHE_TYPE_V:-turbo2}" - "--no-mmap" - "--mlock" - "--ctx-checkpoints" - "1" - "--cache-ram" - "0" - "--jinja" - "--reasoning" - "on" - "--reasoning-budget" - "-1" - "-b" - "2048" - "-ub" - "2048" - "--threads" - "${THREADS:-8}" restart: unless-stopped