본문 바로가기

AI

로컬 LLM 속도, 모델이 아니라 서빙 엔진에서 갈린다

로컬에서 LLM 한 번 돌려본 사람은 다 공감할 거야.

“왜 이렇게 느리지?”

모델은 분명 괜찮은데, 막상 써보면 답변이 한 줄씩 끊기듯 나오고, 동시에 여러 요청은 거의 불가능한 수준이야.
이때 대부분은 모델 문제라고 생각하는데, 사실 진짜 병목은 따로 있어.
바로 서빙 엔진이야.

 

[Source: ChatGPT 생성]

 

왜 로컬 LLM은 느릴까

로컬 LLM이 느린 이유는 단순히 GPU 성능 때문만은 아니야. 핵심은 추론 과정에서의 비효율적인 자원 사용이야.

특히 문제가 되는 건 

  • KV Cache 메모리 낭비
  • 요청이 끝날 때까지 다음 요청이 대기
  • GPU가 놀고 있는 시간 발생

이게 쌓이면 체감 속도는 확 떨어져. 결국 “모델 성능”이 아니라 “어떻게 돌리느냐”가 문제인 거지.

 

vLLM이 빠른 이유 (핵심 2가지)

vLLM이 주목받는 이유는 딱 두 가지 기술 때문이야.

1. PagedAttention

기존 방식은 KV Cache를 통째로 할당해버려서 메모리가 낭비돼. vLLM은 이걸 페이지 단위로 쪼개서 관리해.

쉽게 말하면 필요한 만큼만 메모리 사용 -> 남는 공간 최소화 -> 더 많은 요청을 동시에 처리 가능하다는 거지.

결과적으로 같은 GPU로 더 많은 일을 처리할 수 있게 되는 거야.

2. Continuous Batching

기존 방식은 요청 들어옴 -> 끝날 때까지 처리 -> 다음 요청 시작

이건 너무 비효율적이지. vLLM은 다르게 움직여 요청이 끝나면 바로 새 요청 투입 ->  중간중간 계속 배치 갱신 -> GPU를 거의 쉬지 않게 만듦 이게 바로 Continuous Batching이야. 결과적으로 처리량이 확 올라가.

3. Ollama vs vLLM, 뭐가 다른데?

이 둘은 방향 자체가 달라.

Ollama

  • 설치 쉽고 바로 실행 가능
  • 로컬 개발, 테스트에 최적화
  • 개인 사용에 편함

vLLM

  • 고성능 추론에 최적화
  • 동시 요청 처리 강함
  • 프로덕션 환경에 적합

한 줄로 정리하면 Ollama = “쉽게 시작”, vLLM = “제대로 서비스”

[Source: https://docs.vllm.ai/en/latest/ - Github 캡쳐]

 

서비스 기획 관점에서 보면 더 명확해짐

여기서 중요한 포인트 하나. 개인 SLM이나 AI 서비스 만들 때 대부분 이렇게 생각해!

“어떤 모델 쓰지?” 근데 실제 사용자 경험을 좌우하는 건 이거야!

  • 응답 속도
  • 동시 사용자 처리
  • 끊김 없는 스트리밍

이건 모델이 아니라 서빙 엔진이 결정해. 즉, 모델 = 두뇌, 서빙 엔진 = 신경망 + 혈관 아무리 똑똑해도, 전달이 느리면 답답한 거지.

 

실전에서 어떻게 선택해야 할까

상황별로 보면 답은 간단해.

개인 프로젝트 / 빠른 테스트

→ Ollama 쓰는 게 맞아 설치 빠르고 바로 실험 가능

서비스화 / 트래픽 대응 필요

→ vLLM 가야 함! 속도 + 처리량이 완전히 다름

 

진짜 중요한 결론

로컬 LLM 시대에서 이제 기준이 바뀌었어.

예전에는 모델 크기, 파라미터 수였다면  이제는 지금 얼마나 빠르게 응답하냐? 얼마나 많이 동시에 처리하냐?

이제 LLM은 “누가 더 좋은 모델 쓰냐” 싸움에서 “누가 더 잘 돌리냐” 싸움으로 넘어온 느낌이야. 특히 개인 SLM 만들 때도 이 차이가 그대로 체감되거든. 앞으로는 모델 선택만큼이나 서빙 아키텍처 설계 능력이 진짜 경쟁력이 될 거야.