MLOps ๐ Kubernetes

MLOps ๐ Kubernetes
- ๐ฆพ ๋ง์ ๊ธฐ์ ๋ค์ด ์ฐ๊ณ ์๋ k8s
- ๐ตโ๐ซ ํญ ๊ฑด๋๋ฆฌ๋ฉด ๋ฌด๋์ง๊ฑฐ ๊ฐ์์
- ๐ณ K8s๋ฅผ ์ฐ๋ ์ด์
- โ ์ ๋ฆฌ
๐ฆพ ๋ง์ ๊ธฐ์ ๋ค์ด ์ฐ๊ณ ์๋ k8s
โML ์์ง๋์ดโ๋ โMLOps ์์ง๋์ดโ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ค ๋ณด๋ฉด ๊ผญ ๋น ์ง์ง ์๊ณ ๋ฑ์ฅํ๋ ๋จ์ด๊ฐ ์์ฃ .

์ถ์ : ํ ์ค, ํฌ๋ํํธํ ํฌ๋๋ก์ง์ค, ๋งํค๋๋ฝ์ค MLOps Enginner job descritption
๋ฐ๋ก ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes, k8s) ์ ๋๋ค. ๊ณต๋ถํด๋ณด๋ฉด ๋จธ๋ฆฌ๊ฐ ์ง๋๊ฑฐ๋ฆฌ๋ ๊ฒ ๊ฐ์ ์ด ๋ ์, ๋๋์ฒด ์ ์ด๋ ๊ฒ ๋ง์ ๊ธฐ์ ๋ค์ด ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ๊ณ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉํ๊ณ ์๋ ๊ฑธ๊น์? ๊ธฐ์ ๋ค์ด ์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋์ ํ๋์ง ๊ทธ ์ด์ ๋ฅผ ํํค์ณ ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ MLOps์์ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์ ์ฌ์ฉ๋๋์ง ์ ๋ฐ์ ์ธ ์ด์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๐ตโ๐ซ ํญ ๊ฑด๋๋ฆฌ๋ฉด ๋ฌด๋์ง๊ฑฐ ๊ฐ์์
K8s๋ฅผ ์ฐ๋ ์ด์ ๋ฅผ ์ดํด๋ณด๊ธฐ ์ , ์๋ ๋ํ๋ฅผ ํ๋ฒ ์ดํด๋ณด์ฃ .

์ถ์ : Machine Learning Operations (MLOps): Overview, Definition, and Architecture
MLOps์์ ๋ชจ๋ธ์ ์ค์ ์๋น์ค์ ๋ฐฐํฌํ๊ธฐ๊น์ง ๊ฑฐ์ณ์ผ ํ๋ ๋จ๊ณ๋ค์ ์ ๋ฆฌํด ๋์ ํ๋ก์ฐ์ฐจํธ์ ๋๋ค. ์ฐธ ๋ณต์กํ์ฃ ? ์ด๋ ๊ฒ ๋ณต์กํ ๊ณผ์ ์ ์ ๋๋ก ๊ด๋ฆฌํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์๋ ์ฒด๊ณ์ ์ธ ์์คํ ์์ด ์งํํ๋ค๋ฉด ์ด๋จ๊น์? ์์ ๋ฌธ์ ๋ ์๋ฌ๊ฐ ๋๋ฉ์ด์ฒ๋ผ ๋ถ์ด๋ ์ ์ฒด ๊ฐ๋ฐ ํ๋ฆ์ ๋ฉ์ถฐ ์ธ์ฐ๋ ๊ฑด ์๊ฐ๋ฌธ์ ์ผ ๋ฟ์ด๊ณ , ๋น์ฐํ ์ฌ๋ฌ ๊ณณ์์ ๋ณ๋ชฉํ์์ด ๋ฐ์ํด ํ์ ์๋๊ฐ ํฌ๊ฒ ๋๋ ค์ง ์๋ฐ์ ์์ต๋๋ค. ๊ทธ๋์ ๊ฒฐ๊ตญ ์์ ์ ์ด๊ณ ํจ์จ์ ์ธ MLOps ํ๊ฒฝ์ ์ํด์๋ ์ด๋ฌํ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํด ์ค ์ ์๋ ๋๊ตฌ์ ์์คํ ์ด ๊ผญ ํ์ํฉ๋๋ค.
๐ณ K8s๋ฅผ ์ฐ๋ ์ด์
๋จธ์ ๋ฌ๋๊ณผ ๋ฅ๋ฌ๋ ์ํฌ๋ก๋๋ ์์ ์๋ชจ๊ฐ ํฌ๊ณ , ๋ฐ๋ณต์ ์ธ ์คํ๊ณผ ์์ ์ ์ธ ์๋น์ค ์ด์์ด ํ์์ ์ ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค(Kubernetes)๋ ์ด๋ฌํ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๊ธฐ ์ํด ํ์ฅ์ฑ, ์ด์์ฑ, ์ฌํ์ฑ, ๋ด๊ฒฐํจ์ฑ๊ณผ ๊ฐ์ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ML ๋ชจ๋ธ ํ์ต๊ณผ ๋ฐฐํฌ ํ๊ฒฝ์ ํจ์จ์ ์ด๊ณ ์์ ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
1. ํ์ฅ์ฑ(Scalabe)
- ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ฅ ์ค์ํ ์ฅ์ ์ค ํ๋๋ ์ํฌ๋ก๋์ ์ํฉ์ ๋ง์ถฐ ์์์ ์๋์ผ๋ก ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์๋ค๋ ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ML ๋ชจ๋ธ ํ์ต์ด๋ ์ถ๋ก ์๋น์ค์์ ๊ฐ์๊ธฐ ํธ๋ํฝ์ด ๋์ด๋๋ฉด ํ๋ ์๋ฅผ ์๋์ผ๋ก ํ์ฅํด ์ฑ๋ฅ์ ์ ์งํ๊ณ , ์ฌ์ฉ๋์ด ์ค๋ฉด ๋ถํ์ํ ์์์ ์ค์ฌ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค. ์ฆ, ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ณํํ๋ ํ๊ฒฝ์ ์ ์ฐํ๊ฒ ๋์ํด ์์ ์ฑ๊ณผ ํจ์จ์ฑ์ ๋์์ ํ๋ณดํ ์ ์๊ฒ ํด์ค๋๋ค.
2. ์ด์์ฑ(Portable)
- ์ฟ ๋ฒ๋คํฐ์ค๋ ํน์ ํด๋ผ์ฐ๋์ ๋ฌถ์ด์ง ์๊ณ ์ด๋์๋ ์ธ ์ ์๋ ๊ฒ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋๋ค. ์คํ์์ค๋ผ ๋๊ตฌ๋ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์๊ณ , ํ์คํ๋ API ๋๋ถ์ AWS, GCP ๊ฐ์ ๋ค๋ฅธ ํด๋ผ์ฐ๋์์๋ ๊ฐ์ ๋ช ๋ น์ด์ ๋ฐฉ์์ผ๋ก ์๋น์ค๋ฅผ ์ด์ํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ด๋ผ ์ปจํ ์ด๋๋ฅผ ์ง์ํ๋ ํ๊ฒฝ์ด๋ผ๋ฉด ํด๋ผ์ฐ๋๋ ์จํ๋ ๋ฏธ์ค๋ cross-platform์ผ๋ก ์ฎ๊ฒจ์ธ ์ ์์ต๋๋ค (๋์ ์จํ๋ ๋ฏธ์ค๋ฉด ์ ๊ฒฝ ์ธ ๋ถ๋ถ์ด ๋ ๋ง์์ง๊ฒ ์ฃ ).
3. ์ฌํ์ฑ(Reproducible)
- ML ์คํ๊ณผ ๋ชจ๋ธ ๊ฐ๋ฐ์ ๋งค์ฐ ๋ฐ๋ณต์ ์ธ ํ๋ก์ธ์ค์ด๋ฉฐ, ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ ํํ๊ฒ ์ฌํํ๋ ๊ฒ์ MLOps์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์๊ตฌ์ฌํญ์ ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ปจํ ์ด๋๋ฅผ ํตํด ํ์ต ์ฝ๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ , ์ด์์ฒด์ ํ๊ฒฝ๊น์ง ๋ชจ๋ ๊ฒ์ ๋ถ๋ณ(immutable)์ ์ด๋ฏธ์ง๋ก ๊ณ ์ ์ํต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ , ์ฝ๋, ํ๊ฒฝ ๋ณ์๋ฅผ ์๋ฒฝํ๊ฒ ํต์ ํ๋ฉฐ ์คํ์ ๋ฐ๋ณตํ ์ ์๊ณ , โ๋ด ์ปดํจํฐ์์๋ ๋๋๋ฐโฆโ์ ๊ฐ์ ๊ณ ์ง์ ์ธ ๋ฌธ์ ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.
4. ๋ด๊ฒฐํจ์ฑ(Fault Tolerable)
- ์ฅ์๊ฐ ์์๋๋ ๋ชจ๋ธ ํ์ต ์์ ์ด๋ 24์๊ฐ ์ด์๋์ด์ผ ํ๋ ์ถ๋ก ์๋น์ค์์ ํ๋์จ์ด๋ ์ํํธ์จ์ด์ ์ฅ์ ๋ ์น๋ช ์ ์ผ ์ ์์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ์๊ฐ ์น์ (self-healing) ๊ธฐ๋ฅ์ ๋ด์ฅํ๊ณ ์์ด, ํน์ ๋ ธ๋๋ ํ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ํด๋น ์ํฌ๋ก๋๋ฅผ ๊ฑด๊ฐํ ๋ค๋ฅธ ๋ ธ๋๋ก ์ฌ์ค์ผ์ค๋งํ๊ณ ์๋น์ค๋ฅผ ๋ณต๊ตฌํฉ๋๋ค. ์ด๋ฌํ ๊ฐ๋ ฅํ ๋ด๊ฒฐํจ์ฑ์ ML ํ์ดํ๋ผ์ธ์ ์์ ์ฑ์ ๋ณด์ฅํ๋ฉฐ, ์๋ ๊ฐ์ ์์ด๋ ์์คํ ์ด ์ง์์ ์ผ๋ก ์ด์๋ ์ ์๋๋ก ํฉ๋๋ค.
โ ์ ๋ฆฌ
์ด๋ฒ ๊ธ์์๋ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ MLOps ํ๊ฒฝ์์ ์ ์ค์ํ์ง, ๊ทธ๋ฆฌ๊ณ ํ์ฅ์ฑ(Scalability), ์ด์์ฑ(Portability), ์ฌํ์ฑ(Reproducibility), ๋ด๊ฒฐํจ์ฑ(Fault Tolerance) ๊ฐ์ ํต์ฌ ์ฅ์ ๋ค์ ์ค์ฌ์ผ๋ก ์ดํด๋ณด์์ต๋๋ค. ์์ฝํ์๋ฉด, ์ฟ ๋ฒ๋คํฐ์ค๋ ๋ณต์กํ ML ์ํฌ๋ก๋๋ฅผ ์์ ์ ์ด๊ณ ์ ์ฐํ๊ฒ ์ด์ํ ์ ์๋๋ก ๋๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฐ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๋ค์ ํฌ์คํ ์์๋ ํ ๊ฑธ์ ๋ ๋์๊ฐ, ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ์ค์ ๋ชจ๋ธ ํ๋ จ๊ณผ ๋ฐฐํฌ ๊ณผ์ ์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ํ์ฉ๋๋์ง๋ฅผ ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก์ ํจ๊ป ์ฌ์ธต์ ์ผ๋ก ์์๋ณด๊ฒ ์ต๋๋ค.