Skip to main content

Руководство по быстрому старту Modal для Ultralytics

Это руководство представляет собой исчерпывающее введение в запуск Ultralytics YOLO26 на Modal, охватывающее серверный GPU-инференс и обучение моделей.

Что такое Modal?

Modal — это бессерверная cloud computing платформа для AI и машинного обучения рабочих нагрузок. Она автоматически управляет подготовкой, масштабированием и выполнением — ты пишешь код на Python локально, а Modal запускает его в облаке с доступом к GPU. Это делает ее идеальной для запуска глубокого обучения моделей, таких как YOLO26, без необходимости управления инфраструктурой.

Что ты узнаешь

  • Настройка Modal и аутентификация
  • Запуск инференса YOLO26 на Modal
  • Использование GPU для ускорения инференса
  • Обучение моделей YOLO26 на Modal

Предварительные требования

  • Учетная запись Modal (зарегистрируйся бесплатно на modal.com)
  • Python 3.9 или новее, установленный на твоей локальной машине

Установка

Установи Python-пакет Modal и пройди аутентификацию:

pip install modal
modal token new
Аутентификация

Метод modal token new команда откроет окно браузера для аутентификации твоей учетной записи Modal. После аутентификации ты сможешь выполнять команды Modal из терминала.

Запуск инференса YOLO26

Создай новый файл Python с названием modal_yolo.py со следующим кодом:

"""
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)
GPUMemoryBest For
T416 GBИнференс, обучение небольших моделей
A10G24 GBСредние задачи обучения
A10040 GBМасштабное обучение
H10080 GBМаксимальная производительность

Обучение YOLO26 на Modal

Для обучения используй GPU и Volumes для постоянного хранилища. Создай новый файл Python с названием train_yolo.py:

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
Постоянство Volume

Modal Volumes сохраняют данные между запусками функций. Обученные веса сохраняются в /data/runs/detect/train/weights/.

Поздравляем! Ты успешно настроил Ultralytics YOLO26 на Modal. Для дальнейшего изучения:

FAQ

Как мне выбрать подходящий GPU для моей рабочей нагрузки YOLO26?

Для инференса обычно достаточно NVIDIA T4 (16 GB), это экономически выгодно. Для обучения или работы с большими моделями, такими как YOLO26x, рассмотри GPU A10G или A100.

Сколько стоит запуск YOLO26 на Modal?

Modal использует посекундную тарификацию. Примерные цены: CPU ~$0.05/час, T4 ~$0.59/час, A10G ~$1.10/час, A100 ~$2.10/час. Проверь цены Modal для получения актуальных тарифов.

Могу ли я использовать свою собственную обученную модель YOLO?

Да! Загружай кастомные модели из Modal Volume:

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

Для получения дополнительной информации об обучении кастомных моделей см.руководстве по обучению.

Комментарии