|
|
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| === Beschreibung ===
| | '''Hinweis:''' Alle Pfade beziehen sich auf <code>/home/hendrik/Programme/llama.cpp/</code> als Installationsverzeichnis. Bitte entsprechend anpassen. |
| llama.cpp ist eine C/C++ Implementierung für Inference von Large Language Models (LLMs). Es unterstützt verschiedene Backends (CPU, Vulkan, ROCm, CUDA) und ermöglicht das Ausführen von quantisierten Modellen im GGUF-Format. | | |
| | == Beschreibung == |
| | |
| | '''llama.cpp''' ist eine C/C++ Implementierung für Inference von Large Language Models (LLMs). Es unterstützt verschiedene Backends (CPU, Vulkan, ROCm, CUDA) und ermöglicht das Ausführen von quantisierten Modellen im GGUF-Format. |
| | |
| | '''ik_llama.cpp''' ist ein optimierter Fork von llama.cpp mit zusätzlichen Performance-Verbesserungen und Unterstützung für neuere GPU-Architekturen (z.B. gfx1151 / Strix Halo). |
| | |
| | == Download == |
| | |
| | '''llama.cpp:''' |
|
| |
|
| === Download ===
| |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| git clone https://github.com/ggml-org/llama.cpp | | git clone https://github.com/ggml-org/llama.cpp ~/Programme/llama.cpp |
| cd llama.cpp | | cd ~/Programme/llama.cpp |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| === Installation ===
| | '''ik_llama.cpp:''' |
| ==== Vulkan Build ====
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| sudo dnf install libcurl-devel -y
| | git clone https://github.com/ikawrakow/ik_llama.cpp ~/Programme/llama.cpp |
| | cd ~/Programme/llama.cpp |
| </syntaxhighlight> | | </syntaxhighlight> |
| [https://vulkan.lunarg.com/sdk/home Vulkan SDK] herunterladen
| | |
| entpacken, ins Verzeichnis wechseln und source setup-env.sh ausführen. Dann ins Verzeichnis wechseln wo llama.cpp installiert werden soll.
| | == Installation == |
| Dort dann
| | |
| | === Voraussetzungen === |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| source /home/hendrik/Programme/Vulkan_SDK/1.4.335.0/setup-env.sh
| | sudo dnf install libcurl-devel -y |
| cd /home/hendrik/Programme/llama.cpp/ | | </syntaxhighlight> |
| | |
| | {| class="wikitable" |
| | |- |
| | ! GPU !! Architektur !! Standard-Target |
| | |- |
| | | RX 7900 XTX || gfx1100 || '''ja''' |
| | |- |
| | | Strix Halo || gfx1151 || '''ja''' |
| | |- |
| | | MI50 / MI60 || gfx906 || separater Build (siehe unten) |
| | |} |
| | |
| | === Vulkan Build === |
| | |
| | ''Gilt für llama.cpp und ik_llama.cpp.'' |
| | |
| | [https://vulkan.lunarg.com/sdk/home Vulkan SDK] herunterladen, entpacken, ins Verzeichnis wechseln und <code>source setup-env.sh</code> ausführen. Dann ins llama.cpp-Verzeichnis wechseln: |
| | |
| | <syntaxhighlight lang="bash" line="1"> |
| | source ~/Programme/Vulkan_SDK/1.4.335.0/setup-env.sh |
| | cd ~/Programme/llama.cpp/ |
| rm -R build-vulkan | | rm -R build-vulkan |
| cmake -B build-vulkan -DGGML_VULKAN=1 | | cmake -B build-vulkan -DGGML_VULKAN=1 -DGGML_RPC=ON # llama.cpp |
| | # cmake -B build-vulkan -DLLAMA_VULKAN=on -DGGML_RPC=ON # ik_llama.cpp |
| cmake --build build-vulkan --config Release -- -j $(nproc) | | cmake --build build-vulkan --config Release -- -j $(nproc) |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| ==== ROCm Build (getestet mit ROCm 6.4.3 und 7.1.0 ====
| | === ROCm Build (getestet mit ROCm 6.4.3 und 7.1.0) === |
| gfx906 = Mi 50 Support<br> | | |
| gfx1100 = 7900 XTX Support
| | ==== ROCm Quick-Install ==== |
| | |
| | Alle Befehle von der [https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html ROCm Quick-Start Seite] ausführen. |
| | |
| | '''Wichtig für MI50 (gfx906) mit ROCm 6.4:'''<br> |
| | Vor dem Reboot die rocblas-Bibliothek aus dem AUR ergänzen: |
| | |
| | # [https://archlinux.org/packages/extra/x86_64/rocblas/ rocblas aus dem AUR] herunterladen (Version 6.4) |
| | # Entpacken |
| | # Alle Tensor-Dateien mit <code>gfx906</code> im Namen von <code>rocblas-…/opt/rocm/lib/rocblas/library</code> nach <code>/opt/rocm/lib/rocblas/library</code> kopieren |
| | # Reboot |
| | # Prüfen: <code>sudo update-alternatives --display rocm</code> |
| | |
| | ==== ROCm Umgebung einrichten (optional, bei Fehlern) ==== |
|
| |
|
| <syntaxhighlight lang="bash" line="1">
| |
| Copy & paste all the commands from the quick install https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html
| |
| Before rebooting to complete the install, download the 6.4 rocblas from the AUR: https://archlinux.org/packages/extra/x86_64/rocblas/
| |
| Extract it
| |
| Copy all tensor files that contain gfx906 in rocblas-6.4.3-3-x86_64.pkg/opt/rocm/lib/rocblas/library to /opt/rocm/lib/rocblas/library
| |
| Reboot
| |
| Check if it worked by running sudo update-alternatives --display rocm
| |
| </syntaxhighlight>
| |
| # ROCm Umgebung einrichten (optional falls Fehler auftreten)
| |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| echo 'export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH' >> ~/.bashrc | | echo 'export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH' >> ~/.bashrc |
| echo 'export HSA_OVERRIDE_GFX_VERSION=9.0.6' >> ~/.bashrc # Für MI50/MI60 | | echo 'export HSA_OVERRIDE_GFX_VERSION=9.0.6' >> ~/.bashrc # Für MI50/MI60 |
| source ~/.bashrc | | source ~/.bashrc |
| </syntaxhighlight>
| |
| <syntaxhighlight lang="bash" line="1">
| |
| sudo dnf install rocwmma-devel -y | | sudo dnf install rocwmma-devel -y |
| </syntaxhighlight> | | </syntaxhighlight> |
| # llama.cpp kompilieren
| | |
| | ==== llama.cpp kompilieren (ROCm) ==== |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| cd /home/hendrik/Programme/llama.cpp/ && rm -R build-rocm-old && cp -R build-rocm build-rocm-old | | cd ~/Programme/llama.cpp/ && git pull && rm -R build-rocm-old && cp -R build-rocm build-rocm-old |
| HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -B build-rocm -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1100 -DCMAKE_BUILD_TYPE=Release | | HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -B build-rocm -DGGML_HIP=ON -DGGML_RPC=ON -DAMDGPU_TARGETS=gfx1100,gfx1151 -DCMAKE_BUILD_TYPE=Release |
| cmake --build build-rocm --config Release -- -j 16 | | cmake --build build-rocm --config Release -- -j 16 |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| Für mehrere GPU-Architekturen gleichzeitig: | | '''Für MI50 (gfx906) — separater Build:''' |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| # Für MI50 (gfx906) und RX 7900 XTX (gfx1100)
| | cd ~/Programme/llama.cpp/ && rm -R build-rocm-old && cp -R build-rocm build-rocm-old |
| HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" \ | | HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -B build-rocm -DGGML_HIP=ON -DGGML_RPC=ON -DAMDGPU_TARGETS=gfx906 -DCMAKE_BUILD_TYPE=Release |
| cmake -S . -B build -DGGML_HIP=ON -DAMDGPU_TARGETS="gfx906;gfx1100" \
| | cmake --build build-rocm --config Release -- -j 16 |
| -DCMAKE_BUILD_TYPE=Release && \
| |
| cmake --build build --config Release -- -j 8
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| === ik_llama.cpp === | | ==== ik_llama.cpp kompilieren (ROCm) ==== |
| ==== Vulkan Build ====
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| sudo dnf install libcurl-devel -y
| | cd ~/Programme/llama.cpp/ && rm -R build-rocm-old && cp -R build-rocm build-rocm-old |
| </syntaxhighlight>
| | HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -B build-rocm -DGGML_HIP=ON -DGGML_RPC=ON -DAMDGPU_TARGETS=gfx1100,gfx1151 -DCMAKE_BUILD_TYPE=Release |
| [https://vulkan.lunarg.com/sdk/home Vulkan SDK] herunterladen
| | cmake --build build-rocm --config Release -- -j 16 |
| entpacken, ins Verzeichnis wechseln und source setup-env.sh ausführen. Dann ins Verzeichnis wechseln wo llama.cpp installiert werden soll.
| |
| Dort dann
| |
| <syntaxhighlight lang="bash" line="1">
| |
| source /home/hendrik/Programme/Vulkan_SDK/1.4.335.0/setup-env.sh
| |
| cd /home/hendrik/Programme/llama.cpp/ | |
| rm -R build-vulkan | |
| cmake -B build-vulkan -DLLAMA_VULKAN=on | |
| cmake --build build-vulkan --config Release -- -j $(nproc) | |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| ==== ROCm Build (getestet mit ROCm 6.4.3 und 7.1.0 ==== | | === Build prüfen === |
| gfx906 = Mi 50 Support<br>
| | |
| gfx1100 = 7900 XTX Support
| |
| # llama.cpp kompilieren
| |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| cd /home/hendrik/Programme/llama.cpp/ && rm -R build-rocm-old && cp -R build-rocm build-rocm-old
| | ./build/bin/llama-server --version |
| HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -B build-rocm -DLLAMA_HIPBLAS=on -DAMDGPU_TARGETS=gfx1100 -DCMAKE_BUILD_TYPE=Release
| |
| cmake --build build-rocm --config Release -- -j 16
| |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| === Konfiguration ===
| | == Konfiguration == |
|
| |
|
| ==== llama-server als systemd Service einrichten ====
| | === llama-server als systemd Service einrichten === |
|
| |
|
| '''Service-Datei erstellen:''' | | '''Service-Datei erstellen:''' |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| sudo nano /etc/systemd/system/llama-server.service | | sudo nano /etc/systemd/system/llama-server.service |
| Zeile 97: |
Zeile 122: |
|
| |
|
| '''Service-Datei Inhalt (Multi-GPU mit ROCm):''' | | '''Service-Datei Inhalt (Multi-GPU mit ROCm):''' |
| | |
| <syntaxhighlight lang="ini" line="1"> | | <syntaxhighlight lang="ini" line="1"> |
| [Unit] | | [Unit] |
| Zeile 104: |
Zeile 130: |
| [Service] | | [Service] |
| Type=simple | | Type=simple |
| User=username | | User=hendrik |
| Group=username | | Group=hendrik |
| WorkingDirectory=/home/username/llama.cpp/build/bin | | WorkingDirectory=/home/hendrik/Programme/llama.cpp/build/bin |
|
| |
|
| # Multi-GPU Konfiguration | | # Multi-GPU Konfiguration |
| Zeile 115: |
Zeile 141: |
|
| |
|
| # Server mit optimalen Multi-GPU Einstellungen | | # Server mit optimalen Multi-GPU Einstellungen |
| ExecStart=/home/username/llama.cpp/build/bin/llama-server \ | | ExecStart=/home/hendrik/Programme/llama.cpp/build/bin/llama-server \ |
| -m /home/username/models/model.gguf \ | | -m /home/hendrik/models/model.gguf \ |
| --split-mode row \ | | --split-mode row \ |
| --tensor-split 0.5,0.5 \ | | --tensor-split 0.5,0.5 \ |
| Zeile 143: |
Zeile 169: |
|
| |
|
| '''Service aktivieren und starten:''' | | '''Service aktivieren und starten:''' |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| # Service neu laden
| |
| sudo systemctl daemon-reload | | sudo systemctl daemon-reload |
| | | sudo systemctl enable llama-server # Auto-Start beim Boot |
| # Service aktivieren (Auto-Start beim Boot)
| |
| sudo systemctl enable llama-server | |
| | |
| # Service starten | |
| sudo systemctl start llama-server | | sudo systemctl start llama-server |
| | sudo systemctl status llama-server # Status prüfen |
| | sudo journalctl -u llama-server -f # Logs verfolgen |
| | </syntaxhighlight> |
|
| |
|
| # Status prüfen
| | '''Service verwalten:''' |
| sudo systemctl status llama-server
| |
|
| |
|
| # Logs anzeigen | | <syntaxhighlight lang="bash" line="1"> |
| sudo journalctl -u llama-server -f | | sudo systemctl stop llama-server # Stoppen |
| | sudo systemctl restart llama-server # Neustarten |
| | sudo systemctl disable llama-server # Autostart deaktivieren |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| '''Service Management:'''
| | === Manuelle Server-Starts === |
| <syntaxhighlight lang="bash" line="1">
| |
| # Service stoppen
| |
| sudo systemctl stop llama-server
| |
|
| |
|
| # Service neustarten
| | '''Multi-GPU (ROCm) — optimal:''' |
| sudo systemctl restart llama-server
| |
|
| |
|
| # Service deaktivieren
| |
| sudo systemctl disable llama-server
| |
|
| |
| ==== Manuelle Server-Starts ====
| |
| '''Multi-GPU (ROCm) - Optimal:'''
| |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| HIP_VISIBLE_DEVICES=0,1 ./llama-server \ | | HIP_VISIBLE_DEVICES=0,1 ./llama-server \ |
| Zeile 190: |
Zeile 207: |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| === Update === | | === RPC — Verteiltes Inference über mehrere Hosts === |
| | |
| | Mit <code>-DGGML_RPC=ON</code> wird der <code>rpc-server</code> mitgebaut, der es ermöglicht, die Inferenz über das Netzwerk auf mehrere Maschinen zu verteilen. Jeder Remote-Host stellt seine GPU(s) über einen rpc-server zur Verfügung; der Main-Host verbindet sich darüber mit <code>--rpc</code>. |
| | |
| | '''Voraussetzung:''' Auf '''allen''' Hosts muss llama.cpp mit <code>-DGGML_RPC=ON</code> kompiliert sein (siehe Build-Abschnitte oben). Die Netzwerkverbindung zwischen den Hosts muss bestehen. |
| | |
| | ==== 1. RPC-Server auf allen Remote-Hosts starten ==== |
| | |
| | Auf jedem Host, der seine GPU zur Verfügung stellen soll: |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| cd ~/llama.cpp | | cd ~/Programme/llama.cpp/ |
| git pull
| | ./build/bin/rpc-server --host 0.0.0.0 |
| cmake --build build --config Release -- -j $(nproc)
| | </syntaxhighlight> |
| | |
| | Standardmäßig lauscht der rpc-server auf Port '''50052'''. Mit <code>--port</code> kann ein anderer Port gewählt werden. |
| | |
| | ==== 2. llama-server auf dem Main-Host starten ==== |
| | |
| | Auf dem Host, der die Inferenz koordiniert: |
|
| |
|
| # Service neu starten falls aktiv
| | <syntaxhighlight lang="bash" line="1"> |
| sudo systemctl restart llama-server
| | ./llama-server \ |
| | --model ~/.lmstudio/models/unsloth/Step-3.7-Flash-GGUF/Step-3.7-Flash-UD-IQ4_XS-00001-of-00003.gguf \ |
| | -ngl 99 \ |
| | --rpc localhost:50052,192.168.1.19:50052 |
| </syntaxhighlight> | | </syntaxhighlight> |
| === Befehlszeilenargumente === | | |
| llama-server
| | Dabei ist <code>localhost:50052</code> die lokale GPU und <code>192.168.1.19:50052</code> die Remote-GPU. |
| | |
| | ==== rpc-server als systemd Service (Remote-Host) ==== |
| | |
| | '''Service-Datei erstellen:''' |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| -h, --help, --usage print usage and exit
| | sudo nano /etc/systemd/system/llama-rpc.service |
| --version show version and build info
| | </syntaxhighlight> |
| -cl, --cache-list show list of models in cache
| |
| --completion-bash print source-able bash completion script for llama.cpp
| |
| --verbose-prompt print a verbose prompt before generation (default: false)
| |
| -t, --threads N number of CPU threads to use during generation (default: -1)
| |
| (env: LLAMA_ARG_THREADS)
| |
| -tb, --threads-batch N number of threads to use during batch and prompt processing (default:
| |
| same as --threads)
| |
| -C, --cpu-mask M CPU affinity mask: arbitrarily long hex. Complements cpu-range
| |
| (default: "")
| |
| -Cr, --cpu-range lo-hi range of CPUs for affinity. Complements --cpu-mask
| |
| --cpu-strict <0|1> use strict CPU placement (default: 0)
| |
| --prio N set process/thread priority : low(-1), normal(0), medium(1), high(2),
| |
| realtime(3) (default: 0)
| |
| --poll <0...100> use polling level to wait for work (0 - no polling, default: 50)
| |
| -Cb, --cpu-mask-batch M CPU affinity mask: arbitrarily long hex. Complements cpu-range-batch
| |
| (default: same as --cpu-mask)
| |
| -Crb, --cpu-range-batch lo-hi ranges of CPUs for affinity. Complements --cpu-mask-batch
| |
| --cpu-strict-batch <0|1> use strict CPU placement (default: same as --cpu-strict)
| |
| --prio-batch N set process/thread priority : 0-normal, 1-medium, 2-high, 3-realtime
| |
| (default: 0)
| |
| --poll-batch <0|1> use polling to wait for work (default: same as --poll)
| |
| -c, --ctx-size N size of the prompt context (default: 4096, 0 = loaded from model)
| |
| (env: LLAMA_ARG_CTX_SIZE)
| |
| -n, --predict, --n-predict N number of tokens to predict (default: -1, -1 = infinity)
| |
| (env: LLAMA_ARG_N_PREDICT)
| |
| -b, --batch-size N logical maximum batch size (default: 2048)
| |
| (env: LLAMA_ARG_BATCH)
| |
| -ub, --ubatch-size N physical maximum batch size (default: 512)
| |
| (env: LLAMA_ARG_UBATCH)
| |
| --keep N number of tokens to keep from the initial prompt (default: 0, -1 =
| |
| all)
| |
| --swa-full use full-size SWA cache (default: false)
| |
| [(more
| |
| info)](https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055)
| |
| (env: LLAMA_ARG_SWA_FULL)
| |
| --kv-unified, -kvu use single unified KV buffer for the KV cache of all sequences
| |
| (default: false)
| |
| [(more info)](https://github.com/ggml-org/llama.cpp/pull/14363)
| |
| (env: LLAMA_ARG_KV_SPLIT)
| |
| -fa, --flash-attn [on|off|auto] set Flash Attention use ('on', 'off', or 'auto', default: 'auto')
| |
| (env: LLAMA_ARG_FLASH_ATTN)
| |
| --no-perf disable internal libllama performance timings (default: false)
| |
| (env: LLAMA_ARG_NO_PERF)
| |
| -e, --escape process escapes sequences (\n, \r, \t, \', \", \\) (default: true)
| |
| --no-escape do not process escape sequences
| |
| --rope-scaling {none,linear,yarn} RoPE frequency scaling method, defaults to linear unless specified by
| |
| the model
| |
| (env: LLAMA_ARG_ROPE_SCALING_TYPE)
| |
| --rope-scale N RoPE context scaling factor, expands context by a factor of N
| |
| (env: LLAMA_ARG_ROPE_SCALE)
| |
| --rope-freq-base N RoPE base frequency, used by NTK-aware scaling (default: loaded from
| |
| model)
| |
| (env: LLAMA_ARG_ROPE_FREQ_BASE)
| |
| --rope-freq-scale N RoPE frequency scaling factor, expands context by a factor of 1/N
| |
| (env: LLAMA_ARG_ROPE_FREQ_SCALE)
| |
| --yarn-orig-ctx N YaRN: original context size of model (default: 0 = model training
| |
| context size)
| |
| (env: LLAMA_ARG_YARN_ORIG_CTX)
| |
| --yarn-ext-factor N YaRN: extrapolation mix factor (default: -1.0, 0.0 = full
| |
| interpolation)
| |
| (env: LLAMA_ARG_YARN_EXT_FACTOR)
| |
| --yarn-attn-factor N YaRN: scale sqrt(t) or attention magnitude (default: -1.0)
| |
| (env: LLAMA_ARG_YARN_ATTN_FACTOR)
| |
| --yarn-beta-slow N YaRN: high correction dim or alpha (default: -1.0)
| |
| (env: LLAMA_ARG_YARN_BETA_SLOW)
| |
| --yarn-beta-fast N YaRN: low correction dim or beta (default: -1.0)
| |
| (env: LLAMA_ARG_YARN_BETA_FAST)
| |
| -nkvo, --no-kv-offload disable KV offload
| |
| (env: LLAMA_ARG_NO_KV_OFFLOAD)
| |
| -nr, --no-repack disable weight repacking
| |
| (env: LLAMA_ARG_NO_REPACK)
| |
| --no-host bypass host buffer allowing extra buffers to be used
| |
| (env: LLAMA_ARG_NO_HOST)
| |
| -ctk, --cache-type-k TYPE KV cache data type for K
| |
| allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
| |
| (default: f16)
| |
| (env: LLAMA_ARG_CACHE_TYPE_K)
| |
| -ctv, --cache-type-v TYPE KV cache data type for V
| |
| allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
| |
| (default: f16)
| |
| (env: LLAMA_ARG_CACHE_TYPE_V)
| |
| -dt, --defrag-thold N KV cache defragmentation threshold (DEPRECATED)
| |
| (env: LLAMA_ARG_DEFRAG_THOLD)
| |
| -np, --parallel N number of parallel sequences to decode (default: 1)
| |
| (env: LLAMA_ARG_N_PARALLEL)
| |
| --mlock force system to keep model in RAM rather than swapping or compressing
| |
| (env: LLAMA_ARG_MLOCK)
| |
| --no-mmap do not memory-map model (slower load but may reduce pageouts if not
| |
| using mlock)
| |
| (env: LLAMA_ARG_NO_MMAP)
| |
| --numa TYPE attempt optimizations that help on some NUMA systems
| |
| - distribute: spread execution evenly over all nodes
| |
| - isolate: only spawn threads on CPUs on the node that execution
| |
| started on
| |
| - numactl: use the CPU map provided by numactl
| |
| if run without this previously, it is recommended to drop the system
| |
| page cache before using this
| |
| see https://github.com/ggml-org/llama.cpp/issues/1437
| |
| (env: LLAMA_ARG_NUMA)
| |
| -dev, --device <dev1,dev2,..> comma-separated list of devices to use for offloading (none = don't
| |
| offload)
| |
| use --list-devices to see a list of available devices
| |
| (env: LLAMA_ARG_DEVICE)
| |
| --list-devices print list of available devices and exit
| |
| --override-tensor, -ot <tensor name pattern>=<buffer type>,...
| |
| override tensor buffer type
| |
| --cpu-moe, -cmoe keep all Mixture of Experts (MoE) weights in the CPU
| |
| (env: LLAMA_ARG_CPU_MOE)
| |
| --n-cpu-moe, -ncmoe N keep the Mixture of Experts (MoE) weights of the first N layers in the
| |
| CPU
| |
| (env: LLAMA_ARG_N_CPU_MOE)
| |
| -ngl, --gpu-layers, --n-gpu-layers N max. number of layers to store in VRAM (default: -1)
| |
| (env: LLAMA_ARG_N_GPU_LAYERS)
| |
| -sm, --split-mode {none,layer,row} how to split the model across multiple GPUs, one of:
| |
| - none: use one GPU only
| |
| - layer (default): split layers and KV across GPUs
| |
| - row: split rows across GPUs
| |
| (env: LLAMA_ARG_SPLIT_MODE)
| |
| -ts, --tensor-split N0,N1,N2,... fraction of the model to offload to each GPU, comma-separated list of
| |
| proportions, e.g. 3,1
| |
| (env: LLAMA_ARG_TENSOR_SPLIT)
| |
| -mg, --main-gpu INDEX the GPU to use for the model (with split-mode = none), or for
| |
| intermediate results and KV (with split-mode = row) (default: 0)
| |
| (env: LLAMA_ARG_MAIN_GPU)
| |
| --check-tensors check model tensor data for invalid values (default: false)
| |
| --override-kv KEY=TYPE:VALUE advanced option to override model metadata by key. may be specified
| |
| multiple times.
| |
| types: int, float, bool, str. example: --override-kv
| |
| tokenizer.ggml.add_bos_token=bool:false
| |
| --no-op-offload disable offloading host tensor operations to device (default: false)
| |
| --lora FNAME path to LoRA adapter (can be repeated to use multiple adapters)
| |
| --lora-scaled FNAME SCALE path to LoRA adapter with user defined scaling (can be repeated to use
| |
| multiple adapters)
| |
| --control-vector FNAME add a control vector
| |
| note: this argument can be repeated to add multiple control vectors
| |
| --control-vector-scaled FNAME SCALE add a control vector with user defined scaling SCALE
| |
| note: this argument can be repeated to add multiple scaled control
| |
| vectors
| |
| --control-vector-layer-range START END
| |
| layer range to apply the control vector(s) to, start and end inclusive
| |
| -m, --model FNAME model path (default: `models/$filename` with filename from `--hf-file`
| |
| or `--model-url` if set, otherwise models/7B/ggml-model-f16.gguf)
| |
| (env: LLAMA_ARG_MODEL)
| |
| -mu, --model-url MODEL_URL model download url (default: unused)
| |
| (env: LLAMA_ARG_MODEL_URL)
| |
| -dr, --docker-repo [<repo>/]<model>[:quant]
| |
| Docker Hub model repository. repo is optional, default to ai/. quant
| |
| is optional, default to :latest.
| |
| example: gemma3
| |
| (default: unused)
| |
| (env: LLAMA_ARG_DOCKER_REPO)
| |
| -hf, -hfr, --hf-repo <user>/<model>[:quant]
| |
| Hugging Face model repository; quant is optional, case-insensitive,
| |
| default to Q4_K_M, or falls back to the first file in the repo if
| |
| Q4_K_M doesn't exist.
| |
| mmproj is also downloaded automatically if available. to disable, add
| |
| --no-mmproj
| |
| example: unsloth/phi-4-GGUF:q4_k_m
| |
| (default: unused)
| |
| (env: LLAMA_ARG_HF_REPO)
| |
| -hfd, -hfrd, --hf-repo-draft <user>/<model>[:quant]
| |
| Same as --hf-repo, but for the draft model (default: unused)
| |
| (env: LLAMA_ARG_HFD_REPO)
| |
| -hff, --hf-file FILE Hugging Face model file. If specified, it will override the quant in
| |
| --hf-repo (default: unused)
| |
| (env: LLAMA_ARG_HF_FILE)
| |
| -hfv, -hfrv, --hf-repo-v <user>/<model>[:quant]
| |
| Hugging Face model repository for the vocoder model (default: unused)
| |
| (env: LLAMA_ARG_HF_REPO_V)
| |
| -hffv, --hf-file-v FILE Hugging Face model file for the vocoder model (default: unused)
| |
| (env: LLAMA_ARG_HF_FILE_V)
| |
| -hft, --hf-token TOKEN Hugging Face access token (default: value from HF_TOKEN environment
| |
| variable)
| |
| (env: HF_TOKEN)
| |
| --log-disable Log disable
| |
| --log-file FNAME Log to file
| |
| --log-colors [on|off|auto] Set colored logging ('on', 'off', or 'auto', default: 'auto')
| |
| 'auto' enables colors when output is to a terminal
| |
| (env: LLAMA_LOG_COLORS)
| |
| -v, --verbose, --log-verbose Set verbosity level to infinity (i.e. log all messages, useful for
| |
| debugging)
| |
| --offline Offline mode: forces use of cache, prevents network access
| |
| (env: LLAMA_OFFLINE)
| |
| -lv, --verbosity, --log-verbosity N Set the verbosity threshold. Messages with a higher verbosity will be
| |
| ignored.
| |
| (env: LLAMA_LOG_VERBOSITY)
| |
| --log-prefix Enable prefix in log messages
| |
| (env: LLAMA_LOG_PREFIX)
| |
| --log-timestamps Enable timestamps in log messages
| |
| (env: LLAMA_LOG_TIMESTAMPS)
| |
| -ctkd, --cache-type-k-draft TYPE KV cache data type for K for the draft model
| |
| allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
| |
| (default: f16)
| |
| (env: LLAMA_ARG_CACHE_TYPE_K_DRAFT)
| |
| -ctvd, --cache-type-v-draft TYPE KV cache data type for V for the draft model
| |
| allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
| |
| (default: f16)
| |
| (env: LLAMA_ARG_CACHE_TYPE_V_DRAFT)
| |
|
| |
|
| | '''Service-Datei Inhalt:''' |
|
| |
|
| ----- sampling params -----
| | <syntaxhighlight lang="ini" line="1"> |
| | [Unit] |
| | Description=Llama.cpp RPC Server (Remote GPU) |
| | After=network.target |
|
| |
|
| --samplers SAMPLERS samplers that will be used for generation in the order, separated by
| | [Service] |
| ';'
| | Type=simple |
| (default:
| | User=hendrik |
| penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature)
| | Group=hendrik |
| -s, --seed SEED RNG seed (default: -1, use random seed for -1)
| | WorkingDirectory=/home/hendrik/Programme/llama.cpp/build/bin |
| --sampling-seq, --sampler-seq SEQUENCE
| |
| simplified sequence for samplers that will be used (default:
| |
| edskypmxt)
| |
| --ignore-eos ignore end of stream token and continue generating (implies
| |
| --logit-bias EOS-inf)
| |
| --temp N temperature (default: 0.8)
| |
| --top-k N top-k sampling (default: 40, 0 = disabled)
| |
| --top-p N top-p sampling (default: 0.9, 1.0 = disabled)
| |
| --min-p N min-p sampling (default: 0.1, 0.0 = disabled)
| |
| --top-nsigma N top-n-sigma sampling (default: -1.0, -1.0 = disabled)
| |
| --xtc-probability N xtc probability (default: 0.0, 0.0 = disabled)
| |
| --xtc-threshold N xtc threshold (default: 0.1, 1.0 = disabled)
| |
| --typical N locally typical sampling, parameter p (default: 1.0, 1.0 = disabled)
| |
| --repeat-last-n N last n tokens to consider for penalize (default: 64, 0 = disabled, -1
| |
| = ctx_size)
| |
| --repeat-penalty N penalize repeat sequence of tokens (default: 1.0, 1.0 = disabled)
| |
| --presence-penalty N repeat alpha presence penalty (default: 0.0, 0.0 = disabled)
| |
| --frequency-penalty N repeat alpha frequency penalty (default: 0.0, 0.0 = disabled)
| |
| --dry-multiplier N set DRY sampling multiplier (default: 0.0, 0.0 = disabled)
| |
| --dry-base N set DRY sampling base value (default: 1.75)
| |
| --dry-allowed-length N set allowed length for DRY sampling (default: 2)
| |
| --dry-penalty-last-n N set DRY penalty for the last n tokens (default: -1, 0 = disable, -1 =
| |
| context size)
| |
| --dry-sequence-breaker STRING add sequence breaker for DRY sampling, clearing out default breakers
| |
| ('\n', ':', '"', '*') in the process; use "none" to not use any
| |
| sequence breakers
| |
| --dynatemp-range N dynamic temperature range (default: 0.0, 0.0 = disabled)
| |
| --dynatemp-exp N dynamic temperature exponent (default: 1.0)
| |
| --mirostat N use Mirostat sampling.
| |
| Top K, Nucleus and Locally Typical samplers are ignored if used.
| |
| (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)
| |
| --mirostat-lr N Mirostat learning rate, parameter eta (default: 0.1)
| |
| --mirostat-ent N Mirostat target entropy, parameter tau (default: 5.0)
| |
| -l, --logit-bias TOKEN_ID(+/-)BIAS modifies the likelihood of token appearing in the completion,
| |
| i.e. `--logit-bias 15043+1` to increase likelihood of token ' Hello',
| |
| or `--logit-bias 15043-1` to decrease likelihood of token ' Hello'
| |
| --grammar GRAMMAR BNF-like grammar to constrain generations (see samples in grammars/
| |
| dir) (default: '')
| |
| --grammar-file FNAME file to read grammar from
| |
| -j, --json-schema SCHEMA JSON schema to constrain generations (https://json-schema.org/), e.g.
| |
| `{}` for any JSON object
| |
| For schemas w/ external $refs, use --grammar +
| |
| example/json_schema_to_grammar.py instead
| |
| -jf, --json-schema-file FILE File containing a JSON schema to constrain generations
| |
| (https://json-schema.org/), e.g. `{}` for any JSON object
| |
| For schemas w/ external $refs, use --grammar +
| |
| example/json_schema_to_grammar.py instead
| |
|
| |
|
| | Environment="HIP_VISIBLE_DEVICES=0" |
| | Environment="PATH=/opt/rocm/bin:/usr/local/bin:/usr/bin:/bin" |
| | Environment="LD_LIBRARY_PATH=/opt/rocm/lib" |
|
| |
|
| ----- example-specific params ----- | | ExecStart=/home/hendrik/Programme/llama.cpp/build/bin/rpc-server --host 0.0.0.0 |
|
| |
|
| --ctx-checkpoints, --swa-checkpoints N
| | Restart=always |
| max number of context checkpoints to create per slot (default: 8)
| | RestartSec=10 |
| [(more info)](https://github.com/ggml-org/llama.cpp/pull/15293)
| | StandardOutput=journal |
| (env: LLAMA_ARG_CTX_CHECKPOINTS)
| | StandardError=journal |
| --cache-ram, -cram N set the maximum cache size in MiB (default: 8192, -1 - no limit, 0 -
| | SyslogIdentifier=llama-rpc |
| disable)
| | |
| [(more info)](https://github.com/ggml-org/llama.cpp/pull/16391)
| | [Install] |
| (env: LLAMA_ARG_CACHE_RAM)
| | WantedBy=multi-user.target |
| --no-context-shift disables context shift on infinite text generation (default: enabled)
| |
| (env: LLAMA_ARG_NO_CONTEXT_SHIFT)
| |
| --context-shift enables context shift on infinite text generation (default: disabled)
| |
| (env: LLAMA_ARG_CONTEXT_SHIFT)
| |
| -r, --reverse-prompt PROMPT halt generation at PROMPT, return control in interactive mode
| |
| -sp, --special special tokens output enabled (default: false)
| |
| --no-warmup skip warming up the model with an empty run
| |
| --spm-infill use Suffix/Prefix/Middle pattern for infill (instead of
| |
| Prefix/Suffix/Middle) as some models prefer this. (default: disabled)
| |
| --pooling {none,mean,cls,last,rank} pooling type for embeddings, use model default if unspecified
| |
| (env: LLAMA_ARG_POOLING)
| |
| -cb, --cont-batching enable continuous batching (a.k.a dynamic batching) (default: enabled)
| |
| (env: LLAMA_ARG_CONT_BATCHING)
| |
| -nocb, --no-cont-batching disable continuous batching
| |
| (env: LLAMA_ARG_NO_CONT_BATCHING)
| |
| --mmproj FILE path to a multimodal projector file. see tools/mtmd/README.md
| |
| note: if -hf is used, this argument can be omitted
| |
| (env: LLAMA_ARG_MMPROJ)
| |
| --mmproj-url URL URL to a multimodal projector file. see tools/mtmd/README.md
| |
| (env: LLAMA_ARG_MMPROJ_URL)
| |
| --no-mmproj explicitly disable multimodal projector, useful when using -hf
| |
| (env: LLAMA_ARG_NO_MMPROJ)
| |
| --no-mmproj-offload do not offload multimodal projector to GPU
| |
| (env: LLAMA_ARG_NO_MMPROJ_OFFLOAD)
| |
| --image-min-tokens N minimum number of tokens each image can take, only used by vision
| |
| models with dynamic resolution (default: read from model)
| |
| (env: LLAMA_ARG_IMAGE_MIN_TOKENS)
| |
| --image-max-tokens N maximum number of tokens each image can take, only used by vision
| |
| models with dynamic resolution (default: read from model)
| |
| (env: LLAMA_ARG_IMAGE_MAX_TOKENS)
| |
| --override-tensor-draft, -otd <tensor name pattern>=<buffer type>,...
| |
| override tensor buffer type for draft model
| |
| --cpu-moe-draft, -cmoed keep all Mixture of Experts (MoE) weights in the CPU for the draft
| |
| model
| |
| (env: LLAMA_ARG_CPU_MOE_DRAFT)
| |
| --n-cpu-moe-draft, -ncmoed N keep the Mixture of Experts (MoE) weights of the first N layers in the
| |
| CPU for the draft model
| |
| (env: LLAMA_ARG_N_CPU_MOE_DRAFT)
| |
| -a, --alias STRING set alias for model name (to be used by REST API)
| |
| (env: LLAMA_ARG_ALIAS)
| |
| --host HOST ip address to listen, or bind to an UNIX socket if the address ends
| |
| with .sock (default: 127.0.0.1)
| |
| (env: LLAMA_ARG_HOST)
| |
| --port PORT port to listen (default: 8080)
| |
| (env: LLAMA_ARG_PORT)
| |
| --path PATH path to serve static files from (default: )
| |
| (env: LLAMA_ARG_STATIC_PATH)
| |
| --api-prefix PREFIX prefix path the server serves from, without the trailing slash
| |
| (default: )
| |
| (env: LLAMA_ARG_API_PREFIX)
| |
| --no-webui Disable the Web UI (default: enabled)
| |
| (env: LLAMA_ARG_NO_WEBUI)
| |
| --embedding, --embeddings restrict to only support embedding use case; use only with dedicated
| |
| embedding models (default: disabled)
| |
| (env: LLAMA_ARG_EMBEDDINGS)
| |
| --reranking, --rerank enable reranking endpoint on server (default: disabled)
| |
| (env: LLAMA_ARG_RERANKING)
| |
| --api-key KEY API key to use for authentication (default: none)
| |
| (env: LLAMA_API_KEY)
| |
| --api-key-file FNAME path to file containing API keys (default: none)
| |
| --ssl-key-file FNAME path to file a PEM-encoded SSL private key
| |
| (env: LLAMA_ARG_SSL_KEY_FILE)
| |
| --ssl-cert-file FNAME path to file a PEM-encoded SSL certificate
| |
| (env: LLAMA_ARG_SSL_CERT_FILE)
| |
| --chat-template-kwargs STRING sets additional params for the json template parser
| |
| (env: LLAMA_CHAT_TEMPLATE_KWARGS)
| |
| -to, --timeout N server read/write timeout in seconds (default: 600)
| |
| (env: LLAMA_ARG_TIMEOUT)
| |
| --threads-http N number of threads used to process HTTP requests (default: -1)
| |
| (env: LLAMA_ARG_THREADS_HTTP)
| |
| --cache-reuse N min chunk size to attempt reusing from the cache via KV shifting
| |
| (default: 0)
| |
| [(card)](https://ggml.ai/f0.png)
| |
| (env: LLAMA_ARG_CACHE_REUSE)
| |
| --metrics enable prometheus compatible metrics endpoint (default: disabled)
| |
| (env: LLAMA_ARG_ENDPOINT_METRICS)
| |
| --props enable changing global properties via POST /props (default: disabled)
| |
| (env: LLAMA_ARG_ENDPOINT_PROPS)
| |
| --slots enable slots monitoring endpoint (default: enabled)
| |
| (env: LLAMA_ARG_ENDPOINT_SLOTS)
| |
| --no-slots disables slots monitoring endpoint
| |
| (env: LLAMA_ARG_NO_ENDPOINT_SLOTS)
| |
| --slot-save-path PATH path to save slot kv cache (default: disabled)
| |
| --jinja use jinja template for chat (default: disabled)
| |
| (env: LLAMA_ARG_JINJA)
| |
| --reasoning-format FORMAT controls whether thought tags are allowed and/or extracted from the
| |
| response, and in which format they're returned; one of:
| |
| - none: leaves thoughts unparsed in `message.content`
| |
| - deepseek: puts thoughts in `message.reasoning_content`
| |
| - deepseek-legacy: keeps `<think>` tags in `message.content` while
| |
| also populating `message.reasoning_content`
| |
| (default: auto)
| |
| (env: LLAMA_ARG_THINK)
| |
| --reasoning-budget N controls the amount of thinking allowed; currently only one of: -1 for
| |
| unrestricted thinking budget, or 0 to disable thinking (default: -1)
| |
| (env: LLAMA_ARG_THINK_BUDGET)
| |
| --chat-template JINJA_TEMPLATE set custom jinja chat template (default: template taken from model's
| |
| metadata)
| |
| if suffix/prefix are specified, template will be disabled
| |
| only commonly used templates are accepted (unless --jinja is set
| |
| before this flag):
| |
| list of built-in templates:
| |
| bailing, bailing-think, bailing2, chatglm3, chatglm4, chatml,
| |
| command-r, deepseek, deepseek2, deepseek3, exaone3, exaone4, falcon3,
| |
| gemma, gigachat, glmedge, gpt-oss, granite, grok-2, hunyuan-dense,
| |
| hunyuan-moe, kimi-k2, llama2, llama2-sys, llama2-sys-bos,
| |
| llama2-sys-strip, llama3, llama4, megrez, minicpm, mistral-v1,
| |
| mistral-v3, mistral-v3-tekken, mistral-v7, mistral-v7-tekken, monarch,
| |
| openchat, orion, pangu-embedded, phi3, phi4, rwkv-world, seed_oss,
| |
| smolvlm, vicuna, vicuna-orca, yandex, zephyr
| |
| (env: LLAMA_ARG_CHAT_TEMPLATE)
| |
| --chat-template-file JINJA_TEMPLATE_FILE
| |
| set custom jinja chat template file (default: template taken from
| |
| model's metadata)
| |
| if suffix/prefix are specified, template will be disabled
| |
| only commonly used templates are accepted (unless --jinja is set
| |
| before this flag):
| |
| list of built-in templates:
| |
| bailing, bailing-think, bailing2, chatglm3, chatglm4, chatml,
| |
| command-r, deepseek, deepseek2, deepseek3, exaone3, exaone4, falcon3,
| |
| gemma, gigachat, glmedge, gpt-oss, granite, grok-2, hunyuan-dense,
| |
| hunyuan-moe, kimi-k2, llama2, llama2-sys, llama2-sys-bos,
| |
| llama2-sys-strip, llama3, llama4, megrez, minicpm, mistral-v1,
| |
| mistral-v3, mistral-v3-tekken, mistral-v7, mistral-v7-tekken, monarch,
| |
| openchat, orion, pangu-embedded, phi3, phi4, rwkv-world, seed_oss,
| |
| smolvlm, vicuna, vicuna-orca, yandex, zephyr
| |
| (env: LLAMA_ARG_CHAT_TEMPLATE_FILE)
| |
| --no-prefill-assistant whether to prefill the assistant's response if the last message is an
| |
| assistant message (default: prefill enabled)
| |
| when this flag is set, if the last message is an assistant message
| |
| then it will be treated as a full message and not prefilled
| |
|
| |
| (env: LLAMA_ARG_NO_PREFILL_ASSISTANT)
| |
| -sps, --slot-prompt-similarity SIMILARITY
| |
| how much the prompt of a request must match the prompt of a slot in
| |
| order to use that slot (default: 0.10, 0.0 = disabled)
| |
| --lora-init-without-apply load LoRA adapters without applying them (apply later via POST | |
| /lora-adapters) (default: disabled)
| |
| -td, --threads-draft N number of threads to use during generation (default: same as
| |
| --threads)
| |
| -tbd, --threads-batch-draft N number of threads to use during batch and prompt processing (default:
| |
| same as --threads-draft)
| |
| --draft-max, --draft, --draft-n N number of tokens to draft for speculative decoding (default: 16)
| |
| (env: LLAMA_ARG_DRAFT_MAX)
| |
| --draft-min, --draft-n-min N minimum number of draft tokens to use for speculative decoding
| |
| (default: 0)
| |
| (env: LLAMA_ARG_DRAFT_MIN)
| |
| --draft-p-min P minimum speculative decoding probability (greedy) (default: 0.8)
| |
| (env: LLAMA_ARG_DRAFT_P_MIN)
| |
| -cd, --ctx-size-draft N size of the prompt context for the draft model (default: 0, 0 = loaded
| |
| from model)
| |
| (env: LLAMA_ARG_CTX_SIZE_DRAFT)
| |
| -devd, --device-draft <dev1,dev2,..> comma-separated list of devices to use for offloading the draft model
| |
| (none = don't offload)
| |
| use --list-devices to see a list of available devices
| |
| -ngld, --gpu-layers-draft, --n-gpu-layers-draft N
| |
| number of layers to store in VRAM for the draft model
| |
| (env: LLAMA_ARG_N_GPU_LAYERS_DRAFT)
| |
| -md, --model-draft FNAME draft model for speculative decoding (default: unused)
| |
| (env: LLAMA_ARG_MODEL_DRAFT)
| |
| --spec-replace TARGET DRAFT translate the string in TARGET into DRAFT if the draft model and main
| |
| model are not compatible
| |
| -mv, --model-vocoder FNAME vocoder model for audio generation (default: unused)
| |
| --tts-use-guide-tokens Use guide tokens to improve TTS word recall
| |
| --embd-gemma-default use default EmbeddingGemma model (note: can download weights from the
| |
| internet)
| |
| --fim-qwen-1.5b-default use default Qwen 2.5 Coder 1.5B (note: can download weights from the
| |
| internet)
| |
| --fim-qwen-3b-default use default Qwen 2.5 Coder 3B (note: can download weights from the
| |
| internet)
| |
| --fim-qwen-7b-default use default Qwen 2.5 Coder 7B (note: can download weights from the
| |
| internet)
| |
| --fim-qwen-7b-spec use Qwen 2.5 Coder 7B + 0.5B draft for speculative decoding (note: can
| |
| download weights from the internet)
| |
| --fim-qwen-14b-spec use Qwen 2.5 Coder 14B + 0.5B draft for speculative decoding (note:
| |
| can download weights from the internet)
| |
| --fim-qwen-30b-default use default Qwen 3 Coder 30B A3B Instruct (note: can download weights
| |
| from the internet)
| |
| --gpt-oss-20b-default use gpt-oss-20b (note: can download weights from the internet)
| |
| --gpt-oss-120b-default use gpt-oss-120b (note: can download weights from the internet)
| |
| --vision-gemma-4b-default use Gemma 3 4B QAT (note: can download weights from the internet)
| |
| --vision-gemma-12b-default use Gemma 3 12B QAT (note: can download weights from the internet)
| |
| </syntaxhighlight> | | </syntaxhighlight> |
| === Test ===
| | |
| === Bekannte Probleme ===
| | '''Aktivieren:''' |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| Error 1 [ 34%] Linking HIP shared library ../../../bin/libggml-hip.so [ 34%] Built target ggml-hip gmake[1]: *** [CMakeFiles/Makefile2:1775: ggml/src/CMakeFiles/ggml-cpu.dir/all] Error 2 gmake: *** [Makefile:146: all] Error 2
| | sudo systemctl daemon-reload |
| | sudo systemctl enable --now llama-rpc |
| </syntaxhighlight> | | </syntaxhighlight> |
| Lösung:
| | |
| | == Update == |
| | |
| <syntaxhighlight lang="bash" line="1"> | | <syntaxhighlight lang="bash" line="1"> |
| GCC 13.3.0 konnte damit nicht umgehen, aber GCC 14.2.0 hat bessere C++-Standard-Compliance und kann diesen Header-Konflikt korrekt auflösen – deshalb funktioniert die Kompilierung jetzt mit der neueren Compiler-Version.
| | cd ~/Programme/llama.cpp |
| sudo update-alternatives --remove gcc /usr/bin/gcc-13
| | git pull |
| sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100
| | cmake --build build --config Release -- -j $(nproc) |
| sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 50
| |
| sudo update-alternatives --config gcc
| |
| # Wähle gcc-14
| |
|
| |
|
| sudo update-alternatives --remove g++ /usr/bin/g++-13
| | # Services neu starten falls aktiv |
| sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
| | sudo systemctl restart llama-server |
| sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 50 | | sudo systemctl restart llama-rpc # falls RPC-Service läuft |
| sudo update-alternatives --config g++ | |
| # Wähle g++-14 | |
| </syntaxhighlight> | | </syntaxhighlight> |
| === Nützliche Links === | | |
| * [https://github.com/ggml-org/llama.cpp Offizielles llama.cpp Repository]
| | == Parameter-Referenz == |
| * [https://github.com/ggml-org/llama.cpp/blob/master/examples/server/README.md llama-server Dokumentation]
| | |
| * [https://github.com/ggml-org/llama.cpp/discussions llama.cpp Discussions]
| | {| class="wikitable" |
| * [https://huggingface.co/models?library=gguf GGUF Modelle auf Hugging Face]
| | |- |
| * [https://docs.rocm.com/ ROCm Dokumentation]
| | ! Parameter !! Beschreibung |
| * [https://vulkan.lunarg.com/doc/sdk Vulkan SDK Dokumentation]
| | |- |
| | | <code>-ngl 99</code> || Alle Layer auf GPU auslagern (Langform: <code>--gpu-layers</code>) |
| | |- |
| | | <code>-fa 1</code> || Flash Attention aktivieren |
| | |- |
| | | <code>-c 32768</code> || Kontextfenster-Größe |
| | |- |
| | | <code>-b 2048</code> || Batch-Size |
| | |- |
| | | <code>-ub 2048</code> || Physical USB batch size |
| | |- |
| | | <code>--split-mode row</code> || Tensor-Split-Modus (Multi-GPU) |
| | |- |
| | | <code>--tensor-split 0.5,0.5</code> || Gleichmäßige Aufteilung auf 2 GPUs |
| | |- |
| | | <code>--parallel 1</code> || Anzahl paralleler Sequenzen |
| | |- |
| | | <code>--jinja</code> || Jinja-Template-Support für Chat |
| | |- |
| | | <code>--rpc host:port,…</code> || RPC-Backends für verteiltes Inference |
| | |- |
| | | <code>-DGGML_RPC=ON</code> || CMake-Flag: RPC-Support einkompilieren |
| | |} |