YOLO Vision 2026:

Ultralytics를 위한 Modal 퀵스타트 가이드#

본 가이드는 Modal에서 Ultralytics YOLO26을 실행하는 방법에 대한 종합적인 소개를 제공하며, 서버리스 GPU 추론 및 모델 학습을 다룹니다.

Modal이란 무엇인가요?#

Modal은 AI 및 머신러닝 워크로드를 위한 서버리스 클라우드 컴퓨팅 플랫폼입니다. 프로비저닝, 스케일링, 실행을 자동으로 처리하므로 로컬에서 Python 코드를 작성하면 Modal이 GPU 액세스와 함께 클라우드에서 실행해 줍니다. 따라서 인프라를 관리할 필요 없이 YOLO26과 같은 딥러닝 모델을 실행하는 데 이상적입니다.

학습 내용#

  • Modal 설정 및 인증
  • Modal에서 YOLO26 추론 실행하기
  • 더 빠른 추론을 위한 GPU 사용
  • Modal에서 YOLO26 모델 학습하기

사전 요구 사항#

  • Modal 계정 (modal.com에서 무료 가입)
  • 로컬 머신에 설치된 Python 3.9 이상

설치#

Modal Python 패키지 설치:

pip install modal

그런 다음 Modal 계정으로 CLI 인증을 수행합니다:

modal token new
인증

modal token new 명령을 실행하면 브라우저 창이 열려 Modal 계정 인증을 진행합니다. 인증 후 터미널에서 Modal 명령을 실행할 수 있습니다.

YOLO26 추론 실행#

다음 코드로 추론을 실행하려면 modal_yolo.py이라는 새 Python 파일을 생성하세요.

"""
Modal + Ultralytics YOLO26 Quickstart
Run: modal run modal_yolo.py.
"""

import modal

app = modal.App("ultralytics-yolo")

image = modal.Image.debian_slim(python_version="3.11").apt_install("libgl1", "libglib2.0-0").pip_install("ultralytics")

@app.function(image=image)
def predict(image_url: str):
    """Run YOLO26 inference on an image URL."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    results = model(image_url)

    for r in results:
        print(f"Detected {len(r.boxes)} objects:")
        for box in r.boxes:
            print(f"  - {model.names[int(box.cls)]}: {float(box.conf):.2f}")

@app.local_entrypoint()
def main():
    """Test inference with sample image."""
    predict.remote("https://ultralytics.com/images/bus.jpg")

추론 실행:

modal run modal_yolo.py

예상 출력:

✓ Initialized. View run at https://modal.com/apps/your-username/main/ap-xxxxxxxx
✓ Created objects.
├── 🔨 Created mount modal_yolo.py
└── 🔨 Created function predict.
Downloading https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26n.pt to 'yolo26n.pt'...
Downloading https://ultralytics.com/images/bus.jpg to 'bus.jpg'...
image 1/1 /root/bus.jpg: 640x480 4 persons, 1 bus, 377.8ms
Speed: 5.8ms preprocess, 377.8ms inference, 0.3ms postprocess per image at shape (1, 3, 640, 480)

Detected 5 objects:
  - bus: 0.92
  - person: 0.91
  - person: 0.91
  - person: 0.87
  - person: 0.53
✓ App completed.

Modal 대시보드에서 함수 실행을 모니터링할 수 있습니다:

Modal Dashboard Function Calls

더 빠른 추론을 위해 GPU 사용하기#

gpu 매개변수를 지정하여 함수에 GPU를 추가합니다:

@app.function(image=image, gpu="T4")  # Options: "T4", "A10G", "A100", "H100"
def predict_gpu(image_url: str):
    """Run YOLO26 inference on GPU."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    results = model(image_url)
    print(results[0].boxes)
GPU메모리최적 대상
T416 GB추론, 소형 모델 학습
A10G24 GB중형 학습 작업
A10040 GB대규모 학습
H10080 GB최대 성능

Modal에서 YOLO26 학습하기#

학습을 위해서는 GPU와 영구 스토리지를 위한 Modal Volumes을 사용합니다. train_yolo.py이라는 이름의 새로운 Python 파일을 생성합니다:

import modal

app = modal.App("ultralytics-training")

volume = modal.Volume.from_name("yolo-training-vol", create_if_missing=True)

image = modal.Image.debian_slim(python_version="3.11").apt_install("libgl1", "libglib2.0-0").pip_install("ultralytics")

@app.function(image=image, gpu="T4", timeout=3600, volumes={"/data": volume})
def train():
    """Train YOLO26 model on Modal."""
    from ultralytics import YOLO

    model = YOLO("yolo26n.pt")
    model.train(data="coco8.yaml", epochs=3, imgsz=640, project="/data/runs")

@app.local_entrypoint()
def main():
    train.remote()

학습 실행:

modal run train_yolo.py
볼륨 지속성

Modal Volumes는 함수 실행 간에 데이터를 유지합니다. 학습된 가중치는 /data/runs/train/weights/에 저장됩니다.

축하합니다! Modal에서 Ultralytics YOLO26을 성공적으로 설정했습니다. 추가 학습을 위해 다음을 확인하십시오:

FAQ#

  • 추론의 경우 일반적으로 NVIDIA T4(16GB)로 충분하며 비용 효율적입니다. 학습이나 YOLO26x와 같은 더 큰 모델의 경우 A10G 또는 A100 GPU를 고려하십시오.

  • Modal은 초당 과금 방식을 사용합니다. 예상 요금: CPU ~$0.05/hr, T4 ~$0.59/hr, A10G ~$1.10/hr, A100 ~$2.10/hr. 최신 요금은 Modal pricing을 확인하세요.

  • 네, Modal 볼륨에서 가중치 파일을 로드하여 Modal에서 직접 학습시킨 YOLO 모델을 실행할 수 있습니다:

    model = YOLO("/data/my_custom_model.pt")

    커스텀 모델 학습에 대한 자세한 정보는 training guide를 참조하세요.

댓글