Ktransformers 설치 및 설정
Ktransformers란
Ktransformers는 다용량의 메모리를 활용하여 고성능의 GPU를 사용하지 않더라도 특정 모델을 작동시키는데 사용이 가능한 프레임워크입니다.
설치 및 설정 방법
이 가이드에서는 Ktransformers
와 Open WebUI
의 설치 및 설정 방법에 대해 설명하며 설치 스크립트는 하단의 내용을 참고 해주시기 바랍니다.
- 운영체제 : Ubuntu 24.04
- 하드웨어 환경
-
- CPU : 48T (24T * 2)
-
- 메모리 : 1TB
- 설치 전 라이선스를 확인하시기 바랍니다.
- 설치에 실패할 경우 서버 내부에서 외부망 사용이 불가능한지 확인 해주세요.
- 이 문서는 GPU 드라이버 및 CUDA가 준비 된 것을 전제로 기술합니다.
1. Anaconda 설치 및 가상환경 생성
파이썬의 가상환경을 사용 하기 위해 Anaconda를 설치합니다.
apt update
apt -y upgrade
apt -y install build-essential cmake ninja-build libtbb-dev
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
sh Anaconda3-2024.10-1-Linux-x86_64.sh
Anaconda 설치 스크립트를 작동 시 아래와 같은 부분을 확인 후 설치를 완료합니다.
라이선스 동의 → yes
설치 경로 지정 → 기본값 (Enter)
설치 완료 후 conda init 실행 여부 → yes
설치가 완료된 후 환경 변수를 적용 합니다.
source ~/.bashrc
Ktransformers
는 파이썬 3.11의 버전과 호환성이 좋기에 해당 버전으로 환경설정을 진행 해보겠습니다.
conda create --name ktransformers python=3.11
conda activate ktransformers
conda install -c conda-forge libstdcxx-ng
pip install packaging ninja cpufeature numpy
파이토치를 설치합니다. CUDA의 버전에 따라 선택해야하는 명령어가 다르며 탭을 선택 후 복사하여 설치를 진행합니다.
- CUDA 12.6
- CUDA 12.8
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128
2. Ktransformers 설치
Ktransformers
의 경우 최신 버전을 설치 시 에러가 발생할 확률이 높습니다. 탭의 내용을 확인하여 CUDA의 버전에 따라 설정을 진행합니다.
- CUDA 12.6
- CUDA 12.8
cd /root/
git clone --branch v0.2.3 https://github.com/kvcache-ai/ktransformers.git
cd /root/ktransformers
sed -i '401s/^/#/' ktransformers/models/modeling_deepseek_v3.py
git submodule update --init --recursive
cd /root/
git clone https://github.com/kvcache-ai/ktransformers.git
cd /root/ktransformers
git submodule update --init --recursive
설정이 완료되면 스크립트를 통해 설치를 진행합니다.
apt -y install libnuma-dev libaio-dev
bash install.sh
만약 CPU를 2개 이상 사용할 경우 아래의 방법으로 설치를 진행합니다.
apt -y install libnuma-dev libaio-dev
export USE_BALANCE_SERVE=1
export USE_NUMA=1
bash install.sh
3. Open WebUI 설정
Open WebUI
는 service, systemctl을 통한 서비스 데몬 실행이 제공되지 않으며 아래의 명령어를 통해 http://xxx.xxx.xxx.xxx:8080
으로 접근이 가능합니다. 실행 중 터미널에서 Ctrl + C
를 사용하거나 로그아웃 시 프로세스의 종료가 진행 됩니다.
open-webui serve
편리하게 사용하기 위해 서비스 데몬을 생성해보겠습니다.
[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