메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

MOONCAKE: Trading More Storage for Less Computation A KVCache-centric Architecture for Serving LLM Chatbot: 두 판 사이의 차이

noriwiki
새 문서: 분류: USENIX FAST Ruoyu Qin, Zheming Li, Weiran He, Jialei Cui, Feng Ren, Mingxing Zhang, Yongwei Wu, Weimin Zheng, Xinran Xu USENIX FAST 2025 == 개요 == == Motivation & Importance == == Challenge == == Background == == Main Idea == == Design == == Result == == Contribution == == Implementation ==
 
편집 요약 없음
1번째 줄: 1번째 줄:
[[분류: USENIX FAST]]
[[분류: USENIX FAST]]


Ruoyu Qin, Zheming Li, Weiran He, Jialei Cui, Feng Ren, Mingxing Zhang, Yongwei Wu, Weimin Zheng, Xinran Xu
MOONCAKE: Trading More Storage for Less Computation — A KVCache-centric Architecture for Serving LLM Chatbot
USENIX FAST 2025
 
Ruoyu Qin, Zheming Li, Weiran He, Jialei Cui, Feng Ren, Mingxing Zhang, Yongwei Wu, Weimin Zheng, Xinran Xu
USENIX FAST 2025


== 개요 ==
== 개요 ==
MOONCAKE는 Moonshot AI의 LLM 챗봇 서비스인 Kimi의 서빙 플랫폼으로, KVCache 중심의 분리형(disaggregated) 아키텍처를 도입하여 스토리지를 적극적으로 활용해 연산을 줄이는 구조를 제안한다. CPU, DRAM, SSD, NIC 등의 자원을 GPU와 독립적으로 활용하여 분산된 KVCache 시스템을 구성하고, 이를 통해 SLO(Time to First Token, Time Between Tokens)를 만족하면서도 처리량을 대폭 향상시킨다.


== Motivation & Importance ==
== Motivation & Importance ==
LLM 서비스는 각 요청의 길이, 도착 시간, SLO 등 다양한 제약을 가지며, 고정된 GPU 자원 내에서 최대한 많은 요청을 처리해야 한다. MOONCAKE는 GPU 자원을 효율적으로 활용하고, 자주 사용되는 KVCache를 재활용함으로써 연산량을 줄이고 처리량을 높이는 것이 목적이다.


== Challenge ==
== Challenge ==
* Prefill과 Decoding 스테이지의 이질성
* GPU 외 자원의 비효율적 사용
* Prefix 재활용에 따른 복잡한 캐시 스케줄링
* 고대역폭 네트워크 필요성


== Background ==
== Background ==
Transformer 기반 LLM은 prefill과 decoding 두 단계로 구분되며, 각각 TTFT와 TBT를 기준으로 SLO를 만족해야 한다. 일반적으로 prefill은 연산량이 크고, decoding은 메모리 제약을 받는다. 이를 분리하여 최적화하는 것이 최근의 주요 방향이다.


== Main Idea ==
== Main Idea ==
"More Storage for Less Computation" 전략을 통해 이전 요청에서 생성한 KVCache를 prefix match를 통해 재사용함으로써 prefill 단계의 연산을 줄이고 응답 속도를 높인다. 이를 위해:
* 분산 KVCache 풀(Mooncake Store)을 구성
* prefix match 기반의 캐시 중심 스케줄링 도입
* 높은 대역폭의 RDMA 네트워크 기반 전송 엔진 설계


== Design ==
== Design ==
 
* 아키텍처 중심: Prefill과 Decoding 노드를 분리하고, CPU/DRAM/SSD를 조합해 MOONCAKE Store를 구성.
== Result ==
* 스케줄러(Conductor): 요청을 prefix hit 정도, 부하 상태, 대기 시간 등을 종합 고려하여 최적의 prefill/decoding 인스턴스를 선택.
* Chunked pipeline parallelism (CPP): 긴 컨텍스트 처리 시 prefill을 chunk 단위로 병렬 실행하여 TTFT 단축.


== Contribution ==
== Contribution ==
 
# KVCache 중심의 분리형 LLM 서빙 아키텍처 제안
== Implementation ==
# 대용량 분산 KVCache 풀(Mooncake Store)의 설계 및 구현
# 캐시 인식 스케줄링 알고리즘 도입
# 실 서비스(Kimi)에서의 검증 및 오픈소스 제공

2025년 4월 9일 (수) 11:50 판


MOONCAKE: Trading More Storage for Less Computation — A KVCache-centric Architecture for Serving LLM Chatbot

Ruoyu Qin, Zheming Li, Weiran He, Jialei Cui, Feng Ren, Mingxing Zhang, Yongwei Wu, Weimin Zheng, Xinran Xu USENIX FAST 2025

개요

MOONCAKE는 Moonshot AI의 LLM 챗봇 서비스인 Kimi의 서빙 플랫폼으로, KVCache 중심의 분리형(disaggregated) 아키텍처를 도입하여 스토리지를 적극적으로 활용해 연산을 줄이는 구조를 제안한다. CPU, DRAM, SSD, NIC 등의 자원을 GPU와 독립적으로 활용하여 분산된 KVCache 시스템을 구성하고, 이를 통해 SLO(Time to First Token, Time Between Tokens)를 만족하면서도 처리량을 대폭 향상시킨다.

Motivation & Importance

LLM 서비스는 각 요청의 길이, 도착 시간, SLO 등 다양한 제약을 가지며, 고정된 GPU 자원 내에서 최대한 많은 요청을 처리해야 한다. MOONCAKE는 GPU 자원을 효율적으로 활용하고, 자주 사용되는 KVCache를 재활용함으로써 연산량을 줄이고 처리량을 높이는 것이 목적이다.

Challenge

  • Prefill과 Decoding 스테이지의 이질성
  • GPU 외 자원의 비효율적 사용
  • Prefix 재활용에 따른 복잡한 캐시 스케줄링
  • 고대역폭 네트워크 필요성

Background

Transformer 기반 LLM은 prefill과 decoding 두 단계로 구분되며, 각각 TTFT와 TBT를 기준으로 SLO를 만족해야 한다. 일반적으로 prefill은 연산량이 크고, decoding은 메모리 제약을 받는다. 이를 분리하여 최적화하는 것이 최근의 주요 방향이다.

Main Idea

"More Storage for Less Computation" 전략을 통해 이전 요청에서 생성한 KVCache를 prefix match를 통해 재사용함으로써 prefill 단계의 연산을 줄이고 응답 속도를 높인다. 이를 위해:

  • 분산 KVCache 풀(Mooncake Store)을 구성
  • prefix match 기반의 캐시 중심 스케줄링 도입
  • 높은 대역폭의 RDMA 네트워크 기반 전송 엔진 설계

Design

  • 아키텍처 중심: Prefill과 Decoding 노드를 분리하고, CPU/DRAM/SSD를 조합해 MOONCAKE Store를 구성.
  • 스케줄러(Conductor): 요청을 prefix hit 정도, 부하 상태, 대기 시간 등을 종합 고려하여 최적의 prefill/decoding 인스턴스를 선택.
  • Chunked pipeline parallelism (CPP): 긴 컨텍스트 처리 시 prefill을 chunk 단위로 병렬 실행하여 TTFT 단축.

Contribution

  1. KVCache 중심의 분리형 LLM 서빙 아키텍처 제안
  2. 대용량 분산 KVCache 풀(Mooncake Store)의 설계 및 구현
  3. 캐시 인식 스케줄링 알고리즘 도입
  4. 실 서비스(Kimi)에서의 검증 및 오픈소스 제공