AzureML์์์ YOLO26 ๐#
Azure๋ ๋ฌด์์ธ๊ฐ์?#
Azure๋ ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ผ์ฐ๋๋ก ์ํฌ๋ก๋๋ฅผ ์ด์ ํ ์ ์๋๋ก ์ง์ํ๋ Microsoft์ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ ๋๋ค. ์ปดํจํ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์, ๋จธ์ ๋ฌ๋, ๋คํธ์ํน์ ํฌํจํ ๊ด๋ฒ์ํ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํตํด ์ฌ์ฉ์๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ๋ฐ ํ์ฅํ๊ฑฐ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค.
Azure Machine Learning(AzureML)์ด๋ ๋ฌด์์ธ๊ฐ์?#
Azure Machine Learning(AzureML)์ ๋๊ท๋ชจ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ตฌ์ถ, ํ์ต ๋ฐ ๋ฐฐํฌํ๊ธฐ ์ํ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋๋ค. ์ด ์๋น์ค๋ ์๋ํ๋ ๋จธ์ ๋ฌ๋, ๋๋๊ทธ ์ค ๋๋กญ ๋ฐฉ์์ ๋ชจ๋ธ ํ์ต, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ธ์ ์๋ฒฝํ๊ฒ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ ์ดํ ์ ์๋ Python SDK๋ฅผ ์ ๊ณตํฉ๋๋ค.
AzureML์ด YOLO ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ์ด์ ์ ๋ฌด์์ ๋๊น?#
AzureML์ ์ฌ์ฉํ๋ฉด ๋น ๋ฅธ ํ๋กํ ํ์ ๋ถํฐ ๋๊ท๋ชจ ์คํ๊น์ง ํด๋ผ์ฐ๋์์ Ultralytics YOLO26 ๋ชจ๋ธ์ ํ์ต ๋ฐ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค:
- ํ์ต์ ์ํ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ๊ณผ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ํน์ง ์ ํ ๋ฐ ๋ชจ๋ธ ํ์ต์ ์ํ ๋ด์ฅ ๋๊ตฌ๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ๋ฐ ๋ฐ์ดํฐ์ ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํฌํจํ MLOps(๋จธ์ ๋ฌ๋ ์ด์) ๊ธฐ๋ฅ์ ํตํด ๋ณด๋ค ํจ์จ์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.
๋ค์ ์น์ ์์๋ ์ปดํจํ ํฐ๋ฏธ๋ ๋๋ ๋ ธํธ๋ถ์ ์ฌ์ฉํ์ฌ AzureML์์ YOLO26 ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ๋ ํต์คํํธ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฌ์ ์๊ตฌ ์ฌํญ#
์์ํ๊ธฐ ์ ์ AzureML ์์ ๊ณต๊ฐ์ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํ์ญ์์ค. ์์ ๊ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ Azure ๊ณต์ ๋ฌธ์์ ๋ฐ๋ผ ์๋ก์ด AzureML ์์ ๊ณต๊ฐ์ ์์ฑํ ์ ์์ต๋๋ค. ์ด ์์ ๊ณต๊ฐ์ ๋ชจ๋ AzureML ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ ๊ด๋ฆฌ ์ฅ์ ์ญํ ์ ํฉ๋๋ค.
์ปดํจํ ์ธ์คํด์ค ์์ฑ#
AzureML ์์ ๊ณต๊ฐ์์ ์ปดํจํ (Compute) > ์ปดํจํ ์ธ์คํด์ค(Compute instances) > ์๋ก ๋ง๋ค๊ธฐ(New)๋ฅผ ์ ํํ๊ณ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ถ ์ธ์คํด์ค๋ฅผ ์ ํํ์ญ์์ค.
ํฐ๋ฏธ๋ ํต์คํํธ#
์ปดํจํ ์ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฌ์ญ์์ค:
๊ฐ์ ํ๊ฒฝ ์์ฑ#
conda ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ๋ด๋ถ์ pip๋ฅผ ์ค์นํ์ญ์์ค:
conda create --name yolo26env -y python=3.12
conda activate yolo26env
conda install pip -yPython 3.13์ ํ์ฌ AzureML์์ ์ข ์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก ๋์ Python 3.12๋ฅผ ์ฌ์ฉํ์ญ์์ค.
ํ์ํ ์ข ์์ฑ์ ์ค์นํ์ญ์์ค:
pip install ultralytics onnxYOLO26 ์์ ์ํ#
yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'Train a detection model for 10 epochs with an initial learning_rate of 0.01:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01Ultralytics CLI ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์ถ๊ฐ ์ง์นจ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ ธํธ๋ถ ํต์คํํธ#
์ IPython ์ปค๋ ์์ฑ#
์ปดํจํ ํฐ๋ฏธ๋์ ์ฌ์ญ์์ค.
์ปดํจํ ํฐ๋ฏธ๋์์ ๋ ธํธ๋ถ์ด ์ข ์์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ Python 3.12 ๊ธฐ๋ฐ์ ์๋ก์ด ipykernel์ ๋ง๋์ญ์์ค:
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"ํฐ๋ฏธ๋์ ๋ซ๊ณ ์ ๋ ธํธ๋ถ์ ๋ง๋์ญ์์ค. ๋ ธํธ๋ถ์์ ์๋ก ๋ง๋ ์ปค๋์ ์ ํํ์ญ์์ค.
๊ทธ๋ฐ ๋ค์ ๋ ธํธ๋ถ ์ ์ ์ด๊ณ ํ์ํ ์ข ์์ฑ์ ์ค์นํ์ญ์์ค:
%%bash
source activate yolo26env
pip install ultralytics onnxRun source activate yolo26env at the top of every %%bash cell so the cell uses the intended environment.
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๋ก ๋ด๋ณด๋ด๊ธฐ๋ ํฉ๋๋ค.
์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด AzureML์์ YOLO26์ ๋น ๋ฅด๊ฒ ์คํํ ์ ์์ต๋๋ค. ๋ ๋ณต์กํ ์ํฌํ๋ก์ฐ๋ AzureML ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
AzureML ๋ ์์๋ณด๊ธฐ#
์ด ๊ฐ์ด๋๋ AzureML์์ YOLO26์ ์คํํ๋ ๊ธฐ๋ณธ ์ฌํญ์ ๋ค๋ฃน๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ ๋ค์ ๋ฆฌ์์ค๋ฅผ ํ์ํ์ญ์์ค:
- ๋ฐ์ดํฐ ์์ฐ ์์ฑ(Create a Data Asset): AzureML ํ๊ฒฝ ๋ด์์ ๋ฐ์ดํฐ ์์ฐ์ ์ค์ ํ๊ณ ๊ด๋ฆฌํ์ญ์์ค.
- AzureML ์์ ์์(Initiate an AzureML Job): AzureML์์ ๋จธ์ ๋ฌ๋ ํ์ต ์์ ์ ์์ํ์ญ์์ค.
- ๋ชจ๋ธ ๋ฑ๋ก(Register a Model): ๋ชจ๋ธ ๋ฑ๋ก, ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํ์ญ์์ค.
- Modal ํต์คํํธ(Modal Quickstart): AzureML์ ๋์์ผ๋ก Modal์ ์๋ฒ๋ฆฌ์ค GPU ํด๋ผ์ฐ๋์์ YOLO26์ ์คํํ์ญ์์ค.
FAQ#
๋ชจ๋ธ ํ์ต์ ์ํด AzureML์์ YOLO26์ ์ด๋ป๊ฒ ์คํํฉ๋๊น?#
ํ์ต์ ์ํด AzureML์์ YOLO26์ ์คํํ๋ ค๋ฉด ์ปดํจํ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , Conda ํ๊ฒฝ์ ์ค์ ํ๊ณ , Ultralytics๋ฅผ ์ค์นํ ๋ค์ ํ์ต ๋ช ๋ น์ ์คํํ์ญ์์ค:
-
์ปดํจํ ์ธ์คํด์ค ์์ฑ: AzureML ์์ ๊ณต๊ฐ์์ ์ปดํจํ > ์ปดํจํ ์ธ์คํด์ค > ์๋ก ๋ง๋ค๊ธฐ๋ก ์ด๋ํ์ฌ ํ์ํ ์ธ์คํด์ค๋ฅผ ์ ํํ์ญ์์ค.
-
ํ๊ฒฝ ์ค์ : ์ปดํจํ ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฐ ๋ค์ Python 3.12๋ฅผ ์ฌ์ฉํ์ฌ Conda ํ๊ฒฝ์ ๋ง๋์ญ์์ค(Python 3.13์ ํ์ฌ AzureML์์ ์ข ์์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค):
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 ์ฌ์ฉ ์ง์นจ์ ์ฐธ์กฐํ์ญ์์ค.
YOLO26 ํ์ต์ AzureML์ ์ฌ์ฉํ ๋์ ์ด์ ์ ๋ฌด์์ ๋๊น?#
AzureML์ YOLO26 ๋ชจ๋ธ์ ํ์ตํ๊ธฐ ์ํ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ์ํ๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค:
- ํ์ฅ์ฑ: ๋ฐ์ดํฐ์ ๋ชจ๋ธ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ํ์ฅํ ์ ์์ต๋๋ค.
- MLOps ํตํฉ: ๋ฒ์ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ML ์ด์์ ๊ฐ์ํํ ์ ์์ต๋๋ค.
- ํ์ : ํ ๋ด์์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ๋ฐ ๊ด๋ฆฌํ์ฌ ํ์ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ฅ์ ๋๋ถ์ AzureML์ ๋น ๋ฅธ ํ๋กํ ํ์ ๋ถํฐ ๋๊ท๋ชจ ๋ฐฐํฌ๊น์ง์ ํ๋ก์ ํธ์ ์ด์์ ์ธ ํ๋ซํผ์ ๋๋ค. ๋ ๋ง์ ํ์ AzureML ์์ (AzureML Jobs)์ ํ์ธํ์ญ์์ค.
AzureML์์ YOLO26์ ์คํํ ๋ ๋ฐ์ํ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํฉ๋๊น?#
AzureML์์ YOLO26 ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ข ์์ฑ์ด ์ค์น๋์๋์ง ํ์ธํ๊ณ , Conda ํ๊ฒฝ์ด ํ์ฑํ๋์๋์ง ํ์ธํ๋ฉฐ, ์ปดํจํ ์ธ์คํด์ค์ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํ์ญ์์ค:
- ์ข
์์ฑ ๋ฌธ์ :
pip install ultralytics onnx๋ฅผ ํตํด ํ์ํ ๋ชจ๋ ํจํค์ง๊ฐ ์ค์น๋์๋์ง ํ์ธํ์ญ์์ค. - ํ๊ฒฝ ์ค์ : ๋ช ๋ น์ ์คํํ๊ธฐ ์ ์ conda ํ๊ฒฝ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฑํ๋์๋์ง ํ์ธํ์ญ์์ค.
- ๋ฆฌ์์ค ํ ๋น: ์ปดํจํ ์ธ์คํด์ค์ ํ์ต ์ํฌ๋ก๋๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํ์ญ์์ค.
์ถ๊ฐ ์ง์นจ์ YOLO ์ผ๋ฐ ๋ฌธ์ (YOLO Common Issues) ๋ฌธ์๋ฅผ ๊ฒํ ํ์ญ์์ค.
AzureML์์ Ultralytics CLI์ Python ์ธํฐํ์ด์ค๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๊น?#
๋ค, AzureML์์๋ Ultralytics CLI์ Python ์ธํฐํ์ด์ค๋ฅผ ๋ชจ๋ ์ํํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค:
-
CLI: ๋น ๋ฅธ ์์ ๊ณผ ํฐ๋ฏธ๋์์ ํ์ค ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์คํํ๋ ๋ฐ ์ด์์ ์ ๋๋ค.
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์ ์ฌ์ฉํ๋ ์ฅ์ ์ ๋ฌด์์ ๋๊น?#
Ultralytics YOLO26์ ๊ฒฝ์ ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ๋ณด๋ค ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๋ ๋ณด์ ์ธ ์ฅ์ ์ ์ ๊ณตํฉ๋๋ค:
- ์๋: Faster R-CNN ๋ฐ SSD์ ๊ฐ์ ๋ชจ๋ธ์ ๋นํด ๋ ๋น ๋ฅธ ์ถ๋ก ๋ฐ ํ์ต ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ ํ๋(Accuracy): ์ต์ปค ํ๋ฆฌ(anchor-free) ์ค๊ณ์ ํฅ์๋ ์ฆ๊ฐ ์ ๋ต ๊ธฐ๋ฅ์ ํตํด ํ์ง ์์ ์์ ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฉ ํธ์์ฑ: ์ง๊ด์ ์ธ API ๋ฐ CLI๋ฅผ ํตํ ๋น ๋ฅธ ์ค์ ์ ์ง์ํ์ฌ ์ด๋ณด์์ ์ ๋ฌธ๊ฐ ๋ชจ๋๊ฐ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
YOLO26์ ๊ธฐ๋ฅ์ ๋ํด ๋ ์์๋ณด๋ ค๋ฉด Ultralytics YOLO ํ์ด์ง์์ ์์ธํ ์ ๋ณด๋ฅผ ํ์ธํ์ญ์์ค.