GLM-4v-9b 단일 GPU 배포: vLLM 인퍼런스 서버와 OpenWebUI 통합 설정 가이드

시스템 사양 및 사전 준비

다음 사양을 충족하는 환경에서 작업을 진행하세요:

  • Ubuntu 22.04 이상
  • NVIDIA GPU (RTX 4090 이상 권장, 24GB 이상 메모리)
  • CUDA 11.8 이상 및 NVIDIA 드라이버 525.60.11 이상
  • 시스템 메모리 32GB 이상, 저장공간 50GB 이상

기본 환경 구성

# 시스템 업데이트 및 필수 패키지 설치
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv git wget

# 프로젝트 디렉토리 생성 및 가상 환경 설정
mkdir model-deployment && cd model-deployment
python3 -m venv model-venv
source model-venv/bin/activate

vLLM 인퍼런스 서버 설정

# vLLM 및 의존성 설치
pip install vllm transformers accelerate

# 모델 다운로드 (Hugging Face)
git lfs install
git clone https://huggingface.co/THUDM/glm-4v-9b models/glm-4v-9b

# 인퍼런스 서버 실행
python -m vllm.entrypoints.openai.api_server \
    --model models/glm-4v-9b \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.85 \
    --served-model-name glm-4v-model \
    --host 0.0.0.0 \
    --port 8000

OpenWebUI 통합 구성

# OpenWebUI 다운로드 및 의존성 설치
git clone https://github.com/open-webui/open-webui.git
cd open-webui
pip install -r requirements.txt

# 구성 파일 생성
cat > config.json << EOF
{
  "webui": {
    "host": "0.0.0.0",
    "port": 8080,
    "base_url": null
  },
  "model": {
    "name": "glm-4v-model",
    "api_base": "http://localhost:8000/v1",
    "api_key": "none"
  }
}
EOF

# OpenWebUI 실행
python main.py

역방향 프록시 설정 (Nginx 기반)

# Nginx 설치
sudo apt install -y nginx

# 구성 파일 생성
sudo nano /etc/nginx/sites-available/glm-model

# Nginx 구성 내용
server {
    listen 80;
    server_name model.example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

# 구성 활성화
sudo ln -s /etc/nginx/sites-available/glm-model /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx

배포 스크립트 최적화

#!/bin/bash
set -e

echo "모델 배포 시작..."

# 가상 환경 생성
python3 -m venv model-env
source model-env/bin/activate

# 의존성 설치
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install vllm transformers accelerate

# 모델 서버 실행
nohup python -m vllm.entrypoints.openai.api_server \
    --model models/glm-4v-9b \
    --gpu-memory-utilization 0.85 \
    --port 8000 > vllm.log 2>&1 &

# OpenWebUI 설정
git clone https://github.com/open-webui/open-webui.git
cd open-webui
pip install -r requirements.txt
cp config.example.json config.json

echo "배포 완료! 접근 주소: http://localhost:8080"

주요 오류 해결 전략

  • 메모리 부족: --gpu-memory-utilization 값을 0.8로 조정하거나 INT4 양자화 모델 사용
  • 모델 불러오기 실패: 모델 경로 확인 및 Hugging Face 권한 재확인
  • 성능 최적화: vLLM 최신 버전 사용, 배치 크기 증가, TensorRT 연동 고려

태그: GLM-4v-9b vLLM OpenWebUI multimodal inference NVIDIA CUDA

9월 6일 12:54에 게시됨