2025-11-21T03:37:14.946546

Cortex: Workflow-Aware Resource Pooling and Scheduling for Agentic Serving

Pagonas, Chung, Kaffes et al.
We introduce Cortex, a prototype workflow-aware serving platform designed for agentic workloads. The core principle of Cortex is stage isolation: it provisions dedicated resource pools for each distinct stage of an agentic workflow. This simple yet powerful strategy mitigates inter-stage interference in compute and memory, leading to better KV cache utilization, higher throughput, and more predictable performance. By customizing resource allocation and scheduling within each distinct stage of agentic workflows, Cortex lays the groundwork for more advanced, agent-native serving paradigms, including malleable resource management, speculative execution of workflow branches, and a shared, multi-tiered cache for "agentic state."
academic

Cortex: ์›Œํฌํ”Œ๋กœ์šฐ ์ธ์‹ ๋ฆฌ์†Œ์Šค ํ’€๋ง ๋ฐ ์—์ด์ „ํŠธ ์„œ๋น™ ์Šค์ผ€์ค„๋ง

๊ธฐ๋ณธ ์ •๋ณด

  • ๋…ผ๋ฌธ ID: 2510.14126
  • ์ œ๋ชฉ: Cortex: Workflow-Aware Resource Pooling and Scheduling for Agentic Serving
  • ์ €์ž: Nikos Pagonas (Columbia University), Yeounoh Chung (Google), Kostis Kaffes (Columbia University), Arvind Krishnamurthy (Google & University of Washington)
  • ๋ถ„๋ฅ˜: cs.DC (๋ถ„์‚ฐ, ๋ณ‘๋ ฌ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ ์ปดํ“จํŒ…)
  • ๋ฐœํ‘œ ์‹œ๊ฐ„: 2025๋…„ 10์›” 15์ผ (arXiv ํ”„๋ฆฌํ”„๋ฆฐํŠธ)
  • ๋…ผ๋ฌธ ๋งํฌ: https://arxiv.org/abs/2510.14126

์ดˆ๋ก

๋ณธ ๋…ผ๋ฌธ์€ ์—์ด์ „ํŠธ ์›Œํฌ๋กœ๋“œ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ์›Œํฌํ”Œ๋กœ์šฐ ์ธ์‹ ์„œ๋น™ ํ”Œ๋žซํผ ํ”„๋กœํ† ํƒ€์ž…์ธ Cortex๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. Cortex์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋Š” ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ(stage isolation)์ด๋‹ค: ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๊ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋‹จ๊ณ„์— ์ „์šฉ ๋ฆฌ์†Œ์Šค ํ’€์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์ „๋žต์€ ๊ณ„์‚ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‹จ๊ณ„ ๊ฐ„ ๊ฐ„์„ญ์„ ์™„ํ™”ํ•˜์—ฌ ๋” ๋‚˜์€ KV ์บ์‹œ ํ™œ์šฉ๋ฅ , ๋” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰ ๋ฐ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ์„ ์‹คํ˜„ํ•œ๋‹ค. ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๊ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋‹จ๊ณ„ ๋‚ด์—์„œ ๋ฆฌ์†Œ์Šค ํ• ๋‹น ๋ฐ ์Šค์ผ€์ค„๋ง์„ ๋งž์ถคํ™”ํ•จ์œผ๋กœ์จ, Cortex๋Š” ๊ฐ€์†Œ์„ฑ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ, ์›Œํฌํ”Œ๋กœ์šฐ ๋ถ„๊ธฐ์˜ ์ถ”์ธก ์‹คํ–‰ ๋ฐ "์—์ด์ „ํŠธ ์ƒํƒœ"๋ฅผ ์œ„ํ•œ ๊ณต์œ  ๋‹ค์ธต ์บ์‹œ๋ฅผ ํฌํ•จํ•œ ๋” ๊ณ ๊ธ‰ ์—์ด์ „ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋น™ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๊ธฐ์ดˆ๋ฅผ ๋งˆ๋ จํ•œ๋‹ค.

์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ ๋ฐ ๋™๊ธฐ

๋ฌธ์ œ ์ •์˜

์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์˜ ์ถ”๋ก ์„ ๋ฐ˜๋ณต์ ์ธ ๋„๊ตฌ ์‚ฌ์šฉ๊ณผ ๊ฒฐํ•ฉํ•œ๋‹ค: ๋ชจ๋ธ์ด ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ , ์ƒ๊ฐํ•˜๊ณ , ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ž‘์—…์ด ํ•ด๊ฒฐ๋˜๊ฑฐ๋‚˜ ์˜ˆ์‚ฐ์ด ์†Œ์ง„๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ๋ฃจํ”„ ๋ชจ๋“œ๋Š” ์ž์—ฐ์–ด-SQL(NL2SQL) ์—์ด์ „ํŠธ์™€ ๊ฐ™์€ ํ”„๋กœ๋•์…˜ ์ˆ˜์ค€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ ์  ๋” ์ค‘์š”ํ•ด์ง€๊ณ  ์žˆ๋‹ค.

๊ธฐ์กด ๋ฐฉ๋ฒ•์˜ ํ•œ๊ณ„

ํ˜„์žฌ LLM ์„œ๋น™ ํ”Œ๋žซํผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค:

  1. ์›Œํฌํ”Œ๋กœ์šฐ ๋ฌด๊ฐ๊ฐ์„ฑ: ์ธ๊ธฐ ์žˆ๋Š” LLM ์„œ๋น™ ํ”„๋ ˆ์ž„์›Œํฌ(์˜ˆ: vLLM)๋Š” ๊ฐ ๋‹จ๊ณ„๋ฅผ ๋…๋ฆฝ์ ์ธ LLM ํ˜ธ์ถœ๋กœ ์ทจ๊ธ‰ํ•˜๋ฉฐ ์„ ์ฐฉ์ˆœ(FCFS) ์Šค์ผ€์ค„๋ง์„ ์ฑ„ํƒํ•œ๋‹ค
  2. ๊ตฌ์กฐ ์ธ์‹ ๋ถ€์กฑ: ๊ธฐ์กด ์—์ด์ „ํŠธ ์„œ๋น™ ํ”Œ๋žซํผ(์˜ˆ: Autellix)์€ ๋ณต์žกํ•œ ์šฐ์„ ์ˆœ์œ„ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค
  3. ์บ์‹œ ๊ธฐํšŒ ๋‚ญ๋น„: ๋™์ผํ•œ ํŒจํ„ด์— ๋Œ€ํ•œ ๋‹ค์„ฏ ๋ฒˆ์˜ ๊ฐœ์„  ์‹œ๋„๋Š” ๋‹ค์„ฏ ๋ฒˆ์˜ ๋™์ผํ•œ ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ๊ณผ ๋‹ค์„ฏ ๋ฒˆ์˜ ๋™์ผํ•œ ํ•ซ ์บ์‹œ SQL ์‹คํ–‰์„ ์ƒ์„ฑํ•œ๋‹ค
  4. ์Šค์ผ€์ค„๋ง ๋งน๋ชฉ์„ฑ: ๋‚จ์€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ฑ„ LLM ํ˜ธ์ถœ์„ ์Šค์ผ€์ค„ํ•˜์—ฌ ๋‹ค์šด์ŠคํŠธ๋ฆผ ๋น„์šฉ์„ ๋ฌด์‹œํ•œ๋‹ค

์—ฐ๊ตฌ ๋™๊ธฐ

์ €์ž๋“ค์€ ์ด์งˆ์ ์ธ ๋‹จ๊ณ„๋ฅผ ํฌํ•จํ•˜๋Š” ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์—๋Š” ๋‹จ์ผ ๊ณต์œ  "๋ฒ”์šฉ" LLM ์—”์ง„ ํ’€์ด ์ ํ•ฉํ•˜์ง€ ์•Š์Œ์„ ๊ด€์ฐฐํ–ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„(SQL ์ƒ์„ฑ, ์‹คํ–‰, ์˜ค๋ฅ˜ ์ˆ˜์ •)๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ง€์—ฐ ํ”„๋กœํ•„, ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ์บ์‹œ ๊ธฐํšŒ๋ฅผ ๊ฐ€์ง„๋‹ค.

ํ•ต์‹ฌ ๊ธฐ์—ฌ

  1. Cortex ์•„ํ‚คํ…์ฒ˜ ์ œ์•ˆ: ๊ฐ ์›Œํฌํ”Œ๋กœ์šฐ ๋‹จ๊ณ„์— ์ „์šฉ ์—”์ง„ ํ’€์„ ์ œ๊ณตํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ ์ธ์‹ ์„œ๋น™ ํ”Œ๋žซํผ
  2. ํ˜„์ €ํ•œ KV ์บ์‹œ ์ตœ์ ํ™” ๊ตฌํ˜„: ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด KV ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œํ‚ค๊ณ  GPU ๋ฉ”๋ชจ๋ฆฌ ํ™œ์šฉ๋ฅ  ํ–ฅ์ƒ
  3. ๋‹จ๊ณ„ ๊ฐ„ ๊ฐ„์„ญ ์ œ๊ฑฐ: ์•ˆ์ •์ ์ธ ๋‹จ๊ณ„ ๋กœ์ปฌ ์ง€์—ฐ ๋ชจ๋ธ ๋ณต์›, ์„ฑ๋Šฅ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ ํ–ฅ์ƒ
  4. ์—์ด์ „ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋น™ ํ”„๋ ˆ์ž„์›Œํฌ ์„ค๊ณ„: ๊ฐ€์†Œ์„ฑ ์›Œํฌํ”Œ๋กœ์šฐ, ์ถ”์ธก ์‹คํ–‰ ๋ฐ ์—์ด์ „ํŠธ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ๊ธฐ์ดˆ ๋งˆ๋ จ

๋ฐฉ๋ฒ•๋ก  ์ƒ์„ธ ์„ค๋ช…

์ž‘์—… ์ •์˜

NL2SQL ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด, ์ž…๋ ฅ์€ ์ž์—ฐ์–ด ์ฟผ๋ฆฌ(์˜ˆ: "์œ ๋Ÿฝ์˜ ์ง€๋‚œ ๋ถ„๊ธฐ ํŒ๋งค์•ก์€ ์–ผ๋งˆ์ธ๊ฐ€?")์ด๊ณ , ์ถœ๋ ฅ์€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋œ SQL ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ด๋‹ค. ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ๋‹ค:

  1. ๋Œ€์ƒ ์Šคํ‚ค๋งˆ ๊ฒ€์ƒ‰
  2. ์žํšŒ๊ท€ ํ›„๋ณด ์ฟผ๋ฆฌ ์ƒ์„ฑ
  3. ์ฟผ๋ฆฌ ์‹คํ–‰
  4. ๊ฒฐ๊ณผ ์ง‘ํ•ฉ ๊ฒ€์ฆ
  5. ์ฟผ๋ฆฌ ์‹คํŒจ ์‹œ ์ˆ˜์ • ๋ฐ ์žฌ์‹œ๋„

ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„

๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ ์›๋ฆฌ

Cortex๋Š” ๊ฐ ์›Œํฌํ”Œ๋กœ์šฐ ๋‹จ๊ณ„์— ์ „์šฉ ์—”์ง„ ํ’€์„ ์ œ๊ณตํ•œ๋‹ค. ์—”์ง„ ํ’€์€ ๋™์งˆ์ ์ธ ์›Œ์ปค ๊ทธ๋ฃน(์˜ˆ: LLM ๋””์ฝ”๋”ฉ์šฉ GPU ๋˜๋Š” SQL์šฉ CPU ์‹คํ–‰๊ธฐ)์œผ๋กœ, ์ž์ฒด ํ, ์บ์‹œ ๋ฐ ํ™•์žฅ ์ •์ฑ…์„ ๊ฐ€์ง„ ๋‹จ๊ณ„ ๋กœ์ปฌ ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค.

์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ

  1. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ(Orchestrator):
    • ์›Œํฌํ”Œ๋กœ์šฐ ์ธ์‹, ๊ฐ ์š”์ฒญ์˜ ๊ทธ๋ž˜ํ”„ ๋‚ด ์œ„์น˜ ์ถ”์ 
    • ๋‹ค์Œ ์ ๊ฒฉ ์—ฐ์‚ฐ์ž ์ง‘ํ•ฉ ์˜ˆ์ธก
    • SLO ์—ฌ์œ ๋„, ๋‹จ๊ณ„ ์„ ํƒ์„ฑ ๋ฐ ์˜ˆ์ƒ ์„œ๋น„์Šค ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ‚ค ์ถ”๊ฐ€
  2. ์—”์ง„ ํ• ๋‹น ๊ณ„์ธต(Engine Allocation Layer):
    • ์„œ๋ธŒ ํ˜ธ์ถœ์„ ๋กœ์ปฌ์„ฑ์„ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ํ’€ ์ธ์Šคํ„ด์Šค๋กœ ๋ผ์šฐํŒ…
    • ๋ณต์ œ๋ณธ ๊ฐ„ ๋ถ€ํ•˜ ๊ท ํ˜•
    • ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ์š”์ฒญ ์žฌ์ •๋ ฌ
    • ๋‹จ๊ณ„๊ฐ€ ๋ณ‘๋ชฉ์ด ๋  ๋•Œ ํ—ˆ์šฉ ์ œ์–ด ์‹คํ–‰
  3. ๋ฆฌ์†Œ์Šค ์ฐจ์šฉ ๋ฉ”์ปค๋‹ˆ์ฆ˜: ๋ถ€ํ•˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์••๋ ฅ์ด ์ถฉ๋ถ„ํžˆ ๋‚ฎ์„ ๋•Œ, ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋Š” ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๋‹จ๊ณ„๊ฐ€ ์œ ํœด ์—”์ง„์„ ์ฐจ์šฉํ•˜์—ฌ ๋‹จํŽธํ™”๋ฅผ ์ค„์ด๊ณ  ํ™œ์šฉ๋ฅ ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๊ธฐ์ˆ  ํ˜์‹  ํฌ์ธํŠธ

KV ์บ์‹œ ์ตœ์ ํ™”

๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐ ์—”์ง„์€ ์ž์‹ ์˜ ๋‹จ๊ณ„๋ณ„ ์ปจํ…์ŠคํŠธ๋งŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ˜๋ฉด, ๊ณต์œ  ์—”์ง„์€ ๊ฐ ๋ณต์ œ๋ณธ์—์„œ ๋‘ ๋‹จ๊ณ„์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ํ•ซ ์บ์‹œ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ KV ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ค‘๋ณต์‹œํ‚จ๋‹ค. ํšŒ์ˆ˜๋œ GPU ๋ฉ”๋ชจ๋ฆฌ๋Š” ์œ ํšจ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ๋” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋” ํƒ€์ดํŠธํ•œ ๊ผฌ๋ฆฌ ์ง€์—ฐ์œผ๋กœ ์ง์ ‘ ๋ณ€ํ™˜๋œ๋‹ค.

์„ฑ๋Šฅ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ

๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ํ•ด์น˜๋Š” ๋‹จ๊ณ„ ๊ฐ„ ๊ฐ„์„ญ์„ ์ œ๊ฑฐํ•œ๋‹ค. ์ด์งˆ์ ์ธ ํ˜ธ์ถœ์ด ์—”์ง„์„ ๊ณต์œ ํ•  ๋•Œ, ๋ฐฐ์น˜๋Š” ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ฒฐํ•ฉํ•˜๊ณ  ํ† ํฐ ๋ฐฉ์ถœ์„ ์ง€์—ฐ์‹œ์ผœ LLM ํ˜ธ์ถœ์˜ ์ง€์—ฐ์„ ๋ฐฐ์น˜ ํŒŒํŠธ๋„ˆ์— ์˜์กดํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

๋…๋ฆฝ์  ํ™•์žฅ

๋…๋ฆฝ์  ํ™•์žฅ ๋ฐ ๊ตฌ์„ฑ ํ™œ์„ฑํ™”: ๋น ๋ฅธ ๋ชจ๋‹ˆํ„ฐ๋Š” SLO๋ฅผ ์œ„ํ˜‘ํ•˜๋Š” ํ’€๋งŒ ํ™•์žฅํ•˜์—ฌ ์ผํšŒ์šฉ ์‹คํ–‰ ๋‹จ๊ณ„๋ฅผ ๊ฒฝ๋Ÿ‰์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด์„œ ์ค‘์š” ๊ฒฝ๋กœ ํ’€์— ๋” ๋งŽ์€ ๊ฐ€์ค‘์น˜๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹คํ—˜ ์„ค์ •

์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค

๋…ผ๋ฌธ์€ NL2SQL ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฃผ์š” ์‹คํ—˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋‹ค์Œ์„ ํฌํ•จํ•œ๋‹ค:

  • SQL ์ƒ์„ฑ๊ธฐ
  • SQL ์˜ค๋ฅ˜ ์ˆ˜์ •๊ธฐ
  • SQL ์‹คํ–‰๊ธฐ(๋น„-LLM ๋‹จ๊ณ„)

ํ‰๊ฐ€ ์ง€ํ‘œ

  • KV ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰
  • ์ด ๋ฉ”๋ชจ๋ฆฌ ์ ์œ 
  • ์‹œ์Šคํ…œ ์ฒ˜๋ฆฌ๋Ÿ‰
  • ๊ผฌ๋ฆฌ ์ง€์—ฐ

๋น„๊ต ๊ธฐ์ค€

  • ๊ณต์œ  ์—”์ง„ ํ’€ ๋ฐฉ์‹: ๋ชจ๋“  ๋‹จ๊ณ„๊ฐ€ ๋™์ผํ•œ LLM ์—”์ง„ ์ง‘ํ•ฉ ๊ณต์œ 
  • Cortex ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ ๋ฐฉ์‹: ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์ „์šฉ ์—”์ง„ ํ’€ ์‚ฌ์šฉ

์‹คํ—˜ ๊ฒฐ๊ณผ

์ฃผ์š” ๊ฒฐ๊ณผ

KV ์บ์‹œ ์ตœ์ ํ™” ํšจ๊ณผ

์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” Cortex์—์„œ NL2SQL ์›Œํฌํ”Œ๋กœ์šฐ์˜ LLM ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ด KV ์ ์œ ๊ฐ€ ํฌ๊ฒŒ ๊ฐ์†Œํ•จ์„ ๋ณด์—ฌ์ค€๋‹ค. ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์ž์‹ ์˜ Cortex ํ’€์—์„œ ์‹คํ–‰๋  ๋•Œ, ์ด KV ํ’‹ํ”„๋ฆฐํŠธ๋Š” ๋ช…ํ™•ํžˆ ๋” ๋‚ฎ๋‹ค: ๊ฐ ์—”์ง„์€ ์ž์‹ ์˜ ๋‹จ๊ณ„๋ณ„ ์ปจํ…์ŠคํŠธ๋งŒ ์œ ์ง€ํ•œ๋‹ค.

์„ฑ๋Šฅ ํ–ฅ์ƒ

  1. ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ: ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด KV ์บ์‹œ์˜ ์ค‘๋ณต์„ ํ”ผํ•˜๊ณ  ๊ท€์ค‘ํ•œ GPU ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ
  2. ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ: ํšŒ์ˆ˜๋œ GPU ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋” ๋†’์€ ์œ ํšจ ๋ฐฐ์น˜ ํฌ๊ธฐ๋กœ ์ง์ ‘ ๋ณ€ํ™˜
  3. ์ง€์—ฐ ๊ฐœ์„ : ๋” ํƒ€์ดํŠธํ•œ ๊ผฌ๋ฆฌ ์ง€์—ฐ๊ณผ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ

์‹œ์Šคํ…œ ์šฐ์œ„ ๊ฒ€์ฆ

์‹คํ—˜์€ Cortex์˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์šฐ์œ„๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค:

  1. ๊ฐœ์„ ๋œ KV ์บ์‹œ ํ™œ์šฉ๋ฅ : ๋ฉ”๋ชจ๋ฆฌ ์ ์œ  ํ˜„์ €ํžˆ ๊ฐ์†Œ
  2. ๋‹จ๊ณ„ ๊ฐ„ ๊ฐ„์„ญ ์ œ๊ฑฐ: ์•ˆ์ •์ ์ธ ๋‹จ๊ณ„ ๋กœ์ปฌ ์ง€์—ฐ ๋ชจ๋ธ ๋ณต์›
  3. ๋…๋ฆฝ์  ํ™•์žฅ ๋Šฅ๋ ฅ: ์„ธ๋ถ„ํ™”๋œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์ง€์›

๊ด€๋ จ ์—ฐ๊ตฌ

LLM ์„œ๋น™ ํ”„๋ ˆ์ž„์›Œํฌ

  • vLLM: ํšจ์œจ์ ์ธ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ ์„œ๋น™, PagedAttention์„ ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
  • SGLang: ๊ตฌ์กฐํ™”๋œ ์–ธ์–ด ๋ชจ๋ธ ํ”„๋กœ๊ทธ๋žจ์˜ ํšจ์œจ์  ์‹คํ–‰

์—์ด์ „ํŠธ ์„œ๋น™ ํ”Œ๋žซํผ

  • Autellix: LLM ์—์ด์ „ํŠธ์˜ ํšจ์œจ์  ์„œ๋น™ ์—”์ง„, ๋ณต์žกํ•œ ์šฐ์„ ์ˆœ์œ„ ์ •์ฑ… ์‚ฌ์šฉ
  • HEXGEN-TEXT2SQL: ๋‚จ์€ ๋งˆ๊ฐ ์‹œ๊ฐ„ ์—ฌ์œ ๋„ ๋ฐ ์˜ˆ์ƒ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ NL2SQL ์›Œํฌํ”Œ๋กœ์šฐ ์š”์ฒญ ์Šค์ผ€์ค„๋ง

๊ธฐ์ˆ ์  ์ฐจ์ด

๊ธฐ์กด ํ”Œ๋žซํผ์€ ๋‚ด๋ถ€ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ธ์‹์ด ๋ถ€์กฑํ•˜๋ฉฐ, Cortex๋Š” ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ด ๊ณต๋ฐฑ์„ ๋ฉ”์šด๋‹ค.

๊ฒฐ๋ก  ๋ฐ ๋…ผ์˜

์ฃผ์š” ๊ฒฐ๋ก 

Cortex๋Š” ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ํšจ๊ณผ์ ์ธ ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ ์ „๋žต์„ ํ†ตํ•ด ์—์ด์ „ํŠธ ์›Œํฌ๋กœ๋“œ์˜ ์„œ๋น™ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ ํšจ์œจ์„ฑ์„ ๋†’์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ๊ณ ๊ธ‰ ์—์ด์ „ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋น™ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๊ธฐ์ดˆ๋ฅผ ๋งˆ๋ จํ•œ๋‹ค.

ํ–ฅํ›„ ๋ฐฉํ–ฅ

๊ฐ€์†Œ์„ฑ ์›Œํฌํ”Œ๋กœ์šฐ ๋ฐ ๋ฆฌ์†Œ์Šค

  1. ๊ณ„์‚ฐ ์ ์‘์„ฑ: ์ง€์—ฐ์ด SLO ๊ฒฝ๊ณ„์— ๊ฐ€๊นŒ์›Œ์งˆ ๋•Œ ๊ฒฝ๋Ÿ‰ ๋ณ€ํ˜•์œผ๋กœ ๋ฌด๊ฑฐ์šด ๋ชจ๋ธ ๋Œ€์ฒด
  2. ๋ฆฌ์†Œ์Šค ํƒ„๋ ฅ์„ฑ: ํŒฌ์•„์›ƒ ํŒจํ„ด์—์„œ ๋” ๊ฐ•๋ ฅํ•œ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚™์˜ค์ž ์ถ”์ง„

์ถ”์ธก ์‹คํ–‰

  • ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ ๋†’์€ ๋ถ„๊ธฐ์— ๋Œ€ํ•œ ์ถ”์ธก
  • ๊ด€๋ จ ์—”์ง„ ์‚ฌ์ „ ๊ฐ€์—ด ๋˜๋Š” ๋‹ค์Œ ๋‹จ๊ณ„ ์‚ฌ์ „ ์‹คํ–‰
  • ์—ฌ๋Ÿฌ ํ›„๋ณด ์ฟผ๋ฆฌ์˜ ๋ณ‘๋ ฌ ์ƒ์„ฑ ๋ฐ ํ‰๊ฐ€

์—์ด์ „ํŠธ ์ƒํƒœ ๊ด€๋ฆฌ

  • ์ค‘๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ธ‰ ๊ฐ์ฒด๋กœ์„œ์˜ ๋‹ค์ธต "์—์ด์ „ํŠธ ์ƒํƒœ"
  • ์›Œํฌํ”Œ๋กœ์šฐ ๋ฒ”์œ„์˜ ๊ณต์œ  ๊ณ„์ธต์„ ๋ฐœํ–‰/๊ตฌ๋… ๊ตฌ์กฐ๋กœ
  • ๋ฐ˜๋ณต๋˜๋Š” ๋„๊ตฌ ๋ฐ LLM ํ˜ธ์ถœ์„ ์˜๋น„์šฉ ํžˆํŠธ๋กœ ๋ณ€ํ™˜

์ œํ•œ ์‚ฌํ•ญ

  1. ํ”„๋กœํ† ํƒ€์ž… ๋‹จ๊ณ„: ํ˜„์žฌ ๊ฐœ๋… ์ฆ๋ช… ๋‹จ๊ณ„์ด๋ฉฐ ๋” ํฌ๊ด„์ ์ธ ๊ตฌํ˜„ ๋ฐ ํ‰๊ฐ€ ํ•„์š”
  2. ์‹œ๋‚˜๋ฆฌ์˜ค ์ œํ•œ: ์ฃผ๋กœ NL2SQL์„ ์˜ˆ๋กœ ํ•˜๋ฉฐ ๋” ๋งŽ์€ ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ๊ฒ€์ฆ ํ•„์š”
  3. ๋ณต์žก์„ฑ ๊ด€๋ฆฌ: ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์ž์‹ ์˜ ๊ฐ€์†Œ์„ฑ์„ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ์ „ํžˆ ๊ฐœ๋ฐฉ๋œ ๊ณผ์ œ

์‹ฌ์ธต ํ‰๊ฐ€

์žฅ์ 

  1. ๋†’์€ ํ˜์‹ ์„ฑ: ์›Œํฌํ”Œ๋กœ์šฐ ์ธ์‹ ์—์ด์ „ํŠธ ์„œ๋น™ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฒ˜์Œ ์ œ์•ˆ
  2. ์ •ํ™•ํ•œ ๋ฌธ์ œ ์ •์œ„: ๊ธฐ์กด LLM ์„œ๋น™ ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํžˆ ํŒŒ์•…
  3. ๊ฐ„๊ฒฐํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜: ๋‹จ๊ณ„ ๊ฒฉ๋ฆฌ ์ „๋žต์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ํšจ๊ณผ์ 
  4. ์ „ํ–ฅ์  ์‚ฌ๊ณ : ํ–ฅํ›„ ์—์ด์ „ํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ์„œ๋น™์˜ ๋ช…ํ™•ํ•œ ๋ฐœ์ „ ๊ฒฝ๋กœ ์ œ์‹œ

๋ถ€์กฑํ•œ ์ 

  1. ์ œํ•œ๋œ ์‹คํ—˜ ๊ฒ€์ฆ: ์ฃผ๋กœ ํ•˜๋‚˜์˜ NL2SQL ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ธฐ๋ฐ˜ํ•˜๋ฉฐ ๋Œ€๊ทœ๋ชจ ๋‹ค์–‘ํ™” ์‹คํ—˜ ๋ถ€์กฑ
  2. ๋ถˆ์ถฉ๋ถ„ํ•œ ์ •๋Ÿ‰ํ™” ๊ฒฐ๊ณผ: ๊ทธ๋ž˜ํ”„๋Š” ์ถ”์„ธ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€๋งŒ ๊ตฌ์ฒด์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ ์ˆ˜์น˜ ๋ถ€์กฑ
  3. ๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ ๋ถ€์กฑ: ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ๋ฆฌ์†Œ์Šค ํ• ๋‹น ์ „๋žต์˜ ๊ตฌ์ฒด์  ๊ตฌํ˜„ ์„ค๋ช… ๋ถ€์กฑ
  4. ๋ถˆ์ถฉ๋ถ„ํ•œ ๋น„๊ต ์‹คํ—˜: ์ฃผ๋กœ ๋‹จ์ˆœํ•œ ๊ณต์œ  ํ’€ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜๋ฉฐ ๋‹ค๋ฅธ ๊ณ ๊ธ‰ ๋ฐฉ๋ฒ•๊ณผ์˜ ๋น„๊ต ๋ถ€์กฑ

์˜ํ–ฅ๋ ฅ

  1. ํ•™์ˆ ์  ๊ฐ€์น˜: ์—์ด์ „ํŠธ ์„œ๋น™ ๋ถ„์•ผ์— ์ƒˆ๋กœ์šด ์—ฐ๊ตฌ ๋ฐฉํ–ฅ ์ œ์‹œ
  2. ์‹ค์šฉ์  ๊ฐ€์น˜: ์‹ค์ œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ์ค‘์š”ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ
  3. ์˜๊ฐ ์ œ๊ณต: ํ›„์† ๊ด€๋ จ ์—ฐ๊ตฌ์— ๊ท€์ค‘ํ•œ ์•„์ด๋””์–ด ์ œ์‹œ

์ ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ๋‹ค๋‹จ๊ณ„ ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ: ํŠนํžˆ ๋ช…ํ™•ํ•œ ๋‹จ๊ณ„ ๊ตฌ๋ถ„์ด ์žˆ๋Š” ์—์ด์ „ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉ
  2. ๋ฆฌ์†Œ์Šค ์ œ์•ฝ ํ™˜๊ฒฝ: GPU ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ ํšจ๊ณผ ํ˜„์ €
  3. ๊ณ ์„ฑ๋Šฅ ์š”๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค: ์ง€์—ฐ ๋ฐ ์ฒ˜๋ฆฌ๋Ÿ‰์— ์—„๊ฒฉํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋Š” ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ

์ฐธ๊ณ  ๋ฌธํ—Œ

๋…ผ๋ฌธ์€ ๋‹ค์Œ ํ•ต์‹ฌ ๋ฌธํ—Œ์„ ์ธ์šฉํ•œ๋‹ค:

  1. vLLM: PagedAttention ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜
  2. SGLang: ๊ตฌ์กฐํ™”๋œ ์–ธ์–ด ๋ชจ๋ธ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
  3. Autellix: LLM ์—์ด์ „ํŠธ ์„œ๋น™ ์—”์ง„
  4. HEXGEN-TEXT2SQL: ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ ์Šค์ผ€์ค„๋ง
  5. ๊ด€๋ จ NL2SQL ๋ฐ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋ฌธํ—Œ

์ „์ฒด ํ‰๊ฐ€: ์ด๋Š” ์—์ด์ „ํŠธ ์„œ๋น™ ๋ถ„์•ผ์˜ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ์ œ์‹œํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋Š” ํ˜์‹ ์ ์ด๊ณ  ์ „ํ–ฅ์ ์ธ ๋…ผ๋ฌธ์ด๋‹ค. ํ˜„์žฌ ํ”„๋กœํ† ํƒ€์ž… ๋‹จ๊ณ„์ด์ง€๋งŒ ํ•ด๋‹น ๋ถ„์•ผ์˜ ๋ฐœ์ „ ๋ฐฉํ–ฅ์„ ๋ช…ํ™•ํžˆ ํ•˜๋ฉฐ ์ค‘์š”ํ•œ ํ•™์ˆ ์  ๋ฐ ์‹ค์šฉ์  ๊ฐ€์น˜๋ฅผ ๊ฐ€์ง„๋‹ค.