Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b14fc46642 | |||
| ed5a4fdbbc | |||
| 99bd39b47a | |||
| 2b5977b605 | |||
| a0713b260b | |||
| 5b112ba5ec |
@@ -1,10 +1,10 @@
|
|||||||
MODEL_FILE=Qwen3.6-35B-A3B-MXFP4_MOE.gguf
|
MODEL_FILE=Qwen3.6-35B-A3B-MTP-MXFP4_MOE.gguf
|
||||||
# Для -1 в .env лучше кавычки — иначе часть парсеров .env ломается на ведущем минусе.
|
# Для -1 в .env лучше кавычки — иначе часть парсеров .env ломается на ведущем минусе.
|
||||||
N_GPU_LAYERS="-1"
|
N_GPU_LAYERS="99"
|
||||||
|
|
||||||
# Доп. ключи docker-compose (опционально; дефолты заданы в compose)
|
# Доп. ключи docker-compose (опционально; дефолты заданы в compose)
|
||||||
CTX_SIZE=65536
|
CTX_SIZE=170000
|
||||||
THREADS=8
|
THREADS=12
|
||||||
CACHE_TYPE_K=q8_0
|
CACHE_TYPE_K=q8_0
|
||||||
CACHE_TYPE_V=q8_0
|
CACHE_TYPE_V=q8_0
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -6,6 +6,7 @@
|
|||||||
#
|
#
|
||||||
# Модель: ./models/ + MODEL_FILE в .env.
|
# Модель: ./models/ + MODEL_FILE в .env.
|
||||||
# Запуск: docker compose up -d или docker-compose up -d
|
# Запуск: docker compose up -d или docker-compose up -d
|
||||||
|
# Podman (одна команда, те же флаги): ./podman-llama.sh
|
||||||
# Проверка: curl http://localhost:8080/health
|
# Проверка: curl http://localhost:8080/health
|
||||||
#
|
#
|
||||||
# OOM: уменьшите CTX_SIZE (дефолт 50000), -ngl и/или cache types; при «каше» попробуйте bf16/f16 для KV (больше VRAM).
|
# OOM: уменьшите CTX_SIZE (дефолт 50000), -ngl и/или cache types; при «каше» попробуйте bf16/f16 для KV (больше VRAM).
|
||||||
@@ -20,7 +21,8 @@ services:
|
|||||||
image: ghcr.io/ggml-org/llama.cpp:server-cuda
|
image: ghcr.io/ggml-org/llama.cpp:server-cuda
|
||||||
container_name: llama-server
|
container_name: llama-server
|
||||||
ports:
|
ports:
|
||||||
- "${PORT:-8080}:8080"
|
# Явный IPv4 на хосте (избегаем привязки только к [::] в части окружений).
|
||||||
|
- "0.0.0.0:${PORT:-8080}:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- ./models:/models:ro
|
- ./models:/models:ro
|
||||||
# Старый docker-compose v1 не знает ключ `gpus:` — используем runtime nvidia (см. daemon.json от toolkit).
|
# Старый docker-compose v1 не знает ключ `gpus:` — используем runtime nvidia (см. daemon.json от toolkit).
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=llama-server (local-llama)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=bazzite
|
||||||
|
Group=bazzite
|
||||||
|
WorkingDirectory=/home/bazzite/llama-space
|
||||||
|
EnvironmentFile=/home/bazzite/llama-space/.env
|
||||||
|
ExecStart=/home/bazzite/llama-space/local-llama.sh
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
# CPU pinning: taskset -c 0-11
|
||||||
|
CPUAffinity=0-11
|
||||||
|
|
||||||
|
# ulimit -l unlimited → lock memory (mlockall / MADV_POPULATE_READ + mlock)
|
||||||
|
LimitMEMLOCK=infinity
|
||||||
|
|
||||||
|
# Не убивать OOM killer — модель критична
|
||||||
|
OOMScoreAdjust=-900
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export PATH=/usr/local/cuda-13.3/bin${PATH:+:${PATH}}
|
||||||
|
export LD_LIBRARY_PATH=/usr/local/cuda-13.3/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
|
/home/bazzite/Документы/llama-cpp-turboquant/build/bin/llama-server \
|
||||||
|
--models-preset "${DIR}/models.ini" \
|
||||||
|
--models-dir "${DIR}/models" \
|
||||||
|
-np 1
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
host = 0.0.0.0
|
||||||
|
port = 8080
|
||||||
|
flash-attn = on
|
||||||
|
chat-template = jinja
|
||||||
|
reasoning = on
|
||||||
|
reasoning-budget = -1
|
||||||
|
cache-type-k = turbo4
|
||||||
|
cache-type-v = turbo3
|
||||||
|
no-mmap = true
|
||||||
|
mlock = true
|
||||||
|
ctx-checkpoints = true
|
||||||
|
cache-ram = -1
|
||||||
|
batch-size = 2048
|
||||||
|
ubatch-size = 2048
|
||||||
|
|
||||||
|
[Qwen3.6-35B]
|
||||||
|
model = models/Qwen3.6-35B-A3B-MTP-MXFP4_MOE.gguf
|
||||||
|
n-gpu-layers = 99
|
||||||
|
n-cpu-moe = 29
|
||||||
|
ctx-size = 170000
|
||||||
|
threads = 12
|
||||||
|
spec-type = draft-mtp
|
||||||
|
spec-draft-n-max = 2
|
||||||
Executable
+73
@@ -0,0 +1,73 @@
|
|||||||
|
#!/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}"
|
||||||
Reference in New Issue
Block a user