Руководство по быстрому старту 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 modalmodal 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:
Использование 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 | Memory | Best For |
|---|---|---|
| T4 | 16 GB | Инференс, обучение небольших моделей |
| A10G | 24 GB | Средние задачи обучения |
| A100 | 40 GB | Масштабное обучение |
| H100 | 80 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.pyModal Volumes сохраняют данные между запусками функций. Обученные веса сохраняются в /data/runs/detect/train/weights/.
Поздравляем! Ты успешно настроил Ultralytics YOLO26 на Modal. Для дальнейшего изучения:
- Изучи документации 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")Для получения дополнительной информации об обучении кастомных моделей см.руководстве по обучению.