본문으로 건너뛰기

vLLM 설치 및 설정

vLLM 가이드 - 설치 및 설정

vLLM, Open WebUI란

vLLM는 여러 언어 모델을 자신의 서버에서 사용할 수 있도록 하는 도구로 Hugging Face를 통해 LLM 모델을 다운로드 받아 사용할 수 있는 프로그램 입니다.
기본적으로는 GPU의 VRAM을 사용하도록 구성되어 있어 작동 속도가 빠르며 LLM 모델에 따라서는 명령어 옵션을 자세히 파악하고 있어야 원할한 사용이 가능하기에 중상급자에게 추천하는 프로그램입니다.

Open WebUIollama와 연동하여 LLM 모델을 Web에서 사용할 수 있도록 하는 프로그램으로 OpenAI API를 지원하고 있어 vLLM와 연동이 가능하고 사용이 간편하며 여러 기능이 탑재되어 있습니다.

이 가이드에서는 vLLMOpen WebUI의 설치 및 설정 방법에 대해 설명하며 설치 스크립트는 하단의 내용을 참고 해주시기 바랍니다.

설치 및 설정 방법

테스트 서버 환경
  • 운영체제 : Ubuntu 24.04
라이선스 확인

1. 운영체제 업데이트 및 업그레이드

운영체제의 업데이트 및 업그레이드를 진행 후 리부팅을 진행합니다.

apt update
apt upgrade
reboot

2. vLLM & Open WebUI 설치

vLLM 설치에 필요한 패키지를 설치합니다.

apt install python3-pip python3.12-venv nvidia-driver-550

파이썬의 가상환경을 생성합니다.

python3 -m venv /iwinv_venv

가상환경으로 진입합니다.

source /iwinv_venv/bin/activate

가상환경 내부에서 vLLM, Open WebUI, huggingface_hub를 설치합니다.

pip install vllm open-webui huggingface_hub

3. vLLM 설정(블록스토리지를 추가할 경우)

LLM 모델의 종류 및 파라미터에 따라 저장되는 용량에 차이가 있어 사용 하다보면 서버 내부의 디스크 공간이 부족할 수 있습니다.
이 경우 블록스토리지 가이드을 참고하여 블록스토리지를 장착한 뒤 사용하는 것을 권장 합니다.

df -Th # 마운트 전
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs tmpfs 5.9G 1.1M 5.9G 1% /run
/dev/vda1 ext4 96G 21G 76G 22% /
tmpfs tmpfs 30G 4.0K 30G 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda16 ext4 881M 112M 707M 14% /boot
/dev/vda15 vfat 105M 6.2M 99M 6% /boot/efi
tmpfs tmpfs 5.9G 20K 5.9G 1% /run/user/0

블록스토리지를 추가했다면 vLLM에 사용될 LLM 모델이 저장될 디렉토리를 생성하고 마운트를 진행합니다.

mkdir /vLLM_llm
mount /dev/vdb1 /vLLM_llm
df -Th # 50GB 마운트 후
Filesystem     Type   Size  Used Avail Use% Mounted on
tmpfs tmpfs 5.9G 1.1M 5.9G 1% /run
/dev/vda1 ext4 96G 21G 76G 22% /
tmpfs tmpfs 30G 4.0K 30G 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda16 ext4 881M 112M 707M 14% /boot
/dev/vda15 vfat 105M 6.2M 99M 6% /boot/efi
tmpfs tmpfs 5.9G 20K 5.9G 1% /run/user/0
/dev/vdb1 ext4 49G 1G 49G 1% /ollama_llm

vLLM에서 LLM 모델이 저장되고 사용될 위치를 환경변수에 추가해 적용합니다.

echo 'export HF_HOME=/vLLM_llm/huggingface' >> ~/.bashrc
source ~/.bashrc

4. Open WebUI 설정

Open WebUI는 service, systemctl을 통한 서비스 데몬 실행이 제공되지 않으며 아래의 명령어를 통해 http://xxx.xxx.xxx.xxx:8080으로 접근이 가능합니다. 실행 중 터미널에서 Ctrl + C를 사용하거나 로그아웃 시 프로세스의 종료가 진행 됩니다.

open-webui serve

편리하게 사용하기 위해 서비스 데몬을 생성해보겠습니다.

vi /etc/systemd/system/openwebui.service
[Unit]
Description=Open WebUI Service
After=network.target

[Service]
Type=simple
ExecStart=/iwinv_venv/bin/open-webui serve
ExecStop=/bin/kill -HUP $MAINPID
User=root
Group=root

# 로그 파일 별도 생성
StandardOutput=append:/var/log/openwebui/openwebui.log
StandardError=append:/var/log/openwebui/openwebui_error.log

[Install]
WantedBy=multi-user.target

로그 파일이 별도로 저장될 수 있도록 서비스 데몬에 설정한 위치에 디렉토리를 생성합니다.

mkdir /var/log/openwebui

서버의 리부팅 시 서비스가 동작하도록 설정 후 재시작합니다.

systemctl daemon-reload
systemctl enable openwebui.service
systemctl start openwebui.service

사용 방법

지금까지 설치 및 설정 방법에 대해 알아보았습니다.
vLLM을 사용하는 방법은 아래 링크에서 이어 확인하실 수 있습니다.