4 Commits

Author SHA1 Message Date
grayhook b14fc46642 migrate to router mode: use models.ini for multi-model support 2026-06-22 17:23:29 +07:00
grayhook ed5a4fdbbc fixup local-llama service 2026-06-22 11:56:45 +07:00
Сергей Маринкевич 99bd39b47a make local-llama service 2026-06-22 11:45:04 +07:00
grayhook 2b5977b605 tune and run local with turboquant 2026-06-22 10:37:43 +07:00
5 changed files with 71 additions and 6 deletions
+4 -4
View File
@@ -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
+25
View File
@@ -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
View File
@@ -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
View File
@@ -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
+5 -2
View File
@@ -30,7 +30,7 @@ fi
: "${CACHE_TYPE_K:=q8_0}" : "${CACHE_TYPE_K:=q8_0}"
: "${CACHE_TYPE_V:=turbo2}" : "${CACHE_TYPE_V:=turbo2}"
: "${THREADS:=8}" : "${THREADS:=8}"
: "${IMAGE:=ghcr.io/ggml-org/llama.cpp:server-cuda}" : "${IMAGE:=ghcr.io/ggml-org/llama.cpp:server-cuda13}"
: "${BIND_HOST:=0.0.0.0}" : "${BIND_HOST:=0.0.0.0}"
# Разбить по пробелам для podman (пусто = только CDI-устройство). # Разбить по пробелам для podman (пусто = только CDI-устройство).
@@ -42,6 +42,7 @@ podman run -d \
--replace \ --replace \
--restart no \ --restart no \
--shm-size 1g \ --shm-size 1g \
--cpuset-cpus="0-11" \
--ulimit memlock=-1:-1 \ --ulimit memlock=-1:-1 \
-p "${BIND_HOST}:${PORT}:8080" \ -p "${BIND_HOST}:${PORT}:8080" \
-v "${ROOT}/models:/models:ro" \ -v "${ROOT}/models:/models:ro" \
@@ -52,7 +53,9 @@ podman run -d \
-m "/models/${MODEL_FILE}" \ -m "/models/${MODEL_FILE}" \
--host 0.0.0.0 \ --host 0.0.0.0 \
--port 8080 \ --port 8080 \
-ngl "${N_GPU_LAYERS}" \
--n-cpu-moe "${N_CPU_MOE}" \ --n-cpu-moe "${N_CPU_MOE}" \
--spec-type draft-mtp --spec-draft-n-max 3 \
-c "${CTX_SIZE}" \ -c "${CTX_SIZE}" \
-np 1 \ -np 1 \
-fa on \ -fa on \
@@ -61,7 +64,7 @@ podman run -d \
--no-mmap \ --no-mmap \
--mlock \ --mlock \
--ctx-checkpoints 1 \ --ctx-checkpoints 1 \
--cache-ram 0 \ --cache-ram -1 \
--jinja \ --jinja \
--reasoning on \ --reasoning on \
--reasoning-budget -1 \ --reasoning-budget -1 \