본문으로 건너뛰기

GPU 가상머신에서 LLM 추론 실행하기

목표

이 튜토리얼을 완료하면:

  • PyTorch 사전 설치 이미지로 GPU 가상머신 생성
  • vLLM으로 Hugging Face LLM 모델 실행
  • OpenAI 호환 API 엔드포인트로 모델 쿼리

사전 준비

  • H100 또는 A100 인스턴스 (최소 40GB VRAM)
  • Hugging Face 계정 및 토큰 (gated 모델 사용 시)
  • 공인 IP

1단계: 가상머신 생성

항목권장값
이미지CUDA·PyTorch 사전 설치 Ubuntu 이미지
인스턴스 타입G-NHHS-80 (H100 80GB SXM × 1) 또는 상위
블록 스토리지500 GiB 이상 (모델 저장 공간)
공인 IP새로 생성

2단계: vLLM 설치

pip install vllm
PyTorch 사전 설치 이미지 사용 시

CUDA, cuDNN, PyTorch가 이미 설치되어 있으므로 vLLM만 추가하면 됩니다.


3단계: 모델 실행

# Mistral 7B 실행 예시
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-7B-Instruct-v0.2 \
--port 8000 \
--host 0.0.0.0

Hugging Face gated 모델(예: Llama)은 토큰이 필요합니다.

export HUGGING_FACE_HUB_TOKEN="hf_your_token"
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-8B-Instruct \
--port 8000 \
--host 0.0.0.0

4단계: 방화벽 설정

방화벽 규칙은 가상 네트워크 단위로 설정합니다. 가상머신이 속한 가상 네트워크의 상세 페이지로 이동해 인바운드 TCP 8000을 허용하세요.

  1. 네트워크 > 가상 네트워크 목록에서 대상 가상 네트워크를 선택합니다.

  2. 상세 페이지의 방화벽 규칙 섹션에서 규칙 추가(또는 첫 번째 규칙 추가)를 클릭합니다.

  3. 다음 값으로 규칙을 추가합니다.

    항목
    프로토콜TCP
    소스<관리자-IP>/32 (또는 0.0.0.0/0)
    대상가상머신 또는 서브넷 CIDR
    시작 포트8000
    액션ACCEPT

변경 사항은 최대 1분 이내에 적용됩니다.


5단계: API 쿼리

# 모델 목록 확인
curl http://<PUBLIC_IP>:8000/v1/models

# 텍스트 생성
curl http://<PUBLIC_IP>:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/Mistral-7B-Instruct-v0.2",
"prompt": "ECI는 무엇인가요?",
"max_tokens": 200
}'

Python 클라이언트:

from openai import OpenAI

client = OpenAI(
base_url="http://<PUBLIC_IP>:8000/v1",
api_key="not-needed"
)

response = client.chat.completions.create(
model="mistralai/Mistral-7B-Instruct-v0.2",
messages=[{"role": "user", "content": "안녕하세요!"}]
)
print(response.choices[0].message.content)

다음 단계