2022. 4. 16. 23:54ใ๐ Data Engineering/MLOps
์ด๋ฒ ํฌ์คํ ์ MLflow์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋์ธ Tracking์ด๋ค.
MLflow ์คํํ ๊ฒ๋ค์ ๋ฐ์ดํฐ๋ก ๋จ๊ธฐ๋ ๊ธฐ๋ฅ์ด๋ฉฐ,
์ด๋์/ ์ด๋ค ๊ฒ์/ ์ด๋ป๊ฒ Tracking ํ๋์ง ํบ์๋ณด์.
๋ง์ฝ, MLflow์ ๊ฐ๋ ์ ๋จผ์ ์๊ณ ์ถ๋ค๋ฉด ์ด๊ณณ์ ๋ค์๋ค ์ค์.
[์ด์ ํฌ์คํ : https://mengu.tistory.com/16?category=927678 ]
MLflow Tracking
is organized around the concept of runs, which are executions of some piece of data science code. Each run records the following information
์ฐธ๊ณ URL - https://www.mlflow.org/docs/latest/tracking.html
Tracking ์ ์ฅ ๋ฐ์ดํฐ ์ข ๋ฅ & ์ ์ฅ์
1) Code Version
2) Start & End Time
3) Source
4) Parameters
5) Metrics
6) Artifacts
Tracking์ ํ๋ฉด ์ผ๋จ ๋ก์ปฌ ํด๋(mlruns)์ ์ ์ฅ๋๋ค. ํ์ง๋ง SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค, Tracking server๋ฅผ ์ค์ ํ์ฌ ์ด๊ณณ์ ์ ์ฅ๋๋๋ก ํ ์ ์๋ค.
1) Experiments ๋ง๋ค๊ธฐ
๋จผ์ , Tracking์ ํ๊ธฐ ์ ์ ์คํ์ค์ ๋ง๋ค์ด์ผ ํ๋ค. ๊ทธ ์์์ ํํ ๊ฒ๋ค์ด Tracking ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
$ export MLFLOW_EXPERIMENT_NAME=[Experiment name]
$ mlflow experiments create --experiment-name [Experiment name]
์์ ๋ช ๋ น์ด๋ฅผ ํตํด, ์ํ๋ ๋๋ ํฐ๋ฆฌ์ ์คํ์ค์ ๊ฐ์คํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ Tracking ๋๋ ๋ฐ์ดํฐ๋ค์ /mlruns/{์คํ์ค ๋ฒํธ}์ ์ ์ฅ๋๋ค.
base.py ํ์ผ์ ํ๋ ๋ง๋ค์ด์ ๋ค์ ์ฝ๋๋ฅผ ์ ๋ ฅํด์ฃผ์.
# Launch a run. The experiment is inferred from the MLFLOW_EXPERIMENT_NAME environment
# variable, or from the --experiment-name parameter passed to the MLflow CLI (the latter
# taking precedence)
with mlflow.start_run():
mlflow.log_param("a", 1)
mlflow.log_metric("b", 2)
$ python base_ml.py
ํ์ผ์ ์คํํ๋ฉด /mlruns/0/ ์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
$ mlflow ui
INFO:waitress:Serving on http://127.0.0.1:5000
MLflow ui์์๋ ์ Tracking ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'๐ Data Engineering > MLOps' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MLOps] MLflow ์์ & ๊ฐ๋ ์ ๋ฆฌ (0) | 2022.04.14 |
---|