Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Engineering ๐Ÿ’ป/MLOps

ํ˜„์ง MLOps Engineer์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes) ๊ฐ„๋‹จํ•œ ๊ณ ์ฐฐ

DeepFlame 2025. 1. 11. 23:10

ํ˜„์žฌ MLOps Engineer๋กœ 2๋…„๊ฐ„ ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์—…๋ฌด๋ฅผ ์œ„ํ•ด์„œ ๋ฌด์‹ํ•˜๊ฒŒ ๋ถ€๋”ชํ˜€์„œ Kubernetes์— ๊ฝค๋‚˜ ๋Šฅ์ˆ™ํ•ด์กŒ๋Š”๋ฐ..
๋งค์ผ ๋ถ€๋”ชํžˆ๋Š” ์ด ์นœ๊ตฌ๋ฅผ ๊ธ€๋กœ์จ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์‹ถ์–ด ๊ธ€์„ ์”๋‹ˆ๋‹ค.

 

Kubernetes๋ž€

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์›Œํฌ๋กœ๋“œ์™€ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ด์‹ํ•  ์ˆ˜ ์žˆ๊ณ , ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ์œผ๋กœ, ์„ ์–ธ์  ๊ตฌ์„ฑ๊ณผ ์ž๋™ํ™”๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํฌ๊ณ  ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๋Š” ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค, ์ง€์› ๊ทธ๋ฆฌ๊ณ  ๋„๊ตฌ๋“ค์€ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ œ๊ณต๋œ๋‹ค. (์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต์‹ ํŽ˜์ด์ง€)

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ข€ ๋” ์ž˜ ๊ด€๋ฆฌํ•˜๊ฒŒ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๊ด€์ ์—์„œ ๋ดค์„ ๋•Œ, ์ž๋™ํ™”๋œ ์ปจํ…Œ์ด๋„ˆ ์กฐ์ • ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๊ณ  ์ผ์ƒ์ ์ธ ์šด์˜ ์ž‘์—…์— ๋“ค์–ด๊ฐ€๋Š” ์‹œ๊ฐ„๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
์—ฌ๊ธฐ์„œ ์ž๋™ํ™”๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค์šด๋œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ž๋™์ ์œผ๋กœ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ์กด๊ณผ ๋˜‘๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜๋ฉด ๋ณต์žกํ• ์ˆ˜๋ก ์ด๋Ÿฐ ๊ด€๋ฆฌ์  ์š”์†Œ๋“ค์ด ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ฐ„๋‹จํžˆ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ MLOps ์—์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”?

์ž์› ๊ด€๋ฆฌ

๋ชจ๋ธ์„ ํ›ˆ๋ จํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋Š” GPU์ž…๋‹ˆ๋‹ค.
Kubernetes์—์„œ๋Š” ์ด๋Ÿฐ ์ปดํ“จํ„ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
GPU ์ž์›์€ ๋น„์‹ธ๊ณ  ํ•œ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ์žฌ์ ์†Œ์— ์ด ์ž์›์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด์— ๋”ํ•ด์„œ ๋งŒ์•ฝ ํ•˜๋‚˜์˜ ๋…ธ๋“œ์˜ GPU๊ฐ€ 8์ธ๋ฐ, ํ›ˆ๋ จ ์‹œ GPU๊ฐ€ 16์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ๋…ธ๋“œ ๊ฐ„์— GPU๋ฅผ ๊ณต์œ ํ•ด์„œ ํ›ˆ๋ จํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‚˜์˜ GPU๋ฅผ ์ ์œ ํ•˜๋Š” ๊ฒƒ๋„ ์•„๊นŒ์›Œ์„œ Nvidia์—์„œ๋Š” MIG ๊ธฐ๋Šฅ์„ ํ†ตํ•ด์„œ 1๊ฐœ์˜ GPU๋ฅผ ์ตœ๋Œ€ 7๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋งŒํผ GPU๋Š” ์†Œ์ค‘ํ•ด์š”)

 

์žฌํ˜„์„ฑ

ML๋ชจ๋ธ ๊ฐœ๋ฐœ ์‹œ, ํ›ˆ๋ จ ์ฝ”๋“œ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฑด ์‚ฌ์‹ค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์ด๊ธฐ๋Š” ํ•œ๋ฐ.. ์ตœ์ ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ฐพ์•˜์„ ๋•Œ, ๊ทธ๋•Œ์˜ ๋ชจ๋ธ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์š”์†Œ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค๋ฉด ์ตœ์ ์˜ ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์†Œ์‹ค๋˜๊ฑฐ๋‚˜ ๊ทธ ๋•Œ์˜ ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ๋ชจ๋ธ ํ›ˆ๋ จ์ด ์›ํ™œํžˆ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•ˆ์ •์„ฑ

Kubernetes๋Š” ๋‚ด์žฅ๋œ ์žฅ์•  ํ—ˆ์šฉ ๊ธฐ๋Šฅ๊ณผ ์ž๊ฐ€ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ML ํŒŒ์ดํ”„๋ผ์ธ์„ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ๋ชจ๋ธ ๋ฐฐํฌ ์‹œ์— ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‘๊ฐ์„ ๋“œ๋Ÿฌ๋‚ด๋Š”๋ฐ, ์š”์ฆ˜ ๋ชจ๋ธ๋“ค์€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์šด๋กœ๋“œ ๋ฐ ๋กœ๋”ฉ์—๋งŒ ๋Œ€๋žต 1์‹œ๊ฐ„ ์ •๋„ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ chat-gpt๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๋ฐฐํฌ๊ฐ€ ์ฃฝ์–ด์„œ 1์‹œ๊ฐ„๋™์•ˆ ์„œ๋น„์Šค๋ฅผ ๋ชปํ•œ๋‹ค? ๋”์ฐํ•ฉ๋‹ˆ๋‹ค..

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ์ด ์ค‘์š”ํ•˜๊ณ , Kubernetes์—์„œ๋Š” LoadBalancer, Service, Deployment ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ†ตํ•ด์„œ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด์„œ ์•ˆ์ •์„ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ญ.. Pod๋ฅผ 10๊ฐœ ๋„์šฐ๋ฉด ๊ทธ๊ฒŒ ๋‹ค.. ์ฃฝ์„ ํ™•๋ฅ ์€ ์ ์„ํ…Œ๋‹ˆ๊นŒ์š”.

 

์ž๋™ํ™”์™€ ํŒŒ์ดํ”„๋ผ์ธ ๊ด€๋ฆฌ

ML์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋ธ ํ›ˆ๋ จ, ๋ฐฐํฌ, ์šด์˜ ๋“ฑ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
๊ฒฐ๊ตญ ML๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ Kubernetes ์•ˆ์—์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค.

๊ตฌ๊ธ€์—์„œ๋Š” MLOps ํ”Œ๋žซํผ์˜ ์„ฑ์ˆ™๋„์— ๋”ฐ๋ผ์„œ 3๋‹จ๊ณ„๋กœ ๊ตฌ๋ณ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning?hl=ko

๊ทธ ์ค‘ ๊ฐ€์žฅ ์„ฑ์ˆ™๋„๊ฐ€ ๋†’์€ 2๋‹จ๊ณ„๋ฅผ ๋ณด๋ฉด ๋ชจ๋ธ ํ›ˆ๋ จ ๋ฐ ํ…Œ์ŠคํŠธ, ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ–ˆ๊ณ , ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๋„ ๊ตฌ์„ฑํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค ์ด ์ •๋„๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ๊ต‰์žฅํžˆ ๊นŒ๋‹ค๋กœ์šด๋ฐ, ์ด๋ฅผ ํ†ตํ•ด์„œ ์ข‹์€ ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ์žฅ์ ๋“ค์„ ํ†ตํ•ด์„œ ๋ชจ๋ธ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ชจ๋ธ ๊ฐœ๋ฐœ์— ์ข€ ๋” ์‹ ๊ฒฝ์“ธ ์ˆ˜ ์žˆ๊ณ , ์ธํ”„๋ผ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ข€ ๋” ์•ˆ์ •์ ์ธ ์„œ๋น™ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‹จ์ ๋„ ์žˆ๋Š”๋ฐ์š”. ๊ทธ๊ฑด ๋Ÿฌ๋‹๋ ˆ์ดํŠธ๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.. ๋น„๊ต์  ์ตœ์‹  ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋Šฅ์ˆ™ํ•œ ์‚ฌ๋žŒ์ด ๋ณ„๋กœ ์—†๊ณ , ๊ทธ๋ž˜์„œ ์˜คํ”ˆ์†Œ์Šค๋’ค์ ธ๋ณด๋ฉด์„œ ์—ด์‹ฌํžˆ ๋ถ€๋”ชํ˜€๋ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•œ ํŽธ์ธ๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ด๋ฅผ ์ธ์…‰์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์— ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๊ณ , Pod ๋‚ด์—์„œ๋„ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ์žˆ๊ณ , ๊ทธ๋ฆฌ๊ณ  ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์—๋„ ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๊ณ ... ์ด๋Ÿฐ... 
ํ•˜์ง€๋งŒ ์ด๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ, ์ •๋ณต๊ฐ(?)์ด ๋“œ๋Š” ๋งค๋ ฅ๋„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ^^

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์กฐ, Kserve, Istio, Cloud Native ๋“ฑ ์“ฐ๊ณ ์‹ถ์€ ๋ง์€ ๋งŽ์€๋ฐ ๋” ๊ธธ์–ด์งˆ๊นŒ๋ด...
๋‹ค์Œ์— ๋˜ ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿƒ‍โ™‚๏ธ‍โžก๏ธ