Современные требования к инфраструктуре для агентских AI-систем. Развертывание, поддержка и операционные расходы

Агентские AI-системы, которые могут взаимодействовать с окружением посредством сложных интеграций,принимать автономные решения и адекватно реагировать на обратную связь от пользователя, требуют серьезной инфраструктурной поддержки. В этой статье я собираюсь рассмотреть ключевые аспекты развертывания и поддержки таких систем как в облаке, так и на выделенных кластерах. За основу я возьму свой опыт развертывания агентской системы в кластере Linux-серверов, где все сложности по конфигурации и поддержке инфраструктуры ложатся на разработчика, а также в облаке с более широкими возможностями автоматизации инфраструктурных процессов. Я рассмотрю также операционные расходы и возможные трудности, связанные с разработкой агентских систем под каждую из платформ.

Современные требования к инфраструктуре для агентских AI-систем. Развертывание, поддержка и операционные расходы

Начнем с основных компонентов инфраструктуры агентских AI-систем. Прежде чем рассматривать конкретные сценарии развертывания, стоит выделить следующие ключевые компоненты инфраструктуры агентской AI-системы:

  • Облачные или локальные вычислительные ресурсы (GPU, TPU, CPU-кластеры). Лет шесть назад мне пришлось переоборудовать под GPU-кластер древнюю майнинг-ферму, где все необходимое для ML-стека окружение приходилось настраивать с нуля. Сейчас, как правило, я работаю с виртуальными GPU-серверами в облаке, используя готовые образы с необходимым набором библиотек (CUDA и т. д.);
  • Системы хранения данных (БД, хранилища файлов и объектов, распределенные файловые системы). В 99% случаев агенты будут работать с данными, получаемыми из различных внешних источников и загружаемыми в RAG пайплайн. Изначально эти данные могут представлять собой текстовые или другие файлы, и для операций с ними очень популярны объектные хранилища, которые сами по себе максимально просты - сложности возникают, когда эти файлы нужно передавать в пайплайн для дальнейшей обработки, обычно в больших объемах. Для этого тоже есть популярные решения, такие как AWS Kinesis, Kafka, Airflow;
  • Сетевые решения для обмена данными внутри кластера. Агентская система включает несколько компонентов, часто это несколько моделей-агентов, каждый работает с назначенной ему группой задач. Сетевой обмен между ними представляет довольно нетривиальный процесс. Хорошо, если разработчик использует API какой-то AI-платформы вроде OpenAI, т. е. он сам отвечает за реализацию только клиентской части. Тогда его забота - это обмен сообщениями между агентами по HTTP/gRPC, хотя все может быть несколько сложнее, если речь идет о мультимодальных агентах (могут понадобиться мультимедиа-протоколы - я, например, использовал RTP/UDP). A вот если система предполагает хостинг своих моделей локально или в облаке, то приходится думать и о пропускной способности видеопамяти каждого из GPU-серверов, о том, сколько запросов они могут обрабатывать параллельно при инференсе. Это требует отдельной специализированной инфраструктуры, такой как LLM-серверы с поддержкой continuous batching (TGI, vLLM). И, наконец, обмен данными между несколькими GPU в кластере. Есть hardware-решения и стандарты для этого, тот же NVIDIA NVLink.
  • Оркестрация и управление контейнерами (Docker, Kubernetes). В многокомпонентной системе, каковую представляют собой агенты, без контеризации никак. Несколько лет назад, разрабатывая систему в кластере из нескольких железных серверов на Centos 7, я просто запускал все сервисы в докере и docker-compose, включая несколько NLU-агентов на ранних трансформерах. Однозначно это не самое оптимальное решение, для облегчения оркестрации ваших контейнеров рекомендуется Kubernetes. Не забудем про средства мониторинга и логирования (Prometheus, Grafana, ELK-стек), автоматизированный CI/CD.

С учетом всего вышесказанного, чем больше перечисленного выбранная вами облачная платформа предоставляет из коробки, тем лучше она подходит для развертывания агентских AI-систем. Такие системы имеют тенденцию к масштабированию объемов данных и GPU ресурсов, так что вам будет жизненно необходимо иметь возможность увеличивать мощности по мере необходимость. Хорошо, если вашу инфраструктуру легко тестировать на совместимость с новыми конфигурациями. Наконец, бонус в пользу облачных платформ - высокая доступность: SLA провайдеров обеспечивает надежность.

Есть, однако, некоторые минусы и сложности - обычно в облаке достаточно высокие операционные расходы: почасовая тарификация GPU и TPU-ресурсов. Также вечная проблема облаков - ограничения по конфигурации: нельзя полноценно оптимизировать железо. Поэтому рассмотрим чуть подробнее развертывание агентской системы на выделенном кластере. Здесь очень важен выбор аппаратного обеспечения. Если агентская AI-система требует постоянных вычислений, то вместо стороннего API для инференса может быть выгоднее использовать собственный кластер с GPU-серверами. Для агентов, работающих с RAG и промежуточными шагами генерации, необходимыми для построения цепочек рассуждений, скорость генерации токенов имеет даже более критическое значение, чем для простых чатботов. Так что не стоит забывать сказанное выше про требования к сетевой инфраструктуре, и задействовать высокоскоростные сети, например, InfiniBand и упомянутый NVLink.

Из преимуществ выделенного кластера вы получаете полный контроль над кастомизацией ПО и оборудования, cнижение затрат - в долгосрочной перспективе это будет дешевле облака, и меньшую зависимость от внешних сервисов.

Однако первоначально кластер требует более высоких первоначальных инвестиций, даже если вы не строите, как Илон Маск, датацентр Colossus c 200K H100. И не только инвестиций в железо, но и в команду с более высоким уровнем экспертизы в области инфраструктуры, так как с первых дней перед вами встанет необходимость администрирования кластера. Наконец, есть такой существенный для агентских систем минус, как ограниченная по сравнению с облаком масштабируемость.

Что касается операционных расходов, oсновные статьи - это энергопотребление: GPU-кластеры требуют значительных мощностей, пропиетарное закрытое ПО: коммерческие AI-решения могут быть дорогими, и обслуживание: техподдержка, обновления, обеспечение отказоустойчивости.

Трудности в эксплуатации кластера, к которым нужно быть готовым - это балансировка нагрузки: распределение вычислений по узлам, задача, которая никогда не была тривиальной; обновление и файнтюнинг моделей (если вы хотите использовать открытые веса) и организация CI/CD для ML. Наконец, необходим мониторинг и отладка - контроль метрик, журналирование.

В итоге выбор между облаком и выделенным кластером зависит от требований агентской AI-системы. Облако подходит для масштабируемых решений и быстрого развертывания, а собственные кластеры оправданы при постоянных высоких нагрузках.

Если вы занимаетесь рендерингом, ИИ или просто любите играть, подписывайтесь на наш Telegram-канал. В нем мы проводим интересные активности, делимся новостями компании и разыгрываем призы

1
Начать дискуссию