Cloudflare, LLM 성능 향상을 위한 기술 혁신

by DD
1개월 전
조회수 12

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)와 같이 구조화된 출력이 많은 경우 성능을 크게 향상시킬 수 있다.

Building the foundation for running extra-large language models