Files
llama-space/docker-compose.yml
T
2026-08-12 20:02:49 +07:00

89 lines
3.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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