跳到主要内容

Minimax 模型部署

本章节包含 Minimax 模型的部署脚本及说明。

Minimax-M3-FP8

单卡部署 (tp=8) 示例如下,目前暂不支持 PD 分离部署。

启动脚本 start_server.sh

#!/usr/bin/env bash
set -uo pipefail

HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

MODEL="${MODEL:-/data/models/MiniMax-M3-FP8}"
DRAFT="${DRAFT:-/data/models/MiniMax-M3-EAGLE3}"
PORT="${PORT:-30000}"
LOG="${LOG:-./server.eagle3.log}"
CTX="${CTX:-131072}"
MEMFRAC="${MEMFRAC:-0.7}"
CG_MAX_BS="${CG_MAX_BS:-16}"
MAXREQ="${MAXREQ:-16}"

SGLANG_VENV="${SGLANG_VENV:-/root/.virtualenvs/sglang-default}"
SGLANG_PYTHON="${SGLANG_PYTHON:-$SGLANG_VENV/bin/python3}"
LOG_DIR="${LOG_DIR:-${SMART_TEST_SERVICE_OUTPUT_DIR:-${RUN_DIR:-/run_dir}/logs/service/sglang}}"
LOG_FILE="${LOG:-$LOG_DIR/server.eagle3.log}"
mkdir -p "$LOG_DIR"

[[ -e "$MODEL" ]] || echo "[launch] WARN: MODEL=$MODEL not found - set MODEL=..." >&2
[[ -e "$DRAFT" ]] || echo "[launch] WARN: DRAFT=$DRAFT not found - set DRAFT=... (EAGLE3 draft weights)" >&2

# --- MUSA runtime libs -------------------------------------------------------
export LD_LIBRARY_PATH=/usr/local/musa/lib:/usr/local/musa/lib64:/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}

# --- keep torch_musa autoload ON --------------------------------------------
unset TORCH_DEVICE_BACKEND_AUTOLOAD || true

# --- per-host JIT caches ----------------------------------------------------
export MATE_WORKSPACE_BASE="${MATE_WORKSPACE_BASE:-$HOME/.cache/minimax-m3-fp8/mate_workspace}"
export SGLANG_DG_CACHE_DIR="${SGLANG_DG_CACHE_DIR:-$HOME/.cache/minimax-m3-fp8/deep_gemm}"
mkdir -p "$MATE_WORKSPACE_BASE"
mkdir -p "$SGLANG_DG_CACHE_DIR"
mkdir -p "$(dirname "$LOG_FILE")"

# --- TP token id sync -------------------------------------------------------
export SYNC_TOKEN_IDS_ACROSS_TP=1
export SGLANG_ENABLE_SPEC_V2=1

echo "[launch] MiniMax-M3-FP8 EAGLE3 model=$MODEL draft=$DRAFT port=$PORT ctx=$CTX mem=$MEMFRAC" >&2

nohup "$SGLANG_PYTHON" -m sglang.launch_server \
--model-path "$MODEL" \
--trust-remote-code \
--tp 8 \
--dtype bfloat16 \
--quantization fp8 \
--attention-backend fa3 \
--page-size 128 \
--mem-fraction-static "$MEMFRAC" \
--context-length "$CTX" \
--max-running-requests "$MAXREQ" \
--max-prefill-tokens 8192 \
--chunked-prefill-size 8192 \
--speculative-algorithm EAGLE3 \
--speculative-draft-model-path "$DRAFT" \
--speculative-num-steps 3 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 4 \
--cuda-graph-max-bs "$CG_MAX_BS" \
--disable-radix-cache \
--host 0.0.0.0 \
--port "$PORT" \
--reasoning-parser auto \
--tool-call-parser auto \
--decode-log-interval 5 \
--watchdog-timeout 600 \
"$@" > "$LOG_FILE" 2>&1 &