์์ ๊ฒ์๊ธ์์ ML์ ์๋ํํ๊ณ ์ด์ํ๋๋ฐ ํ์ฉํ๊ธฐ ์ํด MLOps ๊ธฐ์ ์ด ์ฌ์ฉ๋๋ค๊ณ ํ์ต๋๋ค. ์ด๋ฒ ๊ฒ์๊ธ์์๋ MLOps๊ฐ ์ ์ฉ๋๊ธฐ ์ํด์๋ ๋ฌด์์ด ํ์ํ์ง ์ดํด๋ณด๋ ค ํฉ๋๋ค.
Machine Learning Operations (MLOps):Overview, Definition, and Architecture (2022)
์์ ์ฐ๊ตฌ์์ MLops์ ์์น๊ณผ ๊ตฌ์ฑ์์, ์ญํ ๋ค์ ๋ํด์ ์์ธํ๊ฒ ์๊ฐํ๊ณ ์์ต๋๋ค. ๋ฌธํ ๊ฒํ ์ MLOps Tool ์กฐ์ฌ, ์ ๋ฌธ๊ฐ์ ์ธํฐ๋ทฐ๋ฅผ ํตํด์ MLOps๋ฅผ ๊ฐ๋
ํํ์์ต๋๋ค. MLOps๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ ์์น๊ณผ ๊ธฐ์ , ์ญํ ๋ค์ ๋ํด์ ์์๋ด
๋๋ค.
Principles
MLOps๋ฅผ ์คํํ๊ธฐ ์ํด์๋ 9๊ฐ์ง ์์น์ด ํ์ํฉ๋๋ค.
- P1. CI/CD ์๋ํ - ํน์ ๋จ๊ณ์ ์ฑ๊ณต์ฌ๋ถ์ ๋ํ ๋น ๋ฅธ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ฌ ์ ์ฒด ์์ฐ์ฑ์ ๋์ ๋๋ค.
- P2. Workflow ์กฐ์ - DAG(Directed Acyclic Graphs) ์ ๋ฐ๋ผ ์์ ์์๋ฅผ ์กฐ์ ํจ. ์์ ๊ฐ ๊ด๊ณ์ ์ข ์์ฑ์ ๊ณ ๋ คํ์ฌ ์คํ ์์ ์ ์ํฉ๋๋ค.
- P3. ์ฌํ์ฑ - ML ์คํ์ ์ฌํํ์์ ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ ๋๋ค.
- P4. ๋ฒ์ ๊ด๋ฆฌ - ๋ฐ์ดํฐ์ ๋ชจ๋ธ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์ผ๋ฉฐ, ์ฌํ์ฑ๊ณผ ์ถ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- P5. ํ์ - ๋ฐ์ดํฐ์ ๋ชจ๋ธ, ์ฝ๋์ ๋ํด ํ์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- P6. ๋ฐ๋ณต์ ์ธ ML ํ์ต ๋ฐ ํ๊ฐ - ์๋ก์ด feature ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ML ๋ชจ๋ธ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฌํ์ต ํ ์ ์๋ค. ๋ชจ๋ํฐ๋ง๊ณผ ํผ๋๋ฐฑ, ์๋ํ๋ ํ์ดํ๋ผ์ธ์ผ๋ก ์ง์์ ์ธ ํ์ต์ด ๊ฐ๋ฅํ๋ค. ์ฐ์์ ์ธ ํ์ต์ ๋ชจ๋ธ ํ์ง ํ๊ฐ๋ ํฌํจํฉ๋๋ค.
- P7. ML ๋ฉํ๋ฐ์ดํฐ ์ถ์ /๋ก๊น - ML ์ํฌํ๋ก์ฐ ์์ ์ ๋ํด ์ถ์ ๊ณผ ๊ธฐ๋ก์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ชจ๋ธ์ ๋ฉํ๋ฐ์ดํฐ, ๋ฐ๋ณต์ ์ธ ํ์ต ๋ด์ฉ๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ๊ธฐ๋ก๋ฉ๋๋ค.
- P8. ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง -์ ์ฌ์ ์ธ ์ค๋ฅ์ ๋ณํ๋ฅผ ํ์งํ๊ธฐ ์ํด ๋ชจ๋ธ, ์ฝ๋, ๋ฐฐํฌ ์ฑ๋ฅ(ex ์ ํ๋)๋ฑ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ๊ฐํฉ๋๋ค.
- P9. ํผ๋๋ฐฑ ๋ฃจํ - ํผ์ฒ ์์ง๋์ด๋ง ๋จ๊ณ๊น์ง ํผ๋๋ฐฑ ๋ฃจํ, ๋ชจ๋ธ ๋ฐฐํฌ ์ฑ๋ฅ ๊ด์ฐฐ ๋ฃจํ์ ๊ฐ์ด ํต์ฐฐ๋ ฅ์ ํค์ฐ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
MLOps์ ์์น์ ๋ํด์ ์ดํด๋ณด์์ต๋๋ค. ๋ค์์ผ๋ก๋ MLOps ๊ธฐ์ ๊ตฌ์ฑ์์๋ฅผ ์์๋ด ๋๋ค.
Technical Components
MLOps๋ฅผ ์ด๋ฃจ๋ ๊ธฐ์ ๊ตฌ์ฑ ์์๋ ์๋์ ๊ฐ์ต๋๋ค. ๊ฐ ํญ๋ชฉ ์์ ์๋ P_ ๋ ์์ ์ดํด๋ณธ ์ด๋ค ์์น์ ํด๋นํ๋ ๊ธฐ์ ๊ตฌ์ฑ์์์ธ์ง ๋ํ๋ ๋๋ค.
- C1. CI/CD ๊ตฌ์ฑ์์ (P1, P6, P9) - DevOps์์๋ ๋ค๋ฃจ๋ continuous integration, continuous delivery, and continuous deployment ๊ฐ MLOps์์๋ ํ์ํฉ๋๋ค. ๋น๋๋ถํฐ ํ ์คํธ, ๋ฐฐํฌ๊น์ง ์ํํฉ๋๋ค.
- C2. ์์ค์ฝ๋ ์ ์ฅ์ (P4, P5) - ์์ค์ฝ๋๋ฅผ ์ ์ฅํ๊ณ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. Bitbucket, GitLab, Github, Gitea ๋ฑ์ด ์์ต๋๋ค.
- C3. Workflow Orchestration Component (P2, P3, P6) - DAG(Directed Asyclic Graph)๋ฅผ ํตํด์ ML ์ํฌํ๋ก์ฐ์ ์์ ์ค์ผ์คํธ๋ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. Airflow, Kubeflow, Luigi, SageMaker ๋ฑ์ด ์์ต๋๋ค.
- C4. Feature Store System(P3, P4) - ๋ฐ์ดํฐ ์ ์ฅ์์์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์๋ ์์ง๋ง, ๋ฎ์ ์์ธก ์ง์ฐ ์๊ฐ์ ๋ณด์ฅํ๊ธฐ ์ํ ์จ๋ผ์ธ ํผ์ฒ ์คํ ์ด์ ์คํ์ ์ํ ์คํ๋ผ์ธ ํผ์ฒ ์คํ ์ด๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. AWS Feature Store, Tecton.ai, Hopswork.ai ๋ฑ์ด ์์ต๋๋ค.
- C5. ๋ชจ๋ธ ํ์ต ์ธํ๋ผ(P6) - ๋ชจ๋ธ ํ์ต ์ธํ๋ผ์์๋ CPU, RAM, GPU์ ๊ฐ์ ๊ณ์ฐ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๊ณ , ์ผ๋ฐ์ ์ผ๋ก ๋ถ์ฐํ ์ธํ๋ผ๊ฐ ๊ถ์ฅ๋ฉ๋๋ค. Kubernetes, Red Hat OpenShift ๋ฑ์ด ์์ต๋๋ค.
- C6. ๋ชจ๋ธ ๋ ์ง์คํธ๋ฆฌ(P3, P4) - ํ์ต๋ ML ๋ชจ๋ธ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ML model artifact์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. MLflow, AWS SageMaker ๋ชจ๋ธ ๋ ์ง์คํธ๋ฆฌ, Azure ML ๋ชจ๋ธ ๋ ์ง์คํธ๋ฆฌ, Neptune.ai ๋ฑ์ด ์์ต๋๋ค. ์ ์ฅ์ ์์๋ก๋ Azure Storage, Google Cloud Storage, S3 ๋ฑ์ด ์์ต๋๋ค.
- C7. ML ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ์(P4, P7) - ML ๋ฉํ๋ฐ์ดํฐ๋ ์๋ฅผ๋ค์ด์ ML ์ํฌํ๋ก์ฐ ํ์ดํ๋ผ์ธ ์์ ์ ๋ํ ๋ค์ํ ์ข ๋ฅ์ ๋ฉํ๋ฐ์ดํฐ ์ถ์ ์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋ชจ๋ธ๋ณ ๋ฉํ ๋ฐ์ดํฐ(ํ์ต ์๊ฐ, ๊ธฐ๊ฐ ๋ฑ), ํ์ต ์์ ๋ฉํ๋ฐ์ดํฐ, ๋ชจ๋ธ๋ณ ๋ฉํ๋ฐ์ดํฐ(๊ฒฐ๊ณผ, ์ฑ๋ฅ, ์ฝ๋ ๋ฑ)์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. Kubeflow Pipeline, SageMaker Pipeline, Azure ML, MLflow ๋ฑ์ด ์์ต๋๋ค.
- C8. ๋ชจ๋ธ ๋ฐฐํฌ ๊ตฌ์ฑ์์(P1) - ์ค์๊ฐ ์์ธก์, ๋๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์์ธก ๋ฐฐ์ธ ๋ฑ์ด ๊ฐ๋ฅํฉ๋๋ค. REST API๋ก ์ ๊ณต์ด ๊ฐ๋ฅํ๊ณ Kubernetes, Docker๋ฅผ ์ด์ฉํ์ฌ ML ๋ชจ๋ธ์ ์ปจํ ์ด๋ํ ํ๋ ๊ฒ์ด๋ Flask์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ต๋๋ค. Kubernetes์ Kubeflow์๋ ๋ฐฐํฌ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๊ณ , ๋ฐฐ์น ์์ธก์ ์ํด์ Spark๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋ผ์ฐ๋ ์๋น์ค์ ์๋ก Microsoft Azure ML REST API, AWS SageMaker Endpoints, IBM Watson Studio, Google Vertex AI prediction service๊ฐ ์์ต๋๋ค.
- C9. ๋ชจ๋ํฐ๋ง ๊ตฌ์ฑ์์(P8, P9) - ๋ฐฐํฌ ์ฑ๋ฅ๊ณผ ๋ชจ๋ธ infrastructure, CI/CD ๋ฑ์ ๋ํ ๋ชจ๋ํฐ๋ง์ ํ์๋ก ํฉ๋๋ค. Prometheus with Grafana, ELK stack(Elasticsearch, Logstash, Kibana), TensorBoard ๋ฑ์ด ์์ต๋๋ค. ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ด ๋ด์ฅ๋ ์๋ก๋ Kubeflow, MLFlow, AWS SageMaker ๋ชจ๋ํฐ๋ง ๋ฑ์ด ์์ต๋๋ค.
์์ MLOps์ ์๋ฆฌ์ ๊ตฌ์ฑ์์๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ๋ค์์ผ๋ก๋ MLOps๋ฅผ ์ํด ์ด๋ ํ ์ญํ ๋ค์ด ํ์ํ์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ญํ ๊ด๊ณ์๋ ์์ด ์ ํํ์ ๊ทธ๋๋ก ์ฌ์ฉํ์์ต๋๋ค.
Roles
- R1. Business Stakeholder (๋น์ทํ ์ญํ : Product Owner, Project Manager) - ML๋ก ๋ฌ์ฑํ๊ณ ์ ํ๋ ๋น์ฆ๋์ค ๋ชฉํ๋ฅผ ์ ์ํ๊ณ , ML ์ ํ์ผ๋ก ๋ฐ์ํ๋ ํฌ์์์ต๋ฅ ๋ฑ ๋น์ฆ๋์ค ์ปค๋ฎค๋์ผ์ด์ ์ ๋ด๋นํฉ๋๋ค.
- R2. Solution Architect (๋น์ทํ ์ญํ : IT Architect) - ์ฒ ์ ํ ํ๊ฐ๋ฅผ ๊ฑฐ์ณ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํ๊ณ ์ฌ์ฉํ ๊ธฐ์ ์ ์ ์ํฉ๋๋ค.
- R3. Data Scientist (๋น์ทํ ์ญํ : ML Specialist, ML Developer) - ๋น์ฆ๋์ค ๋ฌธ์ ๋ฅผ ML ๋ฌธ์ ๋ก ๋ณํํ์ฌ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํ์ดํผ ํ๋ผ๋ฏธํฐ ์กฐ์ ๊ณผ ๊ฐ์ด ๋ชจ๋ธ ์์ง๋์ด๋ง์ ๋ด๋นํฉ๋๋ค.
- R4. Data Engineer (๋น์ทํ ์ญํ : DataOps Engineer) - ๋ฐ์ดํฐ ๋ฐ ํผ์ณ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. feature store system์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์์งํฉ๋๋ค.
- R5. Software Engineer - ์ํํธ์จ์ด ์ค๊ณ ํจํด, ๊ฐ๋ฐ ์ง์นจ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ์ฉํ์ฌ ์ ํ์ ์ค๊ณํฉ๋๋ค.
- R6. DevOps Engineer - ๊ฐ๋ฐ๊ณผ ์ด์ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ฐ๊ณ ์ ์ ํ CI/CD์๋ํ, ML ์ํฌํ๋ก์ฐ ์กฐ์ , ๋ชจ๋ธ ๋ฐฐํฌ, ๋ชจ๋ํฐ๋ง์ ๋ด๋นํฉ๋๋ค.
- R7. ML Engineer/MLOps Engineer - R3, R4, R5, R6 ์ ๋์ ์์ญ์์ ๋น์ทํฉ๋๋ค. ML ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๊ณ ์ด์ํ๋ฉฐ, ์๋ํ๋ ML ์ํฌํ๋ก์ฐ ํ์ดํ๋ผ์ธ๊ณผ ๋ชจ๋ธ์ ํ๋ก๋์ ๋ฐฐ์น๋ฅผ ๊ด๋ฆฌํ๊ณ , ๋ชจ๋ธ๊ณผ ML์ธํ๋ผ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
์ด๋ฒ ๊ฒ์๊ธ์์๋ MLOps์ ์์น๊ณผ ๊ธฐ์ ์์, ์ญํ ์ ๋ํด์ ์ดํด๋ณด์์ต๋๋ค. ํ์ํ ๊ธฐ์ ๊ตฌ์ฑ์์๋ ๋ง๊ณ ์ญํ ๋ค๋ ๋ค์ํ๋ฐ์. ๋ค์ ๊ฒ์๊ธ์์๋ ๊ฐ ์์๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง ์ํคํ ์ฒ๋ฅผ ํตํด ์ดํดํด๋ด ๋๋ค. ML ์๋ช ์ฃผ๊ธฐ์ ๊ฐ ๋จ๊ณ๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋์ด ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
reference
Dominik Kreuzberger and Niklas Kühl and Sebastian Hirschl (2022) Machine Learning Operations (MLOps): Overview, Definition, and Architecture
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
airflow ์ฌ์ฉ๊ธฐ (0) | 2023.12.05 |
---|---|
[airflow] ubuntu ์๋ฒ์ airflow ์๋น์ค ๋ฑ๋กํ๊ธฐ (0) | 2023.11.18 |
[python] segno ํจํค์ง๋ฅผ ์ด์ฉํ์ฌ ๋๋ง์ QR์ฝ๋ ๋ง๋ค๊ธฐ (0) | 2023.11.14 |
[MLOps] MLOps์ ์ํคํ ์ฒ์ ์ํฌํ๋ก์ฐ (0) | 2023.11.08 |
[MLOps] MLOps ์ํคํ ์ฒ ์ดํด๋ณด๊ธฐ (0) | 2023.11.08 |