Бессерверные вычисления
Узнайте, как бессерверные вычисления революционизируют AI/ML благодаря масштабируемости, экономичности и быстрому развертыванию. Создавайте умнее и быстрее уже сегодня!
Бессерверные вычисления - это модель выполнения облачных вычислений, при которой поставщик облачных услуг динамически управляет распределением и предоставлением серверов. Разработчики могут писать и развертывать код как отдельные функции без необходимости управлять базовой инфраструктурой, такой как операционные системы или серверное оборудование. Хотя серверы по-прежнему используются, управление ими полностью абстрагировано, что позволяет командам сосредоточиться на создании логики приложения. Это особенно удобно для быстрой итерации проектов в области искусственного интеллекта (AI) и машинного обучения (ML), позволяя ускорить циклы разработки и эффективно использовать ресурсы.
Понимание бессерверной архитектуры
В бессерверных системах приложения часто строятся как набор независимых функций, запускаемых по определенным событиям. Такая модель известна как функция как сервис (FaaS). События могут включать HTTP-запросы (например, вызовы API), изменения в базе данных, загрузку файлов в облачное хранилище или сообщения из системы очередей. При возникновении события поставщик облачных услуг автоматически выделяет необходимые вычислительные ресурсы для выполнения соответствующей функции. После завершения выполнения эти ресурсы уменьшаются, часто до нуля, если нет ожидающих запросов. Такой подход к автоматическому масштабированию с учетом событий значительно отличается от традиционных архитектур, в которых серверы работают непрерывно, что может привести к простаиванию ресурсов и увеличению операционных расходов. Он хорошо согласуется с переменчивыми требованиями многих сценариев использования ИИ.
Преимущества ИИ и ОД
Бессерверные вычисления дают неоспоримые преимущества для рабочих нагрузок ИИ и ОД, которые часто требуют переменных вычислений:
- Автоматическая масштабируемость: легко справляется с непредсказуемыми нагрузками. Например, механизм выводов, обслуживающий прогнозы, может столкнуться с внезапным всплеском запросов. Бессерверные платформы автоматически масштабируют экземпляры функций вверх или вниз, чтобы удовлетворить спрос без ручного вмешательства, обеспечивая стабильную производительность. Это очень важно для приложений, требующих проведения выводов в режиме реального времени.
- Экономическая эффективность: Работает на основе оплаты за использование. Как правило, счет выставляется только за фактическое вычислительное время, затраченное вашими функциями, вплоть до миллисекунды. Это позволяет избежать затрат, связанных с неиспользуемыми серверными мощностями, что делает ее экономичной для таких задач, как периодическое обучение моделей или нечастые задания по обработке данных. Оцените преимущества эффекта масштаба.
- Ускоренные циклы разработки: Отказ от управления инфраструктурой. Разработчики могут сосредоточиться исключительно на написании кода для конкретных задач, таких как предварительная обработка данных, извлечение признаков или запуск логики прогнозирования. Это ускоряет разработку и развертывание, способствуя более быстрому экспериментированию с различными моделями или стратегиями настройки гиперпараметров(руководство Ultralytics).
- Упрощенные операции: Снижение эксплуатационных расходов. Такие задачи, как обновление операционных систем, управление серверными мощностями и обеспечение высокой доступности, решаются облачным провайдером, что позволяет высвободить ресурсы для основных задач ML. Узнайте больше об операциях машинного обучения (MLOps).
Приложения реального мира в искусственном интеллекте/МЛ
Бессерверные архитектуры хорошо подходят для решения различных задач ИИ/МЛ:
- Анализ изображений и видео: Рассмотрим приложение, выполняющее обнаружение объектов на загружаемых пользователем изображениях с помощью модели Ultralytics YOLO. Событие загрузки в облачное хранилище (например, Amazon S3 или Google Cloud Storage) запускает бессерверную функцию. Эта функция загружает изображение, запускает модель YOLO для обнаружения, потенциально выполняет сегментацию изображения и сохраняет результаты (например, ограничительные рамки, метки классов) в базе данных или возвращает их через API. Система автоматически масштабируется в зависимости от количества загружаемых изображений, не требуя предварительно выделенных серверов. Этот паттерн полезен в самых разных приложениях - от модерации контента до анализа медицинских изображений. Другие примеры решений Ultralytics см. в разделе " Решения Ultralytics".
- Бэкенды чатботов: Многие чат-боты, работающие на основе больших языковых моделей (LLM), используют бессерверные функции для обработки входящих сообщений пользователей. Каждое сообщение запускает функцию, которая обрабатывает текст, взаимодействует с API LLM (например, GPT-4), выполняет необходимые действия (например, поиск в базе данных с помощью векторного поиска) и отправляет ответ. Модель с оплатой за запрос идеально подходит для чат-ботов с переменчивым графиком использования. Изучите концепции обработки естественного языка (NLP).
Бессерверные технологии и смежные концепции
Важно отличать бессерверные вычисления от смежных технологий:
- Облачные вычисления против бессерверных: Облачные вычисления - это широкое предоставление вычислительных услуг через Интернет. Бессерверные вычисления - это особая модель исполнения в рамках облачных вычислений, в которой особое внимание уделяется автоматическому управлению ресурсами и функциям, управляемым событиями (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).