AzureML์์์ YOLO26 ๐
Azure๋ ๋ฌด์์ธ๊ฐ์?
Azure๋ ๋ง์ดํฌ๋ก์ํํธ์ ํด๋ผ์ฐ๋ ์ปดํจํ ํ๋ซํผ์ผ๋ก, ์กฐ์ง์ด ์จํ๋ ๋ฏธ์ค ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ผ์ฐ๋๋ก ์ํฌ๋ก๋๋ฅผ ์ด์ ํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ปดํจํ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์, ๋จธ์ ๋ฌ๋, ๋คํธ์ํน์ ํฌํจํ ๊ด๋ฒ์ํ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ํ๋ ์๋น์ค๋ฅผ ์ ํํ์ฌ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์์ ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ๋ฐ ํ์ฅํ๊ฑฐ๋ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์์ต๋๋ค.
Azure Machine Learning(AzureML)์ด๋ ๋ฌด์์ธ๊ฐ์?
Azure Machine Learning(์ผ๋ฐ์ ์ผ๋ก AzureML๋ก ์ง์นญ)์ ๋ฐ์ดํฐ ๊ณผํ์์ ๊ฐ๋ฐ์๊ฐ ์์ธก ๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ์จ์ ์ผ๋ก ๋ด์ฅํ ์ ์๋๋ก ์ง์ํ๋ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋๋ค. ์ด๋ ์กฐ์ง์ด ๋ฐฉ๋ํ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ํ์ฉํ๊ณ ํด๋ผ์ฐ๋์ ๋ชจ๋ ์ด์ ์ ๋จธ์ ๋ฌ๋์ ์ ์ฉํ ์ ์๋๋ก ๋์ต๋๋ค. AzureML์ ๋จธ์ ๋ฌ๋์ ์ ๊ทผํ๊ธฐ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ธฐ ์ํ ๋ค์ํ ์๋น์ค์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ํ๋ ๋จธ์ ๋ฌ๋, ๋๋๊ทธ ์ค ๋๋กญ ๋ชจ๋ธ ํ์ต, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๊ฐ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ๋๋ ๊ฐ๋ ฅํ Python SDK์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
AzureML์ด YOLO ์ฌ์ฉ์์๊ฒ ์ฃผ๋ ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
YOLO(You Only Look Once) ์ฌ์ฉ์์๊ฒ AzureML์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ตํ๊ณ ๋ฐฐํฌํ๊ธฐ ์ํ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํจ์จ์ ์ธ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ๋น ๋ฅธ ํ๋กํ ํ์ ์คํ์ ์ํ๋ ๋ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ์ฅํ๋ , AzureML์ ์ ์ฐํ๊ณ ์ฌ์ฉ์ ์นํ์ ์ธ ํ๊ฒฝ์ ๊ทํ์ ํ์์ ๋ง๋ ๋ค์ํ ๋๊ตฌ์ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. AzureML์ ํ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค:
- ํ์ต์ ์ํ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ ๋ฐ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ, ํน์ง ์ ํ ๋ฐ ๋ชจ๋ธ ํ์ต์ ์ํ ๋ด์ฅ ๋๊ตฌ๋ฅผ ํ์ฉํฉ๋๋ค.
- ๋ชจ๋ธ ๋ฐ ๋ฐ์ดํฐ์ ๋ชจ๋ํฐ๋ง, ๊ฐ์ฌ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํฌํจํ๋ ์ด์ ๊ตญํ๋์ง ์๋ MLOps(๋จธ์ ๋ฌ๋ ์ด์) ๊ธฐ๋ฅ์ ํตํด ๋ณด๋ค ํจ์จ์ ์ผ๋ก ํ์ ํฉ๋๋ค.
์ด์ด์ง๋ ์น์ ์์๋ ์ปดํจํ ํฐ๋ฏธ๋ ๋๋ ๋ ธํธ๋ถ์์ AzureML์ ์ฌ์ฉํ์ฌ YOLO26 ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํต์คํํธ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
์ฌ์ ์๊ตฌ ์ฌํญ
์์ํ๊ธฐ ์ ์ AzureML ์์ ์์ญ(workspace)์ ๋ํ ์ก์ธ์ค ๊ถํ์ด ์๋์ง ํ์ธํ์ญ์์ค. ์์ ์์ญ์ด ์๋ ๊ฒฝ์ฐ, Azure ๊ณต์ ๋ฌธ์๋ฅผ ๋ฐ๋ผ ์๋ก์ด AzureML ์์ ์์ญ์ ์์ฑํ ์ ์์ต๋๋ค. ์ด ์์ ์์ญ์ ๋ชจ๋ AzureML ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ ์ง์ค์ ์ฅ์ ์ญํ ์ ํฉ๋๋ค.
์ปดํจํ ์ธ์คํด์ค ์์ฑ
AzureML ์์ ์์ญ์์ Compute > Compute instances > New๋ฅผ ์ ํํ๊ณ , ํ์ํ ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ์ธ์คํด์ค๋ฅผ ์ ํํ์ญ์์ค.
ํฐ๋ฏธ๋์์ ํต์คํํธ
์ปดํจํ ์ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฌ์ญ์์ค:
virtualenv ์์ฑ
์ํ๋ Python ๋ฒ์ ์ ์ฌ์ฉํ์ฌ conda ๊ฐ์ ํ๊ฒฝ์ ์์ฑํ๊ณ ๊ทธ ์์ pip๋ฅผ ์ค์นํ์ญ์์ค. ํ์ฌ AzureML์์ Python 3.13.1์ ์์กด์ฑ ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ๋์ Python 3.12๋ฅผ ์ฌ์ฉํ์ญ์์ค.
conda create --name yolo26env -y python=3.12
conda activate yolo26env
conda install pip -yํ์ ์์กด์ฑ์ ์ค์นํ์ญ์์ค:
cd ultralytics
pip install -r requirements.txt
pip install ultralytics
pip install onnxYOLO26 ์์ ์ํ
์์ธก(Predict):
yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'์ด๊ธฐ learning_rate๋ฅผ 0.01๋ก ์ค์ ํ๊ณ 10 ์ํฌํฌ(epochs) ๋์ ํ์ง ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01์ฌ๊ธฐ์์ Ultralytics 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
cd ultralytics
pip install -r requirements.txt
pip install ultralytics
pip install onnxNote that you need to run source activate yolo26env in every %%bash cell to ensure 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 format์์ ํฐ๋ฏธ๋ ์น์ ์์ ์ค๋ช ํ ๋๋ก Ultralytics CLI ๋๋ Python ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ YOLO26 ์์ ์ ์คํํ ์ ์์ต๋๋ค.
์ด ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด AzureML์์ YOLO26์ ๋น ๋ฅด๊ฒ ์คํํ์ฌ ์ ์ํ๊ฒ ํ ์คํธํด ๋ณผ ์ ์์ต๋๋ค. ๋ ๊ณ ๊ธ ํ์ฉ์ ์ํ์๋ฉด ์ด ๊ฐ์ด๋ ์์ ๋ถ๋ถ์ ๋งํฌ๋ ์ ์ฒด AzureML ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
AzureML๋ก ๋ ๋ง์ ๊ธฐ๋ฅ ํ์
์ด ๊ฐ์ด๋๋ AzureML์์ YOLO26์ ์์ํ๊ธฐ ์ํ ์ ๋ฌธ์ ์ญํ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ AzureML์ด ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ผ๋ถ๋ถ์ ๋ถ๊ณผํฉ๋๋ค. ๋ ๊น์ด ํ๊ตฌํ๊ณ ๋จธ์ ๋ฌ๋ ํ๋ก์ ํธ๋ฅผ ์ํด AzureML์ ์ ์ฌ๋ ฅ์ ์์ ํ ํ์ฉํ๋ ค๋ฉด ๋ค์ ๋ฆฌ์์ค๋ฅผ ํ์ํด ๋ณด์ญ์์ค:
- ๋ฐ์ดํฐ ์์ ์์ฑ: AzureML ํ๊ฒฝ ๋ด์์ ๋ฐ์ดํฐ ์์ ์ ํจ๊ณผ์ ์ผ๋ก ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ญ์์ค.
- AzureML ์์ ์์: AzureML์์ ๋จธ์ ๋ฌ๋ ํ์ต ์์ ์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ข ํฉ์ ์ผ๋ก ์ดํดํ์ญ์์ค.
- ๋ชจ๋ธ ๋ฑ๋ก: ๋ฑ๋ก, ๋ฒ์ ๊ด๋ฆฌ, ๋ฐฐํฌ๋ฅผ ํฌํจํ ๋ชจ๋ธ ๊ด๋ฆฌ ๊ดํ์ ์ตํ์ญ์์ค.
- AzureML Python SDK๋ก YOLO26 ํ์ตํ๊ธฐ: AzureML Python SDK๋ฅผ ์ฌ์ฉํ์ฌ YOLO26 ๋ชจ๋ธ์ ํ์ตํ๋ ๋จ๊ณ๋ณ ๊ฐ์ด๋๋ฅผ ์ดํด๋ณด์ญ์์ค.
- AzureML CLI๋ก YOLO26 ํ์ตํ๊ธฐ: AzureML์์ YOLO26 ๋ชจ๋ธ์ ๋ฅ๋ฅ ์ ์ผ๋ก ํ์ตํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด CLI๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค.
FAQ
AzureML์์ ๋ชจ๋ธ ํ์ต์ ์ํด YOLO26์ ์ด๋ป๊ฒ ์คํํ๋์?
AzureML์์ ๋ชจ๋ธ ํ์ต์ ์ํด YOLO26์ ์คํํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
-
์ปดํจํ ์ธ์คํด์ค ์์ฑ: AzureML ์์ ์์ญ์์ Compute > Compute instances > New๋ก ์ด๋ํ์ฌ ํ์ํ ์ธ์คํด์ค๋ฅผ ์ ํํ์ญ์์ค.
-
ํ๊ฒฝ ์ค์ : ์ปดํจํ ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ ํฐ๋ฏธ๋์ ์ฐ ๋ค์ Conda ํ๊ฒฝ์ ์์ฑํ์ญ์์ค. Python ๋ฒ์ ์ ์ค์ ํ์ญ์์ค(Python 3.13.1์ ์์ง ์ง์๋์ง ์์ต๋๋ค):
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 Jobs๋ฅผ ํ์ธํ์ญ์์ค.
AzureML์์ YOLO26์ ์คํํ ๋ ๋ฐ์ํ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
AzureML์์ YOLO26๊ณผ ๊ด๋ จ๋ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ํด๊ฒฐ์ ๋ค์ ๋จ๊ณ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค:
- ์์กด์ฑ ๋ฌธ์ : ํ์ํ ๋ชจ๋ ํจํค์ง๊ฐ ์ค์น๋์๋์ง ํ์ธํ์ญ์์ค. ์์กด์ฑ ํญ๋ชฉ์
requirements.txtํ์ผ์ ์ฐธ์กฐํ์ญ์์ค. - ํ๊ฒฝ ์ค์ : ๋ช ๋ น์ ์คํํ๊ธฐ ์ ์ conda ํ๊ฒฝ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฑํ๋์๋์ง ํ์ธํ์ญ์์ค.
- ๋ฆฌ์์ค ํ ๋น: ์ปดํจํ ์ธ์คํด์ค์ ํ์ต ์ํฌ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ์ถฉ๋ถํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํ์ญ์์ค.
์ถ๊ฐ์ ์ธ ์๋ด๋ YOLO ์ผ๋ฐ ๋ฌธ์ ๋ฌธ์๋ฅผ ๊ฒํ ํ์ญ์์ค.
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์ ๊ฐ์ ๋ชจ๋ธ๋ณด๋ค ๋น ๋ฅธ ์ถ๋ก ๋ฐ ํ์ต ์๊ฐ.
- ์ ํ๋: ์ต์ปค ํ๋ฆฌ(anchor-free) ์ค๊ณ์ ํฅ์๋ ์ฆ๊ฐ ์ ๋ต๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ผ๋ก ํ์ง ์์ ์์ ๋์ ์ ํ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฉ ํธ์์ฑ: ๋น ๋ฅธ ์ค์ ์ ์ํ ์ง๊ด์ ์ธ API ๋ฐ CLI๋ฅผ ์ ๊ณตํ์ฌ ์ด๋ณด์์ ์ ๋ฌธ๊ฐ ๋ชจ๋๊ฐ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
YOLO26์ ๊ธฐ๋ฅ์ ๋ํด ๋ ์์๋ณด๋ ค๋ฉด Ultralytics YOLO ํ์ด์ง์์ ์์ธํ ํต์ฐฐ๋ ฅ์ ํ์ธํ์ญ์์ค.