Краткое руководство по Modal для Ultralytics#
Это руководство подробно рассказывает, как запускать Ultralytics YOLO26 на Modal, включая бессерверный инференс на GPU и обучение моделей.
Что такое Modal?#
Modal — бессерверная платформа для облачных вычислений и задач машинного обучения. Она автоматически управляет выделением ресурсов, масштабированием и выполнением задач: ты пишешь код на Python локально, а Modal запускает его в облаке с доступом к GPU. Это делает Modal идеальной платформой для запуска моделей глубокого обучения, таких как 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:
Использование 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 | Память | Оптимально для |
|---|---|---|
| T4 | 16 GB | Инференс, обучение небольших моделей |
| A10G | 24 GB | Задачи обучения средней сложности |
| A100 | 40 GB | Обучение моделей в больших масштабах |
| H100 | 80 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. Чтобы узнать больше:
- Изучи документацию Ultralytics YOLO26, чтобы узнать о расширенных возможностях
- Узнай, как обучать пользовательские модели на собственных наборах данных
- Попробуй краткое руководство по Docker по развертыванию в контейнерах
- Посети документацию Modal, чтобы узнать о расширенных возможностях платформы
Часто задаваемые вопросы#
Для инференса обычно хватает NVIDIA T4 (16 GB) — это экономичный вариант. Для обучения или работы с более крупными моделями, например YOLO26x, рассмотри GPU A10G или A100.
Modal использует посекундную тарификацию. Примерные тарифы: CPU ~$0.05/ч, T4 ~$0.59/ч, A10G ~$1.10/ч, A100 ~$2.10/ч. Актуальные тарифы смотри на странице цен Modal.
Да, ты можешь запускать на Modal собственную модель YOLO, обученную на своих данных, загрузив файл весов из тома Modal:
model = YOLO("/data/my_custom_model.pt")Подробнее об обучении пользовательских моделей смотри в руководстве по обучению.