133 lines
4.4 KiB
YAML
133 lines
4.4 KiB
YAML
# yaml-language-server: $schema=https://raw.githubusercontent.com/mostlygeek/llama-swap/refs/heads/main/config-schema.json
|
|
#
|
|
# Modelle werden beim ersten Aufruf per -hf von Hugging Face nach ./models geladen
|
|
# (LLAMA_CACHE=/models). Danach läuft alles offline.
|
|
#
|
|
# VRAM-Budget RX 6950 XT (16 GB):
|
|
# - Autocomplete-Modell (~2 GB) bleibt dauerhaft geladen
|
|
# - genau ein Chat-Modell gleichzeitig; llama.cpp --fit (Standard: an) verteilt
|
|
# Layer/MoE-Experten automatisch auf VRAM und RAM, --fit-target hält ~3 GB frei
|
|
# - Whisper (~1,2 GB, Vulkan) bleibt dauerhaft geladen; es wird vor dem
|
|
# Chat-Modell geladen, --fit rechnet den Platz also automatisch mit ein
|
|
# - Embeddings laufen auf der CPU
|
|
# - das Bildmodell (z-image) ist in der chat-Gruppe: es verdrängt das Chat-Modell
|
|
#
|
|
# whisper-server und sd-server kommen aus dem unified-Image (llama-swap/Dockerfile).
|
|
# Ihre Modelle liegen fest in ./models/whisper und ./models/sd (kein -hf), siehe README.
|
|
|
|
healthCheckTimeout: 900 # erster Start kann einen 20-GB-Download enthalten
|
|
logLevel: info
|
|
startPort: 10001
|
|
|
|
macros:
|
|
server: >-
|
|
/app/llama-server --host 127.0.0.1 --port ${PORT}
|
|
--jinja -fa on --threads 12 --no-webui
|
|
# Agent-Betrieb: großer Kontext, KV-Cache quantisiert, VRAM-Reserve für Autocomplete
|
|
agent-ctx: -c 65536 -ctk q8_0 -ctv q8_0 --fit-target 3072
|
|
|
|
models:
|
|
# --- Chat / Agent (opencode, Continue Chat/Agent/Edit) -----------------
|
|
qwen3.5-35b-a3b:
|
|
name: Qwen3.5 35B-A3B (MoE)
|
|
cmd: >-
|
|
${server} ${agent-ctx}
|
|
-hf unsloth/Qwen3.5-35B-A3B-GGUF:Q4_K_M
|
|
ttl: 3600
|
|
|
|
glm-4.7-flash:
|
|
name: GLM-4.7 Flash (MoE)
|
|
cmd: >-
|
|
${server} ${agent-ctx}
|
|
-hf unsloth/GLM-4.7-Flash-GGUF:Q4_K_M
|
|
ttl: 3600
|
|
|
|
qwen3.5-9b:
|
|
name: Qwen3.5 9B (schnell, komplett im VRAM)
|
|
cmd: >-
|
|
${server} -c 32768 -ctk q8_0 -ctv q8_0 --fit-target 3072
|
|
-hf unsloth/Qwen3.5-9B-GGUF:Q4_K_M
|
|
ttl: 3600
|
|
|
|
# --- Autocomplete (Continue Tab-Completion, FIM) -----------------------
|
|
qwen2.5-coder-1.5b:
|
|
name: Qwen2.5-Coder 1.5B Base (FIM)
|
|
cmd: >-
|
|
${server} -c 8192
|
|
-hf ggml-org/Qwen2.5-Coder-1.5B-Q8_0-GGUF
|
|
-ngl 99
|
|
ttl: 0
|
|
|
|
# --- Embeddings (Continue @codebase) -----------------------------------
|
|
nomic-embed:
|
|
name: Nomic Embed Text v1.5
|
|
cmd: >-
|
|
/app/llama-server --host 127.0.0.1 --port ${PORT} --no-webui
|
|
-hf nomic-ai/nomic-embed-text-v1.5-GGUF:Q8_0
|
|
--embedding --pooling mean -c 8192 -b 8192 -ub 8192 -ngl 0 --threads 8
|
|
ttl: 0
|
|
|
|
# --- Transkription (/v1/audio/transcriptions) --------------------------
|
|
whisper:
|
|
name: Whisper large-v3-turbo (GPU, Vulkan)
|
|
# GPU: ~0,5 s für 7 s Sprache, auf der CPU (-ng -t 12) wären es ~3,3 s
|
|
# --convert: ffmpeg wandelt WebM/Opus, MP4/AAC usw. aus dem Browser um
|
|
cmd: >-
|
|
whisper-server --host 127.0.0.1 --port ${PORT}
|
|
-m /models/whisper/ggml-large-v3-turbo-q8_0.bin
|
|
--inference-path /v1/audio/transcriptions
|
|
--convert --tmp-dir /tmp
|
|
-t 8 -l auto
|
|
aliases: [whisper-1]
|
|
ttl: 0
|
|
|
|
# --- Bilder (/v1/images/generations), sd-server über Vulkan ------------
|
|
z-image:
|
|
name: Z-Image Turbo (Bilder)
|
|
checkEndpoint: /
|
|
cmd: >-
|
|
sd-server --listen-ip 127.0.0.1 --listen-port ${PORT}
|
|
--diffusion-model /models/sd/z_image_turbo-Q8_0.gguf
|
|
--vae /models/sd/ae.safetensors
|
|
--llm /models/sd/Qwen3-4B-Instruct-2507-Q8_0.gguf
|
|
--diffusion-fa --offload-to-cpu
|
|
--cfg-scale 1.0 --steps 8
|
|
--height 1024 --width 1024
|
|
# Der OpenAI-Treiber (z. B. Laravel AI SDK) schickt seine eigenen Modellnamen
|
|
aliases: [gpt-image-1, dall-e-3, dall-e-2]
|
|
ttl: 600
|
|
|
|
# Helfer-Modelle beim Container-Start laden (auch nach Reboot), damit
|
|
# Autocomplete sofort reagiert. Das Chat-Modell lädt beim ersten Request
|
|
# bzw. per scripts/start.sh.
|
|
hooks:
|
|
on_startup:
|
|
preload:
|
|
- qwen2.5-coder-1.5b
|
|
- nomic-embed
|
|
- whisper
|
|
|
|
routing:
|
|
router:
|
|
use: group
|
|
settings:
|
|
groups:
|
|
# Chat-Modelle wechseln sich ab, lassen aber die Helfer in Ruhe
|
|
chat:
|
|
swap: true
|
|
exclusive: false
|
|
members:
|
|
- qwen3.5-35b-a3b
|
|
- glm-4.7-flash
|
|
- qwen3.5-9b
|
|
- z-image
|
|
# Helfer bleiben dauerhaft geladen
|
|
always-on:
|
|
swap: false
|
|
exclusive: false
|
|
persistent: true
|
|
members:
|
|
- qwen2.5-coder-1.5b
|
|
- nomic-embed
|
|
- whisper
|