앞서 실 서비스들을 직접 써보면서 Out Painting이 어떤 건지 감을 잡았다.
이제 직접 모델을 구축해서 테스트해볼 차례다.
회사에서 실제로 사용 중인 GPU 서버에 바로 올리기엔 부담이 있었다.
검증되지 않은 모델을 프로덕션 서버에 올리는 건 리스크가 크니까.
AWS에서 먼저 테스트하고, 결과가 괜찮으면 실 서버에 올리는 방식으로 접근했다.
테스트 목적이니 비용 대비 효율을 따졌다.
| 항목 | 내용 |
|---|---|
| 인스턴스 | g4dn.xlarge |
| GPU | NVIDIA T4 |
| VRAM | 16GB |
T4는 추론 최적화 GPU라 딥러닝 모델 테스트 용도로 충분하다.
모델을 올리기 전에 환경부터 제대로 잡아야 한다.
GPU 인스턴스 세팅부터 Python 환경 구축까지 순서대로 정리한다.
AWS에서 인스턴스를 생성할 때 AMI 선택이 중요하다.
직접 드라이버, CUDA, PyTorch를 하나씩 설치하면 버전 충돌로 삽질할 가능성이 크다.
아래 AMI를 선택하면 전부 세팅된 상태로 시작할 수 있다.
Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.9 (Ubuntu 24.04)
이 AMI 하나로 끝난다.
인스턴스에 접속하면 가장 먼저 시스템 상태와 GPU를 확인한다.
# 시스템 정보
cat /etc/os-release | grep PRETTY_NAME
uname -r
# GPU 확인
nvidia-smi
# 업데이트
sudo apt update && sudo apt upgrade -y
# 기본 도구 설치
sudo apt install -y build-essential wget curl git vim htop
nvidia-smi 에서 GPU 정보가 정상적으로 출력되면 드라이버는 잡힌 거다.
딥러닝 AMI를 쓰지 않는 경우라면 드라이버를 직접 설치해야 한다.
sudo apt update && sudo apt upgrade -y
# ubuntu-drivers 설치
sudo apt install -y ubuntu-drivers-common
# 추천 드라이버 확인
sudo ubuntu-drivers devices
# 자동 설치
sudo ubuntu-drivers autoinstall
# 재부팅
sudo reboot
패키지 버전 관리를 위해 Miniconda를 설치한다.
# Miniconda 다운로드
cd ~
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 설치
bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
# Conda 초기화
$HOME/miniconda3/bin/conda init bash
# 설정 적용
source ~/.bashrc
# 확인 — (base) 표시가 나와야 함
conda --version
모델별로 환경을 분리해두는 게 좋다.
# Python 3.10 환경 생성
conda create -n qwen python=3.10 -y -c conda-forge
# 환경 활성화
conda activate qwen
# 확인 — (qwen) 표시가 나와야 함
python --version
에러가 발생하면 conda update -n base -c defaults conda 로 먼저 conda 자체를 업데이트해보자.
환경 안에서 CUDA 호환 PyTorch를 설치한다.
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
설치 후 GPU 연결 여부를 확인한다.
import torch
print(f"PyTorch 버전: {torch.__version__}")
print(f"CUDA 사용 가능: {torch.cuda.is_available()}")
print(f"CUDA 버전: {torch.version.cuda}")
print(f"GPU 이름: {torch.cuda.get_device_name(0)}")
print(f"GPU 메모리: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.1f} GB")
CUDA 사용 가능: True 가 나오면 성공이다 !
Qwen 모델을 쓰려면 HuggingFace 생태계 라이브러리들이 필요하다.
pip install diffusers transformers accelerate safetensors pillow huggingface_hub
모델을 다운로드하려면 HuggingFace 계정 인증이 필요하다.
huggingface-cli login
토큰을 입력하면 인증이 완료된다.
모델 로드 시 device_map 옵션에 따라 동작 방식이 달라진다.
| 옵션 | 의미 | 비고 |
|---|---|---|
"cuda" | GPU에 전체 로드 | 추천 (VRAM 충분할 때) |
"balanced" | 부족하면 CPU 사용 | VRAM 부족 시 대안 |
"auto" | 자동 선택 | Qwen에서 지원 안 됨 |
VRAM이 충분하다면 "cuda" 로 전체 로드하는 게 속도 면에서 가장 좋다.
이제 환경이 다 갖춰졌다.
다음 편에서는 Qwen 모델을 실제로 내려받고 Gradio 서버까지 구축한 과정을 정리한다.