Глоссарий

Бессерверные вычисления

Узнай, как бессерверные вычисления революционизируют AI/ML благодаря масштабируемости, экономичности и быстрому развертыванию. Создавай умнее и быстрее уже сегодня!

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Бессерверные вычисления - это модель выполнения облачных вычислений, при которой облачный провайдер динамически управляет распределением и предоставлением серверов. Разработчики могут писать и разворачивать код в виде отдельных функций без необходимости управлять базовой инфраструктурой, такой как операционные системы или серверное оборудование. Хотя серверы по-прежнему используются, управление ими полностью абстрагировано, что позволяет командам сосредоточиться на создании логики приложения. Это особенно выгодно для быстрой итерации проектов в области искусственного интеллекта (AI) и машинного обучения (ML), позволяя ускорить циклы разработки и эффективно использовать ресурсы.

Понимание бессерверной архитектуры

В бессерверных установках приложения часто строятся как набор независимых функций, запускаемых по определенным событиям. Эту модель принято называть Function as a Service (FaaS). События могут включать в себя HTTP-запросы (например, вызовы API), изменения в базе данных, загрузку файлов в облачное хранилище или сообщения из системы очередей. Когда происходит событие, облачный провайдер автоматически выделяет необходимые вычислительные ресурсы для выполнения соответствующей функции. После завершения выполнения эти ресурсы уменьшаются, часто до нуля, если нет ожидающих запросов. Такой подход к автомасштабированию, основанный на событиях, значительно отличается от традиционных архитектур, в которых серверы работают непрерывно, что потенциально приводит к простаиванию ресурсов и увеличению эксплуатационных расходов. Он хорошо согласуется с переменчивыми требованиями многих сценариев использования ИИ.

Преимущества ИИ и МЛ

Бессерверные вычисления предлагают неоспоримые преимущества для рабочих нагрузок AI и ML, которые часто имеют переменные требования к вычислениям:

  • Автоматическая масштабируемость: легко справляется с непредсказуемыми нагрузками. Например, движок, обслуживающий прогнозы, может испытывать внезапные всплески запросов. Бессерверные платформы автоматически масштабируют экземпляры функций вверх или вниз, чтобы удовлетворить спрос без ручного вмешательства, обеспечивая стабильную производительность. Это очень важно для приложений, требующих делать выводы в реальном времени.
  • Экономическая эффективность: Работает по принципу оплаты за использование. Обычно тебе выставляют счет только за фактическое вычислительное время, потребляемое твоими функциями, вплоть до миллисекунды. Это позволяет избежать затрат, связанных с неиспользуемыми серверными мощностями, что делает его экономичным для таких задач, как периодическое обучение моделей или нечастые задания по обработке данных. Изучи преимущества экономии от масштаба.
  • Ускоренные циклы развития: Абстрагируйся от управления инфраструктурой. Разработчики могут сосредоточиться исключительно на написании кода для конкретных задач, таких как предварительная обработка данных, извлечение признаков или запуск логики предсказания. Это ускоряет разработку и развертывание, способствуя более быстрому экспериментированию с различными моделями или стратегиями настройки гиперпараметровUltralytics руководствоUltralytics ).
  • Упрощенные операции: Снижает операционные накладные расходы. Такие задачи, как исправление операционных систем, управление серверными мощностями и обеспечение высокой доступности, берет на себя поставщик облачных услуг, освобождая ресурсы для основных задач ML. Узнай больше об операциях машинного обучения (MLOps).

Приложения реального мира в AI/ML

Бессерверные архитектуры хорошо подходят для решения различных задач AI/ML:

  1. Анализ изображений и видео: Рассмотрим приложение, выполняющее обнаружение объектов на загружаемых пользователем изображениях с помощью Ultralytics YOLO модель. Событие загрузки изображения в облачное хранилище (например, Amazon S3 или Google Cloud Storage) запускает бессерверную функцию. Эта функция загружает изображение, запускает модель YOLO для обнаружения, потенциально выполняет сегментацию изображения и сохраняет результаты (например, ограничительные рамки, метки классов) в базе данных или возвращает их через API. Система автоматически масштабируется в зависимости от количества загрузок, не нуждаясь в заранее выделенных серверах. Этот паттерн полезен в самых разных приложениях - от модерации контента до анализа медицинских изображений. Больше примеров можно найти в решенияхUltralytics .
  2. Бэкенды для чатботов: Многие чатботы, работающие на основе больших языковых моделей (LLM), используют бессерверные функции для обработки входящих сообщений пользователей. Каждое сообщение запускает функцию, которая обрабатывает текст, взаимодействует с API LLM (например, GPT-4), выполняет необходимые действия (например, поиск в базе данных с помощью векторного поиска) и отправляет ответ. Модель оплаты за запрос идеально подходит для чат-ботов с непостоянным графиком использования. Изучи концепции обработки естественного языка (NLP).

Бессерверность против смежных концепций

Важно отличать бессерверные вычисления от родственных технологий:

  • Облачные вычисления против бессерверных: Облачные вычисления - это широкая доставка вычислительных услуг через интернет. Serverless - это особая модель выполнения в рамках облачных вычислений, которая делает упор на автоматическое управление ресурсами и функции, управляемые событиями (FaaS), полностью абстрагируясь от управления серверами. Другие облачные модели, например инфраструктура как сервис (IaaS), по-прежнему требуют от пользователей управления виртуальными машинами.
  • Контейнеризация против бессерверности: Инструменты контейнеризации, такие как Docker, упаковывают приложения и их зависимости. Платформы оркестровки вроде Kubernetes автоматизируют развертывание, масштабирование и управление этими контейнерами. Хотя Kubernetes снижает операционную нагрузку по сравнению с управлением "голым металлом" или виртуальными машинами, ты все равно управляешь базовой кластерной инфраструктурой. Бессерверные платформы полностью абстрагируют этот слой; ты управляешь только функциональным кодом. Посмотри, как использовать Docker с Ultralytics.
  • Edge Computing vs. Serverless: Edge Computing подразумевает обработку данных локально на устройствах рядом с источником данных ("край"), чтобы уменьшить задержки и использование полосы пропускания. Бессерверные вычисления обычно выполняют функции в централизованных облачных дата-центрах. Несмотря на различие, они могут дополнять друг друга; устройство с пограничным ИИ (например, работающее на NVIDIA Jetson) может выполнять первичную обработку или фильтрацию, а затем запускать бессерверную функцию в облаке для более сложного анализа или агрегации. Почитай о камерах безопасности на базе ИИ, которые часто сочетают краевую и облачную обработку.

К ведущим бессерверным платформам относятся AWS Lambda, Google Cloud Functions и Azure Functions. Эти сервисы предоставляют инфраструктуру, необходимую для создания и эффективного запуска бессерверных AI/ML-приложений, часто интегрируясь с другими облачными сервисами для хранения данных, баз данных и обмена сообщениями. Платформы вроде Ultralytics HUB могут еще больше упростить развертывание и управление моделями в рамках различных архитектур, включая бессерверные установки(изучи документацию по HUB).

Читать полностью