YOLO Vision 2026:

Краткое руководство по Modal для Ultralytics#

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

Что такое Modal?#

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

Чему ты научишься#

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

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

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

Установка#

Установи пакет Modal для Python:

pip install modal

Затем пройди аутентификацию в CLI с помощью аккаунта 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)
GPUПамятьОптимально для
T416 GBИнференс, обучение небольших моделей
A10G24 GBЗадачи обучения средней сложности
A10040 GBКрупномасштабное обучение
H10080 GBМаксимальная производительность

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

Для обучения используй GPU и тома Modal для постоянного хранения данных. Создай новый файл 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
Сохранение данных в томах

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

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

Часто задаваемые вопросы#

  • Для инференса обычно достаточно NVIDIA T4 (16 ГБ), которая также является экономичным вариантом. Для обучения или более крупных моделей, таких как YOLO26x, рассмотри GPU A10G или A100.

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

  • Да, ты можешь запустить свою собственную обученную модель YOLO на Modal, загрузив файл весов из тома Modal:

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

    Подробнее об обучении собственных моделей см. в руководстве по обучению.

Комментарии