Serverless Computing
Узнай, как serverless computing упрощает развёртывание ИИ. Научись создавать масштабируемые и экономичные рабочие процессы с использованием Ultralytics YOLO26 для эффективного вывода ML-моделей.
Бессерверные вычисления — это облачная модель выполнения, которая позволяет разработчикам создавать и запускать приложения без сложностей, связанных с управлением инфраструктурой. В рамках этой парадигмы облачный провайдер динамически управляет распределением и предоставлением серверов, абстрагируя от пользователя базовое оборудование и операционные системы. Код выполняется в контейнерах без сохранения состояния, которые запускаются определёнными событиями, например HTTP-запросом, изменением базы данных или загрузкой файла. Такой подход особенно актуален для современных стратегий облачных вычислений, поскольку позволяет организациям платить только за потреблённое время вычислений и автоматически соблюдать требования масштабируемости, увеличивая количество экземпляров с нуля до тысяч в зависимости от нагрузки.
Механика бессерверных вычислений для AI#
В основе бессерверных вычислений лежит концепция «функция как услуга» (FaaS), в рамках которой приложения разбиваются на отдельные функции, выполняющие специализированные задачи. Для специалистов по машинному обучению (ML) это упрощает процесс развёртывания моделей. Вместо поддержки выделенного сервера, простаивающего в периоды низкой нагрузки, бессерверная функция может запускаться по требованию для обработки данных и немедленно завершать работу после этого.
Однако ключевой особенностью этой архитектуры является «холодный старт» — задержка, возникающая при первом вызове функции или после периода бездействия. Чтобы уменьшить её, разработчики часто используют лёгкие архитектуры, такие как YOLO26, или такие методы, как квантизация моделей, чтобы обеспечить быструю загрузку, что необходимо для поддержания низкой задержки инференса.
Практическое применение в машинном обучении#
Бессерверные архитектуры особенно эффективны для управляемых событиями рабочих процессов и конвейеров данных в области компьютерного зрения (CV).
- Автоматическая предобработка данных: Когда пользователь загружает необработанный набор данных в сервис хранения, например Amazon S3, это может запустить бессерверную функцию для немедленной предобработки данных. Функция может изменить размер изображений, нормализовать значения пикселей или проверить форматы файлов до того, как данные попадут в конвейер обучающих данных, обеспечивая согласованность без ручного вмешательства.
- Интеллектуальное видеонаблюдение по требованию: В области AI в сфере безопасности датчик движения может инициировать съёмку кадра камерой. Это событие вызывает облачную функцию с размещённой в ней моделью детекции объектов. Модель анализирует изображение, чтобы отличить безобидное животное от потенциального злоумышленника, и отправляет оповещение только при необходимости. По сравнению с непрерывной потоковой передачей это значительно снижает расходы на пропускную способность и хранение данных.
Пример на 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: Инфраструктура как услуга (IaaS) предоставляет виртуализированные вычислительные ресурсы через интернет, например Amazon EC2. При использовании IaaS пользователь отвечает за установку исправлений операционной системы и управление промежуточным ПО. В отличие от этого, бессерверные вычисления снимают эти эксплуатационные обязанности, позволяя разработчикам сосредоточиться на задачах более высокого уровня, таких как повышение точности классификации изображений.
Используя бессерверные архитектуры, разработчики могут развёртывать надёжные AI-решения, которые экономичны и способны обрабатывать непредсказуемые рабочие нагрузки, применяя такие инструменты, как Ultralytics Platform, для упрощения процесса обучения моделей и управления ими перед развёртыванием.









