1.3 Model Serving
Product Serving ์ ๋ํด ์์ธํ ์์๋ณด๊ธฐ
1. Model Serving
1.1. Serving Basic
"Production(Real World) ํ๊ฒฝ์ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐฐํฌ"
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํ๊ณ , ํ์ค ์ธ๊ณ(์ฑ, ์น)์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ํ์
์๋น์คํ๋ผ๊ณ ํํํ ์๋ ์์
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ฌ ์๋น์ค์ ๊ธฐ๋ฅ ์ค ํ๋๋ก ํ์ฉ
ex) ์ถ์ฒ ์์คํ ์ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ
Input์ด ์ ๊ณต๋๋ฉด ๋ชจ๋ธ์ด ์์ธก ๊ฐ(Output)์ ๋ฐํ
Serving : ๋ชจ๋ธ์ ์น/์ฑ ์๋น์ค์ ๋ฐฐํฌํ๋ ๊ณผ์ , ๋ชจ๋ธ์ ํ์ฉํ๋ ๋ฐฉ์, ๋ชจ๋ธ์ ์๋น์คํํ๋ ๊ด์ Inference : ๋ชจ๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ ๊ณต๋์ด ์์ธกํ๋ ๊ฒฝ์ฐ, ์ฌ์ฉํ๋ ๊ด์
์น ์๋ฒ(Wikipedia)
HTTP๋ฅผ ํตํด ์น ๋ธ๋ผ์ฐ์ ์์ ์์ฒญํ๋ HTML ๋ฌธ์๋ ์ค๋ธ์ ํธ๋ฅผ ์ ์กํด์ฃผ๋ ์๋น์ค ํ๋ก๊ทธ๋จ
์์ฒญ(Request)์ ๋ฐ์ผ๋ฉด ์์ฒญํ ๋ด์ฉ์ ๋ณด๋ด์ฃผ๋(Response) ํ๋ก๊ทธ๋จ
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ์๋ฒ
์ด๋ค ๋ฐ์ดํฐ(Input)๋ฅผ ์ ๊ณตํ๋ฉฐ ์์ธกํด๋ฌ๋ผ๊ณ ์์ฒญ(Request)ํ๋ฉด, ๋ชจ๋ธ์ ์ฌ์ฉํด ์์ธก ๊ฐ์ ๋ฐํ(Response)ํ๋ ์๋ฒ
API(Application Programming Interface)
"์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค"
ํน์ ์๋น์ค์์ ํด๋น ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ์ธ๋ถ์ ๋ ธ์ถ : ๊ธฐ์์ฒญ API, ์ง๋ API
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ์ : Pandas, Tensorflow, PyTorch
2. Online Serving

์์ฒญ(Request)์ด ์ฌ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ์์ธก
ํด๋ผ์ด์ธํธ(์ ํ๋ฆฌ์ผ์ด์ )์์ ML ๋ชจ๋ธ ์๋ฒ์ HTTP ์์ฒญ(Request)ํ๊ณ , ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ์๋ฒ์์ ์์ธกํ ํ, ์์ธก ๊ฐ(์๋ต)์ ๋ฐํ(Response)
์งํํ๊ณ ์๋ ํ๋ก์ ํธ๋ก ์๊ฐํ๋ฉด, ์์ค๊ฐ์ง์ ๊ฒฝ์ฐ ์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ Online Serving์ผ๋ก ๋ณผ ์ ์๋ค.
์ฌ์ฉ์๊ฐ ๋ฌธ๊ตฌ๋ฅผ ์ ๋ ฅ -> ์๋ฒ๋ก Text ์ ๋ฌ -> ์์ค์ฌ๋ถ ํ๋จ -> ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
ML ๋ชจ๋ธ ์๋ฒ์ ์์ฒญํ ๋, ํ์์ ML ๋ชจ๋ธ ์๋ฒ์์ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ ์ ์์ (ํน์ ๋ถ๋ฆฌ๋ฅผ ์ํด ์ ์ฒ๋ฆฌ ์๋ฒ / ML ๋ชจ๋ธ ์๋ฒ๋ก ๋๋ ์๋ ์์)
์ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ ๋น์ฉ์ด ํด ๊ฒฝ์ฐ
์๋น์ค์ ์๋ฒ์ ML ์๋ฒ๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ๋ ์๊ณ , ML ์๋ฒ๋ฅผ ๋ณ๋๋ก ์ด์ํ๋ ๊ฒฝ์ฐ๋ ์กด์ฌ
Online Serving์ ๊ตฌํํ๋ ๋ฐฉ์
์ง์ API ์น ์๋ฒ ๊ฐ๋ฐ : Flask, FastAPI ๋ฑ์ ์ฌ์ฉํด ์๋ฒ ๊ตฌ์ถ
ํด๋ผ์ฐ๋ ์๋น์ค ํ์ฉ : AWS์ SageMaker, GCP์ Vertex AI ๋ฑ
Serving ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ : Tensorflow Serving, Torch Serve, MLFlow, BentoML ๋ฑ
Online Serving์์ ๊ณ ๋ คํ ๋ถ๋ถ
์ฌํ๊ฐ๋ฅ์ฑ, ๋ํ๋์ ๊ด๋ฆฌ (poetry, Docker)
์ค์๊ฐ ์์ธก์ฒ๋ฆฌ๋ฅผ ๊ณ ๋ คํ ์๋
Data Load
๋ชจ๋ธ ์ฐ์ฐ
ํ์ฒ๋ฆฌ
3. Batch Serving

์ฃผ๊ธฐ์ ์ธ Term์ ๊ฐ์ง๊ณ ์ด๋ฃจ์ด์ง๋ ๊ณผ์ (์ค์ผ์ค๋ฌ)
Airflow, Cron Job ๋ฑ์ผ๋ก ์ค์ผ์ฅด๋ง ์์ (Workflow Scheduler)
๋ผ์ด๋ธ์ปค๋จธ์ค ํ๋ฃจ์ ๋ฐฉ์ก์ด ์ข ๋ฃ๋๊ณ , ๊ทธ๋ ๋ฐ์ํ ๋ฐ์ดํฐ์ ๋ํ ๋ถ์ ๋ฐ ๋ฆฌํฌํ ์ ํ๋ ๊ฒฝ์ฐ ๊ทธ๋ ์ ์์ ์ด ์๋ฃ๋๊ณ , ์๋ฒฝ์ ๋ฐฐ์น๊ฐ ์ด๋ฃจ์ด์ง๋ฉด ๋๋ค.
๋จ, ์ค์๊ฐ์ด ์๋๋ฏ๋ก ์ ์ฉ๋๊ธฐ๊น์ง ์๊ฐ์ด ์์๋๋ค.

4. Further Reading
๋ค๋ฅธ ๊ฒ๋ณด๋ค ์ค์ ๋ก ํ์ฌ์ํ์ ํด๋ณธ ๊ฒฝํ์ผ๋ก ์ด๋ค ์ด์๋ค๊ณผ ์ด๋ค ์ ์ ์ค์ ์ ์ผ๋ก ์๊ฐํ์ฌ์ผํ๋์ง๊ฐ ์ ์๋ฟ์๋ค. API์๋ฒ๋ ๊ตฌ์ถํด๋ณธ ๊ฒฝํ์ด ์๊ณ , ์ค์๊ฐ / Batch ๋ฐ์ดํฐ ์ ์ก๋ ๊ฒฝํํด๋ณธ๋ฐ๊ฐ ์์ด ์์ํ ํด์ ๋ํ ํ์ฉ๋ฒ ์์ฃผ๋ก ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
Last updated