MLflow ํตํฉ ๋์ Ultralytics YOLO
์๊ฐ
์คํ ๋ก๊น ์ ๋ค์ํ ๋ฉํธ๋ฆญ, ๋งค๊ฐ๋ณ์ ๋ฐ ์ํฐํฉํธ๋ฅผ ์ถ์ ํ ์ ์๋ ๋จธ์ ๋ฌ๋ ์ํฌํ๋ก์ฐ์ ์ค์ํ ์ธก๋ฉด์ ๋๋ค. ๋ชจ๋ธ ์ฌํ์ฑ์ ๋์ด๊ณ , ๋ฌธ์ ๋ฅผ ๋๋ฒ๊ทธํ๋ฉฐ, ๋ชจ๋ธ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Ultralytics YOLO ์ค์๊ฐ ๊ฐ์ฒด ๊ฐ์ง ๊ธฐ๋ฅ์ผ๋ก ์ ์๋ ค์ง ๋จธ์ ๋ฌ๋ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ๋ฅผ ์ํ ์คํ ์์ค ํ๋ซํผ์ธ MLflow์์ ํตํฉ์ ์ด์ ์ ๊ณตํฉ๋๋ค.
์ด ๋ฌธ์ ํ์ด์ง๋ Ultralytics YOLO ํ๋ก์ ํธ์ MLflow ๋ก๊น ๊ธฐ๋ฅ ์ค์ ๋ฐ ํ์ฉ์ ๋ํ ์ข ํฉ์ ์ธ ์๋ด์์ ๋๋ค.
MLflow๋ ๋ฌด์์ธ๊ฐ์?
MLflow๋ ์๋ํฌ์๋ ๋จธ์ ๋ฌ๋ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ธ๋ฆญ์ค์์ ๊ฐ๋ฐํ ์คํ ์์ค ํ๋ซํผ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์คํ ์ถ์ , ์ฌํ ๊ฐ๋ฅํ ์คํ์ผ๋ก ์ฝ๋ ํจํค์ง, ๋ชจ๋ธ ๊ณต์ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ํ ๋๊ตฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. MLflow๋ ๋ชจ๋ ๋จธ์ ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํจ๊ป ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
ํน์ง
- ๋ฉํธ๋ฆญ ๋ก๊น : ๊ฐ ์ํฌํฌ๊ฐ ๋๋ ๋์ ๊ต์ก์ด ๋๋ ๋ ๋ฉํธ๋ฆญ์ ๊ธฐ๋กํฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ ๋ก๊น : ํธ๋ ์ด๋์ ์ฌ์ฉ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
- ์ํฐํฉํธ ๋ก๊น : ํ๋ จ์ด ๋๋๋ฉด ๊ฐ์ค์น ๋ฐ ๊ตฌ์ฑ ํ์ผ์ ํฌํจํ ๋ชจ๋ธ ์ํฐํฉํธ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
์ค์ ๋ฐ ์ฌ์ ์๊ตฌ ์ฌํญ
MLflow๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ค์น๋์ด ์์ง ์์ ๊ฒฝ์ฐ pip๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ์ธ์:
Ultralytics ์ค์ ์์ MLflow ๋ก๊น
์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด ์ค์ ์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ผ๋ก ์ ์ด๋ฉ๋๋ค. mflow
ํค๋ฅผ ์
๋ ฅํฉ๋๋ค. ์ฐธ์กฐ ์ค์ ํ์ด์ง์์ ์์ธํ ์ ๋ณด๋ฅผ ํ์ธํ์ธ์.
์ ๋ฐ์ดํธ Ultralytics MLflow ์ค์
Python ํ๊ฒฝ ๋ด์์ update
๋ฉ์๋์ settings
๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค:
์ฌ์ฉ ๋ฐฉ๋ฒ
๋ช ๋ น
-
ํ๋ก์ ํธ ์ด๋ฆ์ ์ค์ ํฉ๋๋ค: ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ํ๋ก์ ํธ ์ด๋ฆ์ ์ค์ ํ ์ ์์ต๋๋ค:
๋๋ project=<project>
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ YOLO ๋ชจ๋ธ์ ํ์ต์ํฌ ๋, ์ฆ yolo train project=my_project
.
-
์คํ ์ด๋ฆ ์ค์ : ํ๋ก์ ํธ ์ด๋ฆ ์ค์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์คํ ์ด๋ฆ์ ์ค์ ํ ์ ์์ต๋๋ค:
๋๋ name=<name>
์ธ์๋ฅผ ์ฌ์ฉํ์ฌ YOLO ๋ชจ๋ธ์ ํ์ต์ํฌ ๋, ์ฆ yolo train project=my_project name=my_name
.
-
๋ก์ปฌ MLflow ์๋ฒ๋ฅผ ์์ํฉ๋๋ค: ์ถ์ ์ ์์ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํฉ๋๋ค:
์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก http://127.0.0.1:5000 ์์ ๋ก์ปฌ ์๋ฒ๊ฐ ์์๋๊ณ ๋ชจ๋ mlflow ๋ก๊ทธ๊ฐ 'runs/mlflow' ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. ๋ค๋ฅธ URI๋ฅผ ์ง์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ์ธ์. MLFLOW_TRACKING_URI
ํ๊ฒฝ ๋ณ์์
๋๋ค.
-
MLflow ์๋ฒ ์ธ์คํด์ค ์ข ๋ฃ: ์คํ ์ค์ธ ๋ชจ๋ MLflow ์ธ์คํด์ค๋ฅผ ์ค์งํ๋ ค๋ฉด ์คํํฉ๋๋ค:
๋ก๊น
๋ก๊น
์ ๋ค์์์ ์ฒ๋ฆฌํฉ๋๋ค. on_pretrain_routine_end
, on_fit_epoch_end
๋ฐ on_train_end
์ฝ๋ฐฑ ํจ์. ์ด๋ฌํ ํจ์๋ ํ์ต ํ๋ก์ธ์ค์ ๊ฐ ๋จ๊ณ์์ ์๋์ผ๋ก ํธ์ถ๋๋ฉฐ ๋งค๊ฐ๋ณ์, ๋ฉํธ๋ฆญ ๋ฐ ์ํฐํฉํธ์ ๋ก๊น
์ ์ฒ๋ฆฌํฉ๋๋ค.
์์
-
์ฌ์ฉ์ ์ง์ ์งํ ๋ก๊น : ์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ์ ์์ ํ์ฌ ๊ธฐ๋กํ ์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
trainer.metrics
์ฌ์ ์ด์ on_fit_epoch_end
๋ฅผ ํธ์ถํฉ๋๋ค. -
์คํ ๋ณด๊ธฐ: ๋ก๊ทธ๋ฅผ ๋ณด๋ ค๋ฉด MLflow ์๋ฒ(์ผ๋ฐ์ ์ผ๋ก http://127.0.0.1:5000)๋ก ์ด๋ํ์ฌ ์คํ์ ์ ํํ๊ณ ์คํํฉ๋๋ค.
-
์คํ ๋ณด๊ธฐ: ์คํ์ ์คํ ๋ด์ ๊ฐ๋ณ ๋ชจ๋ธ์ ๋๋ค. ์คํ์ ํด๋ฆญํ๋ฉด ์ ๋ก๋๋ ์ํฐํฉํธ ๋ฐ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ํฌํจํ ์คํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
MLflow ๋นํ์ฑํ
MLflow ๋ก๊น ์ ๋๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ธ์:
๊ฒฐ๋ก
MLflow ๋ก๊น ํตํฉ( Ultralytics YOLO )์ ๋จธ์ ๋ฌ๋ ์คํ์ ์ถ์ ํ๋ ๊ฐ์ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ํฐํฉํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๊ฐ๋ ฅํ ๋ชจ๋ธ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ MLflow ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.