• [^] # Re: llama.cpp router mode

    Posté par (site web personnel) . En réponse au journal 'gégé' : enfin de l'IA dans ton shell !. Évalué à 6 (+5/-0).

    Oui, c'est comme ça que je l'utilise avec un fichier .ini :

    La commande pour lancer llama.cpp en mode routeur :

    ./build/bin/llama-server \
     --log-colors off --log-verbosity 4 \
     --log-file /tmp/llama.cpp-router.log \
     --models-max 1 \
     --models-preset llama.cpp-router-config-llm.ini \
     --parallel 1 \
     --threads 10 \
     --threads-batch 10 \
     --batch-size 4096 \
     --ubatch-size 1024 \
     --main-gpu 0 \
     --n-gpu-layers -1 \
     --spec-draft-ngl -1 \
     --host 127.0.0.1 \
     --port 5000 \
     --flash-attn on \
     --sleep-idle-seconds 60 \
     --no-mmap \
     --mlock

    Points clés :
    - Binaire : ./build/bin/llama-server
    - Config preset : llama.cpp-router-config-llm.ini (définit les modèles disponibles)
    - Mode routeur : activé via --models-preset avec un fichier INI listant les modèles
    - GPU : toutes les couches sur GPU (-1), GPU principal 0
    - Flash attention : activée
    - Cache KV : type-k q8_0, type-v q5_1, réutilisation 256 (dans les versions commentées)
    - Mise en veille : 60s d'inactivité avant libération
    - Logs : verbosité 4, couleurs désactivées, écrit dans /tmp/llama.cpp-router.log

    Le fichier .ini :

    ; https://github.com/ggml-org/llama.cpp/pull/17859
    version = 1
    ; Global presets
    [*]
    fit = on
    jinja = on
    cpu-moe = false
    spec-draft-cpu-moe = false
    no-cache-idle-slots = true
    keep = 4096
    ctx-checkpoints = 12
    checkpoint-min-step = 1024
    spec-draft-type-k = q8_0
    spec-draft-type-v = q5_1
    cache-type-k = q8_0
    cache-type-v = q5_1
    kv-unified = true
    reasoning-budget = 2048
    reasoning-budget-message = ... okay, now here is the answer.
    ; Preset for Qwen3.5-4B-MTP-Q4_K_M.gguf
    [Qwen3.5-4B-MTP-Q4_K_M]
    model = /chemin/vers/Qwen3.5-4B-MTP-Q4_K_M.gguf
    fit-ctx = 0
    temp = 0.7
    top-p = 0.95
    top-k = 20
    min-p = 0.0
    presence-penalty = 1.5
    repeat-penalty = 1.0
    spec-type = draft-mtp
    spec-draft-n-max = 2
    chat-template-file = /chemin/vers/Qwen3.5-4B.jinja
    ; Preset for Qwen3.6-35B-A3B-MXFP4.gguf
    [Qwen3.6-35B-A3B-MXFP4]
    model = /chemin/vers/Qwen3.6-35B-A3B-MXFP4.gguf
    fit-ctx = 0
    temp = 0.6
    top-p = 0.95
    top-k = 20
    min-p = 0.0
    presence-penalty = 0.9
    repeat-penalty = 1.0
    no-context-shift = true
    chat-template-kwargs = "{'preserve_thinking': true}"
    chat-template-file = /chemin/vers/Qwen3.6-35B-A3B.jinja
    ; Preset for Qwen3.6-27B-Q4_K_M.gguf
    [Qwen3.6-27B-Q4_K_M]
    model = /chemin/vers/Qwen3.6-27B-Q4_K_M.gguf
    fit-ctx = 131072
    temp = 0.6
    top-p = 0.95
    top-k = 20
    min-p = 0.0
    presence-penalty = 0.9
    repeat-penalty = 1.0
    no-context-shift = true
    spec-type = none
    chat-template-kwargs = "{'preserve_thinking': true}"
    chat-template-file = /chemin/vers/Qwen3.6-27B.jinja

    La documentation sur le mode routeur se trouve principalement dans ces fichiers :

    Fichier Contenu
    docs/preset.md Format INI des presets ([*], [model_name], etc.)
    tools/server/README.md (§ Router mode) Mode routeur : lancement, routing des requêtes, --models-preset, --models-max, --models-dir, API /v1/models, etc.
    tools/ui/docs/flows/data-flow-simplified-router-mode.md Flux de données en mode routeur (côté UI)

    Les options principales :
    - --models-preset PATH — fichier INI avec les presets modèles
    - --models-dir PATH — dossier contenant les GGUF (auto-découverte)
    - --models-max N — nombre max de modèles chargés simultanément
    - --models-autoload — auto-chargement des modèles (activé par défaut)

    wind0w$ suxX, GNU/Linux roxX!