Краткое руководство по работе с модалами в Ultralytics
В данном руководстве представлено подробное введение в работу с Ultralytics на платформе Modal, включая бессерверную GPU и обучение моделей.
Что такое Modal?
Modal — это бессерверная облачная платформа для задач в области искусственного интеллекта и машинного обучения. Она автоматически обеспечивает развертывание, масштабирование и выполнение задач: вы пишете Python локально, а Modal запускает его в облаке с GPU . Благодаря этому платформа идеально подходит для запуска моделей глубокого обучения, таких как YOLO26, без необходимости управления инфраструктурой.
Что вы узнаете
- Настройка Modal и аутентификация
- Выполнение инференции YOLO26 на Modal
- Использование графических процессоров для ускорения инференса
- Обучение моделей YOLO26 на платформе Modal
Предварительные требования
- Учетная запись Modal (бесплатная регистрация на сайте modal.com)
- На вашем компьютере должен быть установлен Python .9 или более поздней версии
Установка
Установите Python Modal Python и пройдите аутентификацию:
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:

Использование 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 ГБ | Вывод, обучение небольших моделей |
| A10G | 24 ГБ | Вакансии среднего уровня сложности |
| A100 | 40 ГБ | Масштабное обучение |
| H100 | 80 ГБ | Максимальная производительность |
Обучение модели YOLO26 на наборе данных Modal
Для обучения используйте GPU процессор 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
Сохранение объема
Модальные объёмы сохраняют данные между запусками функции. Обученные веса сохраняются в /data/runs/detect/train/weights/.
Поздравляем! Вы успешно настроили Ultralytics на Modal. Для дальнейшего изучения:
- Ознакомьтесь с документацией по Ultralytics , чтобы узнать о расширенных функциях
- Узнайте о том, как обучать пользовательские модели с использованием собственных наборов данных
- Ознакомьтесь с документацией по Modal, чтобы узнать о расширенных возможностях платформы
Часто задаваемые вопросы
Как выбрать подходящий GPU задачи YOLO26?
Для задач инференса обычно достаточно и экономично использовать NVIDIA (16 ГБ). Для обучения или работы с более крупными моделями, такими как YOLO26x, рекомендуется использовать графические процессоры A10G или A100.
Сколько стоит запуск YOLO26 на платформе Modal?
Modal использует систему оплаты по секундам. Примерные тарифы: CPU 0,05 долл. США/час, T4 ~0,59 долл. США/час, A10G ~1,10 долл. США/час, A100 ~2,10 долл. США/час. Актуальные тарифы см. в прайс-листе Modal.
Могу ли я использовать свою собственную, специально обученную YOLO ?
Да! Загрузите пользовательские модели из модального объема:
model = YOLO("/data/my_custom_model.pt")
Дополнительные сведения об обучении пользовательских моделей см. в руководстве по обучению.