MLOps 02: Dagster โ Seamless Data Pipelines & ML Model Management for Machine Learning Engineers ๋ฅผ ์ฝ๊ณ ๋ฒ์ญํ ๋ด์ฉ์ ๋๋ค.
DataOps์ MLOps์ ๋๊ธฐ
๋จธ์ ๋ฌ๋ ์์ง๋์ด๋ง ํ์ดํ๋ผ์ธ์ ํฌ๊ฒ ์ธ ๊ฐ์ง ๋จ๊ณ๋ก ๋๋ ์ ์์ต๋๋ค:
- ๋ฐ์ดํฐ ์ค๋น
- ๋ชจ๋ธ ํ์ต
- ๋ชจ๋ธ ์๋น์ค ๋ ์ด์ด
๋ชจ๋ธ์ ์๋น์คํ๋ ์ต์ข
๋จ๊ณ๊น์ง ์ํํ๊ฒ ์๋ ํฌ ์๋ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ํํ๊ธฐ ์ํด์๋ ์ค์ผ์คํธ๋ ์ด์
ํ๋ ์์ํฌ๊ฐ ํ์ํฉ๋๋ค. ํ์ํ ๊ธฐ๋ฅ์ผ๋ก๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค: ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG), ์ค์ผ์ค๋ง, ์ํฌํ๋ก์ฐ ๊ด๋ฆฌ, ์ค๋ฅ ์ฒ๋ฆฌ์ ์ฌ์๋ ๋ฉ์ปค๋์ฆ, ๋ชจ๋ํฐ๋ง ๋ฐ ๋ก๊น
.
ํ์ฌ ๋ค์ํ ์ค์ผ์คํธ๋ ์ด์
ํ๋ ์์ํฌ๊ฐ ์กด์ฌํ๋ฉฐ, ์คํ ์์ค ์๋ฃจ์
๋ถํฐ AWS์ Microsoft Azure์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ด์ฅ๋ ์๋ฃจ์
๊น์ง ํญ๋๊ฒ ์ ๊ณต๋ฉ๋๋ค. ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ์ค์ผ์คํธ๋ ์ด์
ํ๋ ์์ํฌ ์ค ํ๋๋ Airflow์ด์ง๋ง, ์ต๊ทผ ๋ ์ค๋ฅด๋ ํ๋ ์์ํฌ์ธ Dagster๋ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ฐ๋ฐ์ ์ ์ฉํ๊ณ ํ๋ถํ ์ฌ๊ณ ๋ฐฉ์์ ์ ๊ณตํฉ๋๋ค.
์ด์ ์๋ ์ด๋ฌํ ์ค์ผ์คํธ๋ ์ด์
ํ๋ ์์ํฌ๊ฐ ์ฃผ๋ก ์์
๊ณผ ์ด์์ ์ง์ค๋์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋ชจ๋ธ ์ด์๊ณผ ๋ฐ์ดํฐ ์ด์์ ์ข
์ข
๊ฐ๊ณผ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ํ
์ด๋ธ์ด๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ฒ๋ผ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง, ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์์ฐ(asset)์ด๋ผ๋ ๊ฐ๋
์ด ๋์
๋๋ฉด์, ๋จ์ํ ์์
๊ณผ ์ด์์๋ง ์ง์คํ๋ ๊ฒ์์ ๋ฐ์ดํฐ์๋ ์ด์ ์ ๋ง์ถ ์ ์๊ฒ ๋์์ต๋๋ค.
๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์์ Dagster ์์ฐ ๊ตฌํ
Dagster ์์ฐ์ด ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ด๋ป๊ฒ ๊ตฌํ๋ ์ ์๋์ง ์ค๋ช
ํ๊ธฐ ์ํด ์์๋ก ๋๋ฏธ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ์์ ์์๋ ๋ ๊ฐ์ ์๋ฅ ์์ฐ(Upstream 1๊ณผ Upstream 2)๊ณผ ํ๋์ ํ๋ฅ ์์ฐ(CombineAsset)์ด ์์ต๋๋ค. Dagster ์์ฐ์ importํ๊ณ @asset ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ง ํ๋ฉด, ํจ์ ์ด๋ฆ์ด ์์ฐ ํค๊ฐ ๋์ด Dagster ํ๋ ์์ํฌ ๋ด์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Dagster๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ํ๋ถํ ์๊ฐํ ๋ฐ ์ฃผ์ ๊ธฐ๋ฅ์ ํตํด ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๊ธฐ์กด ์ค์ผ์คํธ๋ ์ด์
ํ๋ ์์ํฌ ๋ฐ ๊ธฐ์ ์คํ๊ณผ ์ ์ฐํ๊ฒ ํตํฉํ ์ ์์ต๋๋ค. Dagster๋ ๊ฒฝ๋ํ ๋์ด ํด๋ผ์ฐ๋ ๋คํธ์ํฌ์ ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฝ๊ฒ ๋๋ฒ๊น
๋ฐ ํ
์คํธํ ์ ์์ต๋๋ค. ๋ํ, Dagster ์ปค๋ฎค๋ํฐ๋ ํ๋ฐํ๊ฒ ๋ณํํ๋ฉฐ ํ๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ์๊ตฌ ์ฌํญ์ ์ง์์ ์ผ๋ก ์ง์ํ๊ณ ์์ต๋๋ค.
๊ธฐ์กด ๊ธฐ์ ์คํ๊ณผ Dagster ํตํฉ
Dagster๋ MLflow, Airflow ๋๋ DVC์ ๊ฐ์ ๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ํฌํจํ ๊ธฐ์กด ๊ธฐ์ ์คํ๊ณผ ์ฝ๊ฒ ํตํฉํ ์ ์์ต๋๋ค. ์ค์น ํ, Dagster๋ ์ด๋ฌํ ๊ธฐ์ ๋ด์์ ์์ฐ์ ๊ด๋ฆฌํ๊ณ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์น
pip install dagster dagit
์์ฐ ๊ตฌํ
from dagster import materialize
if __name__ == "__main__":
result = materialize(assets=[my_first_asset])
Dagster๋ฅผ ํ์ฉํ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ๋ฒ์ ๊ด๋ฆฌ
Dagster์ ์ฃผ์ ์ฅ์ ์ค ํ๋๋ IOManager ๊ฐ๋
์ ํตํด ๋ค์ํ ๋ฐ์ดํฐ ์์ค ๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ๊ฐ์ํํ ์ ์๋ค๋ ์ ์
๋๋ค. ๊ฐ ์คํ ๋ฆฌ์ง ์ ํ(API, SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ๋ฑ)์ ๋ํด ๋จ์ผ ์ด๋ํฐ๋ฅผ ์์ฑํจ์ผ๋ก์จ, ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ์ ๋ฐ์์ ์ด๋ํฐ๋ฅผ ์ํํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํจ์จ์ ์ธ ๋ชจ๋ธ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํด, Dagster์ ํจ๊ป ํ์ผ ๊ธฐ๋ฐ, Git ๊ธฐ๋ฐ, ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ํํ๋ก๋, ์คํ ๋ฆฌ์ง ์์คํ
์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ํ์ฉํด ๋ชจ๋ธ ๋ฒ์ ์ ์ ์ฅํ๊ณ , ์ด๋ฅผ Dagster ํ๋ซํผ ๋ด์์ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ชจ๋ธ ๋ชจ๋ํฐ๋ง ๋ฐ ๊ฐ์์ฑ ์ง์
Dagster๋ ๋ชจ๋ธ ๋ชจ๋ํฐ๋ง๊ณผ ์๊ฐํ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํฉ๋๋ค. ์๊ฐ์ ๋๊ณ ๋ชจ๋ธ ์ฑ๋ฅ์ ์๊ฐํํจ์ผ๋ก์จ, ๊ฐ์ ์ด ํ์ํ ๋ถ๋ถ๊ณผ ์ต์ ํ ๊ฐ๋ฅ์ฑ์ ํ์
ํ ์ ์์ต๋๋ค. ๋ํ, Dagster๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ ์ฑ๋ฅ์ ๋ํ ์๊ณ๊ฐ์ ์ค์ ํ๊ณ , ์ฑ๋ฅ์ด ํด๋น ์๊ณ๊ฐ ์๋๋ก ๋จ์ด์ง ๋ ๋ชจ๋ธ์ ์๋์ผ๋ก ์ฌํ์ตํ ์ ์๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
ํ๊ฒฝ๋ณ ํ์ง ๋ณด์ฅ ๋ฐ ๋ฐฐํฌ
Dagster๋ ๋ก์ปฌ๊ณผ ํ๋ก๋์ ํ๊ฒฝ ๋ชจ๋์์ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ์ ์ฝ๊ฒ ํ ์คํธํ๊ณ ๋๋ฒ๊น ํ ์ ์๋๋ก ํด์ค๋๋ค. ํ๊ฒฝ ์ค์ ์ ๊ฐ๋ณ์ ์ผ๋ก ๊ตฌ์ฑํจ์ผ๋ก์จ, ๊ฐ๋ฐ์๊ฐ ๋จ๊ณ ์ ํ ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ ๊ณผ์ ์ ๋ฐ์์ ๋ฐ์ดํฐ ํ์ง์ด ์ ์ง๋ฉ๋๋ค.
ํต์ฌ ์์ฝ
๊ฒฐ๋ก ์ ์ผ๋ก, Dagster๋ DataOps ๋ฐ MLOps ๊ตฌํ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ๋ณต์กํ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ด๋ฆฌ ๊ฐ์
- ๊ธฐ์กด ๊ธฐ์ ์คํ๊ณผ์ ์ํํ ํตํฉ
- ์ค๋๋๊ฑฐ๋ ๋ถํ์ํ ์์ฐ ์๋ ์๋ณ
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ ์ก์ ์ํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ IO ๋งค๋์
- ํฅ์๋ ๋ฐ์ดํฐ ํ์ง์ ์ํ ์ฌ์ด ๋๋ฒ๊น ๋ฐ ํ ์คํธ
- ๋ก์ปฌ๊ณผ ํ๋ก๋์ ํ๊ฒฝ์์์ ํจ์จ์ ์ธ ๋ฐฐํฌ
๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ์ ์ฉ์ด์ฑ์ ๊ฐ์ถ Dagster๋ ๋ฐ์ดํฐ ์์ง๋์ด๋ง ๋ฐ ๋จธ์ ๋ฌ๋ ํ์ดํ๋ผ์ธ ๋ด์์ ๋ฐ์ดํฐ ๋ฐ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ์ด์์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
'note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Distributed Job Scheduler system design (0) | 2024.11.14 |
---|---|
MLOps 03: Feast Feature Store โ An In-depth Overview Experimentation and Applica (0) | 2024.11.14 |
MLOps 01: Data testing, why, what and how (0) | 2024.11.14 |
virtualbox ubuntu 22.04์ elastic search ์ค์น ํ ์๊ฒฉ ์์ฒญ ํ ์คํธ (0) | 2024.10.10 |
Backend for Frontend (BFF) Architecture ๋ฒ์ญ (0) | 2024.10.02 |