- 1. ํ๋ก์ ํธ ์๊ฐ
- 2. ํ๋ก์ ํธ ์คํํด๋ณด๊ธฐ
- 3. Phase2(2021.10.06 ~ 2021.11.13)
- 4. Phase1(2021.08.28 ~ 2021.10.06)
์ ํฌ ํ๋ก์ ํธ๋ ์ฌ๋ฌ Phase๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ํ์ฌ ๋จ๋ฝ์์ ๊ฐ Phase์ ๋ํ์ฌ ๊ฐ๋ตํ ์ค๋ช ํ์๊ณ , ๊ฐ ๋จ๊ณ์์ ๊ตฌํํ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ๋ํ ์์ธํ ์ค๋ช ์ ์๋์ ๋ฐ๋ก ๊ธฐ์ ํ์์ต๋๋ค.
Phase 2
- Phase2์์๋ MLOps level 1์ ๊ตฌํํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์์ต๋๋ค.
- Git Action๊ณผ Kubernetes๋ฅผ ์ด์ฉํ์ฌ CD/CT๋ฅผ ๋์ ํ์์ต๋๋ค.
- hyperparameter tuning process๋ฅผ NNI์์ ray๋ฅผ ์ด์ฉํด ๊ด๋ฆฌํ๋ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค. ์ด๋ก์ธํ์ฌ ํ์ํ์ง ์๊ฒ๋ ์ฝ๋๋ค์ด ์๊ฒจ๋ฌ๊ณ ๋ชจ๋ deprecated๋ก ์ด๋ํ์์ต๋๋ค.
- Workflow๊ด๋ฆฌ๋๊ตฌ๋ก prefect๋ฅผ ๋์ ํ์์ต๋๋ค.
- predict API๋ฅผ ์ฒ์ ํธ์ถํ์์ ๋ ๋ชจ๋ธ์ ๋ก๋ฉํ๋ ์๊ฐ์ด ๊ธธ์ด์ ธ ํ๋ฒ ํธ์ถ๋ ๋ชจ๋ธ์ ์ผ์ ์๊ฐ ์บ์ฑํด๋๋๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.
- ํด๋ฌ์คํฐ ๋ชจ๋ํฐ๋ง์ ์ํด prometheus์ grafana๋ฅผ ๋์ ํ์์ต๋๋ค.
2021.10.06 ~ 2021.11.13
๊ธฐ๊ฐ๋์ ์งํ๋์์ผ๋ฉฐ ํ์ฌ ๊ฐ๋ฐ์ข ๋ฃ๋์์ต๋๋ค.
Phase 1
- Phase 1์์๋ MLOps level 0๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๋ ธ๋ ฅํ์์ต๋๋ค.
- NNI๋ฅผ ์ด์ฉํ์ฌ hyperparameter tuning์ ์งํํ๋ฉฐ ํ์ต๋ ๋ชจ๋ธ์ ๋ํ predict API์ ๋ชจ๋ธํ์ต ํ์ดํ๋ผ์ธ์ ์คํ์ํฌ ์ ์๋ train API๋ฅผ ์ ๊ณตํฉ๋๋ค.
2021.08.28 ~ 2021.10.06
๊ธฐ๊ฐ๋์ ์งํ๋์์ผ๋ฉฐ ํ์ฌ ๊ฐ๋ฐ์ข ๋ฃ๋์์ต๋๋ค.
Phase2 ํ๋ก์ ํธ ์คํํด๋ณด๊ธฐ
Phase1 ํ๋ก์ ํธ ์คํํด๋ณด๊ธฐ
Phase2 ๋จ๊ณ์์๋ MLOps level 1์ ๊ตฌํํ๊ธฐ ์ํ์ฌ ๋ ธ๋ ฅํ์์ต๋๋ค.
Model artifacts
- MLflow๋ฅผ ์ด์ฉํ์ฌ Google Cloud Storage์ ์ ์ฅํฉ๋๋ค.
์ฑ๋ฅํ๊ฐ์งํ, ์ ์, ๊ฐ ์คํ์์ ์ฌ์ฉ๋ ํ์ดํผํ๋ผ๋ฏธํฐ
- MLflow๋ฅผ ์ด์ฉํ์ฌ PostgreSQL์ ์ ์ฅํฉ๋๋ค.
AutoML
- Ray tune์ ์ด์ฉํ์ฌ ํ์ดํผํ๋ผ๋ฏธํฐ ์์นญ์ ํฉ๋๋ค.
workflow management
- ์ฒ์์ ํฌ๋ก ํญ์ ๊ณ ๋ คํ์์ง๋ง ์ต์ข ์ ์ผ๋ก Prefect๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- web UI๋ฅผ ์ ๊ณตํ์ฌ ์๋์ผ๋ก workflow๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
- ์ฃผ๊ธฐ์ ์ธ ์คํ์ด ํ์ํ workflow๋ค์ ๋ฆฌ๋
์ค์ ํฌ๋ก ํญ๊ณผ ๋์ผํ ๋ฌธ๋ฒ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
ex) 10 6 * * 1 โ ๋งค์ฃผ ์์์ผ 6์ 10๋ถ์ workflow ์คํ
cluster monitoring
- GCP์์ ์๋น์ค๋ฅผ ์ ๊ณตํ ๋น์ ํด๋ฌ์คํฐ์ ๊ฐ์ฉ์์ ๋ชจ๋ํฐ๋ง์ ์ํ์ฌ Prometheus์ Grafana๋ฅผ ๋์ ํ์์ต๋๋ค.
- ๊ทธ๋ผํ๋์์ ์ ๊ณต์ค์ธ 13077, 315 ๋์๋ณด๋๋ฅผ ์ด์ฉํ์์ต๋๋ค.
- MLํ์ดํ๋ผ์ธ์ ์ํด ์์ฑ๋ ๋ชจ๋ธ์ ์ด์ฉํ inference ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- API server๋ inference ์์ฒญ์ด ๋ค์ด์ค๋ฉด ํด๋น ๋ชจ๋ธ์ด ์บ์ฑ๋์ด์๋์ง ํ์ธํ ํ ์์ผ๋ฉด MLflow server์ ํต์ ํ์ฌ ๋ชจ๋ธ์ ๋ก๋ํ ํ ์์ฒญ์ฌํญ์ ์ฒ๋ฆฌํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- Fast API๋ฅผ ์ด์ฉํ์์ต๋๋ค.
- Phase1์์๋ NNI๋ฅผ ์ฌ์ฉํ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก Ray Tune์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค. ํด๊ฒฐํ ๋ฐฉ๋ฒ
- GCP๋ก ์๋ฒ๋ฅผ ์ด์ ํ ํ MLflow์์ ๋ชจ๋ธ์ ๋ก๋ํ๋ ์๊ฐ์ด ์ฝ 10์ด๋ก ๋งค์ฐ ๋ฆ์ด์ก์ต๋๋ค. ํด๊ฒฐํ ๋ฐฉ๋ฒ
- Phase1์์๋ MLOps level 0๋ฅผ ๊ตฌํํ๊ธฐ ์ํ์ฌ ๋ ธ๋ ฅํ์์ต๋๋ค.
- train์ experiments ํด๋์ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ๋ณธ ํ๋ก์ ํธ์์๋ ์ด๋์ ๋์ ์๋ํ๋ ๋ชจ์ต์ ๊ตฌํํ๊ธฐ ์ํด train์ apiํํ๋ก ์์ฒญํ ์ ์๊ฒ ๊ตฌ์ฑํ์์ต๋๋ค.
- train ์์ฒญ์๋ฐ๋ผ subprocess๋ก NNi๋ฅผ ์ด์ฉํ hyper parameter tuning์ ์งํํฉ๋๋ค.
- ๊ฐ ์คํ๊ฒฐ๊ณผ best๋ชจ๋ธ์ ํ์ฌ ์ ์ฅ๋ ๋ชจ๋ธ ์ฑ๋ฅ๊ณผ ๋น๊ตํ์ฌ db์ ์ง๋ ฌํ์์ผ ์ ์ฅํฉ๋๋ค.
- predict๋
app/api/router/predict.py
์ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.- prediction์์ฒญ์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- temp์์ธก์ ๊ฒฝ์ฐ ์๋ฒ ์์์ ๋ชจ๋ธ์ ๋ก๋ํ์ฌ ๋ชจ๋ธ์ ๋งค๋ฒ ์ฝ์ด์ค์ง ์๋๋ก ํฉ๋๋ค.
- insurance์์ธก์ ๊ฒฝ์ฐ db์์ ๋งค๋ฒ ๋ชจ๋ธ์ ์ฝ์ด์ ์์ธก์ ์งํํฉ๋๋ค.
- logger
- ์์ฒญ, ์คํ์งํ ๋ฑ์ log๋ก ๋จ๊น๋๋ค.