74 lines
2.3 KiB
Bash
Executable File
74 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# Эквивалент docker-compose.yml для Podman: один запуск — один контейнер llama-server.
|
||
# Требования: Podman, драйвер NVIDIA, NVIDIA Container Toolkit с CDI для Podman
|
||
# (обычно: nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml && перезапуск).
|
||
# GPU по умолчанию: --device nvidia.com/gpu=all
|
||
# Если не подходит: export PODMAN_GPU_FLAGS='--gpus all' (Podman 4.3+) или см. доку toolkit.
|
||
#
|
||
# Из каталога репозитория: ./podman-llama.sh
|
||
# Переменные — как в compose / .env: PORT, MODEL_FILE, CPU_MOE, N_CPU_MOE, CTX_SIZE,
|
||
# CACHE_TYPE_K, CACHE_TYPE_V, THREADS; образ: IMAGE (по умолчанию server-cuda).
|
||
# Порт на хосте: только IPv4 (BIND_HOST по умолчанию 0.0.0.0), иначе Podman часто вешает [::].
|
||
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$ROOT"
|
||
|
||
if [[ -f .env ]]; then
|
||
set -a
|
||
# shellcheck disable=SC1091
|
||
source .env
|
||
set +a
|
||
fi
|
||
|
||
: "${PORT:=8080}"
|
||
: "${MODEL_FILE:=model.gguf}"
|
||
: "${CPU_MOE:=0}"
|
||
: "${N_CPU_MOE:=99}"
|
||
: "${CTX_SIZE:=50000}"
|
||
: "${CACHE_TYPE_K:=q8_0}"
|
||
: "${CACHE_TYPE_V:=turbo2}"
|
||
: "${THREADS:=8}"
|
||
: "${IMAGE:=ghcr.io/ggml-org/llama.cpp:server-cuda13}"
|
||
: "${BIND_HOST:=0.0.0.0}"
|
||
|
||
# Разбить по пробелам для podman (пусто = только CDI-устройство).
|
||
# Пример: PODMAN_GPU_FLAGS='--gpus all'
|
||
read -r -a PODMAN_GPU_FLAGS_ARR <<<"${PODMAN_GPU_FLAGS:---device nvidia.com/gpu=all}"
|
||
|
||
podman run -d \
|
||
--name llama-server \
|
||
--replace \
|
||
--restart no \
|
||
--shm-size 1g \
|
||
--cpuset-cpus="0-11" \
|
||
--ulimit memlock=-1:-1 \
|
||
-p "${BIND_HOST}:${PORT}:8080" \
|
||
-v "${ROOT}/models:/models:ro" \
|
||
-e NVIDIA_VISIBLE_DEVICES=all \
|
||
-e "LLAMA_ARG_CPU_MOE=${CPU_MOE}" \
|
||
"${PODMAN_GPU_FLAGS_ARR[@]}" \
|
||
"$IMAGE" \
|
||
-m "/models/${MODEL_FILE}" \
|
||
--host 0.0.0.0 \
|
||
--port 8080 \
|
||
-ngl "${N_GPU_LAYERS}" \
|
||
--n-cpu-moe "${N_CPU_MOE}" \
|
||
--spec-type draft-mtp --spec-draft-n-max 3 \
|
||
-c "${CTX_SIZE}" \
|
||
-np 1 \
|
||
-fa on \
|
||
--cache-type-k "${CACHE_TYPE_K}" \
|
||
--cache-type-v "${CACHE_TYPE_V}" \
|
||
--no-mmap \
|
||
--mlock \
|
||
--ctx-checkpoints 1 \
|
||
--cache-ram -1 \
|
||
--jinja \
|
||
--reasoning on \
|
||
--reasoning-budget -1 \
|
||
-b 2048 \
|
||
-ub 2048 \
|
||
--threads "${THREADS}"
|