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.
89 lines
3.2 KiB
Bash
Executable File
89 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Download the frank-secondary payload for llama.cpp on the RTX 3090:
|
|
# ajgazin/Swift-1.5-Qwen3.8-27B-Uncensored-Dynamic-MTP-GGUF:RCO-IQ3_XXS
|
|
# **with the MTP head in the file** (the -mtp variant), plus the
|
|
# PUBLISHER's OWN vision projector (mmproj-BF16.gguf, same repo). Public
|
|
# repo — no auth header, and never a token on the command line (it is
|
|
# world-readable in /proc/<pid>/cmdline).
|
|
#
|
|
# Fresh downloads, no resume (`curl -C -` once produced a 213 MB oversized
|
|
# file on a 31 GiB payload); -f/--fail-with-body so an HTTP error is not a
|
|
# success, then byte count and sha256. This repo is on Xet storage, so
|
|
# the Hub tree/blob APIs expose no LFS oid: the sha256 values below were
|
|
# computed locally after the first verified fetch (byte counts match the
|
|
# Hub's declared sizes). Idempotent: complete files are skipped. The
|
|
# projector is stored under a self-documenting dest name; the URL name
|
|
# and sha stay pinned in the table below.
|
|
#
|
|
# 2026-10-06 (Frank, evening): the payload moved to the UNCELERSED
|
|
# Swift-1.5-Qwen3.8-27B at RCO-IQ3_XXS (1.56 GiB lighter than the
|
|
# IQ3_S-mtp it replaced; the lighter quant funds the MTP draft ctx plus
|
|
# the second 131,072 slot). Rollback payload stays on disk:
|
|
# /home/dank/models/Swift15-IQ3S/ (the IQ3_S-mtp that was live until this
|
|
# swap); earlier payloads Ornith-Q8/ and MiMo-Q6K/ as well. Their
|
|
# re-fetch recipes are in git history (predecessors of this script).
|
|
#
|
|
# Usage:
|
|
# scripts/download-frank-secondary.sh [DEST_DIR] [--verify-only]
|
|
set -euo pipefail
|
|
|
|
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/Swift15-UncIQ3XXS}"
|
|
|
|
# repo | hub-name | dest-name | bytes | sha256 (computed locally; Xet repo)
|
|
FILES=(
|
|
"ajgazin/Swift-1.5-Qwen3.8-27B-Uncensored-Dynamic-MTP-GGUF|RCO/Swift-1.5-Qwen3.8-27B-Uncensored-Dynamic-MTP-RCO-IQ3_XXS.gguf|Swift-1.5-Qwen3.8-27B-Uncensored-Dynamic-MTP-RCO-IQ3_XXS.gguf|10442827392|e13d3e7400b6c7f980ebd30c0edd6be43eb1865b50be8562a9db042706c7d803"
|
|
"ajgazin/Swift-1.5-Qwen3.8-27B-Uncensored-Dynamic-MTP-GGUF|mmproj-BF16.gguf|mmproj-BF16.gguf|931145888|19acd7fcf4ee504328566eddf0f8e603ef853a205b4830209d2a4908213abdea"
|
|
)
|
|
|
|
mkdir -p "$DEST"
|
|
status=0
|
|
for entry in "${FILES[@]}"; do
|
|
IFS='|' read -r repo hubname destname size sha <<<"$entry"
|
|
url="https://huggingface.co/${repo}/resolve/main/${hubname}"
|
|
f="$DEST/$destname"
|
|
have=0
|
|
if [[ -f "$f" ]] && [[ "$(stat -c%s "$f")" == "$size" ]]; then
|
|
if sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then
|
|
have=1
|
|
fi
|
|
fi
|
|
if (( have )); then
|
|
echo "OK $destname"
|
|
continue
|
|
fi
|
|
if (( VERIFY_ONLY )); then
|
|
echo "MISSING $destname"
|
|
status=1
|
|
continue
|
|
fi
|
|
echo "FETCHING $destname (from $repo)"
|
|
tmp="$f.part"
|
|
curl -fsSL --fail-with-body -o "$tmp" "$url"
|
|
mv "$tmp" "$f"
|
|
if [[ "$(stat -c%s "$f")" != "$size" ]]; then
|
|
echo "SIZE FAIL $destname ($(stat -c%s "$f") != $size)"
|
|
status=1
|
|
continue
|
|
fi
|
|
if ! sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then
|
|
echo "SHA FAIL $destname"
|
|
status=1
|
|
continue
|
|
fi
|
|
echo "VERIFIED $destname"
|
|
done
|
|
if (( status == 0 )); then
|
|
echo "DOWNLOAD_DONE $DEST"
|
|
else
|
|
echo "DOWNLOAD_FAILED $DEST" >&2
|
|
fi
|
|
exit "$status"
|