[논문 리뷰] DualPath: 에이전트 LLM 추론의 저장소 대역폭 병목 현상 해결
TL;DR
에이전트 LLM 추론에서는 방대한 양의 KV-Cache를 저장소에서 읽어오는 과정이 전체 성능의 병목이 됩니다. 기존의 프리필-디코딩 분리 아키텍처는 프리필(Prefill) 노드에서만 KV-Cache를 로드하여 디코딩(Decode) 노드의 유휴 네트워크 대역폭을 낭비하는 비효율을 낳습니다. 본 논문에서 제안하는 DualPath는 저장소에서 디코딩 노드를 거쳐 프리필 노드로 KV-Cache를 전송하는 새로운 경로를 추가한 '이중 경로 로딩' 기법을 통해 이 문제를 해결합니다. 그 결과, 시스템의 전체 저장소 I/O 대역폭을 극대화하여 오프라인 추론 처리량을 최대 1.87배, 온라인 서빙 처리량을 평균 1.96배 향상시켰습니다.
연구 배경 및 동기
대규모 언어 모델(LLM)이 여러 턴에 걸쳐 외부 도구와 상호작용하는 에이전트(Agentic) 워크로드가 증가하고 있습니다. 이러한 작업은 매 턴마다 이전 대화 내용을 모두 포함하는 컨텍스트가 누적되므로, 처리해야 할 KV-Cache의 크기가 기하급수적으로 커집니다. 이 거대한 KV-Cache는 GPU 메모리에 모두 상주하기 어려워 외부 저장소(e.g., NVMe)에 오프로딩되며, 추론 시 다시 GPU로 로드하는 과정에서 심각한 I/O 병목을 유발합니다.
문제점: 기존 프리필-디코딩 분리의 한계
현대의 LLM 서빙 시스템은 연산 특성이 다른 두 단계, 즉 프롬프트를 처리하는 **프리필(Prefill)**과 토큰을 순차적으로 생성하는 **디코딩(Decode)**을 별도의 엔진(노드 그룹)으로 분리하여 효율을 높입니다.
- 프리필 단계: 입력 시퀀스 전체를 병렬적으로 처리하며, I/O 집약적(storage-bound)입니다.
- 디코딩 단계: 토큰을 하나씩 생성하며, 연산 집약적(compute-bound)입니다.
기존 분리 구조에서는 외부 저장소의 KV-Cache를 프리필 엔진으로만 로드합니다. 이 방식은 디코딩 엔진에 할당된 노드들의 네트워크 대역폭을 전혀 활용하지 못하는 구조적 비효율을 야기하며, 결국 프리필 엔진의 네트워크 대역폭이 전체 시스템의 처리량을 결정하는 병목 지점이 됩니다.
(설명: 위 이미지는 기존 방식에서 프리필 노드에만 I/O 부하가 집중되는 모습을 보여주는 가상 다이어그램입니다.)
DualPath는 이러한 저장소 대역폭 불균형 문제를 해결하여 전체 시스템 처리량을 극대화하는 것을 목표로 합니다.
관련 연구
LLM 추론 최적화 연구는 주로 컴퓨팅 자원 효율화에 집중되어 왔습니다. vLLM, SGLang, Sarathi와 같은 시스템들은 PagedAttention, RadixAttention 등의 기법을 통해 GPU 메모리 관리를 최적화하고 동적 배치를 통해 처리량을 높였습니다. 프리필-디코딩 분리 아키텍처 역시 연산 자원 활용을 극대화하기 위한 접근법 중 하나입니다.
하지만 이러한 연구들은 연산(compute)과 메모리 효율성에 초점을 맞춘 반면, 에이전트 워크로드처럼 KV-Cache가 외부 저장소로 확장될 때 발생하는 저장소 I/O 병목 문제는 깊이 다루지 않았습니다. DualPath는 기존 연구들과 달리, 시스템의 네트워크 자원을 재구성하여 저장소 대역폭을 최대로 활용하는 새로운 관점을 제시한다는 점에서 차별화됩니다.
핵심 기여
- 이중 경로 KV-Cache 로딩 (Dual-Path Loading) 제안: 기존의 '저장소 → 프리필' 경로에 더해, '저장소 → 디코딩 → 프리필' 경로를 추가하여 디코딩 노드의 유휴 네트워크 대역폭을 활용, 전체 저장소 I/O 처리량을 두 배 가까이 늘렸습니다.
- CNIC 중심 트래픽 관리: 컴퓨팅 NIC(CNIC)를 통해 모든 데이터 전송을 중앙에서 관리합니다. 네트워크 QoS(Quality of Service) 기능을 활용해 모델 실행 통신(e.g., All-Reduce)과 KV-Cache 전송 간의 간섭을 최소화하여 안정적인 성능을 보장합니다.
- 적응형 요청 스케줄링: 각 노드의 디스크 읽기 큐, 엔진의 토큰 버퍼 등 시스템의 실시간 부하를 모니터링하여 각 요청을 처리할 최적의 경로와 엔진을 동적으로 선택합니다. 이를 통해 두 경로에 부하를 균형 있게 분산시킵니다.
제안 방법론
DualPath는 세 가지 핵심 구성요소를 통해 저장소 I/O 병목을 해결합니다.
1. 이중 경로 로딩 (Dual-Path Loading)
DualPath는 이름처럼 두 가지 경로로 KV-Cache를 로딩하여 가용 네트워크 대역폭을 극대화합니다.
-
경로 1: Storage-to-Prefill (기존 경로)
- 외부 저장소에서 프리필 엔진으로 KV-Cache를 직접 로딩합니다.
[Storage] --(Network)--> [Prefill Engine]
-
경로 2: Storage-to-Decode (새로운 경로)
- 외부 저장소에서 디코딩 엔진으로 KV-Cache를 먼저 로딩합니다.
- 이후, 고속 내부망(e.g., RDMA)을 통해 디코딩 엔진에서 프리필 엔진으로 데이터를 신속하게 전송합니다.
[Storage] --(Network)--> [Decode Engine] --(RDMA)--> [Prefill Engine]
이 두 경로를 동시에 활용함으로써, 시스템은 디코딩 노드 그룹의 네트워크 대역폭까지 KV-Cache 로딩에 사용할 수 있게 되어 이론적으로 최대 2배의 I/O 처리량 향상을 기대할 수 있습니다.
2. CNIC 중심 트래픽 관리자
DualPath는 모든 데이터 전송을 CNIC (Computing Network Interface Card) 를 통해 중앙에서 관리합니다. CNIC는 CPU의 개입 없이 데이터 전송을 처리하는 고성능 NIC로, 통신 효율을 높입니다. 트래픽 관리자는 네트워크의 QoS 기능을 이용해 데이터 종류에 따라 우선순위를 차등 적용합니다.
- 높은 우선순위: 모델의 텐서 병렬 연산을 위한 통신 (e.g., All-Reduce). 지연 시간에 매우 민감하므로 최우선으로 처리합니다.
- 낮은 우선순위: 대용량 KV-Cache 데이터 전송. 처리량은 중요하지만 지연 시간에 덜 민감하므로 후순위로 처리합니다.
이를 통해 대규모 데이터 전송이 모델의 핵심 연산 통신을 방해하지 않도록 보장합니다.
3. 적응형 요청 스케줄러
스케줄러는 시스템의 전반적인 부하 상태를 고려하여 각 요청을 가장 효율적으로 처리할 경로와 엔진에 동적으로 할당하는 역할을 합니다. 주요 고려 지표는 다음과 같습니다.
- 디스크 읽기 큐 길이: 각 노드의 저장소 I/O 부하
- 엔진별 토큰 수: 각 프리필/디코딩 엔진의 작업량
스케줄러는 이 지표들을 바탕으로 가장 한가한 경로로 요청을 보내 부하를 분산시키고, GPU와 NIC 자원이 균형 있게 활용되도록 합니다.
시스템 구성 가이드라인 수식
DualPath는 시스템이 병목 없이 최적의 성능을 내기 위한 프리필 노드와 디코딩 노드의 비율() 가이드라인을 수식으로 제시합니다.
- : 프리필 노드 수
- : 디코딩 노드 수
- : 노드당 GPU 수
- : 노드당 저장소 NIC 대역폭 비율 (전체 네트워크 대역폭 대비)
- : GPU 메모리 대역폭
- : 컴퓨팅 NIC 대역폭
이 수식은 시스템 설계자에게 하드웨어 사양(GPU, 네트워크, 메모리 등)에 맞춰 최적의 노드 구성을 결정하는 데 도움을 줍니다. 이 범위 내에서 비율을 설정하면 특정 자원의 병목 없이 시스템 전체 처리량을 극대화할 수 있습니다.
실험 설정
- 하드웨어: NVIDIA H800 GPU 1,152개로 구성된 클러스터
- 모델: DeepSeek 660B/27B, Qwen 32B
- 데이터셋: 실제 에이전트 애플리케이션에서 수집한 워크로드
- 비교 대상:
- Basic: DualPath와 동일한 기반에 이중 경로 로딩만 비활성화한 버전
- SGLang(SGL(MC)): 최신 고성능 LLM 서빙 프레임워크
실험 결과 분석
DualPath는 모든 실험 환경에서 비교 대상보다 월등한 성능을 보였습니다.
| 지표 | Basic | DualPath | 향상률 |
|---|---|---|---|
| 오프라인 추론 처리량 (Normalized) | 1.00 | 1.87 | 87% ↑ |
| 온라인 서빙 처리량 (Normalized) | 1.00 | 1.96 | 96% ↑ |
- 오프라인 추론: 대규모 배치를 처리하는 시나리오에서 DualPath는 처리량을 최대 1.87배 향상시켜, 저장소 I/O 병목이 성공적으로 해결되었음을 입증했습니다.
- 온라인 서빙: 실시간 요청을 처리하는 시나리오에서도 평균 1.96배의 처리량 향상을 달성하여, 낮은 지연 시간과 높은 처리량을 동시에 만족시켰습니다.
Ablation study(요소별 제거 연구)를 통해 각 구성 요소의 기여도를 분석한 결과, 이중 경로 로딩이 전체 성능 향상에 가장 결정적인 역할을 했으며, 적응형 스케줄링과 계층별 프리필(논문에서 다루는 추가 최적화) 또한 성능 향상에 의미 있게 기여했음을 확인했습니다.
비판적 평가
DualPath는 저장소 대역폭이라는 새로운 병목 지점을 효과적으로 해결한 독창적인 시스템입니다. 하지만 몇 가지 고려할 점이 있습니다.
- 구현 복잡성: 이중 경로 로딩, 트래픽 관리, 적응형 스케줄링 등 여러 구성요소가 유기적으로 동작해야 하므로 시스템의 전체적인 복잡도가 높습니다.
- 하드웨어 의존성: 제안된 아키텍처는 고속 저장소(NVMe)와 RDMA를 지원하는 고성능 네트워킹 인프라를 가정합니다. 일반적인 클라우드 환경이나 저사양 클러스터에서는 그 효과가 제한적일 수 있습니다.
- 재현성: 현재 논문만 공개되었고 코드는 공개되지 않아, 제3자가 결과를 재현하고 검증하기에는 어려움이 따릅니다.
향후 연구 방향
DualPath의 아이디어는 다양한 방향으로 확장될 수 있습니다.
- 이기종 하드웨어 환경: 다양한 종류의 GPU와 네트워크 장비가 혼합된 환경에서도 최적의 성능을 내도록 스케줄러를 고도화하는 연구가 가능합니다.
- 다른 병목 지점 탐색: 저장소 I/O 외에 발생할 수 있는 또 다른 병목(e.g., CPU, PCIe 대역폭)을 분석하고 해결하는 연구로 확장될 수 있습니다.
- 자동화된 시스템 구성: 수식을 넘어, 주어진 하드웨어 환경에서 최적의 노드 비율과 설정을 자동으로 찾아주는 프레임워크를 개발할 수 있습니다.
실무 적용 가이드
DualPath를 실제 서비스에 도입하려는 경우, 다음 사항을 고려해야 합니다.
- 인프라 확인: 시스템의 성능을 최대로 끌어내기 위해 노드 간 RDMA 통신이 가능한 고속 인터커넥트와 빠른 NVMe 스토리지가 필수적입니다.
- 워크로드 분석: 특히 멀티턴 대화, RAG(검색 증강 생성), 복잡한 함수 호출을 수행하는 에이전트와 같이 컨텍스트 길이가 길고 KV-Cache가 큰 워크로드에서 가장 큰 효과를 볼 수 있습니다.
- 점진적 도입: 처음부터 전체 시스템을 구현하기보다, 먼저 저장소와 노드 간의 네트워크 대역폭을 모니터링하여 병목 현상을 확인하고, 이중 경로 로딩의 핵심 아이디어를 부분적으로 적용해보는 것이 현실적인 접근법일 수 있습니다.
결론
DualPath는 기존 LLM 서빙 시스템 연구가 간과했던 저장소 I/O 병목 문제에 정면으로 도전하여, 시스템의 네트워크 자원 활용 방식을 재구성하는 혁신적인 해법을 제시했습니다. 이중 경로 로딩이라는 간단하면서도 강력한 아이디어를 통해 에이전트 LLM 추론의 성능을 한 단계 끌어올렸으며, 향후 대규모 LLM 인프라 설계에 중요한 방향성을 제시하는 연구라 할 수 있습니다.
참고 자료
- 논문 원문: DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference (arXiv:2405.21013)
- 코드 저장소: (논문 저자에 의해 아직 공개되지 않음)

![[논문 리뷰] DualPath: Breaking the Storage Bandwidth Bottleneck in Agentic LLM Inference](/assets/images/blog/20260227-paper-2602-21548-dualpath-breaking-the-storage-.jpg)