#!/usr/bin/env bash # # Llama 4 Scout 容器入口: # 1. 幂等应用 vLLM CoreX 的 Llama4 chunked-attention 补丁 # 2. 检查模型目录 # 3. exec vLLM(信号可直接传给 vLLM) # set -euo pipefail python3 /opt/llama4/apply_patch.py MODEL_PATH="${MODEL_PATH:-/models/llama4-scout}" SERVED_NAME="${SERVED_NAME:-llama4-scout}" HOST="${HOST:-0.0.0.0}" PORT="${PORT:-8091}" TP="${TP:-8}" MAX_MODEL_LEN="${MAX_MODEL_LEN:-4096}" MAX_NUM_SEQS="${MAX_NUM_SEQS:-1}" GPU_MEM_UTIL="${GPU_MEM_UTIL:-0.90}" 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-scout:ro" >&2 exit 1 fi echo "============================================================" echo "Llama 4 Scout" echo " model : ${MODEL_PATH}" echo " served name: ${SERVED_NAME}" echo " listen : ${HOST}:${PORT}" echo " TP : ${TP}" echo " max len : ${MAX_MODEL_LEN}" echo " max seqs : ${MAX_NUM_SEQS}" echo " gpu util : ${GPU_MEM_UTIL}" echo " extra : ${EXTRA_ARGS}" echo "============================================================" # shellcheck disable=SC2086 exec vllm serve "${MODEL_PATH}" \ --host "${HOST}" \ --port "${PORT}" \ --served-model-name "${SERVED_NAME}" \ --tensor-parallel-size "${TP}" \ --max-model-len "${MAX_MODEL_LEN}" \ --max-num-seqs "${MAX_NUM_SEQS}" \ --gpu-memory-utilization "${GPU_MEM_UTIL}" \ --enforce-eager \ ${EXTRA_ARGS}