← 최신 논문
🤖 machine learning

LLM Serving Optimization with Variable Prefill and Decode Lengths

본 논문은 고정된 KV 캐시 제약 조건 하에서 이질적인 요청 길이를 갖는 오프라인 LLM 서빙 스케줄링이라는 NP-난해 문제를 해결하기 위해, 상수 인자 근사 보장을 달성하고 표준 베이스라인 대비 엔드 투 엔드 지연 시간을 크게 단축하는 Sorted-F 알고리즘을 제안한다.

원저자: Meixuan Wang, Yinyu Ye, Zijie Zhou

게시일 2026-06-30
📖 4 분 읽기☕ 가벼운 읽기

원저자: Meixuan Wang, Yinyu Ye, Zijie Zhou

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 매우 구체적인 규칙을 가진 바쁜 레스토랑 주방(LLM 서버)을 운영하고 있다고 상상해 보세요. 당신에게는 조리 공간(KV-캐시 메모리)이 한정되어 있습니다.

이 주방에서 모든 주문은 두 부분으로 나뉩니다:

  1. 주문서 (Prefill): 고객이 긴 또는 짧은 식재료 목록을 건넵니다. 당신은 요리를 시작하기 전에 이 목록 전체를 읽어야 합니다. 이것은 즉시 조리 공간을 차지합니다.
  2. 요리하기 (Decode): 당신은 한 번에 한 단계씩 요리를 합니다. 새로운 재료를 솥에 넣을 때마다 솥은 조금씩 커지며, 이는 더 많은 조리 공간을 차지하게 됩니다.

목표는 모든 고객에게 최대한 빨리 음식을 제공하는 것입니다(지연 시간 최소화).

문제점: "하나의 사이즈로 모두 해결하려는" 실수

이전에는 요리사들이 단순한 전략을 생각했습니다: "가장 작은 요리부터 먼저 만든다." 만약 고객이 아주 작은 에피타이저를 주문했다면, 거대한 스테이크를 만들기 전에 그것부터 만드는 식입니다.

하지만 이 논문의 저자들은 함정을 발견했습니다: 현실 세계의 주문은 복잡합니다:

  • 주문 A: 메뉴판은 매우 길지만(긴 입력), 실제 요리는 아주 작습니다(짧은 출력). 메뉴를 읽는 데 많은 조리 공간을 쓰지만, 요리는 순식간에 끝납니다.
  • 주문 B: 메뉴판은 아주 짧지만(짧은 입력), 오래 걸리는 스튜 요리입니다(긴 출력). 시작할 때는 공간을 적게 차지하지만, 솥이 계속해서 커지며 오랫동안 자리를 차지합니다.

만약 당신이 기존의 "가장 작은 요리 우선" 규칙을 따른다면, 곤경에 처할 수 있습니다. 당신은 처음에 작아 보였던 느린 스튜 요리를 먼저 시작했을 수도 있지만, 결국 그 요리가 모든 조리 공간을 독차지하게 되어, 다른 주문들을 시작하기도 전에 몇 시간 동안 기다려야 하는 상황이 발생할 수 있습니다. 논문은 이런 다양한 유형의 주문이 섞여 있을 때 기존의 규칙들이 처참하게 실패할 수 있음을 증명하며, 완벽한 스케줄을 찾는 것은 수학적으로 즉각 해결하는 것이 불가능하다(NP-hard)는 것을 보여줍니다.

해결책: "효율성 점수" (Sorted-F)

저자들은 다음에 무엇을 요리할지 결정하는 새로운 방법인 Sorted-F를 발명했습니다. 이는 단순히 요리가 얼마나 작은지를 보는 대신, 특별한 효율성 점수(F-메트릭)를 만듭니다.

이 점수는 마치 조리 공간 대비 "가성비"를 계산하는 계산기 같습니다. 다음과 같이 묻는 것입니다:

"지금 이 주문 그룹을 조리대에 올린다면, 사용된 조리 공간당 총 몇 개의 요리를 완성할 수 있는가?"

이것은 두 가지 요소의 균형을 맞춥니다:

  1. 배치 크기 (Batch Size): 한 번에 조리대에 올릴 수 있는 주문의 개수는 얼마인가?
  2. 요리 시간 (Cooking Time): 솥이 얼마나 오랫동안 계속 커질 것인가?

전략:

  1. 그룹화 (Grouping): 알고리즘은 밀려 있는 주문들을 살펴보고 "배치"(함께 요리할 주문 그룹)를 형성하려고 시도합니다.
  2. 점수 계산 (Scoring): 모든 가능한 그룹에 대해 효율성 점수를 계산합니다.
  3. 선택 (Selection): 가장 좋은 점수(가장 낮은 숫자)를 가진 그룹을 골라 요리를 시작합니다.
  4. 동적 조정 (Dynamic Adjustment): 그룹 내의 요리 중 하나가 끝나면, 그 솥의 크기가 줄어들어 새로운 주문이 즉시 들어올 수 있도록 공간을 확보합니다.

결과: 왜 작동하는가

저자들은 실제 데이터를 사용하여 이를 테스트했습니다. 짧은 채팅 메시지(커피 주문 같은 것)와 긴 문서 요약(10코스 만찬 요리 같은 것)을 섞어서 실험했습니다.

  • 기존 방식 (최단 시간 우선): 긴 시간 걸리는 요리가 조리대를 막아버려 곤경에 처했습니다.
  • 새로운 방식 (Sorted-F): 완벽한 조합을 찾아냈습니다. 이 방식은 여러 개의 짧은 주문들과 잘 어우러진다면, 몇몇 긴 요리들도 시작할 수 있습니다. 이를 통해 조리대가 항상 생산적인 작업으로 가득 차도록 보장합니다.

마법의 숫자:
논문은 이 새로운 방법이 절대적인 완벽한 스케줄(계산이 불가능한)보다 결코 48배보다 더 나쁘지 않음을 수학적으로 증명합니다. 하지만 실제로 이 방식은 이론적인 최적의 상태와 거의 비슷하게 작동하며, 바쁠 때 표준 방식에 비해 대기 시간을 엄청나게 단축합니다(때로는 4배에서 5배 더 빠르게).

주방을 위한 실용적인 팁

매 초마다 완벽한 그룹을 계산하는 것은 실제 주방에서 너무 느리기 때문에, 저자들은 다양한 상황에 맞는 세 가지 "치트 코드"(근사치)도 구축했습니다:

  1. 정밀 계산기 (The Exact Calculator): 규모가 작은 주방(주문이 적은 경우)을 위해, 매번 완벽한 그룹을 찾아냅니다.
  2. 로컬 스와퍼 (The Local Swapper): 중간 규모의 주방을 위해, 좋은 시작 계획을 약간 수정하여 더 낫게 만듭니다.
  3. 빠른 선택기 (The Quick Picker): 거대하고 혼란스러운 주방을 위해, 빠르고 대략적인 추정치를 사용하여 충분히 괜찮은 답을 즉시 얻습니다.

또한, 요리가 얼마나 걸릴지 정확히 모르는 경우(요리 시간을 예측해야 하는 상황)에도, 이 시스템이 어떻게 즉각적으로 적응할 수 있는지 보여주었습니다. 만약 어떤 요리가 예상보다 오래 걸린다면, 시스템은 전체 시스템을 무너뜨리는 대신, 조리 공간을 확보하기 위해 덜 중요한 요리들을 부드럽게 제거합니다.

핵심 요약

제한된 메모리를 두고 짧은 작업과 긴 작업이 경쟁할 때, 단순히 가장 짧은 것들만 골라서는 안 됩니다. 전체 그룹과 그들이 어떻게 어우러지는지를 살펴보는 스마트한 시스템이 필요합니다. Sorted-F 알고리즘은 바로 그 역할을 수행하며, 마치 냄비를 조리대에 배치하여 최대한 빨리 저녁 식사를 내놓을 수 있는 방법을 정확히 아는 숙련된 셰프처럼 행동합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →