frank-dragoon: cut the endpoint over to the native v2 abliterated checkpoint
Quat3rnion/halogen-qwen3.8-flash-next-v2-abliterated is now the NATIVE 2026-10-11 v2 conversion of orcarouter's pinned BF16 (66,687,678,432 B, LFS sha256 b5bd925f...) — 32 bytes smaller than the writer transplant it used to ship under the same filename. The n-gram table, vision tower and tokenizer are the stock peonist companions, hardlinked out of the swift15 payload dir: the release publishes only the main file and no source-matched pair exists, so the engine's own tools are the referee (niah 18/18, ppl 3.968 with mean KL 0.155 against the swift15 logits, 2026-10-17). Memory saving, per the card: HALOGEN_KV_POOL_POSITIONS 524288 -> 262144, one pool behind both slots (boot ledger: 7.2 GiB, where the old pool measured 14.6). HALOGEN_CTX stays 262144 so the per-request ceiling and the harness contract (contextWindow 217088) do not move; only two MAXIMUM-length conversations lose the ability to coexist. Measured against the swift15 boot on identical traffic: cold prefill +12.6 %, decode 50.0 vs 46.8 t/s, NIAH 18/18 vs 17/18, PPL +2.3 %, thinking tokens x1.9 (the finetune's reasoning compression is gone), refusals 0/5 on both.
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/env bats
|
||||
# Seam: frank-dragoon serves the Quat3rnion ABLITERATED Swift1.5 finetune of
|
||||
# peonist's Qwen3.8-Flash-Next v2 checkpoint (a .hgn flash-server payload)
|
||||
# on the Strix Halo iGPU through the halogen-flash-server CONTAINER (0.16.2,
|
||||
# digest-pinned), driven by the root unit's serve script — two 262,144-token
|
||||
# slots with the MTP head always on (HALOGEN_SPEC_ADAPT=0) and the vision
|
||||
# tower mounted. 2026-10-06 cutover from the halogen 27B-dense shape.
|
||||
# Seam: frank-dragoon serves Quat3rnion's NATIVE v2 conversion (2026-10-11)
|
||||
# of the abliterated Qwen3.8-Flash-Next (a .hgn flash-server payload) on the
|
||||
# Strix Halo iGPU through the halogen-flash-server CONTAINER (0.16.2,
|
||||
# digest-pinned), driven by the root unit's serve script — 2 slots over ONE
|
||||
# 262,144-position KV pool with the MTP head always on (HALOGEN_SPEC_ADAPT=0)
|
||||
# and the vision tower mounted. 2026-10-17 cutover from the Swift1.5-finetune
|
||||
# shape, which itself cut over the halogen 27B-dense shape on 2026-10-06.
|
||||
#
|
||||
# This seam exists because the artifacts are a triangle that must agree on
|
||||
# exact strings the engine reads: the image DIGEST, the checkpoint/n-gram/
|
||||
@@ -81,7 +82,7 @@ good_env() {
|
||||
"FRANK_DRAGOON_TOKENIZER_FILES=tok.json"
|
||||
"HALOGEN_MODEL_ID=frank-dragoon"
|
||||
"HALOGEN_CTX=262144"
|
||||
"HALOGEN_KV_POOL_POSITIONS=524288"
|
||||
"HALOGEN_KV_POOL_POSITIONS=262144"
|
||||
"HALOGEN_KV_SLOTS=2"
|
||||
"HALOGEN_SPEC_ADAPT=0"
|
||||
"HALOGEN_MAX_TOK=8192"
|
||||
@@ -136,9 +137,10 @@ good_env() {
|
||||
[[ "$output" == *"no gfx1151 to serve on"* ]]
|
||||
}
|
||||
|
||||
@test "the pool product and memory ledger fit unified memory with margin" {
|
||||
# Pool arithmetic is the engine's documented product: the explicit
|
||||
# HALOGEN_KV_POOL_POSITIONS must equal slots x ctx, and KV costs
|
||||
@test "the pool and memory ledger fit unified memory with margin" {
|
||||
# Pool arithmetic is the engine's documented shape: the explicit
|
||||
# HALOGEN_KV_POOL_POSITIONS must back at least one full window, and KV
|
||||
# costs
|
||||
# ~28 KiB/position (FLAGS.md). Against it: ~62 GiB resident weights,
|
||||
# the arena scratch 3.8 + 8.4*(MAX_TOK/16384) GiB, the vision tower
|
||||
# ~2 GiB pool charge, the 20 GiB host reserve and the host baseline
|
||||
@@ -151,7 +153,15 @@ good_env() {
|
||||
pool="$(sed -nE 's/^HALOGEN_KV_POOL_POSITIONS=([0-9]+)$/\1/p' "$ENV_FILE")"
|
||||
mt="$(sed -nE 's/^HALOGEN_MAX_TOK=([0-9]+)$/\1/p' "$ENV_FILE")"
|
||||
reserve="$(sed -nE 's/^HALOGEN_HOST_RESERVE_GIB=([0-9]+)$/\1/p' "$ENV_FILE")"
|
||||
[ "$pool" -eq $(( slots * ctx )) ]
|
||||
# The pool is ONE budget behind the slots (boot ledger: "2 slots over ONE
|
||||
# 262144-position KV pool, each request up to 262144"), NOT slots x ctx:
|
||||
# the card ships it at one window and that IS the memory saving of this
|
||||
# payload. What still binds is that the pool back ONE full-length
|
||||
# request, or the advertised per-request ceiling would be unreachable —
|
||||
# and that it stay inside unified memory, which the ledger sum below
|
||||
# checks.
|
||||
[ "$pool" -ge "$ctx" ]
|
||||
[ "$pool" -le $(( slots * ctx )) ]
|
||||
kv_gib=$(( pool * 28 * 1024 / 1073741824 ))
|
||||
arena_tenths=$(( 38 + 84 * mt / 16384 ))
|
||||
total_gib=$(( 62 + kv_gib + arena_tenths / 10 + 2 + reserve + 15 ))
|
||||
@@ -174,7 +184,7 @@ good_env() {
|
||||
FRANK_DRAGOON_CHECKPOINT=absent.hgn "$SERVE"
|
||||
[ "$status" -ne 0 ]
|
||||
[[ "$output" == *"checkpoint"*"missing"* ]]
|
||||
[[ "$output" == *"download-frank-dragoon-flashnext.sh"* ]]
|
||||
[[ "$output" == *"download-frank-dragoon-v2abl.sh"* ]]
|
||||
}
|
||||
|
||||
@test "the serve script refuses a checkpoint of the wrong byte count" {
|
||||
@@ -264,7 +274,7 @@ $(cat "$TEST_TMP/serve.log")"
|
||||
[[ "$output" == *"--publish 7770:8731"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_MODEL_ID=frank-dragoon"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_CTX=262144"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_KV_POOL_POSITIONS=524288"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_KV_POOL_POSITIONS=262144"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_KV_SLOTS=2"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_SPEC_ADAPT=0"* ]]
|
||||
[[ "$output" == *"-e HALOGEN_CHECKPOINT=/models/qwen.hgn"* ]]
|
||||
@@ -328,8 +338,8 @@ $(cat "$TEST_TMP/serve.log")"
|
||||
grep -qF "LLM_DRAGOON_CKPT_BYTES=\"\${LLM_DRAGOON_CKPT_BYTES:-$bytes}\"" "$DEPLOYER"
|
||||
}
|
||||
|
||||
@test "the deployer points a missing artifact at the flashnext fetch script" {
|
||||
grep -qE 'download-frank-dragoon-flashnext\.sh' "$DEPLOYER"
|
||||
@test "the deployer points a missing artifact at the v2abl fetch script" {
|
||||
grep -qE 'download-frank-dragoon-v2abl\.sh' "$DEPLOYER"
|
||||
grep -qE 'podman pull' "$DEPLOYER"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user