Switch large service to Kairic Edge v1.2

This commit is contained in:
Frank committed 2026-08-25 04:41:04 -07:00
1 parent f86ed70c71
commit b457457bfe
4 files changed
+126 -158

No files matched your search

+19 -24
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Seam: frank-default-large model, runtime, embedded-MTP spec, template.
# Covers the ROCmI4 embedded-MTP deployment contract (charlie12345/ROCmFPX).
# Seam: frank-default-large model, runtime, Kairic Edge spec, template.
# Covers the Kairic Edge deployment contract (ciru-ai/ROCmFPX v1.2).
#
# load helpers
@@ -11,32 +11,27 @@ SERVE_FILE="$REPO_ROOT/scripts/serve-frank-large.sh"
UNIT_FILE="$REPO_ROOT/scripts/frank-default-large.service"
TEMPLATE_FILE="$REPO_ROOT/scripts/chat-template.jinja"
@test "frank-default-large serves the eemin ROCmI4 embedded-MTP GGUF" {
grep -q '^MODEL_FILE=Qwen3.8-27B-Q4_0_ROCMI4\.gguf$' "$ENV_FILE"
grep -q 'Qwen3.8-27B-Q4_0_ROCMI4\.gguf' "$SERVE_FILE"
# The MTP head is embedded in the main GGUF: no separate draft file.
grep -q '^MTP_DRAFT_FILE=$' "$ENV_FILE"
! grep -q -- '--model-draft' "$SERVE_FILE"
@test "frank-default-large serves the Kairic Edge model and sidecars" {
grep -q '^MODEL_FILE=Qwen3.8-27B-IU4-Kairic-Edge\.gguf$' "$ENV_FILE"
grep -q '^KAIRIC_FFN_SIDECAR=' "$ENV_FILE"
grep -q '^KAIRIC_GDN_SIDECAR=' "$ENV_FILE"
grep -q '^KAIRIC_GDN_OUTPUT_SIDECAR=' "$ENV_FILE"
grep -q -- '--kairic-edge' "$SERVE_FILE"
}
@test "frank-default-large uses charlie12345 ROCmFPX with ROCmI4 W4A4" {
grep -q 'rocmi4-qwen38/ROCmFPX/build-rocmi4-w4a4/bin/llama-server' "$ENV_FILE"
grep -q 'eemin-Qwen3.8-27B-ROCMI4-MTP' "$ENV_FILE"
@test "frank-default-large uses the Kairic Edge ROCmFPX v1.2 runtime" {
grep -q 'ROCmFPX/build-kairic/bin/llama-server' "$ENV_FILE"
grep -q '^KAIRIC_EDGE_COMPATIBILITY_MODE=1$' "$ENV_FILE"
grep -q '205a3e5f40e5542e2f2eb68e3d3f81f918b1d895' "$ENV_FILE"
}
@test "frank-default-large runs strict-Qwen embedded MTP with backend sampling" {
# embedded MTP: draft on ROCm0, all layers, no separate head
@test "frank-default-large runs Kairic Edge MTP in compatibility mode" {
grep -q -- '--spec-type draft-mtp' "$SERVE_FILE"
grep -q -- '--spec-mtp-strict-qwen' "$SERVE_FILE"
grep -q -- '--spec-draft-ngl all' "$SERVE_FILE"
grep -q -- '--spec-draft-backend-sampling' "$SERVE_FILE"
grep -q -- '--kairic-edge' "$SERVE_FILE"
grep -qF -- '--spec-draft-n-max "$MTP_N_MAX"' "$SERVE_FILE"
grep -qF -- '--spec-draft-p-min "$MTP_P_MIN"' "$SERVE_FILE"
# qualified profile tunables are exposed in the env
grep -qF -- '--spec-draft-p-split "$MTP_P_SPLIT"' "$SERVE_FILE"
grep -q '^KAIRIC_EDGE_COMPATIBILITY_MODE=1$' "$ENV_FILE"
grep -q '^MTP_N_MAX=4$' "$ENV_FILE"
grep -q '^MTP_P_MIN=0.60$' "$ENV_FILE"
grep -q '^SPEC_MTP_STRICT_QWEN=on$' "$ENV_FILE"
grep -q '^MTP_BACKEND_SAMPLING=on$' "$ENV_FILE"
}
@test "frank-default-large fits the model and KV cache in unified memory" {
@@ -45,14 +40,14 @@ TEMPLATE_FILE="$REPO_ROOT/scripts/chat-template.jinja"
}
@test "frank-default-large exposes a swappable ubatch" {
grep -q '^UBATCH_SIZE=256$' "$ENV_FILE"
grep -q ': "${UBATCH_SIZE:=256}"' "$SERVE_FILE"
grep -q '^UBATCH_SIZE=512$' "$ENV_FILE"
grep -q ': "${UBATCH_SIZE:=512}"' "$SERVE_FILE"
grep -q -- '-ub "$UBATCH_SIZE"' "$SERVE_FILE"
}
@test "frank-default-large uses the tracked Qwen-Sharp template on :7770" {
grep -q '^CHAT_TEMPLATE_FILE=' "$ENV_FILE"
grep -q 'chat-template\.jinja' "$SERVE_FILE"
grep -q -- '--jinja' "$SERVE_FILE"
[ -s "$TEMPLATE_FILE" ]
grep -q '^ALIAS=frank-default-large$' "$ENV_FILE"
grep -q '^LISTEN_PORT=7770$' "$ENV_FILE"