Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Платформа Ultralytics

Как обучить YOLO на данных Amazon S3 и развернуть размещённый API с помощью Ultralytics Platform

Пошагово обучи Ultralytics YOLO26 на изображениях в своём бакете Amazon S3 и разверни модель как размещённый API с помощью Ultralytics Platform — в сравнении с SageMaker.

Майлз ДинсMiles Deans12 мин. чтения
Страница развертывания Ultralytics Platform с метриками запросов в реальном времени и замаскированным URL конечной точки; рядом показаны шаги: подключение бакета Amazon S3, обучение модели YOLO26 и готовый размещённый API

Если изображения уже хранятся в бакете Amazon S3, ты можешь обучить на них модель Ultralytics YOLO и развернуть её как размещённый API, не загружая вторую копию набора данных. Ultralytics Platform индексирует бакет на месте, позволяет размечать данные и обучать YOLO26 на облачном GPU, а затем развёртывает обученную модель на выделенной конечной точке, к которой можно обращаться по HTTPS. В этом руководстве разобраны все шаги — от политики IAM до первого предсказания, — а также приведено сравнение этого процесса с Amazon SageMaker, Google Vertex AI и Azure Machine Learning.

Тот же процесс работает с Google Cloud Storage и Azure Blob Storage: вместо ключа доступа AWS используется JSON-ключ сервисного аккаунта или строка подключения с ключом доступа к аккаунту.

Как устроен рабочий процесс#

Конвейер состоит из пяти этапов. Исходные изображения остаются в бакете, а во время обучения в облаке используются временные копии:

  1. Подключи бакет S3 с помощью пользователя IAM, имеющего доступ только для чтения.
  2. Индексируй папку как набор данных Platform. Platform считывает размеры изображений и найденные метки YOLO, не сохраняя вторую копию изображений.
  3. Размечай изображения в браузере или используй метки YOLO, уже хранящиеся в бакете.
  4. Обучи модель YOLO26 на облачном GPU. Во время обучения используются временные копии изображений.
  5. Разверни модель на выделенной конечной точке в одном из 42 регионов и отправляй ей изображения с помощью ключа API.

Наборы данных для детекции, сегментации, оценки позы и ориентированных ограничивающих рамок (OBB) распознаются по структуре меток, поэтому одни и те же шаги подходят для каждой задачи компьютерного зрения.

Перед началом: тарифы, разрешения и границы данных#

Тебе понадобятся три вещи:

  • Рабочая область Pro или Enterprise. Для наборов данных Amazon S3, Google Cloud Storage и Azure Blob Storage нужен тариф Pro или Enterprise. Pro стоит $29 за место в месяц и ежемесячно включает кредит на $30 за каждое место для вычислений с оплатой по факту использования, например обучения в облаке.
  • Роль администратора или владельца рабочей области, необходимая для подключения облачного хранилища.
  • Пользователь AWS IAM, который может просматривать содержимое бакета и читать его.

Перед подключением полезно знать, какие данные покидают бакет. Platform по запросу передаёт исходные изображения для просмотра и аннотирования, а индексированные изображения не учитываются в квоте хранилища Platform. Для каждого подключения есть переключатель AI-функции, включённый по умолчанию. Пока он включён, GPU Ultralytics могут считывать изображения для аннотирования, поиска похожих изображений и обучения в облаке. Внешние поставщики AI также могут обрабатывать изображения для платных моделей аннотирования с использованием ключа поставщика из твоей рабочей области, а также для генерации изображений, если включён доступ на запись. Во время обучения в облаке используются временные копии; поиск похожих изображений сохраняет эмбеддинги, пока изображения остаются в Platform. Выключи переключатель — и новые задачи с AI не будут запускаться (уже выполняющиеся задачи завершатся), а ручное аннотирование и локальное обучение продолжат работать. Platform никогда не изменяет и не удаляет твои объекты.

Шаг 1. Создай пользователя IAM с доступом только для чтения#

В консоли AWS перейди в раздел IAM > Users, создай пользователя без доступа к консоли и назначь ему политику, предоставляющую права на просмотр содержимого бакета и чтение:

{
    "Version": "2012-10-17",
    "Statement": [
        { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" },
        {
            "Effect": "Allow",
            "Action": ["s3:ListBucket", "s3:GetObject"],
            "Resource": ["arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*"]
        }
    ]
}

s3:ListAllMyBuckets — необязательный параметр. Он позволяет Platform находить твои бакеты, чтобы тебе не приходилось вводить их имена.

Затем открой вкладку Security credentials пользователя и создай ключ доступа. Platform нужен долгосрочный ключ пользователя IAM: временные учётные данные AWS STS, в том числе учётные данные сеанса роли и ключи IAM Identity Center, не поддерживаются, поскольку они истекут, пока набор данных ещё подключён. Для этого используй отдельного пользователя и никогда не используй учётные данные root. Platform шифрует ключ при хранении с помощью AES-256-GCM и никогда не передаёт его задачам обучения; ты можешь в любой момент отозвать доступ, деактивировав ключ в IAM.

Шаг 2. Подключи бакет к Ultralytics Platform#

  1. В Platform перейди в Settings > Integrations и выбери Amazon S3.
  2. Введи идентификатор ключа доступа, секретный ключ доступа и регион бакета, например us-east-1.
  3. Нажми Find available buckets и выбери бакеты для подключения или введи имя бакета, если политика не разрешает их обнаружение.
  4. Нажми Connect. Перед сохранением настроек Platform проверит, что может просматривать содержимое каждого бакета и читать его.

Одно подключение охватывает бакеты в одном регионе, поэтому, если твои данные распределены по нескольким регионам, подключи каждый регион отдельно. В руководстве по интеграции Amazon S3 описано дополнительное разрешение на запись, используемое для генерации изображений.

Шаг 3. Создай набор данных из бакета#

Нажми New Dataset, открой вкладку Cloud, выбери бакет, перейди к папке с данными и создай набор данных. Platform один раз просматривает папку и индексирует найденные в ней данные:

  • Изображения: объекты .jpg, .jpeg, .png, .webp и .avif.
  • Метки: файлы YOLO .txt, сопоставляемые по стандартной структуре images/–labels/ или размещённые рядом с каждым изображением.
  • Классы: файл data.yaml содержит имена классов, как в обычном наборе данных YOLO.
  • Разбиение: имена папок train, val и test автоматически задают разбиение на выборки.

За один импорт можно проиндексировать до 500 000 объектов, поэтому большие бакеты нужно разделить на несколько наборов данных. Считай проиндексированные объекты неизменяемыми: каждое изображение привязано к ETag объекта S3, и Platform перестаёт предоставлять изображение, если оно было перезаписано. Чтобы добавить данные позже, загрузи новые объекты и создай новый набор данных, поскольку индекс создаётся один раз при создании набора данных.

Шаг 4. Разметь изображения или проверь их метки#

Открой набор данных, чтобы проверить импортированные метки в редакторе аннотаций. Если в бакете ещё нет меток, ты можешь вручную нарисовать рамки и маски или, включив функции AI, использовать интеллектуальную разметку (SAM для детекции, сегментации и OBB, YOLO для оценки позы) и автоматическое аннотирование, чтобы ускорить работу. Метки хранятся в Platform, а объекты в бакете остаются неизменными.

Шаг 5. Обучи YOLO26 на облачном GPU#

Нажми New Model в наборе данных или проекте, выбери базовую модель и запусти обучение в облаке:

  1. Базовая модель: выбери официальную модель Ultralytics (рекомендуем YOLO26) или собственную модель для дообучения. В списке отображаются только модели, совместимые с задачей набора данных.
  2. Параметры: задай количество эпох, размер изображения и размер пакета или оставь значения по умолчанию.
  3. GPU: выбери GPU в Ultralytics Cloud. Перед запуском в диалоговом окне отображаются почасовая ставка, предполагаемая продолжительность обучения и общая стоимость. Наше руководство по выбору облачного GPU поможет оценить компромисс.

Во время обучения метрики, вывод консоли и системные графики передаются в браузер, а контрольные точки сохраняются автоматически. После завершения обучения на странице модели отображаются метрики и, если доступны результаты валидации, подробный анализ, например матрица ошибок.

Шаг 6. Разверни модель как размещённый API#

Открой вкладку Deploy модели. На карте и в таблице перечислены 42 региона, отсортированные по измеренной задержке для твоего местоположения. Нажми Deploy в нужном регионе, проверь характеристики CPU, объём памяти и цену, а затем нажми Create Deployment.

От выбранного размера зависит способ оплаты:

  • Размер по умолчанию (1 vCPU, 2 GiB): бесплатный; при отсутствии нагрузки масштабируется до нуля.
  • Пользовательские размеры (до 8 vCPU и 32 GiB): поддерживают один прогретый экземпляр; оплата взимается по указанной почасовой ставке для региона с момента готовности до остановки конечной точки, в том числе во время простоя.

Каждая выделенная конечная точка — это сервис для одного клиента с собственным URL и мониторингом, привязанный к одному ключу API из твоей рабочей области. В бесплатных рабочих областях можно запускать 3 развертывания, в Pro — 10, а в Enterprise их количество не ограничено. О том, когда выделенная конечная точка предпочтительнее общей инференс-инфраструктуры, читай в нашем руководстве «Выделенный или общий инференс».

Шаг 7. Отправь запрос к конечной точке#

Установи Requests с помощью python -m pip install requests и сохрани изображение как image.jpg. Замени пример URL на скопированный URL своего развертывания, добавив в конец /predict, а вместо YOUR_API_KEY укажи ключ, привязанный к этому развертыванию:

import requests

url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.5, "imgsz": 640}

with open("image.jpg", "rb") as f:
    response = requests.post(url, headers=headers, data=data, files={"file": f})

print(response.json())

Тот же запрос с помощью cURL:

curl -X POST "https://YOUR_DEPLOYMENT_URL.run.app/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.5" \
  -F "imgsz=640"

Для каждой конечной точки доступна интерактивная справка по API по адресу /docs и проверка /health. Прямые запросы обходят ограничение частоты запросов API Platform, но для каждой конечной точки используется один экземпляр: если запрос нельзя обработать быстро, возвращается 429 с заголовком Retry-After, а размер тела запроса ограничен 32 МБ. Когда конечная точка будет запущена, ты сможешь отслеживать запросы, ошибки и задержку на странице развертывания.

Кратко о расходах, ограничениях и безопасности#

ПараметрЧто нужно знать
ТарифДля наборов данных S3, Google Cloud Storage и Azure Blob требуется тариф Pro ($29 за место в месяц) или Enterprise
ХранилищеИндексированные изображения остаются в бакете и не расходуют квоту хранилища Platform
ОбучениеОплата за время работы GPU списывается с кредитов; стоимость оценивается в диалоговом окне до запуска
Конечная точкаРазмер по умолчанию бесплатный и масштабируется до нуля; пользовательские размеры оплачиваются почасово во время работы
Размер импортаДо 500 000 объектов за один импорт
Учётные данныеДолгосрочный ключ пользователя IAM, зашифрованный при хранении и недоступный задачам обучения
Недоступно для наборов данных S3Клонирование наборов данных, снимки версий, размытие лиц, вставка изображений из других наборов данных

Ultralytics Platform в сравнении с SageMaker, Vertex AI и Azure ML#

Универсальные облачные ML-платформы также позволяют обучать модели на данных в собственном хранилище и предоставлять модели. Столбцы о хранении и предоставлении моделей ниже составлены по документации каждой платформы; последний столбец содержит нашу оценку.

ПлатформаГде хранятся данные для обученияВарианты предоставления моделейРекомендуемый сценарий (наша оценка)
Ultralytics Platform с Ultralytics YOLOИндексирование на месте из S3, Google Cloud Storage или Azure BlobВыделенные конечные точки с одним экземпляром в 42 регионах; для размера по умолчанию предусмотрено масштабирование до нуляКоманды, которым нужны детекция, сегментация, оценка позы или OBB с помощью YOLO — от данных в бакете до API без написания кода для обучения или предоставления модели
Amazon SageMaker AIЗадачи обучения считывают данные из Amazon S3, Amazon EFS или Amazon FSx for LustreКонечные точки для работы в реальном времени с автомасштабированием, бессерверным и асинхронным инференсомКоманды, уже использующие ML-конвейеры в AWS и желающие самостоятельно выбирать контейнеры и способы предоставления моделей
Google Vertex AIБессерверные задачи обучения подключают доступные бакеты Cloud Storage по пути /gcs/Управляемые конечные точки для онлайн-инференсаКоманды, использующие данные и инструменты Google Cloud в стандартных рабочих процессах
Azure Machine LearningХранилища данных ссылаются на имеющееся хранилище Azure, например Blob StorageУправляемые онлайн-конечные точки для инференса в реальном времениКоманды, использующие Azure в стандартных рабочих процессах

В документации SageMaker по данным для обучения S3, EFS и FSx for Lustre указаны в качестве источников с потоковым режимом и режимом загрузки данных. Бессерверный инференс самостоятельно управляет масштабированием и подходит для трафика с периодами простоя, если допустим холодный старт; можно использовать контейнер SageMaker или собственный. Vertex AI запускает пользовательское обучение из приложения Python в предварительно собранном или собственном контейнере, а Azure Machine Learning подключается к существующему хранилищу Azure через хранилища данных и предоставляет модели через управляемые онлайн-конечные точки. Широкий спектр возможностей — сильная сторона универсальной платформы. По нашей оценке, для пользовательского рабочего процесса YOLO требуется больше настроек; требования к контейнерам зависят от выбранных вариантов обучения и предоставления модели. Если ты хочешь остаться в AWS, в нашем руководстве по развертыванию в SageMaker показано, как предоставлять там модель YOLO.

Ultralytics Platform намеренно специализируется на конкретной задаче. Она создана для моделей Ultralytics YOLO, поэтому описанные выше шаги заменяют скрипт обучения и контейнер для предоставления модели. Эта платформа подходит хуже, если в организации для каждой интеграции требуются временные учётные данные STS или если одна конечная точка должна масштабироваться на множество экземпляров при высокой параллельной нагрузке. Если ты ещё выбираешь, где запускать инференс, сравни стоимость, задержку и контроль над данными в нашем руководстве по облачному и локальному развертыванию.

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

  • Ultralytics Platform подключается к бакету S3, индексирует изображения на месте, обучает YOLO26 на облачном GPU и развёртывает модель на выделенной конечной точке HTTPS. Amazon SageMaker AI также обучает модели на данных S3 и предлагает инференс в реальном времени, бессерверный и асинхронный инференс; в зависимости от варианта предоставления модели можно использовать контейнер SageMaker или собственный. Google Vertex AI и Azure Machine Learning предлагают похожие процессы, построенные на собственных хранилищах, Cloud Storage и хранилище Azure, а не на уже существующем бакете S3.

  • Platform не хранит вторую копию набора данных: она индексирует изображения и передаёт исходники по запросу. Если функции AI включены, во время обучения в облаке вне твоего бакета используются временные копии, а поиск похожих изображений сохраняет эмбеддинг каждого изображения. Platform никогда не изменяет и не удаляет твои объекты.

  • Пока нет. Platform требует долгосрочный ключ доступа отдельного пользователя IAM и не принимает учётные данные STS, поскольку они истекают, пока набор данных подключён. Ограничь пользователя правами только на просмотр содержимого и чтение, а чтобы отозвать доступ, деактивируй ключ в IAM.

  • Для наборов данных S3 нужен тариф Pro ($29 за место в месяц, включая ежемесячный кредит $30 на каждое место) или Enterprise. Обучение оплачивается по времени работы GPU, а диалоговое окно оценивает стоимость до запуска. Размер конечной точки по умолчанию бесплатный и масштабируется до нуля; пользовательские размеры оплачиваются почасово во время работы.

  • Да. Google Cloud Storage подключается с помощью JSON-ключа сервисного аккаунта и роли Storage Object Viewer, а Azure Blob Storage — с помощью строки подключения с ключом доступа к учетной записи по HTTPS (строки с токеном SAS не принимаются). Этапы работы с датасетом, обучения и развертывания одинаковы.

  • Датасет индексируется один раз при создании, поэтому новые объекты не добавляются автоматически. Добавляй новые объекты, а не перезаписывай существующие, затем создай новый датасет, в который они войдут, и запусти обучение или дообучение.

  • Да. Скачай веса или экспортируй модель в такие форматы, как ONNX, TensorRT и CoreML, со страницы модели, а затем запускай ее на собственных серверах или периферийных устройствах с помощью пакета Ultralytics Python.

Автор

Miles Deans
Miles Deans

Руководитель SEO-направления · Ultralytics

Майлз Динс — руководитель направления SEO в Ultralytics, базирующийся в Лондоне. Он отвечает за поисковую стратегию компании и рост органического трафика. Ранее он работал в Adobe, Kaizen и Virgin Media O2.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения