Operating Distributed Inference Systems at Scale โ Nishant Gupta & Naman Ahuja, Meta
ํ ์ค ํต์ฌ
๋๊ท๋ชจ inference ์ด์์ ํต์ฌ์ ๋ชจ๋ธ ์์ฒด๋ณด๋ค ๋ผ์ฐํ ยท์ค์ผ์ค๋งยท์บ์ฑยท๋ฆฌ๋ผ์ดํ ์ ํฌํจํ ์ค์ผ์คํธ๋ ์ด์ ๊ณผ ์ปจํธ๋กค ํ๋ ์ธ ์ค๊ณ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ์ ๋๋ก ๋ชป ํ๋ฉด ๋น์ฉยท์ง์ฐยท์ฅ์ ๊ฐ ๋ชจ๋ ์ ํ๋๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
Inference๋ Meta๊ฐ ๋ณธ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์ํฌ๋ก๋ Inference๋ ๋ ์ด์ ์ฐ๊ตฌ์ฉ ์ฐ์ถ๋ฌผ์ด ์๋๋ผ ํ์ดํผ์ค์ผ์ผ ์ธํ๋ผ์ ํต์ฌ ์ํฌ๋ก๋๊ฐ ๋์๊ณ , Meta์์ ๊ฐ์ฅ ๋น ๋ฅธ ์ฑ์ฅ๋ฅ ์ ๋ณด์ธ๋ค. ์ด ์์์ ๋ถ์ฐ inference ์์คํ ์ ๋๊ท๋ชจ๋ก ์ด์ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค.
-
0:54
๊ฐ์น๊ฐ ์ค์ผ์คํธ๋ ์ด์ ๊ณ์ธต์ผ๋ก ์ด๋ํ 2008๋ ์ ๋ฐ๋ณต ํด๋ผ์ฐ๋ ์๋์ ๊ฐ์น๊ฐ VM์์ ์ค์ผ์ค๋ฌยท์๋น์ค ๋ฉ์ยท์คํ ์ค์ผ์ผ๋ฌ๋ก ์ด๋ํ๋ฏ, AI๋ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ์์ถ์ ์ผ๋ก ๋ฐ๋ผ๊ฐ๊ณ ์๋ค. ์์ด์ ํธํ ์ํฌ๋ก๋๋ ์ฌ์ฉ์ ์๋ง์ด ์๋๋ผ ํธ์ถ ์์ ํ ํฐ ์์ ๋ฐ๋ผ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฏ๋ก, ๊ธฐ์กด ๋ง์ดํฌ๋ก์๋น์ค์ ์ฉ๋ ๊ณํ์ด ์๋๋ผ ํ๋ ฅ์ฑ๊ณผ ์ํฌ๋ก๋ ์ธ์งํ ์ค์ผ์ค๋ง์ด ํ์ํ๋ค.
-
3:13
๋ง์ดํฌ๋ก์๋น์ค์ inference์ ์ฐจ์ด inference ์์ฒญ์ 50 tokens๋ถํฐ 100,000 tokens๊น์ง ํญ์ด ๋๊ณ prefill๊ณผ decode์ ๊ณ์ฐ ํน์ฑ๋ ํฌ๊ฒ ๋ฌ๋ผ ์ฐ์ ๋ฐฐ์น๊ฐ ํ์๋ค. ๋ํ KV cache ๊ฐ์ ์์ฒญ๋ณ ์ํ, GPU ์ค์ฌ ์์, ๋๋ฆฐ cold start, ์ค๊ฐ ์คํจ ์ ๋๋ ํ ํฐ ์์ค ๊ฐ์ ํน์ฑ ๋๋ฌธ์ ๋ณ๋ชฉ์ ๋ชจ๋ธ๋ณด๋ค ์ค์ผ์คํธ๋ ์ด์ ์ ๋ ์์ฃผ ์๊ธด๋ค.
-
6:09
๋ก์ ๊ณ์ธต, ์๋ก์ด ๊ฒฐํฉ ๋ผ์ฐํ , ์บ์ ํํธ์จ, ๋ฐฐ์น ๊ตฌ์ฑ, GPU ํ์ฉ๋ฅ , ์คํ ์ค์ผ์ผ๋ง์ ์๋ก ๊ฐํ๊ฒ ์ฝํ ์์ด ํ ๊ณ์ธต์ ๊ฒฐ์ ์ด ๋ค๋ฅธ ๊ณ์ธต์ ์ฑ๋ฅ์ ์ฐ์์ ์ผ๋ก ๋ฐ๊พผ๋ค. ์์ฒญ์ gateway, router, cache lookup, scheduler, serving runtime์ ๊ฑฐ์น๋ฉฐ, ์ฌ๋ฌ ๋จ๊ณ๊ฐ ๊ฒฐํฉ๋ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ณด์ง ์์ผ๋ฉด ๋ณ๋ชฉ ์์ธ์ ์๋ชป ์ง๊ธฐ ์ฝ๋ค.
-
7:36
์์ฒญ์ ๋ถ์ฐ ํธ๋์ญ์ ์ด๋ค inference ์์ฒญ์ ๊ฐ ํ์ ์ฌ์๋ยทํ์์์ยทํด๋ฐฑยท์คํจ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ๋ฏ๋ก, ์ผ๋ฐ RPC๋ณด๋ค ๋ถ๋ถ ์คํจ ์ฒ๋ฆฌ์ ๋ณต๊ตฌ๊ฐ ํจ์ฌ ์ด๋ ต๋ค. ์ด๋ฏธ ์ผ๋ถ ํ ํฐ์ ์คํธ๋ฆฌ๋ฐํ ๋ค GPU ํธ์คํธ๊ฐ ํ๋ฆฌ์ ํํธ๋๋ ์ํฉ๊น์ง ๊ณ ๋ คํ๋ฉด, ์ ๋ขฐ์ฑ์ ์ฃ์ง๊ฐ ์๋๋ผ ์ ์ฒด ์ํฌํ๋ก๋ฅผ ๋ณด๋ control plane์ ์์ฑ์ด์ด์ผ ํ๋ค.
-
8:31
์ค์ผ์ค๋ฌ๊ฐ ๋ด์ผ ํ๋ ์ผ๊ณฑ ๊ฐ์ง ์ถ inference ์ค์ผ์ค๋ฌ๋ GPU ํ์ , HBM ์ฌ์ ๋ถ, KV cache ์ํ, ๋ชจ๋ธ weight ๋ก๋ ์ฌ๋ถ, ํ ๋ํธ ์ฐ์ ์์, ์ํฌํ๋ก ์ปจํ ์คํธ, latency budget์ ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋ค. ํนํ ์์ฒญ์ด ์ํฌํ๋ก์ ๋ช ๋จ๊ณ์ธ์ง์ ์ด๋ฏธ ํฌ์ ํ ๋น์ฉ์ด ์ผ๋ง์ธ์ง ์์์ผ, ์คํจ ์ ์ ์ฒด ๋ญ๋น๋ฅผ ์ค์ด๋ agentic-aware scheduling์ด ๊ฐ๋ฅํ๋ค.
-
10:19
์์ ์ ํผํ๊ณ , ๊ณต์ ํ๊ณ , ์ฎ๊ธฐ๊ณ , ๋ฏธ๋ฃจ๊ธฐ ์ต์ ํ๋ ์บ์ฑ์ผ๋ก ์์ ์ ํผํ๊ธฐ, batching์ผ๋ก ์์ ์ ๊ณต์ ํ๊ธฐ, routing์ผ๋ก ๋ ์ธ๊ฑฐ๋ ๋ ๊ฐ๊น์ด ๊ณณ์ผ๋ก ์ฎ๊ธฐ๊ธฐ, admission control๊ณผ queueing์ผ๋ก ๋ฏธ๋ฃจ๊ธฐ๋ก ์ ๋ฆฌํ ์ ์๋ค. ๋ฌด์๋ณด๋ค ๋น์ฉ์ token๋น์ด ์๋๋ผ ์ฑ๊ณตํ task๋น์ผ๋ก ๋ด์ผ ํ๋ฉฐ, ์ฌ์ฉ์ ๊ฐ์น์ ๋ง๋ KPI๋ฅผ ๊ธฐ์ค์ผ๋ก ์ต์ ํํด์ผ ํ๋ค.
-
12:36
KV cache๊ฐ ์๋ ์ฐ์ ์ฅ์ GPU ์ ํ๊ฐ ์ง์ฐ ์ฆ๊ฐ๋ฅผ ๋ถ๋ฅด๊ณ , ๊ทธ ์ง์ฐ์ด ์ฌ์๋๋ฅผ ๋๋ฆฌ๋ฉฐ, ํ๊ฐ ์์ฌ ๋ ๋ง์ GPU๋ฅผ ํฌํ์ํค๋ ์ ํ์ ์ฐ์ ์ฅ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ฌ๊ธฐ์ KV cache warm-up ์ ์ฝ์ด ๋ํด์ง๋ฉด ๋จ์ ์ฌ์์์ด๋ ์ฌ๋ผ์ฐํ ์ด ํตํ์ง ์์ผ๋ฏ๋ก, circuit breaker, admission control, load shedding, retry budget ๊ฐ์ ์ฐจ๋จ ์ฅ์น๊ฐ ํ์ํ๋ค.
-
16:19
์ง์ฐ ์๊ฐ, ๋น์ฉ, ์ฒ๋ฆฌ๋์ ์ผ๊ฐํ ๋ฐฐ์น ํฌ๊ธฐ, speculative decoding, ๋ ์์ ๋ชจ๋ธ ์ฌ์ฉ์ ๊ฐ๊ฐ throughput, latency, cost์ ์๋ก ๋ค๋ฅธ ์ํฅ์ ์ฃผ๋ฉฐ ์ธ ๊ฐ์ง๋ฅผ ๋์์ ์ต์ ํํ ์๋ ์๋ค. ๋ชจ๋ ์๋น ๊ฒฐ์ ์ ์ด ์ผ๊ฐํ ์์์ ์์คํ ์ ์ด๋์ํค๋ฏ๋ก, ๋ชฉํ์ ๋ง๋ ๊ท ํ์ ์ ์ฐพ๋ ์ต์ ํ ๋ฌธ์ ๋ก ๋ด์ผ ํ๋ค.
-
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 ์ค๊ณ๋ก ์ ๊ทผํด์ผ ํ๋ค.
- ์ํฌ๋ก๋๊ฐ ๋ณต์กํด์ง์๋ก ์บ์ฑ, ๋ฐฐ์น, ๋ผ์ฐํ , ์ง์ฐ ํ์ฉ์ ํ๋์ ์ด์ ์ ์ฑ ์ผ๋ก ํตํฉํด์ผ ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ ํจ๊ป ์งํฌ ์ ์๋ค.