Skip to main content

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 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ダッシュボード関数呼び出し

高速推論のための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/detect/train/weights/ に保存されます。

おめでとうございます!Modal上でUltralytics YOLO26のセットアップが完了しました。さらに学習するには:

よくある質問

YOLO26ワークロードに適したGPUを選ぶにはどうすればよいですか?

推論の場合、NVIDIA T4(16 GB)が通常は十分でコスト効率が高いです。YOLO26xなどの大規模モデルのトレーニングには、A10GまたはA100 GPUの使用をご検討ください。

Modal上でYOLO26を実行するコストはいくらですか?

Modalは秒単位の課金制を採用しています。概算料金:CPU 約$0.05/時間、T4 約$0.59/時間、A10G 約$1.10/時間、A100 約$2.10/時間。最新の料金についてはModal pricingをご確認ください。

独自のカスタムトレーニング済みYOLOモデルを使用できますか?

はい!Modal Volumeからカスタムモデルをロードできまメす:

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

カスタムモデルのトレーニングの詳細については、トレーニングガイドを参照してください。

コメント