vLLM은 대규모 언어 모델(LLM)을 빠르고 효율적으로 실행하기 위한 고성능 추론(Inference) 엔진이다.
많은 사람들이 vLLM을 하나의 모델로 오해하지만, 실제로는 모델이 아니라 모델을 실행하는 런타임(Runtime)에 가깝다.
예를 들어 다음과 같은 모델을 실행할 수 있다.
구조는 다음과 같다.
사용자 질문
↓
vLLM
↓
Llama / Qwen / Gemma
↓
응답 생성
기존 Hugging Face Transformers 방식은 대량의 요청을 처리할 때 GPU 메모리 사용이 비효율적일 수 있다.
반면 vLLM은 다음과 같은 기술을 사용한다.
덕분에
이 가능하다.
실무적으로는 그렇다고 볼 수 있다.
예를 들어 다음 코드를 살펴보자.
from vllm import LLM
llm = LLM(
model="Qwen/Qwen3-8B"
)
여기서 Qwen/Qwen3-8B는 Hugging Face Hub에 등록된 모델이다.
vLLM은 내부적으로 다음과 같은 과정을 수행한다.
Hugging Face Hub
↓
config.json 다운로드
↓
tokenizer 다운로드
↓
모델 가중치 다운로드
↓
GPU 로드
즉 vLLM은 Hugging Face 생태계의 모델을 매우 쉽게 사용할 수 있도록 설계되어 있다.
아니다.
vLLM은 단순히 Transformers를 감싼 래퍼(wrapper)가 아니다.
Transformers
↓
모델 구조 읽기
vLLM
↓
추론 최적화
↓
GPU 실행
즉 모델 정보는 Hugging Face 형식을 활용하지만, 실제 추론 엔진은 vLLM이 자체적으로 구현한다.
RAG 시스템을 평가할 때는 수백~수만 개의 질문에 대해 답변을 생성해야 한다.
예를 들어
10,000개 질문
↓
답변 생성
↓
평가
과 같은 작업이 필요하다.
이때 OpenAI API를 사용하면
문제가 발생할 수 있다.
그래서 로컬에서 오픈소스 모델을 실행하는 경우가 많다.
RAGAS
↓
vLLM
↓
Qwen
이러한 구성이 대표적이다.
vLLM은 대량 추론에 최적화되어 있기 때문에 RAG 평가 환경에서 자주 사용된다.
RAGAS(Retrieval-Augmented Generation Assessment)는 RAG 시스템을 평가하기 위한 프레임워크이다.
RAGAS는 다음과 같은 지표를 제공한다.
예를 들어
질문
검색 문서
답변
이 주어졌을 때,
등을 평가한다.
RAGAS는 주로 Judge LLM을 활용한다.
예를 들어
Question
Context
Answer
를 입력으로 받은 뒤,
답변이 문서에 근거하는가?
를 LLM에게 판단하게 한다.
즉 RAGAS는 단순 문자열 비교가 아니라 LLM을 이용한 평가를 수행한다.
아니다.
예를 들어
GPT에게
"이 답변을 10점 만점으로 평가해줘"
라고 요청하는 것은 단순한 LLM-as-a-Judge 방식이다.
반면 RAGAS는
등의 표준화된 RAG 평가 지표를 제공하는 프레임워크이다.
즉,
LLM을 이용한 평가
⊃
RAGAS
관계라고 이해하면 된다.
모든 RAGAS는 LLM을 사용할 수 있지만, 모든 LLM 평가가 RAGAS인 것은 아니다.