Ultralytics YOLO27:

Выделенные конечные точки#

Ultralytics Platform позволяет развертывать модели YOLO на выделенных эндпоинтах в 42 глобальных регионах. Каждый эндпоинт представляет собой однопользовательский сервис с уникальным URL эндпоинта и независимым мониторингом. Размер ресурсов по умолчанию масштабируется до нуля при простаивании, а пользовательские размеры сохраняют прогретый инстанс и тарифицируются за время работы.

Вкладка развертывания моделей Ultralytics Platform с картой регионов и таблицей

Создать конечную точку#

Из вкладки Deploy#

Разверни модель из её вкладки Deploy:

  1. Перейди к своей модели
  2. Нажми вкладку Deploy
  3. Изучи карту мира и таблицу регионов, отсортированную по измеренной задержке от твоего местоположения
  4. Нажми Deploy в строке нужного региона
  5. В диалоговом окне проверь CPU, память, стоимость и имя развертывания, затем нажми Create Deployment

Предложенное имя объединяет имя модели и город региона (например, yolo26n-iowa) и может быть изменено перед развертыванием. Модель должна содержать веса, иначе вкладка отображает пустое состояние вместо таблицы регионов.

Со страницы Deployments#

Создай развертывание на глобальной странице Deploy в боковой панели:

  1. Нажми New Deployment
  2. Выбери модель в списке моделей, где отображаются завершенные тобой модели
  3. Выбери регион на мини-карте или в таблице задержки
  4. Выбери CPU и память, проверь стоимость и при необходимости отредактируй предложенное имя развертывания
  5. Нажми Create Deployment

Диалоговое окно создания нового развертывания Ultralytics Platform с выбором модели и картой регионов

Жизненный цикл развёртывания#

stateDiagram-v2
    [*] --> Creating: Deploy
    Creating --> Deploying: Service starting
    Deploying --> Ready: Service URL published
    Ready --> Stopping: Stop
    Ready --> Deploying: Replace model
    Stopping --> Stopped: Stopped
    Stopped --> Deploying: Start
    Deploying --> Stopped: Start failed
    Ready --> [*]: Delete
    Stopped --> [*]: Delete
    Creating --> Failed: Error
    Deploying --> Failed: Error
    Failed --> [*]: Delete

    classDef proc fill:#2196F3,color:#fff
    classDef out fill:#9C27B0,color:#fff
    classDef error fill:#F44336,color:#fff
    classDef extern fill:#607D8B,color:#fff
    class Creating,Deploying,Stopping proc
    class Ready out
    class Failed error
    class Stopped extern

Подключи уведомления Slack, чтобы получать сообщение, когда развертывание будет готово или не запустится.

Выбор региона#

Выбирай из 42 регионов по всему миру. На интерактивной карте регионов и в таблице отображаются:

  • Метки регионов: цветовая кодировка по задержке с градиентом от зеленого к красному (в более быстрых регионах цвет зеленее, в более медленных — краснее)
  • Развернутые регионы: в таблице выделены значком «Deployed»
  • Регионы в процессе развертывания: на метке и в строке таблицы отображается анимированный индикатор пульсации
  • Двунаправленная подсветка: при наведении на карту подсвечивается строка таблицы и наоборот

Ultralytics Platform Deploy Tab Region Latency Table Sorted By Latency

Таблица регионов на вкладке модели Deploy включает:

СтолбецОписание
МестоположениеГород и страна со значком флага
ЗонаИдентификатор региона
ЗадержкаИзмеренное время отклика из твоего браузера
РасстояниеРасстояние от твоего приблизительного местоположения в км
ДействияКнопка Deploy или значок статуса «Deployed»

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

Диалоговое окно New Deployment

В диалоговом окне New Deployment (на глобальной странице Deploy) отображается более простая таблица регионов только со столбцами «Местоположение», «Задержка» и «Выбрать», в которой перечислены 20 самых быстрых регионов, а остальные обозначены отдельной заметкой. Используй мини-карту, чтобы выбрать любой другой регион.

Как измеряется задержка

Твой браузер измеряет задержку до каждого из 42 регионов, а результаты кэшируются на 30 минут и доступны на вкладке Deploy и в диалоговом окне New Deployment. Используй кнопку Rescan на вкладке модели Deploy, чтобы повторно измерить задержку из текущей сети. Расстояние вычисляется по приблизительному местоположению, из которого отправлен запрос, поэтому это ориентировочное, а не точное значение.

Доступные регионы#

ЗонаРасположение
us-central1Айова, США
us-east1Южная Каролина, США
us-east4Северная Виргиния, США
us-east5Колумбус, США
us-south1Даллас, США
us-west1Орегон, США
us-west2Лос-Анджелес, США
us-west3Солт-Лейк-Сити, США
us-west4Лас-Вегас, США
northamerica-northeast1Монреаль, Канада
northamerica-northeast2Торонто, Канада
northamerica-south1Керетаро, Мексика
southamerica-east1Сан-Паулу, Бразилия
southamerica-west1Сантьяго, Чили

Настройка endpoint#

Диалоговое окно New Deployment#

Диалоговое окно New Deployment позволяет выбрать модель, регион, ресурсы и имя развертывания:

ПолеОписание
МодельЛюбая завершённая модель в рабочей области, выбранная с помощью селектора
РегионРегион развертывания, выбранный на мини-карте или в таблице задержки
CPU и памятьВыбери размер ресурсов и проверь отображаемую стоимость
Имя развертыванияГенерируется автоматически после выбора модели и региона, но его можно изменить

Ultralytics Platform New Deployment Dialog Fixed Resource Defaults

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

Диалоговое окно нового развертывания на платформе Ultralytics: настройка процессора, памяти и ценообразования

Автоматически сгенерированные имена

Имя развертывания объединяет имя модели с названием города региона, например yolo26n-iowa. На вкладке модели Deploy числовой суффикс добавляется, если у этой модели уже есть развертывание в регионе (например, yolo26n-iowa-2). Имена должны быть уникальными в пределах рабочей области — при развертывании уже существующего имени возвращается ошибка, а имя не изменяется автоматически.

Вкладка Deploy (быстрое развертывание)#

Развертывание с вкладки модели Deploy открывает то же диалоговое окно с предварительно выбранными моделью и регионом. Проверь размер ресурсов, стоимость и автоматически сгенерированное имя перед созданием эндпоинта. Развертывание появляется в списке Active Deployments во время его создания.

Управление endpoint#

Режимы представления#

Список развертываний поддерживает три режима просмотра:

РежимОписание
КарточкиПодробные карточки с вкладками журналов, кода, предсказаний и доступного мониторинга
КомпактныйСетка небольших карточек с ключевыми метриками
ТаблицаТаблица данных с сортировкой по столбцам и поиском

Ultralytics Platform Deploy Tab Active Deployments Cards View

Карточка развертывания (режим «Карточки»)#

Каждая карточка развертывания в режиме карточек содержит:

  • Шапка: название, флаг региона, значок статуса и кнопки действий, доступные для текущего статуса: обновление конфигурации, замена и остановка при статусе Готово (Ready), запуск при статусе Остановлено (Stopped), удаление в любое время
  • URL endpoint: URL, который можно скопировать, со ссылкой на собственную справочную документацию API endpoint
  • Метрики: количество запросов (24 ч), задержка P95, частота ошибок или «Трафика пока нет»
  • Проверка работоспособности: индикатор состояния в реальном времени с задержкой и ручным обновлением
  • Вкладки: Logs, Code и Predict; для платных эндпоинтов также отображается Monitoring
  • Нижний колонтитул: префикс API-ключа, привязанного к развертыванию, и дата, когда оно стало готово
  • Сообщение о состоянии: причина сбоя, если развертывание завершилось ошибкой

URL, метрики, проверка работоспособности и вкладки отображаются только пока развертывание находится в состоянии Готово. На вкладке Logs отображаются последние записи журнала с фильтрацией по уровню серьезности (Все / Ошибки). На вкладке Code приведены готовые к использованию примеры кода на Python, JavaScript и cURL с URL твоего endpoint, а также привязанный API-ключ для владельцев рабочей области (см. Мониторинг). На вкладке Predict доступна встроенная панель предсказаний для непосредственного тестирования развертывания.

Компактный режим и режим таблицы

Компактные карточки показывают флаг, имя, город, состояние и три метрики. В режиме таблицы можно сортировать данные по столбцам «Имя», «Регион», «Состояние», «Запросы», «P95» и «Ошибки», а поиск выполняется по имени, региону и состоянию. В обоих режимах доступно удаление; запуск, остановка и замена доступны в режиме карточек.

Обновление центрального процессора (CPU) и памяти#

  1. Открой готовый эндпоинт в режиме просмотра Карточки (Cards).
  2. Нажми Обновить конфигурацию развертывания (Update deployment configuration).
  3. Выбери центральный процессор (CPU) и память (Memory) и просмотри отображаемую почасовую стоимость.
  4. Нажми Обновить конфигурацию (Update Configuration). Текущая конфигурация продолжает обслуживать запросы, пока новая не будет готова.

Конфигурация обновления центрального процессора и памяти для развертывания на платформе Ultralytics

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

Временные данные мониторинга

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

Замена модели#

Замени модель, используемую готовым endpoint, не меняя его URL:

  1. Открой развертывание в режиме Карточки
  2. Нажми Заменить модель
  3. Выбери другую завершённую модель из той же рабочей области
  4. При необходимости измени имя развертывания
  5. Нажми Заменить модель

Текущая модель продолжает обслуживать запросы, пока запускается замена. Когда новая модель будет готова, трафик переключится на неё. Идентификатор развертывания, URL, регион и API-ключ останутся неизменными; отображаемое имя изменится только в том случае, если ты введёшь новое. Если замена завершится ошибкой, предыдущие модель и имя останутся активными.

Для замены должны выполняться все перечисленные условия, иначе операция будет отклонена:

  • Развертывание находится в состоянии Готово, и для него не выполняется другая операция жизненного цикла
  • У заменяющей модели есть веса, и она принадлежит той же рабочей области, что и развертывание
  • Заменяющая модель не является уже развернутой моделью
Одна модель на endpoint

При замене предыдущая модель удаляется из развертывания. Каждый endpoint обслуживает одну модель; создай ещё одно развертывание, если тебе нужно одновременно использовать обе модели.

Состояния развертывания#

СтатусОписание
СозданиеРазвертывание настраивается
РазвертываниеКонтейнер запускается
ГотовоEndpoint работает и принимает запросы
ОстановкаEndpoint выключается
ОстановленоEndpoint приостановлен и недоступен
ОшибкаРазвертывание завершилось ошибкой (см. сообщение об ошибке)

URL endpoint#

У каждого endpoint есть уникальный URL, например:

https://predict-<deployment-id>-<hash>-<region>.a.run.app

Ultralytics Platform Deployment Card Endpoint Url With Copy Button

Нажми кнопку копирования, чтобы скопировать URL. Нажми значок документации, чтобы открыть собственную справочную документацию API эндпоинта. Эндпоинт обслуживает следующие пути:

ПутьМетодОписание
/predictPOSTЗапуск инференса; требуется API-ключ развертывания
/healthGETПроверка работоспособности с отображением состояния сервиса и количества кэшированных моделей
/GETСводка состояния развернутого сервиса
/docsGETИнтерактивная справочная документация API, сгенерированная для этого развертывания, модели и региона

Управление жизненным циклом#

Управляй состоянием своего endpoint:

graph LR
    R[Ready]:::out -->|Stop| S[Stopped]:::extern
    S -->|Start| R
    R -->|Delete| D[Deleted]:::error
    S -->|Delete| D

    classDef out fill:#9C27B0,color:#fff
    classDef error fill:#F44336,color:#fff
    classDef extern fill:#607D8B,color:#fff
ДействиеОписание
ЗапуститьВозобновить работу остановленного endpoint
ОстановитьПриостановить эндпоинт
УдалитьУдалить эндпоинт без возможности восстановления

Остановить эндпоинт#

Останови эндпоинт, если не хочешь, чтобы он принимал запросы:

  1. Нажми значок паузы на карточке развертывания
  2. Статус эндпоинта изменится на "Stopping", а затем на "Stopped"

Остановленные эндпоинты:

  • Не принимать запросы и не сообщать актуальные метрики или статус работоспособности
  • Прекратить начисление платы за время работы
  • Потерять временную статистику мониторинга и примеры изображений при выключении обслуживающего экземпляра
  • Сохраняют свой URL, регион и привязанный API key; их можно перезапустить в любое время
  • По-прежнему учитываются в квоте развертываний твоего плана — удали эндпоинт, чтобы освободить слот

Удалить эндпоинт#

Безвозвратно удалить эндпоинт:

  1. Нажми значок удаления (корзины) на карточке развертывания
  2. Подтверди удаление в диалоговом окне
Безвозвратное действие

Удаление выполняется немедленно и безвозвратно — развертывания не перемещаются в Trash. При удалении эндпоинта удаляется его сервис и освобождается слот в квоте развертываний. Ты всегда можешь создать новый эндпоинт, но он получит новый URL.

Развертывания также удаляются, если их модель или проект удалены безвозвратно либо если находящаяся в корзине модель или проект достигает конца периода хранения.

Использование эндпоинтов#

Аутентификация#

Каждое развертывание привязано к одному API key из рабочего пространства, которому принадлежит модель. Добавляй его в запросы:

Authorization: Bearer YOUR_API_KEY

Эндпоинт принимает только ключ, привязанный при создании, поэтому никакой другой ключ не откроет его — даже другой активный ключ в том же рабочем пространстве. Чтобы указать, какой ключ будет привязан, разверни модель через API с аутентификацией с помощью ключа владельца рабочего пространства: именно этот ключ будет привязан, и он уже у тебя есть. Развертывания, созданные любым другим способом (через интерфейс Platform или API-вызов, аутентифицированный как участник команды), автоматически привязывают один из активных ключей рабочего пространства-владельца — определи его по префиксу ключа, показанному в нижней части карточки развертывания, и попроси его значение у владельца рабочего пространства, поскольку только владелец может просматривать значения ключей (см. API Keys). Участники команды без привязанного ключа по-прежнему могут выполнять инференс через прокси Platform predict в браузере.

Удаление привязанного ключа не блокирует эндпоинт

Удаление или деактивация привязанного API key не отзывает прямой доступ к эндпоинту — любой, у кого есть строковое значение ключа, по-прежнему может обращаться к URL эндпоинта. При этом перестает работать прокси Platform predict: он проверяет ключ в реальном времени и сообщает, что тот больше недоступен. Чтобы полностью отозвать доступ, останови или удали развертывание; после ротации ключей создай эндпоинт заново, чтобы он привязал новый ключ.

Прямые запросы к эндпоинту#

Отправляй рабочие запросы напрямую на URL, указанный на карточке развертывания. Эти запросы не проходят через ограничитель частоты запросов Platform API, поэтому лимит predict в 20 запросов в минуту не применяется. При этом у эндпоинта есть собственное ограничение пропускной способности:

  • Каждый эндпоинт обслуживается одним экземпляром, который одновременно обрабатывает ограниченное число запросов
  • Запросы, которые нельзя быстро обработать, возвращают 429 с заголовком Retry-After
  • Один запрос может выполняться до 1 часа, что позволяет завершить инференс видео
  • Ответы размером более 1 КБ сжимаются с помощью gzip, а междоменные запросы из браузера разрешены

Пример запроса#

import requests

# Deployment endpoint
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"

# Headers with your deployment API key
headers = {"Authorization": "Bearer YOUR_API_KEY"}

# Inference parameters
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

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

print(response.json())

Параметры запроса#

ПараметрТипПо умолчаниюДиапазонОписание
filefile--Файл изображения или видео (обязателен, если не задан source)
conffloat0.250.01 – 1.0Минимальный порог уверенности
ioufloat0.70.0 – 0.95Порог IoU для NMS
imgszint64032 – 1280Размер входного изображения в пикселях
normalizeboolfalse-Возвращать координаты ограничивающих рамок в диапазоне 0 – 1
decimalsint50 – 10Точность координатных значений после запятой
bitsint88, 12, 16Квантизация карты глубины, только для моделей глубины
sourcestring--URL изображения или строка base64 (альтернатива file)

См. раздел Ответы для глубины, чтобы узнать, как bits изменяет возвращаемую карту глубины и как ее декодировать.

Инференс видео

Выделенные эндпоинты принимают изображения и видео через параметр file.

  • Форматы изображений (до 100 МБ): AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WEBP
  • Форматы видео (до 100 МБ): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV

Каждый кадр видео обрабатывается отдельно, а результаты возвращаются для каждого кадра. Вместо file через параметр source также можно передать общедоступный URL изображения или изображение в кодировке base64. Слишком большие загрузки отклоняются с ошибкой 413.

Формат ответа#

Такой же, как у общего инференса, с полями, зависящими от задачи.

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

  • Ограничения на количество эндпоинтов зависят от плана:

    • Free: до 3 развертываний
    • Pro: до 10 развертываний
    • Enterprise: неограниченное количество развертываний

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

  • Нет, регионы изменить нельзя. Чтобы сменить регион:

    1. Удали существующий эндпоинт
    2. Создай новый эндпоинт в нужном регионе

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

  • Для глобального покрытия:

    1. Разверни модель в нескольких регионах
    2. Используй балансировщик нагрузки или маршрутизацию DNS
    3. Направляй пользователей к ближайшему эндпоинту
  • Время холодного старта зависит от модели и от того, масштабировался ли эндпоинт до нуля; Platform дает простаивающему эндпоинту дополнительное время на запуск, прежде чем сообщить, что он неработоспособен. Запуск проверки работоспособности с карточки развертывания перед резким ростом трафика прогревает экземпляр.

  • Нет. Каждое развертывание обслуживает трафик по сгенерированному URL эндпоинта, указанному на его карточке развертывания; этот URL остается неизменным в течение всего срока существования развертывания, в том числе при замене моделей.

Комментарии