시스템 사양 및 사전 준비
다음 사양을 충족하는 환경에서 작업을 진행하세요:
- 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 연동 고려