๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

Operating Distributed Inference Systems at Scale โ€” Nishant Gupta & Naman Ahuja, Meta

AI Engineer ยท 2026-09-20 00:00 ยท 19:51

ํ•œ ์ค„ ํ•ต์‹ฌ

๋Œ€๊ทœ๋ชจ inference ์šด์˜์˜ ํ•ต์‹ฌ์€ ๋ชจ๋ธ ์ž์ฒด๋ณด๋‹ค ๋ผ์šฐํŒ…ยท์Šค์ผ€์ค„๋งยท์บ์‹ฑยท๋ฆฌ๋ผ์ดํŒ…์„ ํฌํ•จํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜๊ณผ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์„ค๊ณ„์— ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ œ๋Œ€๋กœ ๋ชป ํ•˜๋ฉด ๋น„์šฉยท์ง€์—ฐยท์žฅ์• ๊ฐ€ ๋ชจ๋‘ ์•…ํ™”๋œ๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:00
    Inference๋Š” Meta๊ฐ€ ๋ณธ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ์›Œํฌ๋กœ๋“œ Inference๋Š” ๋” ์ด์ƒ ์—ฐ๊ตฌ์šฉ ์‚ฐ์ถœ๋ฌผ์ด ์•„๋‹ˆ๋ผ ํ•˜์ดํผ์Šค์ผ€์ผ ์ธํ”„๋ผ์˜ ํ•ต์‹ฌ ์›Œํฌ๋กœ๋“œ๊ฐ€ ๋˜์—ˆ๊ณ , Meta์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ์„ฑ์žฅ๋ฅ ์„ ๋ณด์ธ๋‹ค. ์ด ์˜์ƒ์€ ๋ถ„์‚ฐ inference ์‹œ์Šคํ…œ์„ ๋Œ€๊ทœ๋ชจ๋กœ ์šด์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฌ๋‹ค.
  2. 0:54
    ๊ฐ€์น˜๊ฐ€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ณ„์ธต์œผ๋กœ ์ด๋™ํ•œ 2008๋…„์˜ ๋ฐ˜๋ณต ํด๋ผ์šฐ๋“œ ์‹œ๋Œ€์— ๊ฐ€์น˜๊ฐ€ VM์—์„œ ์Šค์ผ€์ค„๋Ÿฌยท์„œ๋น„์Šค ๋ฉ”์‹œยท์˜คํ† ์Šค์ผ€์ผ๋Ÿฌ๋กœ ์ด๋™ํ–ˆ๋“ฏ, AI๋„ ๋™์ผํ•œ ๊ฒฝ๋กœ๋ฅผ ์••์ถ•์ ์œผ๋กœ ๋”ฐ๋ผ๊ฐ€๊ณ  ์žˆ๋‹ค. ์—์ด์ „ํŠธํ˜• ์›Œํฌ๋กœ๋“œ๋Š” ์‚ฌ์šฉ์ž ์ˆ˜๋งŒ์ด ์•„๋‹ˆ๋ผ ํ˜ธ์ถœ ์ˆ˜์™€ ํ† ํฐ ์ˆ˜์— ๋”ฐ๋ผ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฏ€๋กœ, ๊ธฐ์กด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์‹ ์šฉ๋Ÿ‰ ๊ณ„ํš์ด ์•„๋‹ˆ๋ผ ํƒ„๋ ฅ์„ฑ๊ณผ ์›Œํฌ๋กœ๋“œ ์ธ์ง€ํ˜• ์Šค์ผ€์ค„๋ง์ด ํ•„์š”ํ•˜๋‹ค.
  3. 3:13
    ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ inference์˜ ์ฐจ์ด inference ์š”์ฒญ์€ 50 tokens๋ถ€ํ„ฐ 100,000 tokens๊นŒ์ง€ ํญ์ด ๋„“๊ณ  prefill๊ณผ decode์˜ ๊ณ„์‚ฐ ํŠน์„ฑ๋„ ํฌ๊ฒŒ ๋‹ฌ๋ผ ์—ฐ์† ๋ฐฐ์น˜๊ฐ€ ํ•„์ˆ˜๋‹ค. ๋˜ํ•œ KV cache ๊ฐ™์€ ์š”์ฒญ๋ณ„ ์ƒํƒœ, GPU ์ค‘์‹ฌ ์ž์›, ๋А๋ฆฐ cold start, ์ค‘๊ฐ„ ์‹คํŒจ ์‹œ ๋Œ€๋Ÿ‰ ํ† ํฐ ์†์‹ค ๊ฐ™์€ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋ณ‘๋ชฉ์€ ๋ชจ๋ธ๋ณด๋‹ค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ๋” ์ž์ฃผ ์ƒ๊ธด๋‹ค.
  4. 6:09
    ๋‚ก์€ ๊ณ„์ธต, ์ƒˆ๋กœ์šด ๊ฒฐํ•ฉ ๋ผ์šฐํŒ…, ์บ์‹œ ํžˆํŠธ์œจ, ๋ฐฐ์น˜ ๊ตฌ์„ฑ, GPU ํ™œ์šฉ๋ฅ , ์˜คํ† ์Šค์ผ€์ผ๋ง์€ ์„œ๋กœ ๊ฐ•ํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ์–ด ํ•œ ๊ณ„์ธต์˜ ๊ฒฐ์ •์ด ๋‹ค๋ฅธ ๊ณ„์ธต์˜ ์„ฑ๋Šฅ์„ ์—ฐ์‡„์ ์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ์š”์ฒญ์€ gateway, router, cache lookup, scheduler, serving runtime์„ ๊ฑฐ์น˜๋ฉฐ, ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๊ฐ€ ๊ฒฐํ•ฉ๋œ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋ณด์ง€ ์•Š์œผ๋ฉด ๋ณ‘๋ชฉ ์›์ธ์„ ์ž˜๋ชป ์งš๊ธฐ ์‰ฝ๋‹ค.
  5. 7:36
    ์š”์ฒญ์€ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์ด๋‹ค inference ์š”์ฒญ์˜ ๊ฐ ํ™‰์€ ์žฌ์‹œ๋„ยทํƒ€์ž„์•„์›ƒยทํด๋ฐฑยท์‹คํŒจ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ผ๋ฐ˜ RPC๋ณด๋‹ค ๋ถ€๋ถ„ ์‹คํŒจ ์ฒ˜๋ฆฌ์™€ ๋ณต๊ตฌ๊ฐ€ ํ›จ์”ฌ ์–ด๋ ต๋‹ค. ์ด๋ฏธ ์ผ๋ถ€ ํ† ํฐ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•œ ๋’ค GPU ํ˜ธ์ŠคํŠธ๊ฐ€ ํ”„๋ฆฌ์— ํ”„ํŠธ๋˜๋Š” ์ƒํ™ฉ๊นŒ์ง€ ๊ณ ๋ คํ•˜๋ฉด, ์‹ ๋ขฐ์„ฑ์€ ์—ฃ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ ์ „์ฒด ์›Œํฌํ”Œ๋กœ๋ฅผ ๋ณด๋Š” control plane์˜ ์†์„ฑ์ด์–ด์•ผ ํ•œ๋‹ค.
  6. 8:31
    ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ด์•ผ ํ•˜๋Š” ์ผ๊ณฑ ๊ฐ€์ง€ ์ถ• inference ์Šค์ผ€์ค„๋Ÿฌ๋Š” GPU ํƒ€์ž…, HBM ์—ฌ์œ ๋ถ„, KV cache ์ƒํƒœ, ๋ชจ๋ธ weight ๋กœ๋“œ ์—ฌ๋ถ€, ํ…Œ๋„ŒํŠธ ์šฐ์„ ์ˆœ์œ„, ์›Œํฌํ”Œ๋กœ ์ปจํ…์ŠคํŠธ, latency budget์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ํŠนํžˆ ์š”์ฒญ์ด ์›Œํฌํ”Œ๋กœ์˜ ๋ช‡ ๋‹จ๊ณ„์ธ์ง€์™€ ์ด๋ฏธ ํˆฌ์ž…ํ•œ ๋น„์šฉ์ด ์–ผ๋งˆ์ธ์ง€ ์•Œ์•„์•ผ, ์‹คํŒจ ์‹œ ์ „์ฒด ๋‚ญ๋น„๋ฅผ ์ค„์ด๋Š” agentic-aware scheduling์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  7. 10:19
    ์ž‘์—…์„ ํ”ผํ•˜๊ณ , ๊ณต์œ ํ•˜๊ณ , ์˜ฎ๊ธฐ๊ณ , ๋ฏธ๋ฃจ๊ธฐ ์ตœ์ ํ™”๋Š” ์บ์‹ฑ์œผ๋กœ ์ž‘์—…์„ ํ”ผํ•˜๊ธฐ, batching์œผ๋กœ ์ž‘์—…์„ ๊ณต์œ ํ•˜๊ธฐ, routing์œผ๋กœ ๋” ์‹ธ๊ฑฐ๋‚˜ ๋” ๊ฐ€๊นŒ์šด ๊ณณ์œผ๋กœ ์˜ฎ๊ธฐ๊ธฐ, admission control๊ณผ queueing์œผ๋กœ ๋ฏธ๋ฃจ๊ธฐ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ๋น„์šฉ์€ token๋‹น์ด ์•„๋‹ˆ๋ผ ์„ฑ๊ณตํ•œ task๋‹น์œผ๋กœ ๋ด์•ผ ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ๊ฐ€์น˜์— ๋งž๋Š” KPI๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ตœ์ ํ™”ํ•ด์•ผ ํ•œ๋‹ค.
  8. 12:36
    KV cache๊ฐ€ ์žˆ๋Š” ์—ฐ์‡„ ์žฅ์•  GPU ์ €ํ•˜๊ฐ€ ์ง€์—ฐ ์ฆ๊ฐ€๋ฅผ ๋ถ€๋ฅด๊ณ , ๊ทธ ์ง€์—ฐ์ด ์žฌ์‹œ๋„๋ฅผ ๋Š˜๋ฆฌ๋ฉฐ, ํ๊ฐ€ ์Œ“์—ฌ ๋” ๋งŽ์€ GPU๋ฅผ ํฌํ™”์‹œํ‚ค๋Š” ์ „ํ˜•์  ์—ฐ์‡„ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— KV cache warm-up ์ œ์•ฝ์ด ๋”ํ•ด์ง€๋ฉด ๋‹จ์ˆœ ์žฌ์‹œ์ž‘์ด๋‚˜ ์žฌ๋ผ์šฐํŒ…์ด ํ†ตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, circuit breaker, admission control, load shedding, retry budget ๊ฐ™์€ ์ฐจ๋‹จ ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  9. 16:19
    ์ง€์—ฐ ์‹œ๊ฐ„, ๋น„์šฉ, ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ์‚ผ๊ฐํ˜• ๋ฐฐ์น˜ ํฌ๊ธฐ, speculative decoding, ๋” ์ž‘์€ ๋ชจ๋ธ ์‚ฌ์šฉ์€ ๊ฐ๊ฐ throughput, latency, cost์— ์„œ๋กœ ๋‹ค๋ฅธ ์˜ํ–ฅ์„ ์ฃผ๋ฉฐ ์„ธ ๊ฐ€์ง€๋ฅผ ๋™์‹œ์— ์ตœ์ ํ™”ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๋ชจ๋“  ์„œ๋น™ ๊ฒฐ์ •์€ ์ด ์‚ผ๊ฐํ˜• ์•ˆ์—์„œ ์‹œ์Šคํ…œ์„ ์ด๋™์‹œํ‚ค๋ฏ€๋กœ, ๋ชฉํ‘œ์— ๋งž๋Š” ๊ท ํ˜•์ ์„ ์ฐพ๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ๋กœ ๋ด์•ผ ํ•œ๋‹ค.
  10. 17:00
    Inference์—๋Š” ์ž์ฒด control plane์ด ํ•„์š”ํ•˜๋‹ค routing, batching, caching, scheduling, reliability๋Š” ๋ถ„๋ฆฌ๋œ ๊ฐœ๋ณ„ ์„ค์ •์ด ์•„๋‹ˆ๋ผ ํ•˜๋‚˜์˜ inference control plane์œผ๋กœ ์ˆ˜๋ ดํ•˜๊ณ  ์žˆ๋‹ค. ์•ž์œผ๋กœ์˜ ํ•ต์‹ฌ์€ GPU, KV cache, token, latency, cost๋ฅผ ์ž์›์ฒ˜๋Ÿผ ์Šค์ผ€์ค„๋งํ•˜๊ณ , ์ˆ˜๋™ ์šด์˜๋ณด๋‹ค ์ž๋™ ์ œ์–ด ๋ฃจํ”„๋กœ ์‹œ์Šคํ…œ์„ ์ ์‘์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • inference ๋น„์šฉ ์ตœ์ ํ™”๋Š” GPU ์‚ฌ์šฉ๋ฅ ์ด ์•„๋‹ˆ๋ผ ์„ฑ๊ณตํ•œ task๋‹น ๋น„์šฉ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ์žฅ์•  ๋Œ€์‘์€ ๊ฐœ๋ณ„ ์„œ๋ฒ„ ๋ณต๊ตฌ๋ณด๋‹ค routingยทadmission controlยทretry budget์„ ๋ฌถ์€ control plane ์„ค๊ณ„๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.
  • ์›Œํฌ๋กœ๋“œ๊ฐ€ ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ์บ์‹ฑ, ๋ฐฐ์น˜, ๋ผ์šฐํŒ…, ์ง€์—ฐ ํ—ˆ์šฉ์„ ํ•˜๋‚˜์˜ ์šด์˜ ์ •์ฑ…์œผ๋กœ ํ†ตํ•ฉํ•ด์•ผ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์„ ํ•จ๊ป˜ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.