YOLO26 ๐ AzureML์์ ์ฌ์ฉํ๊ธฐ#
Azure๋ ๋ฌด์์ธ๊ฐ์?#
Azure๋ ์กฐ์ง์ด ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ผ์ฐ๋๋ก ์ํฌ๋ก๋๋ฅผ ์ด์ ํ ์ ์๋๋ก ์ค๊ณ๋ Microsoft์ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. ์ปดํจํ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์, ๋จธ์ ๋ฌ๋, ๋คํธ์ํน์ ๋น๋กฏํ ๋ชจ๋ ๋ฒ์์ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก, ์ฌ์ฉ์๋ ์ด๋ฌํ ์๋น์ค ์ค ํ์ํ ๊ฒ์ ์ ํํ์ฌ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ํ์ฅํ๊ฑฐ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์ ์คํํ ์ ์์ต๋๋ค.
Azure Machine Learning(AzureML)์ด๋ ๋ฌด์์ธ๊ฐ์?#
Azure Machine Learning(AzureML)์ ๋๊ท๋ชจ๋ก ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ตฌ์ถ, ํ์ต ๋ฐ ๋ฐฐํฌํ๊ธฐ ์ํ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋๋ค. ์๋ํ๋ ๋จธ์ ๋ฌ๋, ๋๋๊ทธ ์ค ๋๋กญ ๋ฐฉ์์ ๋ชจ๋ธ ํ์ต, ๋ชจ๋ธ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์ ํ ์ ์ดํ ์ ์๋ Python SDK๋ฅผ ์ ๊ณตํฉ๋๋ค.
AzureML์ YOLO ์ฌ์ฉ์์๊ฒ ์ด๋ค ์ด์ ์ ์ ๊ณตํ๋์?#
AzureML์ ์ฌ์ฉํ๋ฉด ๋น ๋ฅธ ํ๋กํ ํ์ ๋ถํฐ ๋๊ท๋ชจ ์คํ๊น์ง ํด๋ผ์ฐ๋์์ Ultralytics YOLO26 ๋ชจ๋ธ์ ํ์ตํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค:
- ํ์ต์ ์ํ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ๊ณผ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, feature selection, ๋ชจ๋ธ ํ์ต์ ์ํ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ์ ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋น๋กฏํ MLOps(๋จธ์ ๋ฌ๋ ์ด์) ๊ธฐ๋ฅ์ ํตํด ๋์ฑ ํจ์จ์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.
๋ค์ ์น์ ์์๋ ์ปดํจํ ํฐ๋ฏธ๋ ๋๋ ๋ ธํธ๋ถ์์ AzureML์ ์ฌ์ฉํ์ฌ YOLO26 ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ ์กฐ๊ฑด#
์์ํ๊ธฐ ์ ์ AzureML workspace์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํฉ๋๋ค. workspace๊ฐ ์๋ค๋ฉด Azure์ ๊ณต์ ๋ฌธ์๋ฅผ ๋ฐ๋ผ ์ AzureML workspace๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด workspace๋ ๋ชจ๋ AzureML ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ ์์น๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ปดํจํ ์ธ์คํด์ค ์์ฑ#
AzureML workspace์์ Compute > Compute instances > New๋ฅผ ์ ํํ ๋ค์, ํ์ํ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ถ ์ธ์คํด์ค๋ฅผ ์ ํํฉ๋๋ค.
ํฐ๋ฏธ๋์์ ๋น ๋ฅธ ์์#
์ปดํจํ ์ ์์ํ๊ณ Terminal์ ์ฝ๋๋ค:
๊ฐ์ ํ๊ฒฝ ์์ฑ#
Conda ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๊ณ ํด๋น ํ๊ฒฝ์ pip๋ฅผ ์ค์นํฉ๋๋ค:
conda create --name yolo26env -y python=3.12
conda activate yolo26env
conda install pip -yํ์ฌ AzureML์์ Python 3.13์ dependency ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ๋์ Python 3.12๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ์ํ dependency๋ฅผ ์ค์นํฉ๋๋ค:
pip install ultralytics onnxYOLO26 ์์ ์ํ#
yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'์ด๊ธฐ learning_rate๋ฅผ 0.01๋ก ์ค์ ํ์ฌ 10๊ฐ์ epoch ๋์ detection ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01์ฌ๊ธฐ์์ Ultralytics CLI ์ฌ์ฉ ์ง์นจ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ ธํธ๋ถ์์ ๋น ๋ฅธ ์์#
์ IPython ์ปค๋ ์์ฑ#
์ปดํจํ Terminal์ ์ฝ๋๋ค.
์ปดํจํ ํฐ๋ฏธ๋์์ Python 3.12๋ฅผ ์ฌ์ฉํ๋ ์ ipykernel์ ์์ฑํฉ๋๋ค. ์ด ์ปค๋์ ๋ ธํธ๋ถ์์ dependency๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค:
conda create --name yolo26env -y python=3.12
conda activate yolo26env
conda install pip -y
conda install ipykernel -y
python -m ipykernel install --user --name yolo26env --display-name "yolo26env"ํฐ๋ฏธ๋์ ๋ซ๊ณ ์ ๋ ธํธ๋ถ์ ์์ฑํฉ๋๋ค. ๋ ธํธ๋ถ์์ ์๋ก ์์ฑํ ์ปค๋์ ์ ํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ ธํธ๋ถ ์ ์ ์ด๊ณ ํ์ํ dependency๋ฅผ ์ค์นํฉ๋๋ค:
%%bash
source activate yolo26env
pip install ultralytics onnx๋ชจ๋ %%bash ์
์ ์๋จ์์ source activate yolo26env์ ์คํํ์ฌ ํด๋น ์
์ด ์๋ํ ํ๊ฒฝ์ ์ฌ์ฉํ๋๋ก ํฉ๋๋ค.
Ultralytics CLI๋ฅผ ์ฌ์ฉํ์ฌ ์์ธก์ ์คํํฉ๋๋ค:
%%bash
source activate yolo26env
yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'๋๋ Ultralytics Python ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ตํ ์ ์์ต๋๋ค. ์:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official YOLO26n model
# Use the model
model.train(data="coco8.yaml", epochs=3) # train the model
metrics = model.val() # evaluate model performance on the validation set
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
path = model.export(format="onnx") # export the model to ONNX formatUltralytics CLI ๋๋ Python ์ธํฐํ์ด์ค ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ YOLO26 ์์ ์ ์คํํ ์ ์์ต๋๋ค. ์์ Python ์์ ๋ ๋ฐฐํฌ๋ฅผ ์ํด ํ์ต๋ ๋ชจ๋ธ์ ONNX๋ก exportํ๊ธฐ๋ ํฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด AzureML์์ YOLO26์ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ต๋๋ค. ๊ณ ๊ธ workflow๋ AzureML ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
AzureML๋ก ๋ ์์๋ณด๊ธฐ#
์ด ๊ฐ์ด๋์์๋ AzureML์์ YOLO26์ ์คํํ๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค. ๋ ์์ธํ ์์๋ณด๋ ค๋ฉด ๋ค์ ๋ฆฌ์์ค๋ฅผ ํ์ธํ์ธ์:
- ๋ฐ์ดํฐ asset ์์ฑ: AzureML ํ๊ฒฝ์์ ๋ฐ์ดํฐ asset์ ์ค์ ํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- AzureML job ์์: AzureML์์ ๋จธ์ ๋ฌ๋ ํ์ต job์ ์์ํฉ๋๋ค.
- ๋ชจ๋ธ ๋ฑ๋ก: ๋ชจ๋ธ ๋ฑ๋ก, ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- Modal ๋น ๋ฅธ ์์: AzureML์ ๋์์ผ๋ก Modal์ serverless GPU cloud์์ YOLO26์ ์คํํฉ๋๋ค.
FAQ#
ํ์ต์ ์ํด AzureML์์ YOLO26์ ์คํํ๋ ค๋ฉด ์ปดํจํ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , Conda ํ๊ฒฝ์ ์ค์ ํ๊ณ , Ultralytics๋ฅผ ์ค์นํ ๋ค์ ํ์ต ๋ช ๋ น์ ์คํํฉ๋๋ค:
-
์ปดํจํ ์ธ์คํด์ค ์์ฑ: AzureML workspace์์ Compute > Compute instances > New๋ก ์ด๋ํ ๋ค์ ํ์ํ ์ธ์คํด์ค๋ฅผ ์ ํํฉ๋๋ค.
-
ํ๊ฒฝ ์ค์ : ์ปดํจํ ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฐ ๋ค์ Python 3.12๋ฅผ ์ฌ์ฉํ๋ Conda ํ๊ฒฝ์ ์์ฑํฉ๋๋ค(ํ์ฌ AzureML์์ Python 3.13์ dependency ๋ฌธ์ ๊ฐ ์์):
conda create --name yolo26env -y python=3.12 conda activate yolo26env conda install pip -y pip install ultralytics onnx -
YOLO26 ์์ ์คํ: Ultralytics CLI๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01
์์ธํ ๋ด์ฉ์ Ultralytics CLI ์ฌ์ฉ ์ง์นจ์ ์ฐธ์กฐํ์ธ์.
-
AzureML์ YOLO26 ๋ชจ๋ธ ํ์ต์ ์ํ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ์ํ๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค:
- ํ์ฅ์ฑ: ๋ฐ์ดํฐ์ ๋ชจ๋ธ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ๊ฐํธํ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
- MLOps ํตํฉ: ๋ฒ์ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ML ์ด์์ ๊ฐ์ํํ ์ ์์ต๋๋ค.
- ํ์ : ํ ๋ด์์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๊ณ ๊ด๋ฆฌํ์ฌ ํ์ workflow๋ฅผ ํฅ์ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋๋ถ์ AzureML์ ๋น ๋ฅธ ํ๋กํ ํ์ ๋ถํฐ ๋๊ท๋ชจ ๋ฐฐํฌ๊น์ง ๋ค์ํ ํ๋ก์ ํธ์ ์ ํฉํ ํ๋ซํผ์ ๋๋ค. ๋ ๋ง์ ํ์ AzureML Jobs์์ ํ์ธํ์ธ์.
AzureML์์ YOLO26์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด dependency๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํ๊ณ , Conda ํ๊ฒฝ์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํ๋ฉฐ, ์ปดํจํ ์ธ์คํด์ค์ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํฉ๋๋ค:
- Dependency ๋ฌธ์ :
pip install ultralytics onnx์ ์ฌ์ฉํ์ฌ ํ์ํ ๋ชจ๋ package๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํฉ๋๋ค. - ํ๊ฒฝ ์ค์ : ๋ช ๋ น์ ์คํํ๊ธฐ ์ ์ Conda ํ๊ฒฝ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฑํ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
- ๋ฆฌ์์ค ํ ๋น: ์ปดํจํ ์ธ์คํด์ค์ ํ์ต workload๋ฅผ ์ฒ๋ฆฌํ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
์ถ๊ฐ ์ง์นจ์ YOLO ์ผ๋ฐ ๋ฌธ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
- Dependency ๋ฌธ์ :
์, AzureML์์๋ Ultralytics CLI์ Python ์ธํฐํ์ด์ค๋ฅผ ๋ชจ๋ ์ํํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค:
-
CLI: ๋น ๋ฅธ ์์ ์ ์ํํ๊ณ ํฐ๋ฏธ๋์์ ํ์ค script๋ฅผ ์ง์ ์คํํ๋ ๋ฐ ์ ํฉํฉ๋๋ค.
yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg' -
Python ์ธํฐํ์ด์ค: ์ฌ์ฉ์ ์ง์ ์ฝ๋ฉ๊ณผ ๋ ธํธ๋ถ ๋ด ํตํฉ์ด ํ์ํ ๋ณต์กํ ์์ ์ ์ ์ฉํฉ๋๋ค.
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=3)
๋จ๊ณ๋ณ ์ง์นจ์ CLI ๋น ๋ฅธ ์์ ๊ฐ์ด๋์ Python ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
-
Ultralytics YOLO26์ ๊ฒฝ์ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ๋นํด ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ๊ณ ์ ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์๋: Faster R-CNN ๋ฐ SSD์ ๊ฐ์ ๋ชจ๋ธ๋ณด๋ค ์ถ๋ก ๋ฐ ํ์ต ์๊ฐ์ด ๋น ๋ฆ ๋๋ค.
- ์ ํ๋: anchor-free ์ค๊ณ์ ํฅ์๋ augmentation ์ ๋ต ๋ฑ์ ๊ธฐ๋ฅ์ ํตํด ๊ฐ์ง ์์ ์์ ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฉ ํธ์์ฑ: ์ง๊ด์ ์ธ API์ CLI๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ค์ ํ ์ ์์ด ์ด๋ณด์์ ์ ๋ฌธ๊ฐ ๋ชจ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
YOLO26์ ๊ธฐ๋ฅ์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด Ultralytics YOLO ํ์ด์ง์์ ์์ธํ ๋ด์ฉ์ ํ์ธํ์ธ์.