You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
llama-space/docker-compose.yml

76 lines
3.0 KiB
YAML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# llama.cpp + CUDA в Docker (Qwen3.x / крупные GGUF на 12 ГБ VRAM: гибрид GPU+CPU).
# Образ по умолчанию: server-cuda (CUDA 12 в контейнере) — совместим с большинством GPU и драйверов.
# Альтернатива: server-cuda13 — только если GPU/драйвер тянут CUDA 13; иначе ggml_cuda_init:
# «forward compatibility was attempted on non supported HW» → оставьте server-cuda.
# Нужны: драйвер NVIDIA, NVIDIA Container Toolkit, runtime nvidia в Docker.
#
# Модель: ./models/ + MODEL_FILE в .env.
# Запуск: docker compose up -d или docker-compose up -d
# Podman (одна команда, те же флаги): ./podman-llama.sh
# Проверка: curl http://localhost:8080/health
#
# 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-cuda
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"
- "1"
- "-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