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 ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
Ultralytics YOLO ์ผ๋ก MLflow ๋ก๊น ์ ์ค์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?
Ultralytics YOLO ์ผ๋ก MLflow ๋ก๊น ์ ์ค์ ํ๋ ค๋ฉด ๋จผ์ MLflow๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. pip๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ ์ ์์ต๋๋ค:
๊ทธ๋ฐ ๋ค์ Ultralytics ์ค์ ์์ MLflow ๋ก๊น
์ ํ์ฑํํฉ๋๋ค. ์ด๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ ์ดํ ์ ์์ต๋๋ค. mlflow
ํค๋ฅผ ์
๋ ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ค์ ๊ฐ์ด๋.
์ ๋ฐ์ดํธ Ultralytics MLflow ์ค์
๋ง์ง๋ง์ผ๋ก ์ถ์ ์ ์ํด ๋ก์ปฌ MLflow ์๋ฒ๋ฅผ ์์ํฉ๋๋ค:
Ultralytics YOLO ์์ MLflow๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฉํธ๋ฆญ๊ณผ ๋งค๊ฐ ๋ณ์๋ฅผ ๊ธฐ๋กํ ์ ์๋์?
Ultralytics YOLO ๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ ์ด๋ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ๋ค์ํ ์งํ, ๋งค๊ฐ๋ณ์, ์ํฐํฉํธ ๋ก๊น ์ ์ง์ํฉ๋๋ค:
- ๋ฉํธ๋ฆญ ๋ก๊น : ๊ฐ ์ํฌํฌ๊ฐ ๋๋ ๋์ ๊ต์ก์ด ์๋ฃ๋ ๋ ์งํ๋ฅผ ์ถ์ ํฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ ๋ก๊น : ํธ๋ ์ด๋ ํ๋ก์ธ์ค์ ์ฌ์ฉ๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
- ์ํฐํฉํธ ๋ก๊น : ํ์ต ํ ๊ฐ์ค์น ๋ฐ ๊ตฌ์ฑ ํ์ผ๊ณผ ๊ฐ์ ๋ชจ๋ธ ์ํฐํฉํธ๋ฅผ ์ ์ฅํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ Ultralytics YOLO ์ถ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
MLflow ๋ก๊น ์ด ํ์ฑํ๋ ํ์๋ ๋นํ์ฑํํ ์ ์๋์?
์, ์ค์ ์ ์ ๋ฐ์ดํธํ์ฌ Ultralytics YOLO ์ ๋ํ MLflow ๋ก๊น ์ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ๋ฐฉ๋ฒ์ CLI ์์ ํ์ธํ ์ ์์ต๋๋ค:
์ถ๊ฐ ์ฌ์ฉ์ ์ง์ ๋ฐ ์ค์ ์ฌ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
Ultralytics YOLO ์ถ์ ์ ์ํด MLflow ์๋ฒ๋ฅผ ์์ํ๊ณ ์ค์งํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
Ultralytics YOLO ์์ ์คํ์ ์ถ์ ํ๊ธฐ ์ํ MLflow ์๋ฒ๋ฅผ ์์ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํฉ๋๋ค:
์ด ๋ช ๋ น์ ๊ธฐ๋ณธ์ ์ผ๋ก http://127.0.0.1:5000 ์์ ๋ก์ปฌ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค. MLflow ์๋ฒ ์ธ์คํด์ค ์คํ์ ์ค์งํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค์ bash ๋ช ๋ น์ ์ฌ์ฉํ์ธ์:
๋ ๋ง์ ๋ช ๋ น์ด ์ต์ ์ ๋ช ๋ น์ด ์น์ ์ ์ฐธ์กฐํ์ธ์.
์คํ ์ถ์ ์ ์ํด MLflow๋ฅผ Ultralytics YOLO ๊ณผ ํตํฉํ๋ฉด ์ด๋ค ์ด์ ์ด ์๋์?
MLflow๋ฅผ Ultralytics YOLO ์ ํตํฉํ๋ฉด ๋จธ์ ๋ฌ๋ ์คํ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋ช ๊ฐ์ง ์ด์ ์ด ์์ต๋๋ค:
- ํฅ์๋ ์คํ ์ถ์ : ๋ค์ํ ์คํ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ฒ ์ถ์ ํ๊ณ ๋น๊ตํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ์ฌํ์ฑ ํฅ์: ๋ชจ๋ ๋งค๊ฐ๋ณ์์ ์ํฐํฉํธ๋ฅผ ๊ธฐ๋กํ์ฌ ์คํ์ ์ฌํํ ์ ์๋์ง ํ์ธํ์ธ์.
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง: ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ์๊ฐํํ์ฌ ๋ชจ๋ธ ๊ฐ์ ์ ์ํ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์์ฌ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค.
Ultralytics MLflow ์ค์ ๋ฐ ํ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์YOLO , Ultralytics YOLO ์ ๋ํ MLflow ํตํฉ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.