Cross-cutting rename of the current llama.cpp endpoint on the RTX 3090
(port 7771) from frank-small to frank-secondary:
- Service trio: scripts/{frank-small.env,frank-small.service,
serve-frank-small.sh,download-frank-small.sh} → frank-secondary.*
- Test: tests/frank_small_unit.bats → tests/frank_secondary_unit.bats
- Runbooks: serverAppConfigs-docs/LLM/frank-small-*.md →
frank-secondary-*.md (9 files); the FreeToken runbook stays
freetoken-frank-small.md (it documents the retired CUDA-era service)
- Identifiers: FRANK_SMALL→FRANK_SECONDARY, llm_small→llm_secondary,
LLM_SMALL_*→LLM_SECONDARY_*, deploy_llm_small→deploy_llm_secondary
- Historical references to the OLD frank-small (FreeToken/CUDA on the
3090, and the Dankserver service that became frank-medium) are
preserved verbatim — they describe what the service was called
at the time.
91 lines
2.9 KiB
Bash
Executable File
91 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Download the BF16 MiMo-V2.6-Distill-Qwen-9B payload for frank-large
|
|
# (vLLM/kyuz0 gfx1151, Strix Halo iGPU). Public repo — no auth header on the
|
|
# command line (a Bearer token in argv is world-readable via /proc).
|
|
#
|
|
# Per-file FRESH downloads, no resume: the house rule (see
|
|
# download-frank-secondary.sh); -f/--fail-with-body plus size+sha256 against the
|
|
# Hub LFS oid is what makes an access error fail instead of "succeeding".
|
|
#
|
|
# Usage:
|
|
# scripts/download-frank-large-mimo.sh [DEST_DIR] [--verify-only]
|
|
#
|
|
# The verified set below is exactly what the 2026-10-01 bench window served:
|
|
# 17.53 GiB of BF16 weights (4 shards, 18,819,720,848 B total with the rest).
|
|
set -euo pipefail
|
|
|
|
REPO="XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B"
|
|
BASE="https://huggingface.co/${REPO}/resolve/main"
|
|
|
|
DEST=""
|
|
VERIFY_ONLY=0
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
--verify-only) VERIFY_ONLY=1 ;;
|
|
*) DEST="$arg" ;;
|
|
esac
|
|
done
|
|
DEST="${DEST:-/home/dank/models/MiMo-V2.6-Distill-Qwen-9B-BF16}"
|
|
|
|
# name bytes sha256(- = non-LFS, size-only check)
|
|
FILES=(
|
|
"model-00001-of-00004.safetensors 5276436216 aab052180118aee34abc3029b54eaa49096aac606b97d703866b420dceb703c3"
|
|
"model-00002-of-00004.safetensors 5033171280 7a0486565f06d25ac4628e9dba470dc3f604353471d240d5a0bf7128f64df396"
|
|
"model-00003-of-00004.safetensors 5234499504 6c73207563d1879bfd6c143a028cc70be68edff56280458c71a43df4240300f4"
|
|
"model-00004-of-00004.safetensors 3275613848 1379a7cf8c0b8555a39ab65a47e830e0eb45e776b46045734da3afd73c09eea2"
|
|
"model.safetensors.index.json 69217 -"
|
|
"config.json 2784 -"
|
|
"generation_config.json 126 -"
|
|
"chat_template.jinja 3916 -"
|
|
"tokenizer.json 19989325 06b9509352d2af50381ab2247e083b80d32d5c0aba91c272ca9ff729b6a0e523"
|
|
"tokenizer_config.json 1165 -"
|
|
"vocab.json 6722759 -"
|
|
"merges.txt 3353259 -"
|
|
"preprocessor_config.json 443 -"
|
|
"processor_config.json 1191 -"
|
|
"video_preprocessor_config.json 385 -"
|
|
)
|
|
|
|
mkdir -p "$DEST"
|
|
status=0
|
|
for entry in "${FILES[@]}"; do
|
|
read -r name size sha <<<"$entry"
|
|
f="$DEST/$name"
|
|
have=0
|
|
if [[ -f "$f" ]] && [[ "$(stat -c%s "$f")" == "$size" ]]; then
|
|
if [[ "$sha" == "-" ]] || sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then
|
|
have=1
|
|
fi
|
|
fi
|
|
if (( have )); then
|
|
echo "OK $name"
|
|
continue
|
|
fi
|
|
if (( VERIFY_ONLY )); then
|
|
echo "MISSING $name"
|
|
status=1
|
|
continue
|
|
fi
|
|
echo "FETCHING $name"
|
|
tmp="$f.part"
|
|
curl -fsSL --fail-with-body -o "$tmp" "$BASE/$name"
|
|
mv "$tmp" "$f"
|
|
if [[ "$(stat -c%s "$f")" != "$size" ]]; then
|
|
echo "SIZE FAIL $name ($(stat -c%s "$f") != $size)"
|
|
status=1
|
|
continue
|
|
fi
|
|
if [[ "$sha" != "-" ]] && ! sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then
|
|
echo "SHA FAIL $name"
|
|
status=1
|
|
continue
|
|
fi
|
|
echo "VERIFIED $name"
|
|
done
|
|
if (( status == 0 )); then
|
|
echo "DOWNLOAD_DONE $DEST"
|
|
else
|
|
echo "DOWNLOAD_FAILED $DEST" >&2
|
|
fi
|
|
exit "$status"
|