Files

60 lines
1.8 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
VENV_DIR="${SCRIPT_DIR}/myenv"
HOST_PORT="${HOST_PORT:-8900}"
MODEL_DIR="${SCRIPT_DIR}/models/Qwen/Qwen3___6-35B-A3B-FP8"
# 鉴权与模型名校验:SERVER_API_KEY 为空时 vLLM 不校验 API Key(任意值放行)
SERVER_API_KEY="${SERVER_API_KEY:-}"
SERVER_MODELNAME="${SERVER_MODELNAME:-Qwen/Qwen3.6-35B-A3B-FP8}"
# 激活虚拟环境
source "${VENV_DIR}/bin/activate"
# 检查端口占用
if lsof -i "tcp:${HOST_PORT}" -t >/dev/null 2>&1; then
echo "Port ${HOST_PORT} already in use" >&2
exit 1
fi
echo "Starting vLLM server on port ${HOST_PORT} ..."
echo "Model path: ${MODEL_DIR}"
echo "Served model name: ${SERVER_MODELNAME}"
if [ -n "${SERVER_API_KEY}" ]; then
echo "API Key 校验已启用"
fi
# 设置环境变量
export VLLM_USE_MODELSCOPE=true
export MODELSCOPE_DOWNLOAD_MODE=local
export MODELSCOPE_HUB_ENABLE_FILE_CHECK=false
export MODELSCOPE_CACHE="${SCRIPT_DIR}/models"
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1
export CUDA_VISIBLE_DEVICES=3
# 启动 vLLM 服务
VLLM_ARGS=(
--port "${HOST_PORT}"
--host 0.0.0.0
--tensor-parallel-size 1
--max-model-len 262144
--reasoning-parser qwen3
--enable-auto-tool-choice
--tool-call-parser qwen3_coder
--speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}'
--enable-prefix-caching
--max_num_batched_tokens 4096
--max_num_seqs 8
--kv-cache-dtype fp8_e4m3
--chat-template "${SCRIPT_DIR}/chat_template.jinja"
--safetensors-load-strategy eager
--served-model-name "${SERVER_MODELNAME}"
)
# API Key 为空时不传 --api-key(vLLM 默认放行任意值)
if [ -n "${SERVER_API_KEY}" ]; then
VLLM_ARGS+=(--api-key "${SERVER_API_KEY}")
fi
vllm serve "${MODEL_DIR}" "${VLLM_ARGS[@]}"