Kubeflow for ML - Chapter 1
Chapter 1: Kubeflow, What It Is and Who It Is For
๐ ๋ณธ ํฌ์คํธ๋ Kubeflow for Machine Learning ์ฑ ์ ๋ฐ์ท/์์ฝํ๋ฉด์ ํ์ํ ๋ด์ฉ์ ์ถ๊ฐํ์ฌ ์์ฑํ์์ต๋๋ค.
- Chapter 1: Kubeflow: What It is and Who It Is For
- Chapter 2: Hello Kubeflow
- Chapter 3: Kubeflow Design: Beyond the Basics
- Chapter 4: Kubeflow Pipelines
- Chapter 5: Data and Feature Preparation
- Chapter 6: Artifact and Metadata Store
- Chapter 7: Training a Machine Learning Model
- Chapter 8: Model Inference
- Chapter 9: Case Study Using Multiple Tools
- Chapter 10: Hyperparameter Tuning And Automated Machine Learning
Kubeflow๋ ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ๊ฐ ํ์ตํ ๋ชจ๋ธ์ ์ ํํํ๊ฑฐ๋ ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ ๋ชจ๋ธ์ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ๋ขฐํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. Kubeflow๊ฐ ํ๋ ์ผ์ Kubernetes ์์์ ์๋ํ๋ ์ฌ๋ฌ ๋๊ตฌ, ํนํ ์คํ ์์ค๋ค์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
Model Development Life Cycle
๋ชจ๋ธ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(Model Development Life Cycle, MDLC)๋ ๋ชจ๋ธ ํ์ต๊ณผ ๋ชจ๋ธ ์ถ๋ก ์ฌ์ด์ ํ๋ฆ ๋๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค. Figure 1-1์ ๋ชจ๋ธ ํ์ต๊ณผ ์ถ๋ก ์ฌ์ด์์ ์ผ์ด๋๋ ์ฐ์์ ์ธ ์ํธ์์ฉ์ ์ ๋ณด์ฌ์ค๋๋ค.
Where Does Kubeflow Fit In?
Kubeflow๋ MDLC์ ๋ชจ๋ ๋จ๊ณ๋ฅผ ์ํ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋๊ตฌ๋ค์ ๋ชจ์์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ๋๊ตฌ๋ค์ ์ฌ๋ฆฌ์ค(seamless) ํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค. ๊ฐ์ฅ ์ค์ํ ํน์ง์ Kubeflow๊ฐ ์ฌ์ฉ์๊ฐ MDLC์ ๊ฐ ์ปดํฌ๋ํธ(component)๋ฅผ ํตํฉ๋ ์๋ํฌ์๋(end-to-end) ํ์ดํ๋ผ์ธ์ผ๋ก ๋น๋ํ ์ ์๊ฒ ํด์ค๋ค๋ ์ ์ ๋๋ค. ์ด๋ Kubeflow๋ ์ปจํ ์ด๋ํ์ ํ์ฅ์ฑ(scalability), ๊ทธ๋ฆฌ๊ณ ํ์ดํ๋ผ์ธ์ ์ด์์ฑ(portability)๊ณผ ์ฌํ์ฑ(repeatability)์ ์ํด Kubernetes๋ฅผ ํ์ฉํฉ๋๋ค.
์ฌ๊ธฐ์ MDLC๋ ๋ค์์ ๋จ๊ณ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ํ์ (Data Exploration)
- ํผ์ฒ ์ค๋น (Feature Preparation)
- ๋ชจ๋ธ ํ์ต/ํ๋ (Model Training/Tuning)
- ๋ชจ๋ธ ์๋น (Model Serving)
- ๋ชจ๋ธ ํ ์คํ (Model Testing)
- ๋ชจ๋ธ ๋ฒ์ ๋ (Model Versioning)
Why Containerize? Why Kubernetes?
์ปจํ ์ด๋๋ฅผ ํตํ ๊ฒฉ๋ฆฌ ํ๊ฒฝ์ ๋จธ์ ๋ฌ๋ ๋จ๊ณ๋ฅผ ์ด์ํ ์ ์๊ณ ์ฌํํ ์ ์๊ฒ ํด์ค๋๋ค. ์ฝ๊ฒ ๋งํด์ ์ปจํ ์ด๋ํํ๋ฉด โ์ด๊ฑด ๋ด ์ปดํจํฐ์์๋ ๋์๋๋ฐ ์ฌ๊ธฐ์ ์๋๋ค?โ ๊ฐ์ ์ํฉ์ ์ค์ผ ์ ์์ฃ . ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ํ์ดํ๋ผ์ธ์ ํน์ ํด๋ผ์ฐ๋์ ์ฝ๋งค์ด์ง ์๊ณ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. Google Cloud์์๋ Amazon AWS์์๋ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ๋๋ค.
์ปจํ ์ด๋์ ๋ํ ๊ฐ๋ ์ ์ตํ๊ธฐ์๋ subicura๋์ ์ฟ ๋ฒ๋คํฐ์ค ์๋ด์๋งํ ๊ฒ์ด ์๋ค๊ณ ๋ด ๋๋ค. ์์ธํ ๋ด์ฉ์ ํด๋น ๊ธ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค. :smiley:
Kubeflowโs Design and Core Components
Kubeflow๋ ์์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ML ์ค๋ฌด์๊ฐ ๋ณธ์ธ์ด ์ํ๋ ๋๋ก ์์ฒด ์คํ์ ๊ตฌ์ฑํ๊ณ ์ปค์คํฐ๋ง์ด์ฆํ ์ ์์ต๋๋ค. ๋ํ Kubeflow๋ ๊ฒฐํฉ์ฑ (composability), ์ด์์ฑ (portability), ํ์ฅ์ฑ (scalability)์ ํตํด ML ์์คํ ์ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- ๊ฒฐํฉ์ฑ
- Kubeflow์ ํต์ฌ ์ปดํฌ๋ํธ๋ ์ด๋ฏธ ML ์ค๋ฌด์๋ค์ด ์์ฃผ ์ฌ์ฉํ๋ ๊ฒ๋ค์ ๋๋ค. Kubeflow๋ ์ด ๋๊ตฌ๋ค์ ML ๊ฐ ๋จ๊ณ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ๊ฑฐ๋ ์๋ ํฌ ์๋ ํ์ดํ๋ผ์ธ์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ ๋์์ค๋๋ค.
- ์ด์์ฑ
- ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๋์์ธ๊ณผ Kubernetes, ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ํคํ ์ณ์ ์ฅ์ ์ ํตํด Kubeflow๋ ์ฌ์ฉ์์๊ฒ ํน์ ํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์๊ตฌํ์ง ์๋๋ก ํฉ๋๋ค. ์ฌ์ฉ์๋ ๋ณธ์ธ์ ํ๊ฒฝ์์ ์คํํ๊ณ ํ๋กํ ํ์ดํํ ๋ค์, ํ๋ก๋์ ํ๊ฒฝ์ ์ฝ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ํ์ฅ์ฑ
- Kubernetes๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ Kubeflow๋ ํด๋ฌ์คํฐ์ ์๊ตฌ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์์คํ ์ ํ์ฅํ ์ ์์ต๋๋ค.
- ํนํ ํ์ฅ์ฑ์ ๋ฐ์ดํฐ๊ฐ ๊ณ์ ๋ง์์ง๋ ํ๊ฒฝ์์ ํฐ ๋์์ด ๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก 2021๋ 5์ ๊ตฌ๊ธ์์ ๋ฐ๊ฐํ ๋ฐฑ์์ธ Practitioners guide to MLOps ์์๋ MLOps์ ํต์ฌ ์์๋ค์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค.
๋ค์์ Kubeflow์ ์ปดํฌ๋ํธ๋ค์ ๋๋ค.
- Data Exploraation with Notebooks
- ๋ฐ์ดํฐ ํ์์ MDLC์ ์์์ ์ผ๋ก ๋ณดํต Jupyter Notebook์ ์ด์ฉํฉ๋๋ค.
- Data/Feature Preparation
- ML ๋ชจ๋ธ์ ๋ง๋ค ๋ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ก ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ถ์ถํ๊ณ ๋ณํํ๊ณ ๋ถ๋ฌ์ค๋ ์์ ์ ํฌํจํฉ๋๋ค.
- Kubeflow์์๋ Apache Spark์ TensorFlow Transform์ ์ง์ํฉ๋๋ค. Apache Spark๋ ๋๊ท๋ชจ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ ์ฉ์ดํ๋ฉฐ, TensorFlow Transform์ TensorFlow Serving๊ณผ์ ํตํฉ์ ํตํด ์ถ๋ก ์์ ์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
- Training
- Kubeflow์์๋ ๋ค์์ ํ๋ ์์ํฌ๋ฅผ ์ง์ํฉ๋๋ค.
- TensorFlow
- PyTorch
- Apache MXNet
- XGBoost
- Chainer
- Caffe2
- Message passing interface (MPI)
- Kubeflow์์๋ ๋ค์์ ํ๋ ์์ํฌ๋ฅผ ์ง์ํฉ๋๋ค.
- Hyperparameter Tuning
- Katib์ด ์์ต๋๋ค. Katib์ AutoML์ ์ํ Kubernetes-native ํ๋ก์ ํธ์ ๋๋ค. ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋๊ณผ ์ผ๋ฆฌ ์คํํ (Early stopping), ๋ด๋ด ์ํคํ ์ฒ ์์น (Neural Architecture Search, NAS)๋ฅผ ์ง์ํฉ๋๋ค.
- Model Validation
- Inference/Prediction
- Kubeflow๋ KFServing ๊ฐ์ ์๋น์ ์ํ ๋ฉํฐํ๋ ์์ํฌ ์ปดํฌ๋ํธ๋ฅผ ์ง์ํ๋ฉฐ, ์ถ๊ฐ๋ก TensorFlow Serving, Seldon Core, BentoML ๊ฐ์ ๊ธฐ์กด ์๋น ํด๋ ์ง์ํฉ๋๋ค.
- Pipelines
- ์์ ์ปดํฌ๋ํธ๋ ๋ชจ๋ MDLC์ ๊ฐ ๋จ๊ณ์ ๋์ํ๋ ์ปดํฌ๋ํธ์ด๋ฉฐ, Kubeflow๋ MDLC๋ฅผ ML ํ์ดํ๋ผ์ธ์ผ๋ก ์ทจ๊ธํ์ฌ ๊ฐ ๋ ธ๋๊ฐ ML ์ํฌํ๋ก์ ๋จ๊ณ์ธ ๊ทธ๋ํ๋ก ๊ตฌํํฉ๋๋ค.
- Kubeflow ํ์ดํ๋ผ์ธ์ ์ฌ์ฉ์๊ฐ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํฌํ๋ก์ฐ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋๋ก ํ๋ ์ปดํฌ๋ํธ์ ๋๋ค.