Batch Inference배치 추론
쉽게 이해하기
많은 서비스에서 모든 요청에 즉시 답을 줄 필요는 없습니다. 예를 들어 하루치 로그를 분석하거나 대량 문서를 요약하는 일은 몇 초 안에 끝낼 필요가 없고, 정해진 시간 안에만 끝나면 됩니다. 이때 요청이 들어올 때마다 하나씩 처리하면 장비를 계속 켜둬야 하고 비용 대비 처리량도 낮습니다. 배치 추론은 이런 문제를 해결하려고 입력을 모아 두었다가 한꺼번에 처리하는 방식입니다. 우편물이 한 통씩 올 때마다 오토바이로 배달하면 비효율적이지만, 모아서 트럭으로 한 번에 옮기면 훨씬 경제적인 것과 같습니다. 클라우드 저장소에서 데이터를 모아 읽고, 전처리한 뒤, 모델에 묶음으로 넣어 결과를 만든 다음 다시 저장소에 써서 내려받게 합니다. 구체적으로는 프런트엔드가 요청을 수집·큐잉하고 gRPC 등으로 백엔드에 전달하며, 백엔드는 모델 로딩·메모리 관리와 함께 컴퓨테이션 수준의 배칭으로 처리량을 높입니다. 파이프라인 자체는 분산 읽기/쓰기와 전처리·추론 단계를 연결해 전체 데이터를 한 번에 메모리에 올리지 않고도 실행되며, 작업은 스케줄 또는 온디맨드로 트리거되어 필요한 시간 동안만 컴퓨트를 사용하도록 설계됩니다.
비유와 예시
- 전 사용자 추천 생성 (야간 일괄 처리): 사용자별 히스토리와 최신 카탈로그를 합쳐 매일 새벽에 전체 사용자 집합을 처리합니다. 실시간성이 덜 중요해 배치로 처리량과 비용 효율을 높입니다.
- 대량 이미지 일괄 추론: 클라우드 저장소에 쌓인 수십만 개 이미지를 분산으로 읽고 전처리한 뒤, GPU에서 묶음으로 모델을 실행해 결과를 저장합니다. 고해상도 전처리 비용이 커서 배치로 묶을수록 효율적입니다.
- 문서 일괄 요약·추출 파이프라인: 수천 건의 문서에서 구조화된 필드를 추출하거나 요약을 생성합니다. 작업을 큐에 넣어 순차 처리하고, 완료 결과만 내려받으면 됩니다.
한눈에 비교
| 배치 추론 | 실시간 추론 | |
|---|---|---|
| 지연 목표 | 즉시 응답 불필요, 완료까지 여유 허용 | 사용자 요청에 즉시 응답 필요 |
| 트리거 | 스케줄·온디맨드 잡 실행 | 요청/이벤트 발생 시 호출 |
| 인프라 형태 | 잡/워크플로, 필요한 시간만 컴퓨트 사용 후 축소 가능 | 상시 실행 엔드포인트가 항상 대기 |
| 데이터 경로 | 클라우드 분산 읽기→전처리→GPU 일괄 추론→분산 쓰기 | API→프런트엔드→백엔드→즉시 응답 경로 |
| 배칭 특징 | 프런트엔드 요청 배칭 + 백엔드 컴퓨테이션 배칭 중심 | 온라인도 요청 배칭으로 처리량 향상 가능 |
실시간도 배칭을 쓰지만 배치는 완료 시간·자원 점유를 창 단위로 최적화하며, 스트리밍 실행 등으로 윈도우 단위 배치가 가능해 경계가 유연하다.
어디서 왜 중요한가
- 스케줄·온디맨드 실행 보편화: 실시간 응답이 불필요한 작업을 정해진 창에 처리해, 필요한 시간에만 컴퓨트를 사용한다.
- 분산 I/O + 이질 워크로드 연결: 클라우드 저장소 분산 읽기/쓰기, CPU 전처리, GPU 배치 추론을 하나의 파이프라인으로 묶어 전체 메모리에 올리지 않고 확장한다.
- 역할 분담이 명확한 서빙 스택: 프런트엔드는 요청 배칭·큐·지표 수집을, 백엔드는 메모리·모델 로딩·컴퓨테이션 배칭을 담당해 처리량과 신뢰성을 높인다.
- 초기화 지연과 캐시 상태 관리 중요: 모델 로딩·초기화 시간이 배치 창을 잠식할 수 있어, 효율적 초기화와 모델 캐시 상태 추적이 운영 품질에 영향을 준다.
- 잡 기반 운영 도입: 잡 정의·큐·스케줄·모니터링을 제공하는 플랫폼을 통해 배치 추론을 신뢰성 있게 운영한다.
자주 하는 오해
- ❌ 오해: 배치 추론은 대량 데이터를 한 번에 메모리에 올려야 한다 → ✅ 실제: 분산 실행과 스트리밍으로 전체 적재 없이 처리할 수 있다.
- ❌ 오해: 배치는 느리고 품질이 떨어진다 → ✅ 실제: 요청·컴퓨테이션 배칭으로 처리량을 크게 높이며, 지연 목표가 다를 뿐이다.
- ❌ 오해: 배치는 별도 서버 없이 스크립트만 돌린다 → ✅ 실제: 프런트엔드·백엔드로 구성된 서빙 스택과 표준 프로토콜을 그대로 활용한다.
대화에서는 이렇게
- "오늘 03시에 배치 추론 잡 돌려서 전 사용자 추천 생성합니다. 끝나면 자원은 바로 반납해요."
- "프런트에서 request batching 켜두고 큐 길이 모니터링하세요. 백엔드는 computation-level batching으로 처리량 뽑습니다."
- "입력은 S3에서 분산 read하고, 결과는 같은 버킷에 파티션별로 분산 write합니다. 전처리는 CPU 태스크로 분리요."
- "이번 윈도우 안에 끝내려면 모델 로딩/초기화 시간을 포함해 SLA 잡아야 합니다. 지표는 처리량·대기열·오류율로 보죠."
- "API 서버는 gRPC로 백엔드에 붙여두고, 큐가 몰리면 잡을 여러 배치로 쪼개 병렬로 제출합시다."
함께 읽으면 좋은 용어
참고 자료
- Batch inference — Ray 2.55.1
분산 읽기/전처리/배치 추론/쓰기 예제와 베스트프랙티스.
- End-to-end: Offline Batch Inference — Ray 2.55.1
오프라인 배치 추론 파이프라인과 운영 가이드.
- Run LLM batch inference on Anyscale
잡 기반 배치 추론 실행, 큐·스케줄·모니터링 개요.
- What is batch inference?
배치 추론 정의와 실시간 대비 차이, 트리거와 활용.
- Components of an AI inference stack
엔드 유저 앱·프런트엔드·백엔드 역할과 요청 배칭.
- Architecture overview — Ray Serve LLM
분산 LLM 서빙 구성요소와 스케일링 패턴.