Узнайте, как бессерверные вычисления упрощают развертывание ИИ. Научитесь создавать масштабируемые и экономичные рабочие процессы с помощью Ultralytics для эффективного машинного обучения.
Бессерверные вычисления — это модель выполнения в облаке, которая позволяет разработчикам создавать и запускать приложения без сложностей, связанных с управлением инфраструктурой. В этой парадигме поставщик облачных услуг динамически управляет распределением и предоставлением серверов, абстрагируя базовое оборудование и операционные системы от пользователя. Код выполняется в контейнерах без состояния, запускаемых определенными событиями, такими как HTTP-запрос, изменение базы данных или загрузка файла. Этот подход очень актуален для современных стратегий облачных вычислений, поскольку позволяет организациям платить только за фактически использованное вычислительное время, автоматически соблюдая требования к масштабируемости за счет расширения от нуля до тысяч экземпляров в зависимости от трафика.
В основе бессерверных вычислений лежит концепция Function-as-a-Service (FaaS), при которой приложения разбиваются на отдельные функции, выполняющие дискретные задачи. Для специалистов в области машинного обучения (ML) это предлагает оптимизированный путь для развертывания моделей. Вместо того, чтобы поддерживать выделенный сервер, который простаивает в периоды низкого трафика, бессерверная функция может запускаться по требованию для обработки данных и немедленно выключаться после этого.
Однако ключевым моментом в этой архитектуре является «холодный запуск» — задержка, возникающая при первом вызове функции или после периода бездействия. Чтобы смягчить эту проблему, разработчики часто используют легкие архитектуры, такие как YOLO26, или такие методы, как квантование модели, чтобы обеспечить быструю загрузку , что необходимо для поддержания низкой задержки вывода.
Бессерверные архитектуры особенно эффективны для управляемых событиями рабочих процессов компьютерного зрения (CV) и конвейеров данных .
Следующий код демонстрирует концептуальный бессерверный обработчик. Он инициализирует глобальный экземпляр модели, чтобы воспользоваться преимуществами «теплого запуска» (когда контейнер остается активным между запросами), и обрабатывает входящий путь к изображению.
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.
Используя бессерверные архитектуры, разработчики могут развертывать надежные решения искусственного интеллекта, которые являются экономически эффективными и способны обрабатывать непредсказуемые рабочие нагрузки, используя такие инструменты, как Ultralytics , для оптимизации процесса обучения и управления моделью перед развертыванием.