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

Serverless Computing

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

Бессерверные вычисления — это модель облачного выполнения, при которой провайдер запускает код только в ответ на событие, автоматически запускает и масштабирует базовые серверы, отключает их до нуля, когда трафик прекращается, и выставляет счёт за запросы и время выполнения, а не за зарезервированные машины. Серверы по-прежнему существуют, но разработчикам не нужно их выделять, обновлять или подбирать для них размер. Эта модель получила широкое распространение благодаря AWS Lambda, анонсированной в ноябре 2014 года, и сейчас охватывает платформы функций, такие как Lambda, Azure Functions и Cloud Run functions, а также бессерверные контейнеры, например Google Cloud Run и Azure Container Apps. Исследователи из UC Berkeley описали преимущества и ограничения этой модели в статье 2019 года «Упрощённое облачное программирование: взгляд Беркли на бессерверные вычисления». Для машинного обучения бессерверная архитектура подходит для обслуживания моделей при всплесках или непредсказуемом трафике: плата за простаивающий сервер GPU между такими всплесками обошлась бы дороже самой работы.

Как работает бессерверное выполнение#

Код упаковывают в функцию или образ контейнера и привязывают к триггерам: HTTP-запросу, появлению файла в объектном хранилище, сообщению в очереди или расписанию. Когда поступает событие и доступен свободный прогретый экземпляр, платформа сразу запускает на нём обработчик. В противном случае происходит холодный запуск: платформа создаёт изолированную песочницу, например одну из микроВМ Firecracker, разработанных AWS для Lambda, загружает код, запускает языковую среду выполнения и выполняет код инициализации вне обработчика, прежде чем обработать событие. Экземпляры не хранят состояние и могут быть удалены, поэтому всё, что должно пережить запрос, сохраняют во внешнем хранилище или базе данных.

Холодные запуски и модели машинного обучения#

В машинном обучении холодные запуски обходятся дорого, поскольку при инициализации импортируется фреймворк, например PyTorch, и загружаются веса модели, которые могут занимать сотни мегабайт. Обычно модель загружают один раз на экземпляр — вне обработчика или при первом использовании, — чтобы каждый последующий запуск на прогретом экземпляре мог её повторно использовать. Этот обработчик использует именно такой подход с классификатором ResNet-50 из torchvision:

import time

import torch
import torchvision

model = None  # module state survives between invocations while the instance stays warm


def handler(event, context):
    """Classify one image tensor, building the model only on a cold start."""
    global model
    cold_start = model is None
    if cold_start:
        model = torchvision.models.resnet50().eval()  # built once per instance
    with torch.inference_mode():
        logits = model(event["image"])
    return {"cold_start": cold_start, "class_id": int(logits.argmax())}


for _ in range(3):
    start = time.perf_counter()
    response = handler({"image": torch.rand(1, 3, 224, 224)}, context=None)
    print(response["cold_start"], f"{(time.perf_counter() - start) * 1000:.0f} ms")

На CPU Apple M5 Pro первый вызов строит сеть и занимает около 0,2 секунды, а два последующих вызова с повторным использованием сети на прогретом экземпляре занимают примерно по 15 мс. Команды сокращают оставшееся время холодного запуска с помощью образов контейнеров меньшего размера, компактных или квантованных моделей и более лёгких сред выполнения, таких как ONNX Runtime. Другой способ убрать холодный запуск — поддерживать минимальное число прогретых экземпляров, например использовать выделенную конкурентность Lambda или минимальное количество экземпляров Cloud Run, — но тогда снова приходится платить за простой.

Бессерверная архитектура для ИИ-нагрузок#

Бессерверная архитектура подходит для событийно-ориентированных конвейеров компьютерного зрения. Загрузка в объектное хранилище может запускать функцию, которая проверяет корректность изображения и изменяет его размер при предварительной обработке данных, прежде чем изображение попадёт в обучающий набор данных, а в системе охранной сигнализации датчик движения может отправить один кадр функции обнаружения объектов, которая отправляет оповещение только при обнаружении человека. Дальше всё определяют ограничения платформы: AWS Lambda ограничивает продолжительность каждого вызова 15 минутами, предоставляет до 10 240 МБ памяти и не предоставляет GPU, поэтому подходит для инференса на CPU с компактными моделями, но исключает длительные запуски обучения, не говоря уже о распределённом обучении на большом количестве GPU. Бессерверные вычисления с GPU восполнили этот пробел: Cloud Run подключает GPU NVIDIA L4 к контейнерам, которые при этом масштабируются до нуля, а такие платформы, как Modal, тарифицируют время использования GPU посекундно.

Платформа Ultralytics предлагает такой же компромисс для развёртываний YOLO: конечная точка с размером по умолчанию — 1 vCPU и 2 GiB — бесплатна и в состоянии простоя масштабируется до нуля; запуск из состояния простоя может занимать около минуты. Пользовательские размеры поддерживают один прогретый экземпляр и тарифицируются за всё время его работы.

  • Инфраструктура как услуга: виртуальные машины работают круглосуточно и тарифицируются независимо от того, поступают ли запросы; клиент управляет операционной системой и масштабированием. Длительные задания на обучение обычно запускают здесь.
  • Kubernetes: оркестрирует контейнеры в кластерах, которыми управляет команда. Knative добавляет поверх него масштабирование до нуля по запросам; KServe использует эту возможность для обслуживания моделей.
  • Периферийные вычисления: выполняют код на устройствах, которые производят данные, или рядом с ними. Бессерверные вычисления выполняют код в облачном регионе, а некоторые периферийные платформы сочетают оба подхода, запуская функции во множестве небольших локаций рядом с пользователями.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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