Instructions to use brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Trellis
How to use brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78 with Trellis:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Download server.sh from brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78: direct link, hf CLI and curl.
- Browser
- Download file 5.17 kB
-
https://huggingface.co/brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78/resolve/main/server.sh
- Command line
-
hf download hf://brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78/server.sh
-
curl -L -o server.sh https://huggingface.co/brandonmusic/GLM-5.2-EXL3-TR3v4-3.5bpw-MTP78/resolve/main/server.sh
5.17 kB
| # Provisional quality-only launcher: sealed r17 + exact G64 Q-only FP8 reader. | |
| # This is not the full-CUDA-graph NVFP4 speed-qualified release profile. | |
| set -Eeuo pipefail | |
| ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" | |
| RUNTIME="$ROOT/runtime/r17-g64-q-only" | |
| IMAGE="${IMAGE:-voipmonitor/vllm@sha256:c5e96c5bcc5a073f7ce6b56173d88538de3a416900cff97c88b4bf7967fe1dc0}" | |
| NAME="${NAME:-glm52-r17-g64-q-only}" | |
| MODEL_DIR="${MODEL_DIR:-$ROOT}" | |
| CACHE_DIR="${CACHE_DIR:-$HOME/.cache/glm52-r17-g64-q-only}" | |
| PORT="${PORT:-8000}" | |
| GPU_MEMORY_UTILIZATION="${GPU_MEMORY_UTILIZATION:-0.97}" | |
| MAX_MODEL_LEN="${MAX_MODEL_LEN:-262144}" | |
| MAX_NUM_BATCHED_TOKENS="${MAX_NUM_BATCHED_TOKENS:-1280}" | |
| MAX_NUM_SEQS="${MAX_NUM_SEQS:-4}" | |
| GRAPH="${GRAPH:-16}" | |
| MTP="${MTP:-3}" | |
| EAGER="${EAGER:-1}" | |
| KV_CACHE_MEMORY_BYTES="${KV_CACHE_MEMORY_BYTES:-4294967296}" | |
| required=( | |
| "$MODEL_DIR/config.json" | |
| "$MODEL_DIR/model.safetensors.index.json" | |
| "$RUNTIME/exl3_overlay.py" | |
| "$RUNTIME/gate_linear.py" | |
| "$RUNTIME/decode_math.py" | |
| ) | |
| require_files() { | |
| local path | |
| for path in "${required[@]}"; do | |
| [[ -f "$path" ]] || { printf 'required file missing: %s\n' "$path" >&2; exit 2; } | |
| done | |
| mkdir -p "$CACHE_DIR" "$CACHE_DIR/tmp" | |
| } | |
| start() { | |
| require_files | |
| docker image inspect "$IMAGE" >/dev/null 2>&1 || docker pull "$IMAGE" | |
| docker rm -f "$NAME" >/dev/null 2>&1 || true | |
| local extra_args=(--enable-bf16x3-router-gemm --kv-cache-memory-bytes "$KV_CACHE_MEMORY_BYTES") | |
| [[ "$EAGER" == "1" ]] && extra_args+=(--enforce-eager) | |
| docker run -d --name "$NAME" \ | |
| --entrypoint /usr/local/bin/serve-gilded-gnosis.sh \ | |
| --gpus all --runtime nvidia --network host --ipc host --privileged --init \ | |
| --shm-size 64g --ulimit memlock=-1:-1 --ulimit nofile=1048576:1048576 \ | |
| --ulimit stack=67108864 --restart unless-stopped \ | |
| -v "$MODEL_DIR:/model:ro" \ | |
| -v "$CACHE_DIR:/cache:rw" \ | |
| -v "$CACHE_DIR/tmp:/container-tmp:rw" \ | |
| -v "$RUNTIME/exl3_overlay.py:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/layers/quantization/exl3.py:ro" \ | |
| -v "$RUNTIME/exl3_overlay.py:/opt/infernal-invocation/vllm/vllm/model_executor/layers/quantization/exl3.py:ro" \ | |
| -v "$RUNTIME/exl3_overlay.py:/opt/venv/lib/python3.12/site-packages/vllm/model_executor/layers/quantization/exl3.py:ro" \ | |
| -v "$RUNTIME/gate_linear.py:/usr/local/lib/python3.12/dist-packages/vllm/model_executor/layers/fused_moe/router/gate_linear.py:ro" \ | |
| -v "$RUNTIME/gate_linear.py:/opt/infernal-invocation/vllm/vllm/model_executor/layers/fused_moe/router/gate_linear.py:ro" \ | |
| -v "$RUNTIME/gate_linear.py:/opt/venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/router/gate_linear.py:ro" \ | |
| -v "$RUNTIME/decode_math.py:/opt/infernal-invocation/b12x/b12x/attention/_shared/mla/decode_math.py:ro" \ | |
| -v "$RUNTIME/decode_math.py:/opt/venv/lib/python3.12/site-packages/b12x/attention/_shared/mla/decode_math.py:ro" \ | |
| -e MODEL_FAMILY=glm52-exl3 -e MODEL=/model \ | |
| -e SERVED_MODEL_NAME=GLM-5.2-EXL3-TR3v4-3.5bpw \ | |
| -e GPUS="${GPUS:-3,1,2,0}" -e PORT="$PORT" \ | |
| -e TP=4 -e DCP=4 -e DCP_KV_CACHE_INTERLEAVE_SIZE=64 -e MTP="$MTP" \ | |
| -e MAX_MODEL_LEN="$MAX_MODEL_LEN" -e MAX_BATCHED_TOKENS="$MAX_NUM_BATCHED_TOKENS" \ | |
| -e MAX_NUM_SEQS="$MAX_NUM_SEQS" -e GRAPH="$GRAPH" \ | |
| -e GPU_MEMORY_UTILIZATION="$GPU_MEMORY_UTILIZATION" \ | |
| -e QUANTIZATION=exl3 -e ONLINE_QUANT=none -e LOAD_FORMAT=safetensors \ | |
| -e KV_CACHE_DTYPE=fp8 -e MOE_MODE=a16 -e MOE_BACKEND=b12x \ | |
| -e MTP_MOE_BACKEND=triton -e MTP_DRAFT_SAMPLE_METHOD=greedy \ | |
| -e ASYNC_SCHEDULING=0 -e PCIE_CALIBRATION=off \ | |
| -e VLLM_DCP_Q_REPLICATE=0 -e VLLM_DCP_INDEXER_SHARDS=4 \ | |
| -e VLLM_DCP_QUERY_SPLIT=0 -e VLLM_DCP_GLOBAL_TOPK=1 \ | |
| -e VLLM_DCP_SHARD_DRAFT=1 -e VLLM_USE_FUSED_MOE_GROUPED_TOPK=1 \ | |
| -e VLLM_EXL3_R7_FUSED=1 -e VLLM_EXL3_R7_FUSED_LAYERS=48 \ | |
| -e VLLM_EXL3_PREFILL_CAPACITY=1024 -e VLLM_EXL3_TRELLIS_MIN_M=1 \ | |
| -e VLLM_ROUTER_WEIGHT_FP32=1 -e VLLM_EXL3_ROUTE_WEIGHT_FP32=0 \ | |
| -e VLLM_FP8_MLA_SCALE_BANK4=0 -e VLLM_FP8_MLA_SCALE_BANK16=0 \ | |
| -e VLLM_FP8_MLA_BF16_G64=0 -e B12X_FP8_MLA_BF16_QK=0 \ | |
| -e B12X_FP8_MLA_BF16_PV=0 -e B12X_FP8_MLA_ARBITRARY_Q_SCALE=1 \ | |
| -e B12X_FP8_MLA_ARBITRARY_Q_G64=1 -e KV_FP8_ROPE=0 \ | |
| -e B12X_CUTE_COMPILE_CACHE_DIR=/cache/b12x-cute/r17-g64-q-only \ | |
| "$IMAGE" "${extra_args[@]}" >/dev/null | |
| printf 'started %s on http://127.0.0.1:%s\n' "$NAME" "$PORT" | |
| printf 'PROVISIONAL quality-only profile; not the speed-qualified release default\n' | |
| printf 'profile: r17, TP4/DCP4, MTP-%s, FP8 MLA KV, exact G64 Q, BF16 RoPE, eager=%s\n' "$MTP" "$EAGER" | |
| printf 'follow startup: %s logs\n' "$0" | |
| } | |
| case "${1:-start}" in | |
| start) start ;; | |
| restart) docker rm -f "$NAME" >/dev/null 2>&1 || true; start ;; | |
| stop) docker rm -f "$NAME" >/dev/null ;; | |
| logs) docker logs -f --tail 150 "$NAME" ;; | |
| status) | |
| docker ps -a --filter "name=^/${NAME}$" --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}' | |
| curl -fsS "http://127.0.0.1:$PORT/v1/models" || true | |
| printf '\n' | |
| ;; | |
| pull) docker pull "$IMAGE" ;; | |
| *) printf 'usage: %s [start|restart|stop|logs|status|pull]\n' "$0" >&2; exit 2 ;; | |
| esac | |