BlendServe: Optimizing Offline Inference for Auto-regressive Large Models with Resource-aware Batching
BlendServe는 리소스 중첩과 프리픽스 공유를 효과적으로 결합하기 위해 리소스 인식형 프리픽스 트리를 도입함으로써 오프라인 자기회귀 대규모 모델 추론을 최적화하며, 이를 통해 vLLM 및 SGLang과 같은 업계 표준 대비 최대 1.44배의 처리량 향상을 달성하는 시스템입니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신은 맞춤형 로봇(이것이 바로 AI 모델입니다)을 제작하는 거대하고 고속인 공장을 운영하고 있다고 상상해 보십시오. 당신의 임무는 수천 개의 주문(요청)을 처리하여 로봇을 만드는 것입니다.
과거에는 로봇을 빠르게 제작하고 싶다면 두 가지 유형의 주문 중 하나를 선택해야 했습니다.
- "헤비 리프팅(Heavy Lifting)" 주문: 많은 근력(연산량)을 필요로 하지만 저장 공간은 거의 필요하지 않습니다. 예를 들어, 저장 공간은 거의 없지만 매우 강력한 팔을 가진 로봇을 만들라는 주문과 같습니다.
- "헤비 스토리지(Heavy Storage)" 주문: 근력은 거의 필요하지 않지만 엄청난 양의 저장 공간을 필요로 합니다. 예를 들어, 팔은 아주 작지만 내부에 거대한 창고를 가진 로봇을 만들라는 주문과 같습니다.
문제점: 공장 바닥의 병목 현상
당신의 공장에는 두 가지 주요 자원이 있습니다.
- 머슬 머신 (연산/Compute): 빠르지만 기다리는 동안 지쳐버릴 수 있습니다.
- 스토리지 쉘프 (메모리/Memory): 매우 크지만 효율적으로 사용되지 않으면 막혀버립니다.
과거의 방식 (단순 배치/Naive Batching):
이전에는 공장이 단순히 주문이 들어온 순서대로 작업을 처리했습니다. 만약 10개의 "헤비 리프팅" 주문이 줄지어 있다면, 머슬 머신은 과부하가 걸려 열심히 일하겠지만, 스토리지 쉘프는 비어 있는 채로 쓸모없이 방치될 것입니다. 그러다 다음 10개의 주문이 "헤비 스토리지"라면, 스토리지 쉘프는 가득 차겠지만 머슬 머신은 할 일이 없어 손을 까닥거리며 놀게 됩니다.
이것은 트럭에 벽돌만 가득 채웠다가, 그다음엔 깃털만 가득 채우는 것과 같습니다. 이것들을 함께 섞어서 운반할 수 있었다면 훨씬 더 많이 실을 수 있었을 텐데 말이죠. 결국 트럭(당신의 컴퓨터 칩)은 시간의 절반 동안 반쯤 비어 있게 됩니다.
새로운 문제:
공장들이 사용했던 또 다른 기술인 **"프리픽스 셰어링(Prefix Sharing, 접두사 공유)"**이라는 것이 있었습니다. 많은 주문이 동일한 첫 단계(예: "로봇을 파란색으로 칠하기")를 공유한다고 상상해 보십시오. 이 주문들을 연달아 수행하면, 파란색 칠하기를 한 번만 수행하고 그 결과를 재사용할 수 있습니다. 이는 시간을 엄청나게 절약해 줍니다.
하지만, 이렇게 공유를 위해 최적의 순서(모든 "파란색 칠하기" 주문을 함께 처리하는 것)를 정하다 보면, 결국 모든 "헤비 리프팅" 주문을 모으고 모든 "헤비 스토리지" 주문을 모으게 되는 경우가 많습니다. 이는 "섞기" 전략을 망가뜨려, 당신의 기계들을 다시 한번 반쯤 빈 상태로 만들어 버립니다.
해결책: 블렌드서브 (BlendServe)
이 논문의 저자들은 BlendServe라고 불리는 시스템을 만들었습니다. 이것은 작업의 순서를 재배열하여 두 가지 장점을 모두 얻을 수 있게 해주는 초스마트 공장 관리자라고 생각하십시오.
1. "리소스 인식형" 트리 (Resource-Aware Tree):
BlendServe는 단순한 선형 구조 대신, 모든 주문을 거대한 가족 트리 형태로 조직합니다.
- 가지 (Branches): 동일한 시작 단계를 공유하는 주문들을 그룹화합니다 (프리픽스 셰어링).
- 라벨 (Labels): 각 가지에는 얼마나 많은 "근력(Muscle)" 대 "저장 공간(Storage)"이 필요한지가 라벨로 붙습니다.
2. "듀얼 스캐너" 알고리즘 (Dual Scanner Algorithm):
이것이 마법 같은 기술입니다. 관리자는 단순히 줄을 따라 걷는 것이 아닙니다. 그들은 트리의 양 끝에서 동시에 서 있습니다.
- 왼쪽에서 "헤비 리프팅" 주문을 하나 잡습니다.
- 오른쪽에서 "헤비 스토리지" 주문을 하나 잡습니다.
- 그리고 이 둘을 하나의 배치(Batch)에 함께 넣습니다.
결과:
이제 공장이 돌아갈 때, 머슬 머신은 열심히 일하는 동시에 스토리지 쉘프도 채워지게 됩니다. 서로가 서로를 돕는 것입니다. 트럭은 벽돌과 깃털이 완벽하게 섞여 꽉 채워집니다.
이것이 왜 중요한가
이 논문은 BlendServe가 이러한 영리한 섞기 방식을 유지하면서도 "공유된 단계"를 함께 유지함으로써 다음과 같은 성과를 냈다고 주장합니다.
- 현재 최고의 시스템들(vLLM 및 SGLeng 등)과 비교했을 때 공장을 최대 44%까지 더 빠르게 만들 수 있습니다.
- **이론적인 "완벽한" 속도의 90%**에 도달합니다. 완벽한 속도가 시속 100마일이라면, BlendServe는 시속 90마일에 도달하는 반면, 다른 시스템들은 시속 60~70마일에 머물 수 있습니다.
난관 (그리고 이를 해결한 방법)
논문은 AI가 텍스트를 한 단어씩 생성하기 때문에 "헤비 스토리지" 주문이 정확히 얼마나 걸릴지 예측하는 것이 어렵다는 점을 인정합니다. 이를 해결하기 위해 BlendServe는 주문의 아주 작은 샘플을 사용하여 짧은 "테스트 실행"을 수행함으로써 주문이 얼마나 걸릴지 추측한 뒤, 그 추측치를 바탕로 완벽한 혼합을 구성합니다. 설령 추측이 약간 틀리더라도, 시스템은 실시간으로 조정할 수 있을 만큼 견고합니다.
요약하자면, BlendServe는 컴퓨터가 놀지 않도록 만드는 스마트한 스케줄러입니다. 서로 다른 유형의 AI 작업을 함께 섞어줌으로써, 당신의 컴퓨터의 두뇌와 메모리가 완벽한 조화를 이루며 작동하게 하여, 오프라인 AI 처리를 훨씬 더 빠르고 저렴하게 만들어 줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.