frank-default-small: swap to ornith-ai/Ornith-1.5-35B-A3B-FP8 + Qwen-Sharp chat template
- MODEL_DIR -> /home/dank/models/ornith-1.5-35b-a3b-fp8 (37 GB, compressed-tensors per-channel FP8, same qwen3_5_moe arch/mass as Huihui so the pool plan carries unchanged) - CHAT_TEMPLATE_FILE -> scripts/chat-template.jinja (Qwen-Sharp, shared with frank-default-large); the checkpoint's stock template mis-serializes reasoning per its own model card - env/serve/unit headers updated; loader-risk + BF16-does-not-fit note
This commit is contained in:
@@ -1,30 +1,42 @@
|
|||||||
# Tunables for frank-default-small (batsclamp/Huihui-Qwen3.6-35B-A3B-
|
# Tunables for frank-default-small (ornith-ai/Ornith-1.5-35B-A3B-FP8,
|
||||||
# abliterated-FP8, qwen3_5_moe hybrid MoE, Dankserver, RTX 3090).
|
# qwen3_5_moe hybrid MoE, Dankserver, RTX 3090).
|
||||||
#
|
#
|
||||||
# Runtime: FreeToken v0.1.2 (edge-native MoE serving engine).
|
# Runtime: FreeToken v0.1.2 (edge-native MoE serving engine).
|
||||||
# Installed via uv into /home/dank/freetoken/.venv (CPython 3.12).
|
# Installed via uv into /home/dank/freetoken/.venv (CPython 3.12).
|
||||||
# FreeToken keeps expert weights in host RAM with an LRU GPU cache;
|
# FreeToken keeps expert weights in host RAM with an LRU GPU cache;
|
||||||
# KV is paged with radix prefix sharing. Only the 10 full-attention
|
# KV is paged with radix prefix sharing. Only the full-attention
|
||||||
# layers page KV (~20 KiB/token); the 30 GDN layers use constant-size
|
# layers page KV (~20 KiB/token); the GDN layers use constant-size
|
||||||
# per-sequence state (mamba slot pool).
|
# per-sequence state (mamba slot pool).
|
||||||
#
|
#
|
||||||
# Model: batsclamp/Huihui-Qwen3.6-35B-A3B-abliterated-FP8 (HuggingFace
|
# Model: ornith-ai/Ornith-1.5-35B-A3B-FP8 (HuggingFace safetensors,
|
||||||
# safetensors). Abliterated (refusal-removed) Huihui finetune of
|
# compressed-tensors FP8, ~35 GB on disk). Ornith-1.5 is a
|
||||||
# Qwen3.6-35B-A3B, quantized to the SAME native format the previous
|
# self-improvement RL-trained coding/agentic model built on Qwen3.5 +
|
||||||
# official checkpoint used: modelopt block-fp8 e4m3, dynamic
|
# Gemma4; ~35B total / ~3B active (A3B), same qwen3_5_moe arch and the
|
||||||
# activations, 128x128 weight_block_size, bf16 weight_scale_inv;
|
# same ~35 GB FP8 weight mass as the Huihui FP8 it replaces, so the
|
||||||
# lm_head/embeds/norms/router gates/visual/MTP kept BF16. Un-fused
|
# FreeToken memory/pool plan carries unchanged. Native 262144 context.
|
||||||
# per-expert layout matches the official Qwen FP8, so the FreeToken
|
# Reasoning model: each assistant turn opens with a <think> block,
|
||||||
# loader path is identical; ~35 GB on disk. Ships the fixed Qwen3.6
|
# surfaced separately via the qwen3 reasoning parser (REASONING=on).
|
||||||
# chat template (froggeric/Qwen-Fixed-Chat-Templates) — FreeToken
|
# The RTX 3090 has no FP8 tensor cores, so FP8 runs via upcast (as
|
||||||
# reads it from the checkpoint; no template override needed.
|
# Huihui did). Replaced batsclamp/Huihui-Qwen3.6-35B-A3B-abliterated-
|
||||||
# Replaced Qwen/Qwen3.6-35B-A3B-FP8 on 2026-08-30; pool numbers
|
# FP8 on 2026-09-01.
|
||||||
# unchanged — same arch, same weight mass.
|
#
|
||||||
|
# RISK: this is compressed-tensors PER-CHANNEL FP8 (weights strategy
|
||||||
|
# "channel"), the one FP8 layout the runbook flags as a FreeToken v0.1.2
|
||||||
|
# loader bug. Load is being verified live; 37 GB fits RAM so a failure is
|
||||||
|
# a clean crash-loop, not a swap-thrash. The BF16 sibling
|
||||||
|
# (ornith-ai/Ornith-1.5-35B-A3B, ~70 GB) does NOT fit this 62 GB box —
|
||||||
|
# never fall back to it (that is the 2026-09-01 Thomson outage mode).
|
||||||
|
#
|
||||||
|
# Chat template: the checkpoint's stock Qwen template is WRONG for this
|
||||||
|
# model (its own model card says so and ships a modified
|
||||||
|
# chat_template.jinja for the agentic benchmarks). The fleet standard is
|
||||||
|
# the Qwen-Sharp template (scripts/chat-template.jinja, repo-tracked and
|
||||||
|
# shared with frank-default-large) — see CHAT_TEMPLATE_FILE below.
|
||||||
#
|
#
|
||||||
# Pool sizing: GPU budget (~17.6 GiB after weights + fixed caches) is
|
# Pool sizing: GPU budget (~17.6 GiB after weights + fixed caches) is
|
||||||
# split MoE-first. MOE_CACHE_SIZE pins resident expert slots; NUM_TOKENS
|
# split MoE-first. MOE_CACHE_SIZE pins resident expert slots; NUM_TOKENS
|
||||||
# pins the KV pool. At 2048 slots / 453005 tokens the split is ~20%
|
# pins the KV pool. At 2048 slots / 453005 tokens the split is ~20%
|
||||||
# residency (2048/10240) and ~8.6 GiB KV. Live resize via
|
# residency and ~8.6 GiB KV. Live resize via
|
||||||
# `ft ctl cache --kv N --moe M` can grow KV by shrinking MoE without
|
# `ft ctl cache --kv N --moe M` can grow KV by shrinking MoE without
|
||||||
# restart (the reverse requires a restart).
|
# restart (the reverse requires a restart).
|
||||||
#
|
#
|
||||||
@@ -32,8 +44,14 @@
|
|||||||
# The ROCm HIP runtime reads those bare env vars (see the 2026-08-13 TEMP
|
# The ROCm HIP runtime reads those bare env vars (see the 2026-08-13 TEMP
|
||||||
# incident). This box is NVIDIA/CUDA, but the rule keeps the env portable.
|
# incident). This box is NVIDIA/CUDA, but the rule keeps the env portable.
|
||||||
|
|
||||||
# Model directory (safetensors checkpoint, ~35 GB, block-fp8).
|
# Model directory (safetensors checkpoint, ~35 GB, compressed-tensors FP8).
|
||||||
MODEL_DIR=/home/dank/models/huihui-qwen36-35b-a3b-abliterated-fp8
|
MODEL_DIR=/home/dank/models/ornith-1.5-35b-a3b-fp8
|
||||||
|
|
||||||
|
# Chat template: the fleet Qwen-Sharp template (repo-tracked), shared with
|
||||||
|
# frank-default-large. The checkpoint's stock template mis-serializes
|
||||||
|
# reasoning for this model; the Sharp template renders the <think> trail and
|
||||||
|
# the Qwen3.5-family tool-call shape correctly.
|
||||||
|
CHAT_TEMPLATE_FILE=/home/dank/serverAppConfigs/scripts/chat-template.jinja
|
||||||
|
|
||||||
# FreeToken venv (uv-managed CPython 3.12, ft CLI, flashinfer, torch+cu130).
|
# FreeToken venv (uv-managed CPython 3.12, ft CLI, flashinfer, torch+cu130).
|
||||||
FT_VENV=/home/dank/freetoken/.venv
|
FT_VENV=/home/dank/freetoken/.venv
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=FreeToken Huihui-Qwen3.6-35B-A3B-abliterated-FP8 qwen3_5_moe hybrid MoE (dankserver, frank-default-small)
|
Description=FreeToken Ornith-1.5-35B-A3B-FP8 qwen3_5_moe hybrid MoE (dankserver, frank-default-small)
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Serve batsclamp/Huihui-Qwen3.6-35B-A3B-abliterated-FP8 as
|
# Serve ornith-ai/Ornith-1.5-35B-A3B-FP8 as frank-default-small via
|
||||||
# frank-default-small via FreeToken on Dankserver (RTX 3090, 60 GB RAM).
|
# FreeToken on Dankserver (RTX 3090, 62 GB RAM).
|
||||||
#
|
#
|
||||||
# Runtime: FreeToken v0.1.2 (edge-native MoE serving engine).
|
# Runtime: FreeToken v0.1.2 (edge-native MoE serving engine).
|
||||||
# - Experts live in host RAM; an LRU cache of expert slots is resident
|
# - Experts live in host RAM; an LRU cache of expert slots is resident
|
||||||
@@ -10,14 +10,14 @@
|
|||||||
# hold constant-size per-sequence state (mamba slots).
|
# hold constant-size per-sequence state (mamba slots).
|
||||||
# - OpenAI-compatible API (/v1/chat/completions, /v1/models).
|
# - OpenAI-compatible API (/v1/chat/completions, /v1/models).
|
||||||
#
|
#
|
||||||
# Model: batsclamp/Huihui-Qwen3.6-35B-A3B-abliterated-FP8 — Huihui
|
# Model: ornith-ai/Ornith-1.5-35B-A3B-FP8 — Ornith-1.5 (self-improvement
|
||||||
# abliterated finetune of Qwen3.6-35B-A3B in the same native modelopt
|
# RL-trained coding/agentic model over Qwen3.5 + Gemma4), 35B total / 3B
|
||||||
# block-fp8 format (e4m3, 128x128 weight_block_size, un-fused per-expert
|
# active, in compressed-tensors per-channel FP8 (float-quantized, dynamic
|
||||||
# layout) as the official FP8 checkpoint this service ran before; the
|
# token activations). Same qwen3_5_moe arch and ~35 GB FP8 mass as the
|
||||||
# FreeToken loader path is unchanged. 40 layers (10 attention + 30
|
# Huihui FP8 it replaces: 40 layers (10 full-attention + 30 GDN), 256
|
||||||
# GDN), 256 experts / 8 used, 2 KV heads × 256 dim. ~35 GB on disk.
|
# experts / 8 used, 2 KV heads × 128 dim, native 262144 context. FreeToken
|
||||||
# The checkpoint ships the fixed Qwen3.6 chat template; FreeToken reads
|
# loads a Qwen-Sharp chat template over it (see CHAT_TEMPLATE_FILE in the
|
||||||
# it from the model directory.
|
# env file); the checkpoint's own stock template mis-serializes reasoning.
|
||||||
#
|
#
|
||||||
# Pool sizing: the GPU budget is split MoE-first between expert residency
|
# Pool sizing: the GPU budget is split MoE-first between expert residency
|
||||||
# and KV pages. --moe-cache-size pins the number of resident expert
|
# and KV pages. --moe-cache-size pins the number of resident expert
|
||||||
@@ -39,7 +39,7 @@ if [[ -f "$ENV_FILE" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# --- defaults (used when the env file does not set them) -----------------
|
# --- defaults (used when the env file does not set them) -----------------
|
||||||
: "${MODEL_DIR:=/home/dank/models/huihui-qwen36-35b-a3b-abliterated-fp8}"
|
: "${MODEL_DIR:=/home/dank/models/ornith-1.5-35b-a3b-fp8}"
|
||||||
: "${ALIAS:=frank-default-small}"
|
: "${ALIAS:=frank-default-small}"
|
||||||
: "${BIND_ADDR:=0.0.0.0}"
|
: "${BIND_ADDR:=0.0.0.0}"
|
||||||
: "${LISTEN_PORT:=7770}"
|
: "${LISTEN_PORT:=7770}"
|
||||||
|
|||||||
Reference in New Issue
Block a user