Serverless Computing
Изучи, как бессерверные вычисления упрощают развертывание ИИ. Узнай, как создавать масштабируемые и экономичные рабочие процессы с использованием Ultralytics YOLO26 для эффективного инференса ML.
Бессерверные вычисления — это модель облачного выполнения, которая позволяет разработчикам создавать и запускать приложения без необходимости управления инфраструктурой. В этой парадигме облачный провайдер динамически управляет выделением и подготовкой серверов, скрывая базовое аппаратное обеспечение и операционные системы от пользователя. Код выполняется в бедных состояниями контейнерах, запускаемых определенными событиями, такими как HTTP-запрос, изменение базы данных или загрузка файла. Этот подход чрезвычайно важен для современных стратегий облачных вычислений, поскольку он позволяет организациям платить только за фактически использованное время вычислений, автоматически удовлетворяя требованиям масштабируемости за счет расширения от нуля до тысяч экземпляров в зависимости от спроса трафика.
Механика бессерверных вычислений для ИИ#
В основе бессерверных вычислений лежит концепция Function-as-a-Service (FaaS), в рамках которой приложения разбиваются на отдельные функции, выполняющие изолированные задачи. Для специалистов в области Machine Learning (ML) это предоставляет оптимизированный путь для развертывания моделей. Вместо поддержки выделенного сервера, который простаивает в периоды низкого трафика, бессерверная функция может запускаться по требованию для обработки данных и сразу же завершать работу после этого.
Тем не менее, ключевым фактором в этой архитектуре является «холодный старт» — задержка, возникающая при первом вызове функции или после периода неактивности. Чтобы сгладить этот эффект, разработчики часто используют легковесные архитектуры, такие как YOLO26, или такие методы, как квантование моделей, чтобы обеспечить быструю загрузку, что крайне важно для поддержания низкой задержки инференса.
Практическое применение в машинном обучении#
Бессерверные архитектуры особенно эффективны для событийно-ориентированных рабочих процессов компьютерного зрения (CV) и конвейеров данных.
- Автоматизированная предобработка данных: когда пользователь загружает необработанный набор данных в хранилище, например Amazon S3, это может инициировать запуск бессерверной функции для выполнения немедленной предобработки данных. Функция может изменять размер изображений, нормализовать значения пикселей или проверять форматы файлов до того, как данные попадут в конвейер обучающих данных, обеспечивая согласованность без ручного вмешательства.
- Умное видеонаблюдение по требованию: в сфере ИИ в безопасности датчик движения может активировать камеру для съемки кадра. Это событие вызывает облачную функцию, в которой размещена модель обнаружения объектов. Модель анализирует изображение, чтобы отличить безобидное животное от потенциального злоумышленника, и отправляет оповещение только тогда, когда это необходимо. Это резко снижает затраты на пропускную способность и хранение по сравнению с непрерывной потоковой передачей.
Пример на Python: обработчик бессерверного вывода#
Приведенный ниже код демонстрирует концептуальный бессерверный обработчик. Он инициализирует глобальный экземпляр модели, чтобы воспользоваться преимуществом «теплых стартов» (когда контейнер остается активным между запросами), и обрабатывает путь к входящему изображению.
from ultralytics import YOLO
# Initialize the model outside the handler to cache it for subsequent requests
# YOLO26n is ideal for serverless due to its compact size and speed
model = YOLO("yolo26n.pt")
def lambda_handler(event, context):
"""Simulates a serverless function handler triggered by an event. 'event' represents the input payload containing
the image source.
"""
image_source = event.get("url", "https://ultralytics.com/images/bus.jpg")
# Perform inference
results = model(image_source)
# Return prediction summary
return {
"statusCode": 200,
"body": {
"objects_detected": len(results[0].boxes),
"top_class": results[0].names[int(results[0].boxes.cls[0])] if len(results[0].boxes) > 0 else "None",
},
}Разграничение смежных технологий#
Понимание бессерверных вычислений требует их отличия от других моделей инфраструктуры, часто используемых в MLOps.
- Бессерверные вычисления против граничных вычислений: хотя обе концепции нацелены на оптимизацию эффективности, они работают в разных местах. Граничные вычисления обрабатывают данные локально на устройстве (например, на умной камере или IoT-устройстве), чтобы минимизировать время пересылки по сети. Бессерверные вычисления происходят в централизованном публичном облаке. Гибридные решения часто обрабатывают исходные данные на периферии и отправляют сложные аномалии в бессерверные облачные функции для более глубокого анализа медицинских изображений или криминалистической экспертизы.
- Бессерверные вычисления против Kubernetes: Kubernetes — это платформа оркестрации для контейнеризации, которая предоставляет разработчикам детальный контроль над средой кластера, сетевыми настройками и подами. Несмотря на свою мощность, она требует значительных накладных расходов на администрирование. Бессерверные платформы, такие как Google Cloud Functions или Azure Functions, полностью абстрагируют эту оркестрацию, позволяя командам сосредоточиться исключительно на логике кода, а не на состоянии узлов.
- Бессерверные вычисления против IaaS: Infrastructure-as-a-Service (IaaS) предоставляет виртуализированные вычислительные ресурсы через интернет, такие как Amazon EC2. В случае с IaaS пользователь несет ответственность за обновление операционной системы и управление промежуточным ПО. В противоположность этому, бессерверные вычисления снимают эти эксплуатационные обязанности, позволяя разработчикам сосредоточиться на более высокоуровневых задачах, таких как повышение точности классификации изображений.
Используя бессерверные архитектуры, разработчики могут развертывать надежные ИИ-решения, которые являются экономически эффективными и способны справляться с непредсказуемыми нагрузками, задействуя такие инструменты, как Ultralytics Platform, для оптимизации процессов обучения и управления моделями перед их развертыванием.






