Перейти к содержанию

Краткое руководство по работе с модалами в 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ПамятьЛучше всего подходит для
T416 ГБВывод, обучение небольших моделей
A10G24 ГБВакансии среднего уровня сложности
A10040 ГБМасштабное обучение
H10080 ГБМаксимальная производительность

Обучение модели 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. Для дальнейшего изучения:

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

Как выбрать подходящий 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")

Дополнительные сведения об обучении пользовательских моделей см. в руководстве по обучению.



📅 Создано 0 дней назад ✏️ Обновлено 0 дней назад
raimbekovm

Комментарии