- Retire llama-server-aux (Phi-4, 8000) and llama-server-toolcall (Mistral-Small-24B, 8001): stopped, disabled, unit files removed from host and Ansible role - Promote llama-server-qwen (Qwen2.5-14B-Instruct-1M, port 8002) to sole production model, serving both friday and war-machine Hermes profiles - Verified live: n_ctx=65536/n_ctx_train=1010000, and tool_calls response via /v1/chat/completions probe (no hallucination) - Deleted superseded GGUF weights (phi-4, mistral-small, orphaned base-Qwen, gemma-2-27b) from astro-orbiter, ~45GB reclaimed - Updated friday and war-machine Hermes profile configs (model + compression + skills_hub aux) to point at 10.1.71.130:8002 - Ryan explicitly accepted single-model tradeoffs for both profiles
81 lines
4.7 KiB
YAML
81 lines
4.7 KiB
YAML
---
|
|
# ------------------------------------------------------------------------------
|
|
# FILE: roles/llm-inference-multimodel/defaults/main.yml
|
|
# DESCRIPTION: Overridable defaults for the llm-inference-multimodel role.
|
|
# Deploy target: astro-orbiter (10.1.71.130, RTX 3090 24GB).
|
|
# Built ALONGSIDE roles/llm-inference (not a replacement) — that
|
|
# role's CUDA/build/driver phases are the prerequisite; this role
|
|
# assumes /opt/llama.cpp/build/bin/llama-server already exists.
|
|
#
|
|
# See /home/hermes/astro-orbiter-multi-model-plan.md for the full
|
|
# approved design (VRAM math, rationale, rollback story).
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# Shared
|
|
llm_service_user: jarvis
|
|
llm_binary_path: /opt/llama.cpp/build/bin/llama-server
|
|
llm_models_dir: /opt/models
|
|
|
|
# Bind address — deliberately NOT 0.0.0.0 (see plan §5). Default to the private
|
|
# LAN interface so both instances are reachable from Hermes but not the world.
|
|
# Override to 127.0.0.1 if even LAN-wide reachability is unwanted and a reverse
|
|
# proxy/localhost-only tunnel is used instead.
|
|
llm_bind_address: "10.1.71.130"
|
|
|
|
# Firewall scoping (Phase 3) — subnet/hosts allowed to reach the ports above.
|
|
# Override per-environment; default assumes Hermes runs somewhere on this /24.
|
|
llm_allowed_source_cidr: "10.1.70.0/24"
|
|
|
|
# --- RETIRED (2026-08-06): Aux / classification instance (port 8000, Phi-4-14B)
|
|
# and Tool-calling instance (port 8001, Mistral-Small-24B) --------------------
|
|
# Consolidated down to a single production model (Qwen2.5-14B-Instruct-1M,
|
|
# port 8002) serving BOTH the friday and war-machine Hermes profiles. Ryan
|
|
# explicitly accepted the tradeoffs (single model for chat + tool-calling +
|
|
# aux duties) over keeping the aux/toolcall split running.
|
|
# Both llama-server-aux and llama-server-toolcall services were stopped,
|
|
# disabled, and had their unit files removed from astro-orbiter; their GGUF
|
|
# weights (phi-4-14b-instruct-Q4_K_M.gguf, mistral-small-24b-instruct-2501-
|
|
# Q3_K_M.gguf) were deleted from /opt/models (~45GB reclaimed). The
|
|
# templates/tasks that deployed them have been removed from this role — see
|
|
# git log for the prior variable definitions and unit templates if a future
|
|
# rollback needs them restored.
|
|
|
|
# --- Production instance (port 8002, Qwen2.5-14B-Instruct-1M) ----------------
|
|
# History (2026-08-06): Qwen2.5-14B-Instruct (base) was deployed to this slot
|
|
# and DISQUALIFIED — live /v1/models meta reported n_ctx_train=32768, well
|
|
# under the 64K Hermes floor (the model card's "128K" figure conflated
|
|
# YaRN-extended inference-time scaling with actual trained context; disabled
|
|
# by default, not baked in). Llama-3.1-8B-Instruct was tried next — cleared
|
|
# the context gate (verified live n_ctx_train=131072) but failed the
|
|
# tool-calling validation harness badly (8/10 hallucination-stress prompts
|
|
# triggered spurious tool_calls even at temp=0.1 with the correct official
|
|
# chat template) — purged from disk and Ansible entirely, see git log.
|
|
# Current model: Qwen2.5-14B-Instruct-1M (bartowski GGUF) — distinct
|
|
# checkpoint with genuine additional long-context pretraining, NOT the same
|
|
# weights as the disqualified base model above. Live-verified 2026-08-06:
|
|
# /v1/models reports n_ctx=65536, n_ctx_train=1010000 (well over the 64K
|
|
# floor). Tool-calling verified live via a /v1/chat/completions probe with a
|
|
# tools= payload — returned a well-formed tool_calls response (finish_reason
|
|
# "tool_calls", valid JSON arguments), no hallucinated calls observed.
|
|
# PROMOTED TO PRODUCTION (2026-08-06): llm_qwen_service_enabled now defaults
|
|
# to true — this is the sole model serving both Hermes profiles. Ports
|
|
# 8000/8001 are permanently freed; no co-residency VRAM gate applies anymore.
|
|
llm_qwen_service_enabled: true
|
|
llm_qwen_port: 8002
|
|
llm_qwen_model_path: "{{ llm_models_dir }}/Qwen2.5-14B-Instruct-1M-Q5_K_M.gguf"
|
|
llm_qwen_model_url: "https://huggingface.co/bartowski/Qwen2.5-14B-Instruct-1M-GGUF/resolve/main/Qwen2.5-14B-Instruct-1M-Q5_K_M.gguf"
|
|
llm_qwen_model_min_bytes: 9500000000 # guard threshold; complete file ~10.5GB
|
|
llm_qwen_ctx_size: 65536
|
|
llm_qwen_parallel: 1
|
|
llm_qwen_gpu_layers: 99
|
|
llm_qwen_batch_size: 2048
|
|
llm_qwen_ubatch_size: 512
|
|
llm_qwen_service_name: llama-server-qwen
|
|
llm_qwen_model_id: qwen2.5-14b-instruct-1m
|
|
llm_qwen_expected_vram_gb: 11 # updated 2026-08-06 for -1M checkpoint per report math (~10-12GB); prior 16.5 was stale base-Qwen estimate
|
|
|
|
# --- Existing Gemma baseline (rollback target — never modified by this role) -
|
|
# Populated by Phase 0 discovery (tasks/discover.yml) if not already known.
|
|
# Set here only as a fallback name to search for; discovery is authoritative.
|
|
llm_existing_gemma_service_name_guess: llama-server
|