メインコンテンツまでスキップ

GPU VM에서 대형 LLM 실행하기

이 문서는 Elice Cloud Infrastructure(ECI)GPU 가상머신(VM) 에서 대형 언어 모델(LLM)을 실행하는 실습 가이드입니다.

ECI는 VM 생성 시 블록 스토리지 이미지 선택을 통해 GPU 실행 환경을 미리 구성할 수 있으며, 본 실습에서는 PyTorch가 사전 설치된 GPU 이미지를 사용해 추가 환경 설정 없이 바로 vLLM 기반 LLM 추론을 실행합니다.


실습 목표

이 문서를 완료하면 다음을 할 수 있습니다.

  • ECI GPU VM 이미지 선택 방식 이해
  • PyTorch가 포함된 GPU VM을 생성해 즉시 LLM 실행
  • vLLM을 이용한 대형 LLM 로컬 추론

사전 준비 사항

  • ECI 계정
  • GPU 인스턴스 사용 가능 환경
  • Public IP 설정

Step 1. ECI GPU VM 이미지 선택 이해

ECI에서는 VM 생성 시 블록 스토리지에 OS 이미지를 선택합니다.
GPU VM의 경우 아래 이미지 옵션을 제공합니다. (2026.01 기준)

블록 스토리지 이미지 선택 옵션

  1. Ubuntu 22.04
  2. Ubuntu 22.04 + NVIDIA 575 + CUDA 12.8 + OFED + PyTorch
  3. Ubuntu 22.04 + NVIDIA 575 + CUDA 12.8 + OFED + TensorFlow
  4. Ubuntu 22.04 + NVIDIA 575 + CUDA 12.8 + OFED + JupyterLab
備考

본 실습에서는 vLLM + PyTorch를 사용하므로
2번 이미지 (PyTorch 포함) 옵션을 선택해야 합니다.


Step 2. GPU VM 생성 (중요 설정)

VM 생성 방법의 전체 흐름은 아래 문서를 참고해주세요.

👉 가상머신 생성 가이드

필수 설정 요약

1️⃣ 인스턴스 타입

  • GPU 포함 인스턴스 선택
    • 본 실습은 인스턴스 스펙의 경우, NVIDIA A100 80GB PCIE + 16vCore + 192 GiB MEMORY에서 진행됐습니다.

2️⃣ 블록 스토리지 설정 (중요)

  • 이미지:
    • Ubuntu 22.04 + NVIDIA 575 + CUDA 12.8 + OFED + PyTorch
  • 용량:
    • 최소 100GiB 이상 권장
警告

LLM 모델은 용량이 매우 큽니다.
블록 스토리지 용량이 부족하면 모델 다운로드 중 오류가 발생할 수 있으므로
100GiB 이상을 반드시 설정해주세요.

3️⃣ 네트워크

  • Public IP 필수

Step 3. VM 접속 및 GPU 상태 확인

VM이 실행 중인 상태에서 웹 콘솔 또는 SSH로 접속합니다.

GPU 확인

nvidia-smi

CUDA 확인

nvcc --version

정상 출력 시 다음이 확인됩니다.

  • NVIDIA Driver: 575
  • CUDA Version: 12.8
  • GPU 모델 및 VRAM 정보 표시
警告

만약, nvcc --version이 동작하지 않는다면 nvidia-smi에는 CUDA 12.2로 나오는데 nvcc --version이 안 됩니다. PyTorch도 12.2를 지원하지 않습니다. 문서를 참고해주세요.


Step 4. Python 환경 준비 (최소 설정)

PyTorch는 이미 설치되어 있으므로, 필요한 것은 가상환경과 vLLM 설치뿐입니다.

sudo apt update
sudo apt install -y python3-venv python3-pip
mkdir llm-vllm
cd llm-vllm

python3 -m venv .venv
source .venv/bin/activate

Step 5. vLLM 설치

pip install -U pip
pip install vllm transformers

설치 확인 (선택):

python3 - <<EOF
import torch
print(torch.cuda.is_available())
print(torch.version.cuda)
EOF
  • True
  • 12.8

이면 정상입니다.


Step 6. 실행할 LLM 선택

이번 실습에서는 7B급 LLM을 사용합니다.

추천 모델:

  • mistralai/Mistral-7B-Instruct-v0.2
  • meta-llama/Llama-2-7b-chat-hf

Step 7. vLLM으로 LLM 실행하기

1️⃣ 실행 스크립트 생성

nano llm_infer.py

2️⃣ 코드 작성

from vllm import LLM, SamplingParams

MODEL_ID = "mistralai/Mistral-7B-Instruct-v0.2"

sampling_params = SamplingParams(
temperature=0.8,
max_tokens=128,
)

llm = LLM(
model=MODEL_ID,
trust_remote_code=True
)

prompts = [
"Explain what a large language model is in simple terms.",
"Write a short poem about cloud computing."
]

outputs = llm.generate(prompts, sampling_params)

for prompt, output in zip(prompts, outputs):
print("PROMPT:")
print(prompt)
print("\nOUTPUT:")
print(output.outputs[0].text)
print("=" * 50)

Step 8. 실행

python llm_infer.py

다음과 같은 실행화면이 나타납니다. (결과는 다를 수 있습니다.) 실행 결과


문제 해결 (Troubleshooting)

CUDA out of memory

  • 더 작은 모델 선택
  • max_tokens 값 감소
  • VRAM이 더 큰 GPU 인스턴스 사용

모델 다운로드 실패

  • Public IP 설정 여부 확인
  • 블록 스토리지 용량 확인

관련 문서