MLOps๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๊น์ง์ ๊ณผ์ ์ ์๋ํํ๊ณ ์ต์ ํํ๋ ๊ธฐ์ ๋ก, ์ต๊ทผ ๋ง์ ๊ธฐ์ ๋ค์ด ๋์ ํ๊ณ ์์ต๋๋ค. ํนํ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์๋ ๋ฐ์ดํฐ ๋ณด์๊ณผ ์ฑ๋ฅ ๋ฌธ์ ๋ก ์ธํด ํด๋ผ์ฐ๋ ๋์ ์์ฒด ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฅผ ์ํด Kubeflow์ MLflow์ ๊ฐ์ ๋๊ตฌ๋ค์ด ํ์ฉ๋๋๋ฐ, ๊ฐ๊ฐ์ ํน์ง๊ณผ ์ฅ๋จ์ ์ ์ดํดํ์ฌ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Kubeflow์ MLflow์ ์ฃผ์ ์ฐจ์ด์ ์ ์ค์ฌ์ผ๋ก ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ Kubeflow๋ฅผ ์ ํํด์ผ ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ชฉ์ฐจ
- Kubeflow์ MLflow ๊ฐ์
- Kubeflow์ MLflow์ ์ฃผ์ ์ฐจ์ด์
- ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ Kubeflow๊ฐ ์ ํฉํ ์ด์
- ๊ฒฐ๋ก
1. Kubeflow์ MLflow ๊ฐ์
Kubeflow
Kubeflow๋ Kubernetes ์์์ ๋จธ์ ๋ฌ๋ ์ํฌํ๋ก์ฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ๋๋ ์คํ์์ค ํ๋ซํผ์ ๋๋ค. ์ ์ฒด ๋จธ์ ๋ฌ๋ ํ์ดํ๋ผ์ธ์ ์ ์ํ๊ณ , ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ๋ชจ๋ธ ํ์ต, ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋, ๋ชจ๋ธ ๋ฐฐํฌ ๋ฑ์ ์๋ํํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. ํ์ฅ์ฑ๊ณผ ๋ค์ํ ML ๋๊ตฌ ํตํฉ์ด ๊ฐ์ ์ผ๋ก, ํนํ ๋๊ท๋ชจ MLOps ํ์ดํ๋ผ์ธ์ ํจ์จ์ ์ผ๋ก ๊ตฌ์ถํ ์ ์์ต๋๋ค.
MLflow
MLflow๋ ๋จธ์ ๋ฌ๋ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ๋ฅผ ์ํ ์คํ์์ค ํ๋ซํผ์ผ๋ก, ์ฃผ๋ก ๋ชจ๋ธ ์คํ ์ถ์ ๊ณผ ๊ด๋ฆฌ์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. ๋ชจ๋ธ์ ๋ฒ์ ๋ณ๋ก ๊ด๋ฆฌํ๊ณ , ๊ฐ ์คํ์ ํ๋ผ๋ฏธํฐ, ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ๊ธฐ๋กํ์ฌ ๋ชจ๋ธ์ ์ถ์ ํ๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค. MLflow๋ ๋ชจ๋ธ์ ์ ์ฅํ๊ณ ๋ฐฐํฌํ๋ ๊ฐ๋จํ API๋ฅผ ์ ๊ณตํ์ง๋ง, ์ฟ ๋ฒ๋คํฐ์ค ๊ธฐ๋ฐ์ ์ค์ผ์คํธ๋ ์ด์ ๊ธฐ๋ฅ์ ์์ต๋๋ค.
2. Kubeflow์ MLflow์ ์ฃผ์ ์ฐจ์ด์
ํน์ง | Kubeflow | MLflow |
---|---|---|
์ค์น ๊ธฐ๋ฐ | Kubernetes ๊ธฐ๋ฐ | ๋ ๋ฆฝ ์คํ ๊ฐ๋ฅ (Docker ํ์ ์ ์ปจํ ์ด๋ํ ๊ฐ๋ฅ) |
์ฃผ์ ๊ธฐ๋ฅ | ํ์ดํ๋ผ์ธ ์๋ํ, ๋ชจ๋ธ ๋ฐฐํฌ, ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ | ์คํ ๋ฐ ๋ชจ๋ธ ์ถ์ , ๋ชจ๋ธ ๋ฒ์ ๊ด๋ฆฌ |
ํ์ดํ๋ผ์ธ ๊ด๋ฆฌ | Kubeflow Pipelines๋ก ๋จ๊ณ๋ณ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ ๊ฐ๋ฅ | ํ์ดํ๋ผ์ธ ๊ธฐ๋ฅ์ด ์์ |
ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ | Katib์ ํตํด ์๋ํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ ์ต์ ํ ์ ๊ณต | ์ง์ ์ค์ ํ์ |
๋ชจ๋ธ ๋ฐฐํฌ | KFServing์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ ๋ชจ๋ธ ๋ฐฐํฌ ๊ด๋ฆฌ | ๊ฐ๋จํ ๋ฐฐํฌ (์ฃผ๋ก Flask, REST API ์ฌ์ฉ) |
ํ์ฅ์ฑ | Kubernetes ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌ์์ค ํ์ฅ ๊ฐ๋ฅ | ํ์ฅ์ฑ์ด ์ ํ์ (Kubernetes ๋ฏธ์ง์) |
์ฌ์ฉ ํธ์์ฑ | Kubernetes์์ ์ฐ๋ ํ์, ์ด๊ธฐ ์ค์ ์ด ๋ณต์กํจ | ๋น๊ต์ ์ค์น ๋ฐ ์ฌ์ฉ์ด ์ฌ์ |
์จํ๋ ๋ฏธ์ค ์ ํฉ์ฑ | Kubernetes๋ง ์ง์ํ๋ฉด ์จํ๋ ๋ฏธ์ค์์ ์ฌ์ฉ ๊ฐ๋ฅ | ์จํ๋ ๋ฏธ์ค์์๋ ์ฌ์ฉ ๊ฐ๋ฅ |
Kubeflow๋ MLOps ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ๋ก, ๋ชจ๋ธ ๋ฐฐํฌ์ ํ์ฅ์ฑ ์ธก๋ฉด์์ ๋งค์ฐ ๊ฐ๋ ฅํฉ๋๋ค. ๋ฐ๋ฉด, MLflow๋ ์คํ ๊ด๋ฆฌ ๋ฐ ๋ชจ๋ธ ๋ฒ์ ๊ด๋ฆฌ์ ํนํ๋์ด ์์ผ๋ฉฐ, ์คํ ์ถ์ ๊ณผ ๊ฐ๋จํ ๋ฐฐํฌ์ ์ ํฉํฉ๋๋ค.
3. ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ Kubeflow๊ฐ ์ ํฉํ ์ด์
์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ Kubeflow๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ ๋ฆฌํฉ๋๋ค.
3.1 ๋๊ท๋ชจ ํ์ดํ๋ผ์ธ ์๋ํ ๋ฐ ํ์ฅ์ฑ ์ ๊ณต
Kubeflow๋ Kubernetes ์์์ ๊ตฌ๋๋๊ธฐ ๋๋ฌธ์ ์ปจํ ์ด๋ํ๋ ํ์ดํ๋ผ์ธ์ ์ ์ฐํ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค. ์ด๋ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ๋ชจ๋ธ ํ์ต ๋ฐ ๋ฐฐํฌ ๊ณผ์ ์์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ ์ ํ ํ ๋นํ๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค.
- Auto-scaling ์ง์: ์์ธก ์์ฒญ์ด ๋ง์์ง ๊ฒฝ์ฐ ์๋์ผ๋ก ํด๋ฌ์คํฐ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ Pod๋ฅผ ํ์ฅํ์ฌ ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ๋๊ท๋ชจ ํ์ต ๋ฐ ๋ฐฐํฌ: ์๋ง์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ ์คํธํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ด๋, ๋ค์์ ๋ชจ๋ธ์ ํ์ตํ๋ ๊ฒฝ์ฐ Kubernetes ํด๋ฌ์คํฐ๊ฐ ์ฝ๊ฒ ํ์ฅ ๊ฐ๋ฅํ๋ฏ๋ก Kubeflow๊ฐ ๋ ์ ํฉํฉ๋๋ค.
3.2 ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ ์๋ํ
Kubeflow๋ Katib์ ํตํด ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ์๋ํํฉ๋๋ค. Katib์ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ํ๋ฉฐ, ์๋์ผ๋ก ์ต์ ์ ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐํฉ์ ์ฐพ์ ์ ์์ด ๋ชจ๋ธ ์ฑ๋ฅ์ ์ต๋ํ์ผ๋ก ๋์ด์ฌ๋ฆด ์ ์์ต๋๋ค. MLflow์์๋ ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ์๋ํํ๋ ๊ธฐ๋ฅ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก, ์ด๋ฅผ ๋ณ๋๋ก ๊ตฌํํด์ผ ํฉ๋๋ค.
3.3 ๋ชจ๋ธ ๋ฐฐํฌ์ ์ด์ ํ๊ฒฝ ์ต์ ํ
Kubeflow๋ KFServing์ ํตํด ๋ชจ๋ธ ๋ฐฐํฌ์ ์ด์์ ์ง์ํ๋ฉฐ, ํธ๋ํฝ ๋ผ์ฐํ , ๋ฒ์ ๊ด๋ฆฌ, ์ค์๊ฐ ์์ธก, ๋ชจ๋ํฐ๋ง ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ํนํ, ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ๋ชจ๋ธ ๋ฒ์ ๋ณ ํธ๋ํฝ ๋ถ๋ฐฐ๋ ์๋ ํ์ฅ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ค์ํ ์์์ ๋๋ค.
MLflow๋ ๋ฐฐํฌ๋ฅผ ์ง์ํ์ง๋ง, ์ฃผ๋ก ๋จ์ผ ์๋ฒ๋ ๊ฐ๋จํ REST API๋ฅผ ํตํด ๋ชจ๋ธ์ ์๋นํ๋ ๋ฐฉ์์ด๋ผ ํ์ฅ์ฑ๊ณผ ์ ์ง ๋ณด์ ์ธก๋ฉด์์๋ ๋ถ์กฑํฉ๋๋ค. ๋ฐ๋ฉด, Kubeflow๋ Kubernetes์ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฅ์ ํตํด ๋ชจ๋ธ์ ์ฝ๊ฒ ํ์ฅํ๊ณ , ์์ฒญ์ด ๋ง์ ๊ฒฝ์ฐ ์๋์ผ๋ก ๋ฆฌ์์ค๋ฅผ ํ ๋นํด ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
3.4 ๋ฐ์ดํฐ์ ๋ชจ๋ธ ์ถ์ ์ ์ํ ํตํฉ ๊ด๋ฆฌ
Kubeflow๋ ๋จธ์ ๋ฌ๋ ์ํฌํ๋ก์ฐ์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ๊ด๋ฆฌํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์คํ ์ถ์ , ๋ฐ์ดํฐ ๋ฐ ๋ชจ๋ธ ๋ฒ์ ๊ด๋ฆฌ, ํ์ต ๊ฒฐ๊ณผ ๊ธฐ๋ก ๋ฑ ๋ชจ๋ ๊ณผ์ ์ ํ๋์ ํ๋ซํผ ๋ด์์ ํตํฉ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ํตํฉ ๊ด๋ฆฌ: ๋ชจ๋ ๊ณผ์ ์ด Kubernetes์ Kubeflow ๋ด์์ ์ด๋ฃจ์ด์ง๋ฏ๋ก ๋ฐ์ดํฐ ์ถ์ ๊ณผ ๋ชจ๋ธ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํจ์จ์ ์ ๋๋ค.
- ๋ณด์ ๋ฐ ๋ฐ์ดํฐ ํต์ ์ฉ์ด: ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ๋ฐ์ดํฐ ๋ณด์์ ๊ฐํํ๊ณ , ๋ชจ๋ธ ๋ฐ ํ์ดํ๋ผ์ธ์ ๋ํ ์ ๊ทผ์ ์ ์ดํ ์ ์์ต๋๋ค.
4. ๊ฒฐ๋ก
Kubeflow์ MLflow๋ ๋ชจ๋ MLOps ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค. ํ์ง๋ง ๊ฐ ๋๊ตฌ์ ์ด์ ์ด ๋ค๋ฅด๋ฉฐ, ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์๋ Kubeflow๊ฐ ๋ ์ ํฉํ ์ ์์ต๋๋ค.
์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ Kubeflow๋ฅผ ์ ํํด์ผ ํ๋ ์ด์ ์์ฝ:
- ํ์ฅ์ฑ: Kubernetes ๊ธฐ๋ฐ์ ํ์ฅ์ฑ์ผ๋ก ๋๊ท๋ชจ ๋ชจ๋ธ ํ์ต ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํํ๊ฒ ์ฒ๋ฆฌ.
- ํ์ดํ๋ผ์ธ ์๋ํ: Kubeflow Pipelines์ Katib์ ํตํด ๋ชจ๋ธ ํ์ต๊ณผ ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋ ์๋ํ.
- ๋ชจ๋ธ ๋ฐฐํฌ ์ต์ ํ: KFServing์ ํตํด ์์ ์ ์ธ ์ค์๊ฐ ์์ธก๊ณผ ํธ๋ํฝ ๊ด๋ฆฌ.
- ํตํฉ ๊ด๋ฆฌ์ ๋ณด์: ๋ชจ๋ ๋จธ์ ๋ฌ๋ ์ํฌํ๋ก์ฐ๋ฅผ ํตํฉ ๊ด๋ฆฌํ๊ณ , ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ๋ฐ์ดํฐ ๋ณด์์ ๊ฐํ.
Kubeflow๊ฐ ํ์ํ ํ๊ฒฝ
Kubeflow๋ ์จํ๋ ๋ฏธ์ค์์ ๋๊ท๋ชจ ๋ชจ๋ธ์ ํ์ตํ๊ณ , ๋ค์ํ ์คํ์ ์๋ํํ๋ฉฐ, ์ค์๊ฐ ์์ธก์ ํ์๋ก ํ๋ ํ๊ฒฝ์ ์ ํฉํฉ๋๋ค. ํนํ Kubernetes๋ฅผ ํตํด ๋ฆฌ์์ค๋ฅผ ์ ์ฐํ๊ฒ ๊ด๋ฆฌํ๊ณ , ๋ชจ๋ธ ๋ฐฐํฌ์ ์ ์ง๋ณด์๋ฅผ ์ง์์ ์ผ๋ก ๊ฐ์ ํ ์ ์๋ค๋ ์ ์์, ๊ธฐ์ ์ ์ํฐํ๋ผ์ด์ฆ MLOps ์๋ฃจ์ ์ผ๋ก Kubeflow๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์จํ๋ ๋ฏธ์ค MLOps๋ฅผ ๊ณ ๋ คํ๋ ๊ธฐ์ ์ด๋ผ๋ฉด, Kubeflow์ ๊ธฐ๋ฅ๊ณผ ํ์ฅ์ฑ์ ํตํด ํจ์จ์ ์ด๊ณ ์์ ํ ๋จธ์ ๋ฌ๋ ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด์ธ์.
'AI > MLOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ต์ฉ ๋ฐ์ดํฐ์ ์ ์ด๋ป๊ฒ ๊ตฌ์ถํ ๊น ? (1) | 2024.11.12 |
---|---|
Kubeflow๋ก MLOps ํ์ดํ๋ผ์ธ ๊ตฌ์ถํ๊ธฐ: ๊ฐ๋ ๋ถํฐ ์ค์ต๊น์ง (2) | 2024.11.05 |
MLOps ์ ๋ฌธ: ๋จธ์ ๋ฌ๋ ์ด์์ ์๋ก์ด ํจ๋ฌ๋ค์ (2) | 2024.10.25 |