Auto-detect Scout/Maverick from config.json and add verify script

This commit is contained in:
2026-10-26 16:59:44 +08:00
parent 13f14a12e9
commit 738d9f80e4
10 changed files with 816 additions and 235 deletions

View File

@@ -1,29 +1,24 @@
#!/usr/bin/env bash
#
# Llama 4 Scout / Maverick 统一容器入口:
# 1. 幂等应用 CoreX vLLM 的 Llama 4 补丁(Scout 只用 chunked attention,
# Maverick 额外使用 FP8 补丁;补丁脚本会按 marker 自动跳过已应用项)
# 2. 检查模型目录
# 3. exec vLLM(信号可直接传给 vLLM)
# Llama 4 统一容器入口:
# 1. 幂等应用 CoreX vLLM 的 Llama 4 补丁
# 2. 读取 /models/llama4/config.json,自动判断 Scout / Maverick
# 3. 选择对应的 TP / PP / 端口 / served name,再启动 vLLM
#
# AUTO_DETECT=1(默认)时根据模型 config 自动选择;显式设置的
# TP / PP / PORT / SERVED_NAME 会覆盖检测结果。AUTO_DETECT=0 可完全手动。
#
set -euo pipefail
PATCH_SCRIPT="${LLAMA4_PATCH_SCRIPT:-/opt/llama4/apply_patch.py}"
DETECT_SCRIPT="${LLAMA4_DETECT_SCRIPT:-/opt/llama4/detect_model.py}"
VLLM_BIN="${VLLM_BIN:-vllm}"
python3 "${PATCH_SCRIPT}"
MODEL_PATH="${MODEL_PATH:-/models/llama4}"
SERVED_NAME="${SERVED_NAME:-llama4}"
HOST="${HOST:-0.0.0.0}"
PORT="${PORT:-8091}"
TP="${TP:-8}"
PP="${PP:-1}"
MAX_MODEL_LEN="${MAX_MODEL_LEN:-4096}"
MAX_NUM_SEQS="${MAX_NUM_SEQS:-1}"
GPU_MEM_UTIL="${GPU_MEM_UTIL:-0.90}"
ENFORCE_EAGER="${ENFORCE_EAGER:-1}"
EXTRA_ARGS="${EXTRA_ARGS:-}"
AUTO_DETECT="${AUTO_DETECT:-1}"
MODEL_DESCRIPTION=""
if [[ ! -f "${MODEL_PATH}/config.json" ]]; then
echo "ERROR: 模型目录不完整:${MODEL_PATH}/config.json 不存在" >&2
@@ -33,6 +28,30 @@ if [[ ! -f "${MODEL_PATH}/config.json" ]]; then
exit 1
fi
if [[ "${AUTO_DETECT}" == "1" ]]; then
DETECT_OUTPUT="$(python3 "${DETECT_SCRIPT}" "${MODEL_PATH}")" || exit 1
eval "${DETECT_OUTPUT}"
MODEL_KIND="${MODEL_KIND:-${DETECTED_MODEL_KIND}}"
TP="${TP:-${DETECTED_TP}}"
PP="${PP:-${DETECTED_PP}}"
PORT="${PORT:-${DETECTED_PORT}}"
SERVED_NAME="${SERVED_NAME:-${DETECTED_SERVED_NAME}}"
MODEL_DESCRIPTION="${DETECTED_DESCRIPTION:-}"
else
MODEL_KIND="${MODEL_KIND:-unknown}"
fi
HOST="${HOST:-0.0.0.0}"
TP="${TP:-8}"
PP="${PP:-1}"
PORT="${PORT:-8091}"
SERVED_NAME="${SERVED_NAME:-llama4}"
MAX_MODEL_LEN="${MAX_MODEL_LEN:-4096}"
MAX_NUM_SEQS="${MAX_NUM_SEQS:-1}"
GPU_MEM_UTIL="${GPU_MEM_UTIL:-0.90}"
ENFORCE_EAGER="${ENFORCE_EAGER:-1}"
EXTRA_ARGS="${EXTRA_ARGS:-}"
PP_ARGS=()
if (( PP > 1 )); then
PP_ARGS=(--pipeline-parallel-size "${PP}")
@@ -45,6 +64,7 @@ fi
echo "============================================================"
echo "Llama 4 (BI-V150 unified image)"
echo " model kind : ${MODEL_KIND}"
echo " model : ${MODEL_PATH}"
echo " served name: ${SERVED_NAME}"
echo " listen : ${HOST}:${PORT}"
@@ -55,6 +75,9 @@ echo " gpu util : ${GPU_MEM_UTIL}"
echo " eager : ${ENFORCE_EAGER}"
echo " visible : ${CUDA_VISIBLE_DEVICES:-all}"
echo " extra : ${EXTRA_ARGS}"
if [[ -n "${MODEL_DESCRIPTION}" ]]; then
echo " detected : ${MODEL_DESCRIPTION}"
fi
echo "============================================================"
# shellcheck disable=SC2086