AI
vLLM 이란?
2025. 3. 25. 11:46

vLLM의 원리: LLM 추론 속도를 극적으로 올리는 핵심 기술

🔍 vLLM이란?

vLLMLLM 추론(inference) 속도를 크게 향상시키기 위한 시스템 최적화 프레임워크입니다.
기존의 Hugging Face Transformers 기반 추론보다 최대 24배 빠른 응답 속도를 보이기도 하며,
OpenAI, Google, Meta가 쓰는 방식과 유사한 PagedAttention이라는 메커니즘을 도입해 만들어졌습니다.

📌 개발 목적: LLM을 보다 빠르고 효율적으로 서빙(inference) 하기 위한 목적

 


📌 핵심 문제: 기존 방식의 비효율성

기존 트랜스포머 기반의 LLM 추론에서는, 한 유저가 텍스트를 입력하면 다음과 같은 흐름으로 작동합니다:

  1. 유저 입력을 토큰으로 분리 → 각 토큰에 대해 Q, K, V 계산
  2. K, V는 레이어별로 전부 메모리에 저장 (캐싱)
  3. 다음 토큰을 생성할 때는 캐시된 K, V를 재사용

이게 그럴싸해 보이지만, 문제가 두 가지 있어요:

❗️문제 1. 캐시가 메모리를 너무 많이 차지함

  • K, V는 각 레이어마다 다르고, 각 토큰마다 따로 저장해야 함
  • 수천 개의 요청이 병렬로 오면, 메모리 오버 발생

❗️문제 2. 배치 처리의 제약

  • 요청마다 토큰 길이가 다름 → 배치로 묶어도 비효율 발생
  • 예: 어떤 사용자는 10토큰, 어떤 사용자는 300토큰 → 짧은 요청은 기다리게 됨

 


💡 해결책: vLLM의 핵심 아이디어

vLLM은 이 문제를 해결하기 위해 아래 두 가지를 도입합니다:

✅ 1. PagedAttention

PagedAttention은 다음을 해결합니다:

  • 캐시(K,V)를 효율적으로 저장하기 위해, GPU 메모리를 "페이지" 단위로 쪼갬
  • 필요할 때만 필요한 페이지를 로드 → 메모리 절약
  • GPU의 Sparse Memory Access 활용 → 빠르게 필요한 K,V만 접근
기존 방식: 토큰 수 × 레이어 수 만큼 메모리 연속 할당
PagedAttention: 페이지 단위로 불연속 할당 + 동적 관리

✅ 2. 시맨틱 스케줄링(Semantic-Aware Scheduling)

  • 다양한 길이의 요청들을 적절히 묶어서 처리
  • 짧은 요청은 먼저, 긴 요청은 나중에 → 응답 지연 최소화
  • 멀티 사용자 환경에서 배치 효율 최적화
기존 방식: 길이 다른 요청들을 같이 처리 → idle 발생
vLLM: 길이 고려해 스케줄링 → GPU 자원 활용 극대화

 


🔄 vLLM의 동작 흐름 요약

1. 사용자 입력 → 토큰화
2. Q는 바로 계산, K/V는 PagedAttention을 통해 페이지에 저장
3. 다음 토큰 생성 시, 기존 K/V 페이지에서 필요한 것만 로드
4. 여러 요청을 동시에 처리할 때, 시맨틱 스케줄링으로 배치 최적화

이 과정에서 GPU memory는 적게 사용하면서도, 수백 개의 요청을 병렬로 처리 가능해집니다.


📊 성능 비교

항목 기존 추론 엔진 (e.g. Transformers) vLLM
응답 속도 느림 (캐시 복잡성, 배치 비효율) 빠름 (PagedAttention, 스케줄링)
GPU 메모리 사용량 많음 적음
배치 효율 낮음 높음
병렬 처리 사용자 수 수십 명 수준 수백~수천 명 수준 가능

🔚 마무리

vLLM은 단순한 모델 구조의 변화가 아닌, "서빙 레벨의 시스템 최적화"를 통해 LLM 추론을 빠르고 안정적으로 처리할 수 있도록 설계된 프레임워크입니다.
GPT-4, LLaMA, Falcon, Mistral 등 다양한 모델에 적용 가능하며, 최근 LLM API 제공 기업들이 주목하는 서빙 기술 중 하나입니다.

'AI' 카테고리의 다른 글

vLLM의 핵심 이해: Semantic-Aware Scheduling  (0) 2025.03.25
vLLM의 핵심 이해: PagedAttention  (0) 2025.03.25
트랜스포머 (Transformer) #3  (0) 2025.03.24
트랜스포머 (Transformer) #2  (0) 2025.02.14
트랜스포머 (Transformer) #1  (0) 2025.02.13