Краткое руководство по 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:
Использование 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 ГБ), которая также является экономичным вариантом. Для обучения или более крупных моделей, таких как 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")Подробнее об обучении собственных моделей см. в руководстве по обучению.