[Recent Interests] Data Engineering / MLOps
[MLOps] MLOps์˜ ์•„ํ‚คํ…์ฒ˜์™€ ์›Œํฌํ”Œ๋กœ์šฐ

์•ž์„  ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” MLOps์˜ ์›์น™๊ณผ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” MLOps์˜ ์›์น™๊ณผ ๊ตฌ์„ฑ์š”์†Œ, ์—ญํ• ์„ ๊ธฐ๋ฐ˜์œผ๋กœ MLOps ends-to-end ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค.

โ€ป Machine Learning Operations (MLOps):Overview, Definition, and Architecture (2022) ์—์„œ ์†Œ๊ฐœํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฒˆ์—ญํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

MLOps์˜ ์›์น™๊ณผ ๊ตฌ์„ฑ์š”์†Œ, ์—ญํ• ์„ ๊ธฐ๋ฐ˜์œผ๋กœ MLOps ends-to-end ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ์•„ํ‚คํ…์ฒ˜๋Š” ๊ธฐ์ˆ ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ML ์—ฐ๊ตฌ์›, ์‹ค๋ฌด์ž๋Š” ์ž์‹ ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ์ ํ•ฉํ•œ ๊ธฐ์ˆ ๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์•„ํ‚คํ…์ฒ˜๋Š” ํฌ๊ฒŒ ๋„ค๊ฐœ์˜ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

  • (A) MLOps ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๋‹จ๊ณ„
  • (B) feature store์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ํฌํ•จํ•œ feature engineering ํŒŒ์ดํ”„๋ผ์ธ
  • (C) ์‹คํ—˜
  • (D) ๋ชจ๋ธ ๋ฐฐํฌ๊นŒ์ง€ ์ž๋™ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ

๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

(A) MLOps Project Initiation

(1) ๋น„์ฆˆ๋‹ˆ์Šค ์ดํ•ด๊ด€๊ณ„์ž(R1): ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ๋ถ„์„ํ•˜๊ณ  ML์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž ์žฌ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
(2) ์†”๋ฃจ์…˜ ์•„ํ‚คํ…ํŠธ(R2): ML ์‹œ์Šคํ…œ ์ „์ฒด์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋ฅผ ์ •์˜ํ•˜๊ณ , ์ฒ ์ €ํ•œ ํ‰๊ฐ€๋ฅผ ๊ฑฐ์ณ ์‚ฌ์šฉํ•  ๊ธฐ์ˆ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
(3) ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3): ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ์—์„œ ํšŒ๊ท€ ๋˜๋Š” ๋ถ„๋ฅ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€์™€ ๊ฐ™์€ ML ๋ฌธ์ œ๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค.
(4) ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด(R4)์™€ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3): ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์–ด๋–ค ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•ฉ๋‹ˆ๋‹ค.
(5) ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด(R4)์™€ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3): ๋‹ต๋ณ€์ด ๋ช…ํ™•ํ•ด์ง€๋ฉด ํ˜‘๋ ฅํ•˜์—ฌ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์›์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ์™€ ํ’ˆ์งˆ์„ ํ™•์ธํ•˜๊ณ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ์— ๋ผ๋ฒจ์ด ์ง€์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.(์ง€๋„ํ•™์Šต์˜ ํ•„์ˆ˜ ์š”๊ตฌ ์‚ฌํ•ญ)

(B1) Requirements for feature engineering pipeline.

feature๋Š” ๋ชจ๋ธ ํ•™์Šต์— ํ•„์š”ํ•œ ์†์„ฑ์ž…๋‹ˆ๋‹ค. feature engineering pipeline์˜ ๊ธฐ๋ณธ ์š”๊ตฌ์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.
(6) ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด(R4): ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๊ทœ์น™(์ •๊ทœํ™”, ์ง‘๊ณ„) ๋ฐ cleaning ๊ทœ์น™์„ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
(7) ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3)์™€ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด(R4): ๋‹ค๋ฅธ feature๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜, ๊ฐœ์„ ๋œ feature๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ feature engineering ๊ทœ์น™์„ ํ•จ๊ป˜ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ์— ์ •์˜๋œ ๊ทœ์น™์€ ๋ชจ๋ธ์˜ ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ์„ฑ๋Šฅ์„ ๊ด€์ฐฐํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ ๋‚˜์˜ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(B2) Feature Engineering Pipeline

(8) ์šฐ์„  feature engineering pipeline์€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ, ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ, ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ ๋“ฑ์˜ ์›์‹œ ๋ฐ์ดํ„ฐ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
(9) ๋ฐ์ดํ„ฐ๋Š” data sources ์—์„œ ์ถ”์ถœ๋ฉ๋‹ˆ๋‹ค.
(10) ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋ฐ ์ •์ œ(cleansing) ์ž‘์—…์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋‹จ๊ณ„(A) ์—์„œ ์ •์˜๋œ ์‚ฐ์ถœ๋ฌผ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ๋˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
(11) feature engineering ์ž‘์—…์€ ์ƒˆ๋กœ์šด feature, ๋‹ค๋ฅธ feature๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ feature๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „์— ์ •์˜๋œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.
(12) ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์ž‘์—…์€ feature store system (C4)์— ๋ฐฐ์น˜ ๋˜๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋Š” ์˜คํ”„๋ผ์ธ/์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ)์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(C) Experimentation

์‹คํ—˜ ๋‹จ๊ณ„์˜ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3)๊ฐ€ ์ฃผ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด(R5)์˜ ์ง€์›์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
(13) ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3): ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด feature store system(C4)(๋˜๋Š” ์› ๋ฐ์ดํ„ฐ)์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์กฐ์ •์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•œ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง ์˜์—ญ์— ํ”ผ๋“œ๋ฐฑ์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.
(14) feature store system์—์„œ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ค€๋น„์™€ ๊ฒ€์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์—๋Š” ํ•™์Šต ๋ฐ ํ…Œ์ŠคํŠธ ๋ถ„ํ•  ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
(15) ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3)๋Š” ์ตœ๊ณ  ์„ฑ๋Šฅ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”์ •ํ•˜๊ณ , ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ(C5)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ ํ•™์Šต์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด(R5)๋Š” ์ž˜ ์„ค๊ณ„๋œ ๋ชจ๋ธ ํ•™์Šต ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
(16) ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ…Œ์ŠคํŠธ๋˜๊ณ  ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ง€ํ‘œ๊ฐ€ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ด๋ฉด ๋ฐ˜๋ณต ํ•™์Šต์€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ํ•™์Šต๊ณผ ๋ชจ๋ธ ๊ฒ€์ฆ ์ž‘์—…์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ํ†ตํ‹€์–ด '๋ชจ๋ธ ์—”์ง€๋‹ˆ์–ด๋ง' ์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์—”์ง€๋‹ˆ์–ด๋ง ๋ชฉํ‘œ๋Š” ๊ฐ€์žฅ ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
(17) ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž(R3)๋Š” ๋ชจ๋ธ์„ ๋‚ด๋ณด๋‚ด๊ณ  ์ฝ”๋“œ๋ฅผ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
DevOps ์—”์ง€๋‹ˆ์–ด(R6) ๋˜๋Š” ML ์—”์ง€๋‹ˆ์–ด(R7)๋Š” ์ž๋™ํ™”๋œ ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ์ฝ”๋“œ๊ฐ€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ปค๋ฐ‹๋˜๋ฉด CI/CD ๊ตฌ์„ฑ ์š”์†Œ(C1)๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์ž๋™์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ๋Š” ML ๋ชจ๋ธ๊ณผ ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ž‘์—…์ด ํฌํ•จ๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์—์„œ๋Š” ML ๋ชจ๋ธ ๋ฐ ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ ์ฝ”๋“œ๋ฅผ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ์ „๋‹ฌ ๋‹จ๊ณ„์—์„œ๋Š” ๋ฒ„์ „์ด ์ง€์ •๋œ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ(์˜ˆ: ์ด๋ฏธ์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ)์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค.

(D) Automated ML workflow pipeline

DevOps ์—”์ง€๋‹ˆ์–ด(R6)์™€ ML ์—”์ง€๋‹ˆ์–ด(R7)๋Š” ์ž๋™ํ™”๋œ ML workflow pipeline ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Kubernetes(C5)์™€ ๊ฐ™์€ ์ปดํ“จํŒ…์„ ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค ํ˜•ํƒœ๋กœ ๋ชจ๋ธ ํ•™์Šต ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. workflow orchestration component(C3)๋Š” ์ž๋™ํ™”๋œ ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ž‘์—…์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์— ๋Œ€ํ•ด ํ•„์š”ํ•œ ์•„ํ‹ฐํŒฉํŠธ๋Š” ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์€ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ(์˜ˆ: ์ปจํ…Œ์ด๋„ˆ)์„ ํ†ตํ•ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ workflow orchestration componen(C3)๋Š” ๋กœ๊ทธ, ์™„๋ฃŒ ์‹œ๊ฐ„ ๋“ฑ์˜ ํ˜•ํƒœ๋กœ ๊ฐ ์ž‘์—…์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ํ™”๋œ ML workflow pipeline์ด ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฉด ๋‹ค์Œ ์ž‘์—…๋“ค์ด ์ž๋™์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
(18) feature store ์‹œ์Šคํ…œ์—์„œ ๋ฒ„์ „์ด ์ง€์ •๋œ ํ”ผ์ฒ˜๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค(๋ฐ์ดํ„ฐ ์ถ”์ถœ). ์˜คํ”„๋ผ์ธ/์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๋˜๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ)์—์„œ ํ”ผ์ฒ˜๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
(19) ์ž๋™ํ™”๋œ ๋ฐ์ดํ„ฐ ์ค€๋น„ ๋ฐ ๊ฒ€์ฆ. ๋˜ํ•œ ํ•™์Šต ๋ฐ ํ…Œ์ŠคํŠธ ๋ถ„ํ• ์ด ์ž๋™์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
(20) ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ(๋ฒ„์ „์ด ์ง€์ •๋œ ํ”ผ์ฒ˜)์— ๋Œ€ํ•œ ์ž๋™ํšŒ๋œ ๋ชจ๋ธ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์ด์ „ ์‹คํ—˜ ๋‹จ๊ณ„์˜ ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
(21) ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ž๋™ ๋ชจ๋ธ ํ‰๊ฐ€ ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๋ฐ˜๋ณต ์กฐ์ •์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ง€ํ‘œ๊ฐ€ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ์ž๋™ํ™”๋œ ๋ฐ˜๋ณต ํ›ˆ๋ จ์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ์ž๋™ํ™”๋œ ๋ชจ๋ธ ํ›ˆ๋ จ ์ž‘์—…๊ณผ ์ž๋™ํ™”๋œ ๋ชจ๋ธ ๊ฒ€์ฆ ์ž‘์—…์€ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.
(22) ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์€ ๋‚ด๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.
(23) ๋ชจ๋ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(C6)๋กœ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ชจ๋ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(C6)๋Š” ๊ด€๋ จ ๊ตฌ์„ฑ ๋ฐ ํ™˜๊ฒฝ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์ฝ”๋“œ๋กœ ์ €์žฅ๋˜๊ฑฐ๋‚˜ ์ปจํ…Œ์ด๋„ˆํ™”๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ณต๋˜๋Š” ํ•™์Šต ์ž‘์—…์— ๋Œ€ํ•ด ML ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(C7)๋Š” ๋ชจ๋ธ ํ•™์Šต์„ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ๊ฒฐ๊ณผ ์„ฑ๋Šฅ ์ง€ํ‘œ์™€ ๊ฐ™์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ›ˆ๋ จ ์ž‘์—… ID, ํ›ˆ๋ จ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„, ๊ธฐ๊ฐ„, ์•„ํ‹ฐํŒฉํŠธ ์†Œ์Šค์— ๋Œ€ํ•œ ์ถ”์  ๋ฐ ๋กœ๊น…๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. (model lineage: ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” feature์™€ ํ›ˆ๋ จ ์ฝ”๋“œ์˜ ์†Œ์Šค์™€ ๋ฒ„์ „, ์ƒํƒœ(์˜ˆ: ์ค€๋น„ ๋˜๋Š” ์ƒ์‚ฐ ์ค€๋น„)๋„ ๊ธฐ๋ก)
์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ์˜ ์ƒํƒœ๊ฐ€ ์Šคํ…Œ์ด์ง•์—์„œ ํ”„๋กœ๋•์…˜์œผ๋กœ ์ „ํ™˜๋˜๋ฉด ๋ชจ๋ธ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด DevOps ์—”์ง€๋‹ˆ์–ด ๋˜๋Š” ML ์—”์ง€๋‹ˆ์–ด์—๊ฒŒ ์ž๋™์œผ๋กœ ๋„˜๊ฒจ์ง‘๋‹ˆ๋‹ค.
(24) CI/CD ๊ตฌ์„ฑ ์š”์†Œ(C1)๊ฐ€ ์ง€์†์ ์ธ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜ ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋œ ML ๋ชจ๋ธ๊ณผ ๋ชจ๋ธ ๋ฐฐํฌ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ง€์†์  ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ(continuous deployment pipeline)์€ ML ๋ชจ๋ธ๊ณผ ์ œ๊ณต ์ฝ”๋“œ์˜ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ”„๋กœ๋•์…˜ ์ œ๊ณต์„ ์œ„ํ•ด ๋ชจ๋ธ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
(25) ๋ชจ๋ธ ๋ฐฐํฌ ๊ตฌ์„ฑ ์š”์†Œ(C8)๋Š” feature store ์‹œ์Šคํ…œ(C4)์—์„œ ๋‚˜์˜ค๋Š” ์ƒˆ๋กœ์šด, ๋ณด์ด์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด(R5)๋Š” ์‹ค์‹œ๊ฐ„ ์˜ˆ์ธก์„ ์œ„ํ•œ ์˜จ๋ผ์ธ ์ถ”๋ก  ๋˜๋Š” ๋Œ€๋Ÿ‰์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๊ด€ํ•œ ์˜ˆ์ธก์„ ์œ„ํ•œ ์ผ๊ด„ ์ถ”๋ก ์œผ๋กœ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์˜ˆ์ธก์˜ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์€ ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„)์—์„œ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๋ฐ˜๋ฉด, ์ผ๊ด„ ์˜ˆ์ธก์˜ ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์€ ์˜คํ”„๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(์ผ๋ฐ˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„)์—์„œ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋ฐฐํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๊ตฌ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ์˜ˆ์ธก ์š”์ฒญ์€ REST API๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ML ์—”์ง€๋‹ˆ์–ด(R7)๋Š” ๋ชจ๋ธ ๋ฐฐํฌ ์ปดํ“จํŒ… ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
(26) ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ(C9)๋Š” ๋ชจ๋ธ ๋ฐฐํฌ ์„ฑ๋Šฅ๊ณผ ์ธํ”„๋ผ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ง€์†์ ์œผ๋กœ ๊ด€์ฐฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ฎ์€ ์˜ˆ์ธก ์ •ํ™•๋„ ๊ฐ์ง€์™€ ๊ฐ™์€ ํŠน์ • ์ž„๊ณ„๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ์ •๋ณด๊ฐ€ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
(27) ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ(C9)์— ์—ฐ๊ฒฐ๋˜์–ด ๋น ๋ฅด๊ณ  ์ง์ ‘์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ณด์žฅํ•˜์—ฌ ๋ณด๋‹ค ํ–ฅ์ƒ๋œ ์˜ˆ์ธก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ง€์†์ ์ธ ํ•™์Šต, ์žฌํ•™์Šต ๋ฐ ๊ฐœ์„ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„์˜ ์ •๋ณด๋Š” ๋ชจ๋ธ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ๋กœ๋ถ€ํ„ฐ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์€ ์ถ”๊ฐ€ ๋ชจ๋ธ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๊ฐ€ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
(28) ์ง€์†์ ์ธ ํ•™์Šต. ๋ชจ๋ธ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์„ฑ ์š”์†Œ(C9)๊ฐ€ ๋ฐ์ดํ„ฐ์—์„œ concept drifts๋ฅผ ๊ฐ์ง€ํ•˜๋ฉด ์ •๋ณด๊ฐ€ ์Šค์ผ€์ค„๋Ÿฌ๋กœ ์ „๋‹ฌ๋˜๊ณ , ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์žฌํ•™์Šต(์ง€์†์ ์ธ ํ•™์Šต)์„ ์œ„ํ•ด ์ž๋™ํ™”๋œ ML ์›Œํฌํ”Œ๋กœ ํŒŒ์ดํ”„๋ผ์ธ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ถ„ํฌ์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋œ ๋ชจ๋ธ์˜ ์ ์ ˆ์„ฑ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜์—ฌ drift๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌํ•™์Šต์€ ํ†ต๊ณ„์  ์ž„๊ณ„๊ฐ’์— ๋„๋‹ฌํ–ˆ์„๋•Œ ์ž๋™์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ ๋˜๊ฑฐ๋‚˜, ์ƒˆ๋กœ์šด feature ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋•Œ, ๋˜๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ๊นŒ์ง€ ์‚ดํŽด๋ณธ ์ „์ฒด ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ•œ ๊ทธ๋ฆผ์œผ๋กœ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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


reference
Dominik Kreuzberger and Niklas Kühl and Sebastian Hirschl (2022) Machine Learning Operations (MLOps): Overview, Definition, and Architecture