본문으로 건너뛰기
AI21 Labs조회 1

vLLM과 Ray를 활용한 대규모 LLM 배치 추론 확장 가이드

Ray와 vLLM을 결합하여 CPU 전처리와 GPU 추론 워크로드를 오케스트레이션함으로써 대규모 LLM 배치 처리를 최적화하고 비용을 절감하는 실전 아키텍처를 소개합니다.

챕터별 상세

00:00

배치 추론의 개념과 팝콘 비유

배치 추론은 대량의 입력을 한꺼번에 처리하는 과정이며 이를 팝콘 튀기기에 비유했다. CPU는 팝콘 알갱이를 준비하고 버터를 바르는 전처리 과정이며 GPU는 실제 팝콘을 튀기는 전자레인지와 같다. 전처리가 늦어지면 고가의 전자레인지(GPU)가 작동하지 않고 대기하게 되어 비용 낭비가 발생한다. 따라서 효율적인 배치 추론의 핵심은 CPU와 GPU 워크로드를 유기적으로 연결하여 GPU 사용률을 극대화하는 것이다.
03:40

배치 추론 환경의 변화와 도전 과제

최근 배치 추론 환경은 세 가지 큰 변화를 겪고 있다. 첫째로 Python 기반 프레임워크가 주류가 되었으나 분산 처리에 최적화되지 않은 경우가 많다. 둘째로 비정형 데이터(비디오, PDF 등)의 폭증으로 멀티모달 처리가 중요해졌다. 셋째로 CPU 중심의 전처리와 GPU 중심의 추론이 혼재된 이종 컴퓨팅 환경에서의 자원 관리가 복잡해졌다. 이러한 복잡성은 엔지니어가 모델 개발보다 인프라 관리에 더 많은 시간을 쏟게 만든다.
05:40

Ray와 vLLM의 역할 및 통합 아키텍처

vLLM은 모델 내부(In-the-box)에서 연속 배치(Continuous Batching) 등을 통해 추론 성능을 최적화한다. 반면 Ray는 모델 외부(Across-the-box)에서 여러 노드와 CPU/GPU 자원을 오케스트레이션한다. Ray Data는 이 둘을 연결하는 역할을 하며 S3와 같은 클라우드 저장소에서 데이터를 읽어와 CPU 노드에서 전처리를 수행하고 GPU 노드의 vLLM 엔진으로 데이터를 전달한다. 이 과정은 파이프라인화되어 데이터 로딩, 전처리, 추론이 병렬로 수행된다.
09:30

실전 데모: 200만 건의 데이터 배치 처리

200만 건의 고객 레코드가 담긴 CSV 파일을 Llama 3.1 8B 모델로 처리하는 과정을 시연했다. Ray Data의 `read_csv`를 사용하여 데이터를 병렬로 로드하고 `vLLMProcessorConfig`를 통해 모델 및 배치 크기를 설정했다. `map_batches` 함수를 사용하여 vLLM 엔진을 호출하며 이때 Ray가 자동으로 GPU 가용성을 확인하고 워크로드를 할당했다. 실제 실행 시 `materialize()` 함수를 호출하기 전까지는 연산이 지연 실행(Lazy evaluation)되어 자원 효율성을 높였다.

Llama 3.1 8B는 약 80억 개의 파라미터를 가진 모델로, 효율적인 추론을 위해 상당한 GPU 메모리와 최적화된 엔진이 필요하다.

python
import ray

# S3에서 200만 건의 CSV 데이터 읽기
ds = ray.data.read_csv("s3://bucket/customer_records.csv")

# vLLM 프로세서 설정
from ray.data.llm import vLLMProcessorConfig

config = vLLMProcessorConfig(
    model="meta-llama/Llama-3.1-8B-Instruct",
    engine_args={"max_model_len": 1024},
    batch_size=128
)

# 전처리, 모델 추론, 후처리 파이프라인 실행
results = ds.map(preprocess_func) \
            .map_batches(vLLMProcessor, config=config) \
            .map(postprocess_func) \
            .materialize()

Ray Data와 vLLM을 결합하여 대규모 데이터셋에 대해 분산 배치 추론을 수행하는 핵심 파이프라인 코드

15:20

Anyscale 플랫폼의 안정성 및 효율성 기능

Ray의 상용 버전인 Anyscale 플랫폼은 대규모 운영을 위한 추가 기능을 제공한다. 동적 메모리 관리(Dynamic Memory Management)를 통해 노드의 메모리 부족 현상을 방지하고 에포크 중간 재개(Mid-epoch resume) 기능으로 학습이나 추론 실패 시 처음부터 다시 시작할 필요가 없게 했다. 또한 글로벌 리소스 스케줄러(Global Resource Scheduler)는 여러 클라우드 리전의 GPU 가용성을 통합 관리하여 특정 리전의 자원이 부족할 때 다른 리전의 자원을 즉시 할당한다.

용어 해설

배치 추론(Batch Inference)
수집된 대량의 데이터를 한꺼번에 모델에 입력하여 예측값을 생성하는 방식이다. 실시간 응답이 필요한 온라인 추론과 달리 처리량(Throughput) 최적화와 비용 효율성에 집중하며 대규모 데이터 가공에 필수적이다.
GPU 사용률(GPU Utilization)
GPU 자원이 실제로 연산에 활용되고 있는 비율이다. 배치 추론 시 CPU에서 수행되는 전처리 속도가 느리면 GPU가 연산을 멈추고 대기하는 유휴 상태가 발생하여 비용 효율성이 저하된다.
분산 컴퓨팅(Distributed Computing)
하나의 작업을 여러 대의 컴퓨터(노드)에 나누어 병렬로 처리하는 기술이다. 단일 장비의 메모리나 연산 능력을 초과하는 대규모 LLM 워크로드를 처리하기 위해 필수적으로 사용된다.
연속 배치(Continuous Batching)
vLLM에서 사용하는 기술로, 각 요청의 생성이 끝날 때까지 기다리지 않고 새로운 요청을 즉시 배치에 투입하는 방식이다. 정적 배치 방식보다 처리량을 수 배 이상 향상시킨다.
이종 클러스터(Heterogeneous Clusters)
CPU 전용 노드와 GPU 가속 노드가 혼합된 컴퓨팅 환경이다. 전처리는 저렴한 CPU 노드에서, 추론은 고성능 GPU 노드에서 수행하도록 워크로드를 분리하여 비용을 최적화할 수 있다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2025. 12. 23.수집 2026. 02. 21.출처 타입 YOUTUBE

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.