From 01ba41cab47b786be54bb8ddc3187be974a51438 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 1 Oct 2026 21:58:51 -0700 Subject: [PATCH] harness: llama-server lifecycle in pre-clean and health guard --- autoresearch.sh | 5 +++-- scripts/frank-large.env | 14 ++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/autoresearch.sh b/autoresearch.sh index d1f007c..afb2f5e 100755 --- a/autoresearch.sh +++ b/autoresearch.sh @@ -38,7 +38,8 @@ rsync -a "$REPO/scripts/frank-large.env" "$REPO/scripts/serve-frank-large.sh" \ # 2. Free the GPU and the port: stop the deployed unit (mask is unnecessary— # the unit only starts via systemd, and we never enable more of it). ssh "$HOST" 'sudo -n systemctl stop frank-large.service; - podman rm -f frank-large-mimo 2>/dev/null; true' >/dev/null + podman rm -f frank-large-mimo 2>/dev/null; + pkill -x llama-server 2>/dev/null; true' >/dev/null # 3. Boot the candidate detached; the launcher's own output IS the serve # stage output (gate failures print there before any container exists). @@ -55,7 +56,7 @@ if ! ssh "$HOST" "for i in \$(seq 1 $HEALTH_TRIES); do http://127.0.0.1:7770/health 2>/dev/null || echo 000) [ \"\$code\" = 200 ] && echo UP && exit 0 st=\$(podman inspect -f '{{.State.Status}}' frank-large-mimo 2>/dev/null || echo gone) - if [ \"\$st\" = exited ] || { [ \"\$st\" = gone ] && ! pgrep -f serve-frank-large >/dev/null; }; then echo DOWN; exit 1; fi + if [ "\$st" = exited ] || { [ "\$st" = gone ] && ! pgrep -f serve-frank-large >/dev/null && ! pgrep -x llama-server >/dev/null; }; then echo DOWN; exit 1; fi sleep 5 done; exit 1" | grep -q UP; then echo "ERROR: candidate never became healthy; serve.log tail:" >&2 diff --git a/scripts/frank-large.env b/scripts/frank-large.env index 1bb77d4..5f30acb 100644 --- a/scripts/frank-large.env +++ b/scripts/frank-large.env @@ -88,11 +88,17 @@ FRANK_LARGE_UTIL=0.45 FRANK_LARGE_SPEC= FRANK_LARGE_SPEC_DIR=/home/dank/models/Qwen3.5-9B FRANK_LARGE_SPEC_TOKENS=2 -# AUTORESEARCH: torchao int8 weight-only (quark int8 + all fp8 kernels -# rejected on gfx1151; torchao is a separate Triton dequant stack) -FRANK_LARGE_QUANT=torchao -FRANK_LARGE_QUANT_CONFIG='{"torchao_config":"int8_weight_only"}' +# --- AUTORESEARCH arm: llama.cpp runtime ------------------------------------- +# master build (qwen35 GDN kernels, HIP gfx1151) on Q6_K GGUF: 7.79 GiB +# weights = 0.51x the BF16 bytes, so the LPDDR roof doubles. Cross-model +# DFlash draft (qwen3.5-9b, Q8_0). --reasoning-format deepseek emits +# reasoning_content, NOT vLLM's reasoning. +FRANK_LARGE_RUNTIME=llama +FRANK_LARGE_LLAMA_BIN=/home/dank/GitPackages/llama-master/build-hip/bin/llama-server +FRANK_LARGE_GGUF=/home/dank/models/MiMo-Q6K/MiMo-V2.6-Distill-Qwen-9B-Q6_K.gguf +FRANK_LARGE_DRAFT_GGUF=/home/dank/models/DFlash-Qwen35/qwen3.5-9b-dflash-Q8_0.gguf +FRANK_LARGE_LLAMA_CTX=1048576 # --- client contract ---------------------------------------------------------- # vLLM emits the thinking text in `reasoning` (NOT llama.cpp/gufo's # `reasoning_content`) — the harness models.yml compat block for this