MLOps๋ DevOps์ ๋ชฉํ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์๊ฒ ์๋น์ค๋ฅผ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๋ ๊ฐ๋ฐ ๋ฌธํ์ ๋๋ค. DevOps์์๋ โ์ฝ๋ ํตํฉ, ํ ์คํธ, ๋ฐฐํฌ, ํ ์คํธ, ๋ชจ๋ํฐ๋งโ ์ ํ์ดํ๋ผ์ธ์ ์๋ํํ์ฌ ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํฉ๋๋ค. MLOps๋ DevOps์ ML์ด ์ถ๊ฐ๋ ๊ฒ์ ๋๋ค.
- ๋จธ์ ๋ฌ๋์ ํ์ต, ๋ฐฐํฌ, ์ ์ฅ ์๋ํ ๋ผ์ธ ๊ตฌํ.
- ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ์ ์ํํธ์จ์ด ์์ง๋์ด์๊ฒ ํ์ ํ๊ฒฝ์ ์ ๊ณต
- Income Dataset
- Perform Binary Classification to predict if Salary is greater than $50K
- git-flow : github flow ์ฑํ
- github์์ ์ฌ์ฉํ issue์ pr ํ ํ๋ฆฟ ์์ฑ
- pre-commit์ ํตํ code ์คํ์ผ ํต์ผ
- python 3.9.7
- gcp๋ฅผ ํตํด์ unbuntu20.04 ์๋ฒ์์ฑ(ssh์ ์)
- load_model, preprocessing, labeling ๋ฑ๋ฑ์ ํจ์ ์์ฑ
- issue : joblib๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด์ ๋ก์ปฌ์ ์๋ ํฐ ์ฌ์ด์ฆ์ model์ ๋ฐ๋ก ์๋ฒ์์ ๋ก๋ํ ๊ฒฝ์ฐ ์๋ ๋ฌธ์ ๋ฐ์
- docker๋ฅผ ํตํด์ postgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธํ
- postgreSQL์ ๋ฐ์ดํฐ ์ ์ฌ
- reidsai๋ฅผ ํตํ model serving
- exception ์ ์ ๋ฐ handler ์์ฑ
app
โโโ main.py
โโโ config.py
โโโ db
โ โโโ database.py
โ โโโ models.py
โโโ routers
โ โโโ income.py
โโโ schemas
โ โโโ request.py
โ โโโ response.py
โโโ service
โ โโโ app_service.py
โโโ utils
โโโ app_exceptions.py
โโโ handlers.py
โโโ request_exceptions.py
โโโ service_result.py
- Income ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ csv ํ์ผ์ด๋ผ ์ ํ์ ์
- ์ค์๊ฐ ๋ฐ์ดํฐ ์์ง์ ์ํด Income Dataset -> Upbit์ BTC, ETH, ADA ์ฝ์ธ ์์ง
- Mlflow๋ฅผ ์ด์ฉํ์ฌ ์คํ๊ด๋ฆฌ, ๋ชจ๋ธ๊ด๋ฆฌ
- Minio๋ฅผ ์ด์ฉํ ๋ชจ๋ธ ์ ์ฅ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉ
- GitHub Actions๊ณผ Docker Compose๋ฅผ ์ด์ฉํ์ฌ CI CD ์คํ
- ๋ชจ๋ธ์ ๋ ๋น ๋ฅธ ์ฃผ๊ธฐ๋ก ์๋นํ๋ฉด์๋ ์ ๋ขฐ๋ ๋ฐ ์ ํ๋๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋ชฉํ
- Airflow๋ฅผ ํ์ฉํ์ฌ BTC, ETH, ADA 4์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ์ดํฐ ์์ง๊ณผ ๊ฒ์ฆ ์๋ํ
- Airflow๋ฅผ ํ์ฉํ์ฌ ์์ง๋ ๋ฐ์ดํฐ ์๋ ํ๋ จ
main.py
app
โโโ config.py
โโโ db
โ โโโ database.py
โ โโโ models.py
โโโ routers
โ โโโ income.py
โโโ schemas
โ โโโ request.py
โ โโโ response.py
โโโ service
โ โโโ app_service.py
โโโ utils
โ โโโ app_exceptions.py
โ โโโ handlers.py
โ โโโ request_exceptions.py
โ โโโ service_result.py
coin
โโโcoin_preict.py
โโโcoin_service.py
โโโdata_collection.py
โโโdata_verification.py
โโโutiles.py
โโโconfig.py
dags
โโโbtc_flow.py
โโโeth_flow.py
โโโada_flow.py