dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
This commit is contained in:
96
tour-comfy/deploy_pose_llm.sh
Executable file
96
tour-comfy/deploy_pose_llm.sh
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# Deploy/stop/restart/status the uncensored chat LLM API (pose_llm_api.py) on tour.
|
||||
# Mirrors the joycaption deploy_api.sh pattern.
|
||||
#
|
||||
# Usage:
|
||||
# ./deploy_pose_llm.sh deploy # upload + (re)start, wait for health
|
||||
# ./deploy_pose_llm.sh stop
|
||||
# ./deploy_pose_llm.sh restart
|
||||
# ./deploy_pose_llm.sh status
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
LOCAL_FILE="$(dirname "$0")/pose_llm_api.py"
|
||||
REMOTE="tour@192.168.1.160"
|
||||
REMOTE_DIR="/media/tour/NVME0/llm"
|
||||
PORT="${PORT:-8001}"
|
||||
MODEL_ID="${MODEL_ID:-dphn/Dolphin3.0-Mistral-24B}"
|
||||
|
||||
ACTION="${1:-deploy}"
|
||||
|
||||
print_header() { echo; echo "============================================================"; echo "$1"; echo "============================================================"; }
|
||||
|
||||
stop_one() {
|
||||
print_header "Stopping pose-LLM API on $REMOTE"
|
||||
ssh "$REMOTE" "
|
||||
cd '$REMOTE_DIR'
|
||||
if [ -f api.pid ]; then
|
||||
PID=\$(cat api.pid)
|
||||
if kill -0 \"\$PID\" 2>/dev/null; then
|
||||
echo '==> Stopping PID' \"\$PID\"; kill \"\$PID\"
|
||||
for i in \$(seq 1 30); do kill -0 \"\$PID\" 2>/dev/null || { echo '==> stopped'; rm -f api.pid; exit 0; }; sleep 1; done
|
||||
echo '==> hard kill'; kill -9 \"\$PID\" 2>/dev/null || true
|
||||
fi
|
||||
rm -f api.pid
|
||||
else echo '==> no api.pid'; fi
|
||||
PORT_PID=\$(lsof -ti:$PORT 2>/dev/null || true)
|
||||
[ -n \"\$PORT_PID\" ] && { echo '==> killing port $PORT:' \"\$PORT_PID\"; kill \$PORT_PID 2>/dev/null || true; }
|
||||
true
|
||||
"
|
||||
}
|
||||
|
||||
deploy_one() {
|
||||
print_header "Deploying pose-LLM API to $REMOTE (model: $MODEL_ID)"
|
||||
echo "==> Uploading pose_llm_api.py..."
|
||||
scp "$LOCAL_FILE" "$REMOTE:$REMOTE_DIR/pose_llm_api.py"
|
||||
|
||||
echo "==> Writing start script..."
|
||||
ssh "$REMOTE" "cat > '$REMOTE_DIR/start_pose_llm.sh'" << EOF
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
cd "$REMOTE_DIR"
|
||||
if [ -f api.pid ]; then
|
||||
kill \$(cat api.pid) 2>/dev/null || true
|
||||
rm -f api.pid
|
||||
echo "waiting for VRAM to drain..."
|
||||
sleep 10
|
||||
fi
|
||||
. venv/bin/activate
|
||||
export HSA_OVERRIDE_GFX_VERSION=9.0.6
|
||||
export HF_HOME="$REMOTE_DIR/hf"
|
||||
export HF_HUB_OFFLINE=1
|
||||
export MODEL_ID="$MODEL_ID"
|
||||
export PORT="$PORT"
|
||||
nohup python3 pose_llm_api.py > api.log 2>&1 &
|
||||
echo \$! > api.pid
|
||||
echo "started PID \$(cat api.pid)"
|
||||
EOF
|
||||
ssh "$REMOTE" "chmod +x '$REMOTE_DIR/start_pose_llm.sh' && '$REMOTE_DIR/start_pose_llm.sh'"
|
||||
|
||||
echo "==> Waiting for model load + health (can take ~60s)..."
|
||||
for i in $(seq 1 120); do
|
||||
if ssh "$REMOTE" "curl -fsS http://localhost:$PORT/health >/dev/null 2>&1"; then echo "==> API ready"; break; fi
|
||||
if [ "$i" -eq 120 ]; then echo "ERROR: not healthy"; ssh "$REMOTE" "tail -n 60 $REMOTE_DIR/api.log"; exit 1; fi
|
||||
sleep 2
|
||||
done
|
||||
echo "==> Health:"; ssh "$REMOTE" "curl -s http://localhost:$PORT/health | python3 -m json.tool"
|
||||
}
|
||||
|
||||
status_one() {
|
||||
print_header "Status on $REMOTE"
|
||||
ssh "$REMOTE" "
|
||||
cd '$REMOTE_DIR'
|
||||
echo '==> PID:'; cat api.pid 2>/dev/null || echo none
|
||||
echo '==> Port $PORT:'; lsof -i:$PORT 2>/dev/null || echo 'nothing listening'
|
||||
echo '==> Health:'; curl -fsS http://localhost:$PORT/health 2>/dev/null | python3 -m json.tool || echo 'not healthy'
|
||||
echo '==> Last 20 log lines:'; tail -n 20 api.log 2>/dev/null || true
|
||||
"
|
||||
}
|
||||
|
||||
case "$ACTION" in
|
||||
deploy) deploy_one ;;
|
||||
stop) stop_one ;;
|
||||
restart) stop_one; deploy_one ;;
|
||||
status) status_one ;;
|
||||
*) echo "Usage: $0 [deploy|stop|restart|status]"; exit 1 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user