vllm-mlx 서버 백그라운드 실행 및 멀티모달 고정

- 서버를 백그라운드로 실행 (로그는 vllm-mlx.log에 저장)
- 모드 선택 제거, 멀티모달(--mllm) 고정
- 서버 준비 대기 로직 추가
- stop-mlx.sh에서 로그 파일 정리 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
MyeonghoeLee 2026-03-25 22:05:30 +09:00
parent fe00782db1
commit b9e448af0d
2 changed files with 72 additions and 20 deletions

View File

@ -11,6 +11,9 @@ PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
MODEL="mlx-community/Qwen3.5-35B-A3B-4bit" MODEL="mlx-community/Qwen3.5-35B-A3B-4bit"
PORT=8090 PORT=8090
WEBUI_PORT=3000 WEBUI_PORT=3000
MAX_TOKENS=8192
TEMPERATURE=0.7
TOP_P=0.9
echo "============================================" echo "============================================"
echo " Qwen3.5 + Open WebUI (vllm-mlx) 셋업" echo " Qwen3.5 + Open WebUI (vllm-mlx) 셋업"
@ -191,29 +194,74 @@ echo " ✓ Open WebUI 실행 중 (http://localhost:${WEBUI_PORT})"
echo "" echo ""
MLLM_FLAG="--mllm"
#-------------------------------------------------------------------- #--------------------------------------------------------------------
# 6. 완료 # 6. vllm-mlx 서버 시작
#-------------------------------------------------------------------- #--------------------------------------------------------------------
echo "[6/6] 셋업 완료!" LOG_FILE="$PROJECT_DIR/vllm-mlx.log"
echo "[6/6] vllm-mlx 서버 시작 (백그라운드)..."
echo ""
echo " 모델: $MODEL"
echo " 포트: $PORT"
echo " max_tokens: $MAX_TOKENS"
echo " temperature: $TEMPERATURE"
echo " top_p: $TOP_P"
echo " 모드: 멀티모달 (이미지 + 텍스트)"
echo ""
# 백그라운드 실행, 로그는 파일로
nohup vllm-mlx serve "$MODEL" \
--port "$PORT" \
--max-tokens "$MAX_TOKENS" \
--default-temperature "$TEMPERATURE" \
--default-top-p "$TOP_P" \
--timeout 600 \
$MLLM_FLAG > "$LOG_FILE" 2>&1 &
SERVER_PID=$!
echo " 서버 PID: $SERVER_PID"
echo " 로그 파일: $LOG_FILE"
echo ""
# 서버가 뜰 때까지 대기 (최대 120초, 첫 실행 시 모델 다운로드 포함)
echo " 서버 준비 대기 중... (첫 실행 시 모델 다운로드 ~20GB)"
for i in $(seq 1 120); do
if curl -s http://localhost:$PORT/v1/models > /dev/null 2>&1; then
echo ""
echo " ✓ 서버 준비 완료!"
break
fi
# 프로세스가 죽었는지 확인
if ! kill -0 $SERVER_PID 2>/dev/null; then
echo ""
echo " ❌ 서버 시작 실패. 로그를 확인하세요:"
echo " tail -50 $LOG_FILE"
exit 1
fi
printf "."
sleep 1
done
# 120초 후에도 안 되면 안내
if ! curl -s http://localhost:$PORT/v1/models > /dev/null 2>&1; then
echo ""
echo " ⚠️ 서버가 아직 준비 중입니다. (모델 다운로드 중일 수 있음)"
echo " 로그 확인: tail -f $LOG_FILE"
echo " 준비되면 http://localhost:${WEBUI_PORT} 접속"
else
echo ""
fi
echo "" echo ""
echo "============================================" echo "============================================"
echo " 다음 단계: 서버를 시작하세요" echo " 셋업 완료!"
echo "============================================" echo "============================================"
echo "" echo ""
echo " # 텍스트 전용:" echo " 브라우저: http://localhost:${WEBUI_PORT}"
echo " source $VENV_DIR/bin/activate"
echo " vllm-mlx serve $MODEL \\"
echo " --port $PORT --max-tokens 8192 \\"
echo " --default-temperature 0.7 --default-top-p 0.9"
echo ""
echo " # 텍스트 + 이미지 (멀티모달):"
echo " source $VENV_DIR/bin/activate"
echo " vllm-mlx serve $MODEL \\"
echo " --port $PORT --max-tokens 8192 \\"
echo " --default-temperature 0.7 --default-top-p 0.9 --mllm"
echo ""
echo " 서버 시작 후 브라우저에서 http://localhost:${WEBUI_PORT} 접속"
echo " (첫 접속 시 회원가입 → 첫 계정이 admin)" echo " (첫 접속 시 회원가입 → 첫 계정이 admin)"
echo "" echo ""
echo " 종료하려면: ./stop-mlx.sh" echo " 로그 확인: tail -f $LOG_FILE"
echo " 종료: ./stop-mlx.sh"
echo "============================================" echo "============================================"

View File

@ -30,8 +30,12 @@ else
echo " - vllm-mlx 서버 없음 (이미 종료됨)" echo " - vllm-mlx 서버 없음 (이미 종료됨)"
fi fi
# 로그 파일 정리
if [ -f "$PROJECT_DIR/vllm-mlx.log" ]; then
rm "$PROJECT_DIR/vllm-mlx.log"
echo " ✓ 로그 파일 정리"
fi
echo "" echo ""
echo " 완료. 재시작하려면:" echo " 완료. 재시작하려면: ./setup-mlx.sh"
echo " 1. ./setup-mlx.sh"
echo " 2. 서버 시작 (setup 완료 시 안내되는 명령어 참고)"
echo "" echo ""