# ORCA
## 概要
ORCA は、LLM サービングにおいて継続的バッチング(continuous batching)技術を初めて利用したシステムである。リクエストの計算を複数のイテレーションに分割し、各イテレーションを prefilling ステップまたは decoding ステップとして扱うことで、異なるリクエストをイテレーションレベルでバッチングできることを示した。線形演算子において系列次元で異なるリクエストを連結するイテレーションレベルのバッチングを実装し、完了済みリクエストに対応する余剰ストレージ・計算資源を速やかに解放する。(Source: [[@2024__arXiv__A Survey on Efficient Inference for Large Language Models - Chapter 6.1 System-level Optimization - Serving System]] §6.2.2)
ORCA と、それに続くオープンソースシステム(vLLM・LightLLM)は、スケジューリングにおいて単純な先着順(FCFS)原則を用いる。(Source: [[@2024__arXiv__A Survey on Efficient Inference for Large Language Models - Chapter 6.1 System-level Optimization - Serving System]] §6.2.3)
## 関連
- [[@2024__arXiv__A Survey on Efficient Inference for Large Language Models - Chapter 6.1 System-level Optimization - Serving System]] — ORCA を継続的バッチングの起源として位置づける節
- [[動的バッチングと継続的バッチング]]
- [[vLLM]] — ORCA の継続的バッチング技術を attention 計算へ拡張
## 出典
- [[@2024__arXiv__A Survey on Efficient Inference for Large Language Models - Chapter 6.1 System-level Optimization - Serving System]] §6.2.2, §6.2.3