Unified Llama 4 Scout/Maverick BI-V150 deployment bundle

This commit is contained in:
2026-10-26 16:24:16 +08:00
commit caddeadd15
16 changed files with 1201 additions and 0 deletions

71
entrypoint.sh Executable file
View File

@@ -0,0 +1,71 @@
#!/usr/bin/env bash
#
# Llama 4 Scout / Maverick 统一容器入口:
# 1. 幂等应用 CoreX vLLM 的 Llama 4 补丁(Scout 只用 chunked attention,
# Maverick 额外使用 FP8 补丁;补丁脚本会按 marker 自动跳过已应用项)
# 2. 检查模型目录
# 3. exec vLLM(信号可直接传给 vLLM)
#
set -euo pipefail
PATCH_SCRIPT="${LLAMA4_PATCH_SCRIPT:-/opt/llama4/apply_patch.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:-}"
if [[ ! -f "${MODEL_PATH}/config.json" ]]; then
echo "ERROR: 模型目录不完整:${MODEL_PATH}/config.json 不存在" >&2
echo "请确认已挂载模型,例如:" >&2
echo " -v /mnt/disk0/models/LLM-Research/Llama-4-Scout-17B-16E-Instruct:/models/llama4:ro" >&2
echo " -v /mnt/disk0/models/LLM-Research/Llama-4-Maverick-17B-128E-Instruct-FP8:/models/llama4:ro" >&2
exit 1
fi
PP_ARGS=()
if (( PP > 1 )); then
PP_ARGS=(--pipeline-parallel-size "${PP}")
fi
EAGER_ARGS=()
if [[ "${ENFORCE_EAGER}" == "1" ]]; then
EAGER_ARGS=(--enforce-eager)
fi
echo "============================================================"
echo "Llama 4 (BI-V150 unified image)"
echo " model : ${MODEL_PATH}"
echo " served name: ${SERVED_NAME}"
echo " listen : ${HOST}:${PORT}"
echo " TP / PP : ${TP} / ${PP} (total $((TP * PP)) GPUs)"
echo " max len : ${MAX_MODEL_LEN}"
echo " max seqs : ${MAX_NUM_SEQS}"
echo " gpu util : ${GPU_MEM_UTIL}"
echo " eager : ${ENFORCE_EAGER}"
echo " visible : ${CUDA_VISIBLE_DEVICES:-all}"
echo " extra : ${EXTRA_ARGS}"
echo "============================================================"
# shellcheck disable=SC2086
exec "${VLLM_BIN}" serve "${MODEL_PATH}" \
--host "${HOST}" \
--port "${PORT}" \
--served-model-name "${SERVED_NAME}" \
--tensor-parallel-size "${TP}" \
"${PP_ARGS[@]}" \
--max-model-len "${MAX_MODEL_LEN}" \
--max-num-seqs "${MAX_NUM_SEQS}" \
--gpu-memory-utilization "${GPU_MEM_UTIL}" \
"${EAGER_ARGS[@]}" \
${EXTRA_ARGS}