AI 모델 서빙 (AI Serving)/vLLM Deep Dive

vLLM 세팅 및 기술들

상원공원 2026. 5. 31. 03:02

무거운 모델들을 어떻게 렉 없이 초고속으로 굴릴 것인가에 대해 알아봅시다

로컬에서 오픈소스 LLM을 서비스하려고 할 때 무조건 짚고 넘어가야 하는 핵심 엔진, 바로 vLLM

 

1. Continuous Batching (쉬지 않고 일함 노동...ㅋ)

  • 정의: 앞사람의 질문이 끝날 때까지 기다리지 않고, 빈자리가 생기면 실시간으로 다음 사람의 토큰을 끼워 넣어서 처리하는 기법임.
  • 원리: 기존에는 3명이 질문하면 제일 긴 답변이 끝날 때까지 다 같이 기다려야 했음(Static Batching). 근데 Continuous Batching은 짧은 답변이 먼저 끝나면 바로 그 자리에 4번째 사람의 질문을 밀어 넣음. GPU가 1초도 쉬지 않게 풀가동 돌려버리는 거임 !

 

2. PagedAttention (ㄹㅇ 진짜 핵심! vLLM의 존재 이유)

vLLM에서 'v'가 Virtual(가상)의 약자임 !!!! 이게 바로 컴퓨터 운영체제의 가상 메모리(Virtual Memory) 개념을 LLM에 끌고 온 거임!

  • 기존의 문제점: AI가 대화의 문맥을 기억하려고 메모리(KV Cache)를 엄청 쓰는데, 원래는 이걸 '이만큼 쓰겠지?' 하고 무식하게 통째로 미리 잡아뒀음. 그래서 빈 공간이 펑펑 낭비되고, 유저 몇 명만 들어와도 GPU 메모리가 꽉 차서 뻗어버림 (OOM 에러 발생).
  • 해결 원리: 통째로 잡지 말고, 메모리를 '페이지(Page)'라는 아주 작은 블록으로 잘게 쪼개서 관리함. 필요할 때마다 블록을 딱딱 할당해주니까 낭비되는 메모리가 거의 제로에 수렴함. 덕분에 똑같은 GPU 사양으로 훨씬 더 많은 사람의 요청을 동시에 버틸 수 있게 됨 !

 

3. KV Cache Reuse (캐시 재사용)

  • 정의: 공통적으로 들어가는 시스템 프롬프트(예: "너는 친절한 회사 CS 비서야")를 매번 새로 계산하지 않고, 한 번 계산해둔 걸 기억했다가 복붙해서 쓰는 거임.
  • 효과: 사용자가 질문을 던졌을 때 AI가 첫 글자를 뱉어내는 속도(TTFT)가 미친 듯이 빨라짐. 굳이 했던 연산 또 안 하니까 돈도 굳고 시간도 굳음!

KV Cache Reuse는 최적화할때 많이 사용한다고 들었음. 

코드로 보는 vLLM 세팅 !

 

vLLM 구동 및 최적화 예시 코드

from vllm import LLM, SamplingParams

# 모델 이름만 넣어주면 Continuous Batching이랑 PagedAttention은 알아서 가동댐
llm = LLM(
    model="meta-llama/Llama-3-8b-Instruct",
)

#샘플링파라미터들은 아래 링크 참고하기 !
sampling_params = SamplingParams(temperature=0.7, top_p=0.95)


prompts = [
    "ㅎㅇ? 넌 누구야?",
    "회사 서버에 AI 구축할 때 주의할 점 3가지만 알려달라."
]

# 한 방에 여러 개 던져도 PagedAttention 덕에 괜찮음
outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"질문: {prompt}\n답변: {generated_text}\n---")

 

* vLLM SamplingParams 링크

https://docs.vllm.ai/en/latest/api/vllm/sampling_params/

 

대체로 코딩용은 이런식으로 작성

SamplingParams(
    temperature=0.1,
    top_p=0.9,
    repetition_penalty=1.05,
    max_tokens=2048
)

 

대체로 챗봇용은 이런식으로 작성 

SamplingParams(
    temperature=0.7,
    top_p=0.95,
    max_tokens=1024
)

 

 

사내 데이터를 다뤄야 해서 API 연동은 안 되고 로컬 모델을 돌려야 할 때, 혹은 비싼 클라우드 GPU 비용을 어떻게든 뽕뽑아야 할 때 vLLM은 선택이 아니라 필수라고 생각함

그냥 순정으로 모델 다운받아서 쓰는 거랑은 차원이 다른 엔터프라이즈급 처리량을 보여주니까, 기업용 AI 아키텍처를 설계한다면 무조건 도입하는 해야되지 않을까 라는 생각이 듬 !!

 

아무튼 vLLM의 핵심 기술들에 대해 알아보았음 !