Cloudflare, LLM 성능 향상을 위한 기술 혁신
Cloudflare는 에이전트(Agent) 기반 제품을 위해 대규모 언어 모델(LLM)을 효율적으로 호스팅하기 위한 기술적 기반을 구축
Prefill/Decode 분리(Prefill Decode Disaggregation) 아키텍처를 통해 GPU 활용률을 높이고, 3배 빠른 토큰 처리 속도(Token Processing Speed)를 달성
프롬프트 캐싱(Prompt Caching) 및 KV 캐시(KV Cache) 최적화를 통해 모델 성능을 개선하고, Infire라는 자체 추론 엔진(Inference Engine)을 개발
멀티 GPU 지원, 메모리 오버헤드 감소, 콜드 스타트(Cold Start) 시간 단축을 통해 하드웨어 효율성(Hardware Efficiency)을 극대화
Prefill/Decode 분리 아키텍처(PD Disaggregation)
본문에 따르면, LLM 요청 처리 과정을 Prefill 단계와 Decode 단계로 분리하여 각 단계에 특화된 서버를 운영한다. Prefill 단계는 입력 토큰(Input Token)을 처리하고 KV 캐시(KV Cache)를 생성하며, Decode 단계는 KV 캐시를 활용하여 출력 토큰(Output Token)을 생성한다.
GPU 활용도 극대화: Prefill과 Decode 단계의 병목 현상을 해결하여 GPU 자원 효율성을 높임
유연한 확장성(Scalability): 각 단계별로 트래픽(Traffic)에 맞춰 서버를 독립적으로 확장 가능
토큰 기반 로드 밸런싱(Token-aware Load Balancing): 로드 밸런서(Load Balancer)가 각 엔드포인트(Endpoint)의 처리량을 예측하여 부하 분산
이러한 아키텍처는 에이전트(Agent)와 같이 입력 토큰(Input Token)이 많은 경우에 특히 효과적이다.
프롬프트 캐싱(Prompt Caching) 및 세션 어피니티(Session Affinity)
글에서는 에이전트(Agent)와 같이 긴 컨텍스트(Context)를 사용하는 경우, 프롬프트 캐싱(Prompt Caching)을 통해 입력 텐서(Input Tensor)를 재계산하는 오버헤드를 줄인다고 설명한다.
x-session-affinity 헤더 활용: 요청을 이전에 계산된 입력 텐서가 있는 리전(Region)으로 라우팅(Routing)
캐시 적중률(Cache Hit Ratio) 향상: 60%에서 80%로 증가하여 처리량(Throughput) 증가
할인된 캐시 토큰(Cached Tokens): 사용자에게 캐싱 사용을 유도하여 성능 및 비용 효율성 개선
결과적으로, 프롬프트 캐싱(Prompt Caching)은 GPU 사용량(GPU Usage)을 줄이고, 응답 시간(Response Time)을 단축하는 데 기여한다.
KV 캐시(KV Cache) 최적화
본문에서는 대규모 모델(Large Model)을 지원하기 위해 KV 캐시(KV Cache)를 여러 GPU에 분산 저장하는 기술을 소개한다.
Mooncake Transfer Engine: RDMA(Remote Direct Memory Access) 프로토콜을 사용하여 GPU 간 데이터 전송 속도 향상
Mooncake Store: GPU VRAM(Video RAM)을 넘어 NVMe 스토리지를 활용하여 캐시 용량 확장
캐시 적중률(Cache Hit Ratio) 증가: 세션(Session)이 더 오래 캐시에 유지되어 트래픽 처리량(Traffic Throughput) 증가
이러한 최적화는 멀티 GPU 환경(Multi-GPU Environment)에서 모델 성능을 극대화하고, 더 많은 사용자 요청을 처리할 수 있게 한다.
Infire: 자체 개발 추론 엔진
Cloudflare는 자체 개발한 추론 엔진인 Infire를 통해 LLM의 성능을 향상시키고 있다. Infire는 Rust(Rust)로 작성되었으며, Cloudflare의 분산 환경에 최적화되어 있다.
멀티 GPU 지원: 파이프라인 병렬 처리(Pipeline Parallelism) 및 텐서 병렬 처리(Tensor Parallelism)를 통해 성능 극대화
메모리 오버헤드 감소: vLLM 대비 낮은 GPU 메모리 사용량
콜드 스타트(Cold Start) 시간 단축: Kimi K2.5와 같은 대규모 모델도 20초 이내에 시작 가능
Infire는 하드웨어(Hardware)를 최대한 활용하여 토큰 처리량(Tokens Per Second Throughput)을 최대 20% 향상시키고, 저사양 하드웨어에서도 최신 모델을 실행할 수 있게 한다.
추측 디코딩(Speculative Decoding) 및 EAGLE-3
글에서는 LLM의 추론 속도를 높이기 위해 추측 디코딩(Speculative Decoding) 기술을 활용한다고 설명한다. 추측 디코딩은 작은 모델(Draft Model)을 사용하여 여러 개의 후보 토큰(Candidate Token)을 생성하고, 대상 모델(Target Model)이 이 중에서 선택하도록 한다.
NVIDIA EAGLE-3 활용: Kimi K2.5 모델에 NVIDIA의 EAGLE-3 드래프트 모델(Draft Model)을 적용
구조화된 출력(Structured Output) 생성: 도구 호출(Tool Call)과 같은 예측 가능한 출력에 효과적
토큰 처리량(Tokens Per Second Throughput) 향상: 고품질의 추론을 유지하면서 속도를 높임
추측 디코딩(Speculative Decoding)은 에이전트(Agent)와 같이 구조화된 출력이 많은 경우 성능을 크게 향상시킬 수 있다.