audio-processing, laravel-support, skript, readme
This commit is contained in:
1 parent
99517f483a
commit
2e2490c1bc
8 files changed
+527
-19
No files matched your search
@@ -0,0 +1,29 @@
|
||||
# llama-swap mit ROCm (LLMs) + whisper-server (Transkription) + sd-server (Bilder)
|
||||
#
|
||||
# Das offizielle unified-Image mit whisper-/sd-server gibt es für AMD nur als
|
||||
# Vulkan-Build, und unter Vulkan ist die Prompt-Verarbeitung von llama.cpp auf
|
||||
# der RX 6950 XT nur halb so schnell wie unter ROCm (siehe PLAN-multimodal.md).
|
||||
# Deshalb: ROCm-Image als Basis, die beiden Server aus dem unified-Image dazu.
|
||||
# Beide Basis-Images sind Ubuntu 24.04 mit identischen Mesa-/Vulkan-Paketen.
|
||||
ARG LLAMA_SWAP_TAG
|
||||
ARG UNIFIED_TAG
|
||||
|
||||
FROM ghcr.io/mostlygeek/llama-swap:${UNIFIED_TAG} AS unified
|
||||
|
||||
FROM ghcr.io/mostlygeek/llama-swap:${LLAMA_SWAP_TAG}
|
||||
|
||||
# Vulkan-Treiber (RADV) für sd-server; ffmpeg ist schon enthalten (whisper --convert)
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1 libgomp1 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# sd-server ist statisch gegen ggml gelinkt
|
||||
COPY --from=unified /usr/local/bin/sd-server /usr/local/bin/sd-server
|
||||
|
||||
# whisper-server bringt eigene ggml-Bibliotheken mit, die dieselben Namen tragen
|
||||
# wie die von llama.cpp in /app – daher getrennt ablegen und per Wrapper laden
|
||||
COPY --from=unified /usr/local/bin/whisper-server /opt/whisper/bin/whisper-server
|
||||
COPY --from=unified /usr/local/lib/libwhisper.so* /usr/local/lib/libggml*.so* /opt/whisper/lib/
|
||||
RUN printf '#!/bin/sh\nLD_LIBRARY_PATH=/opt/whisper/lib exec /opt/whisper/bin/whisper-server "$@"\n' \
|
||||
> /usr/local/bin/whisper-server \
|
||||
&& chmod 755 /usr/local/bin/whisper-server
|
||||
@@ -7,7 +7,13 @@
|
||||
# - 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
|
||||
@@ -61,6 +67,36 @@ models:
|
||||
--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.
|
||||
@@ -69,6 +105,7 @@ hooks:
|
||||
preload:
|
||||
- qwen2.5-coder-1.5b
|
||||
- nomic-embed
|
||||
- whisper
|
||||
|
||||
routing:
|
||||
router:
|
||||
@@ -83,6 +120,7 @@ routing:
|
||||
- qwen3.5-35b-a3b
|
||||
- glm-4.7-flash
|
||||
- qwen3.5-9b
|
||||
- z-image
|
||||
# Helfer bleiben dauerhaft geladen
|
||||
always-on:
|
||||
swap: false
|
||||
@@ -91,3 +129,4 @@ routing:
|
||||
members:
|
||||
- qwen2.5-coder-1.5b
|
||||
- nomic-embed
|
||||
- whisper
|
||||
Reference in new issue
Block a user