frank-default-large -> frank-large (Dankclaw :7770), frank-default-small -> frank-small (Dankserver :7770), frank-default-sightsound -> frank-npu (Dankclaw :7771). Units, env files, serve scripts, deploy-plan mappings, deploy-remote dispatch (stop/disable old units + relink + enable new), and the test seams move together. Retired frank-default-npu.* artifacts moved to scripts/.AGENTTRASH/ (tracked-in-history; ignored on disk). Served aliases become frank-large / frank-small via --alias; the NPU endpoint serves the whole FLM registry, so its rename changes no served tags.
56 lines
2.6 KiB
Bash
56 lines
2.6 KiB
Bash
# Tunables for frank-small (batsclamp/Huihui-Qwen3.6-35B-A3B-
|
|
# abliterated-FP8, qwen3_5_moe hybrid MoE, Dankserver, RTX 3090).
|
|
#
|
|
# Runtime: FreeToken v0.1.2 (edge-native MoE serving engine).
|
|
# Installed via uv into /home/dank/freetoken/.venv (CPython 3.12).
|
|
# FreeToken keeps expert weights in host RAM with an LRU GPU cache;
|
|
# KV is paged with radix prefix sharing. Only the 10 full-attention
|
|
# layers page KV (~20 KiB/token); the 30 GDN layers use constant-size
|
|
# per-sequence state (mamba slot pool).
|
|
#
|
|
# Model: batsclamp/Huihui-Qwen3.6-35B-A3B-abliterated-FP8 (HuggingFace
|
|
# safetensors). Abliterated (refusal-removed) Huihui finetune of
|
|
# Qwen3.6-35B-A3B, quantized to the SAME native format the previous
|
|
# official checkpoint used: modelopt block-fp8 e4m3, dynamic
|
|
# activations, 128x128 weight_block_size, bf16 weight_scale_inv;
|
|
# lm_head/embeds/norms/router gates/visual/MTP kept BF16. Un-fused
|
|
# per-expert layout matches the official Qwen FP8, so the FreeToken
|
|
# loader path is identical; ~35 GB on disk. Ships the fixed Qwen3.6
|
|
# chat template (froggeric/Qwen-Fixed-Chat-Templates) — FreeToken
|
|
# reads it from the checkpoint; no template override needed.
|
|
# Replaced Qwen/Qwen3.6-35B-A3B-FP8 on 2026-08-30; pool numbers
|
|
# unchanged — same arch, same weight mass.
|
|
#
|
|
# Pool sizing: GPU budget (~17.6 GiB after weights + fixed caches) is
|
|
# 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%
|
|
# residency (2048/10240) and ~8.6 GiB KV. Live resize via
|
|
# `ft ctl cache --kv N --moe M` can grow KV by shrinking MoE without
|
|
# restart (the reverse requires a restart).
|
|
#
|
|
# WARNING: do not name any variable TEMP, HOST, or GPU_MAX_HEAP_SIZE.
|
|
# 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.
|
|
|
|
# Model directory (safetensors checkpoint, ~35 GB, block-fp8).
|
|
MODEL_DIR=/home/dank/models/huihui-qwen36-35b-a3b-abliterated-fp8
|
|
|
|
# FreeToken venv (uv-managed CPython 3.12, ft CLI, flashinfer, torch+cu130).
|
|
FT_VENV=/home/dank/freetoken/.venv
|
|
CUDA_HOME_DIR=/home/dank/freetoken/.venv/lib/python3.12/site-packages/nvidia/cu13
|
|
|
|
ALIAS=frank-small
|
|
BIND_ADDR=0.0.0.0
|
|
LISTEN_PORT=7770
|
|
|
|
# Expert residency: 2048 of 10240 total expert instances (20%).
|
|
# Each slot ~3 MiB → ~6.0 GiB VRAM for the MoE cache.
|
|
MOE_CACHE_SIZE=2048
|
|
|
|
# KV pool: 453005 tokens (~8.6 GiB at ~20 KiB/token).
|
|
# Covers 4 concurrent sessions at ~113k unique context each
|
|
# (more with radix prefix sharing for common prefixes).
|
|
NUM_TOKENS=453005
|
|
|
|
# Max concurrent decoding requests (also caps mamba slot allocation).
|
|
MAX_RUNNING_REQUESTS=4 |