Ускорение рабочих нагрузок GenAI с помощью Seekable OCI

CNCF спонсировал этот пост.

Сфера контейнерных приложений динамично развивалась вместе с бурным развитием генеративного искусственного интеллекта (GenAI) и моделей больших языков (LLM). По мере того, как организации внедряют эти мощные технологии, у них появляются возможности оптимизировать размеры образов контейнеров, модели и производительность сети, чтобы улучшить жизненный цикл разработки и развертывания.

Платформы искусственного интеллекта и машинного обучения (ML) позволяют создавать многофункциональные образы контейнеров, размер которых может превышать 10 гигабайт. Размер этих изображений открывает возможности для оптимизации производительности, одновременно повышая эффективность развертывания и время вывода (TTI). Поскольку на получение изображений приходится до 75 % времени запуска приложения, существуют явные возможности сократить время запроса и ускорить TTI.

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

Seekable OCI (SOCI) может улучшить работу контейнеров с помощью инновационных решений для оптимизации получения образов контейнеров. Давайте рассмотрим преимущества возможностей параллельного извлечения и отложенной загрузки, поделившись данными о производительности, чтобы продемонстрировать влияние на развертывания искусственного интеллекта и машинного обучения.

Общие подходы к оптимизации образа контейнера

Организации обычно решают проблемы с размером образа контейнера двумя способами:

  • Многоэтапные сборки: Устраните ненужные зависимости сборки и промежуточные артефакты, создавая экономичные производственные образы.
  • Отделение моделей от базовых изображений: Это позволяет командам самостоятельно обновлять модели искусственного интеллекта, уменьшая общий размер изображения, потребности в хранилище и время получения данных.

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

Представляем SOCI: оптимизация извлечения образов контейнеров

Seekable OCI представляет собой изменение в способе извлечения и подготовки образов контейнеров к использованию. Вместо традиционного последовательного подхода SOCI предлагает две возможности: параллельное получение и отложенную загрузку.

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

Производительность параллельного запроса SOCI можно оптимизировать с помощью нескольких параметров, но три из них требуют тщательной настройки: max_concurrent_downloads_per_image, max_concurrent_unpacks_per_image и concurrent_download_chunk_size. SOCI обеспечивает более быстрое получение данных за счет использования большего количества системных ресурсов (сети, ЦП и хранилища), в частности, за счет параллельной обработки. Мы рекомендуем прочитать документацию по параллельному режиму SOCI, чтобы получить дополнительные инструкции по настройке этих параметров.

Тестирование SOCI: анализ производительности

Чтобы оценить производительность SOCI, мы провели эксперимент с использованием образа контейнера глубокого обучения vLLM и модели DeepSeek-R1-Distill-Qwen-1.5B от Hugging Face. В нашей среде тестирования использовалась Amazon Linux 2023 с Amazon Elastic Kubernetes Service (EKS), где SOCI теперь встроен в последние версии оптимизированных образов машин Amazon EKS, что упрощает внедрение.

Мы начали с установления базового уровня с использованием томов GP3 с хранилищем объемом 200 ГБ, числом операций ввода-вывода в секунду (3 КБ) и пропускной способностью по умолчанию (125 МБ/с). Затем мы протестировали две функции SOCI: параллельное получение и отложенную загрузку.

Параллельная производительность

Наши первоначальные тесты с отключенным SOCI показали среднее время запроса 3:02 минуты. Затем мы оптимизировали конфигурацию хранилища, увеличив производительность до 16 000 операций ввода-вывода в секунду и пропускную способность до 1 000 МБ/с. Одно только это изменение сократило время вытягивания до 2:11 минут. Настоящий прорыв произошел, когда мы включили параллельное получение данных SOCI в нашей расширенной конфигурации хранилища. Время вытягивания сократилось в среднем до 1,03 минуты, что представляет собой улучшение еще на 50%. В следующей таблице суммированы эти результаты:

Стратегия
Конфигурация EBS
Время тянуть

SOCI отключен (200 ГБ, 3 000 операций ввода-вывода в секунду, пропускная способность 125 МБ) Прибл. 3,02 минуты параллельного подключения SOCI Прибл. 2:56 минут SOCI отключен (200 ГБ, 16 000 операций ввода-вывода в секунду, пропускная способность 1000 МБ) Прибл. 2:11 минут параллельное соединение SOCI Прибл. 1:03 минуты

Производительность отложенной загрузки

Далее мы исследовали функцию отложенной загрузки SOCI. Прежде чем использовать эту возможность, вам необходимо создать индекс SOCI — файл метаданных, который отображает расположение файлов в слоях образа контейнера. Этот индекс позволяет SOCI идентифицировать и извлекать только основные уровни, необходимые для первоначального запуска контейнера, откладывая при этом загрузку остальных по требованию.

Однако одно только время запроса не дает полной картины о рабочих нагрузках AI/ML. Что действительно важно, так это время, когда наша модель будет готова к выводу (TTI). Чтобы получить полную картину, мы сравнили время извлечения и время вывода во всех протестированных нами конфигурациях:

Стратегия
Конфигурация EBS
Время тянуть
Время делать выводы

SOCI отключен 200 ГБ, 3 000 операций ввода-вывода в секунду, пропускная способность 125 МБ/с Прибл. 3:02 минуты Прибл. 4:20 минут параллельного подключения SOCI Прибл. 2:56 минут Прибл. 4:11 минут отложенная загрузка SOCI Прибл. 10 секунд Прибл. 2:33 минуты SOCI отключен 200 ГБ, 16 000 операций ввода-вывода в секунду, пропускная способность 1000 МБ/с Прибл. 2:11 минут Прибл. 3:08 минуты Параллельное соединение SOCI Прибл. 1:03 минуты Прибл. 2:12 минута отложенная загрузка SOCI Прибл. 9 секунд Прибл. 2:09 минут

Данные говорят сами за себя: SOCI — мощный инструмент для сокращения времени запуска контейнеров. Ваш выбор между параллельным извлечением и отложенной загрузкой должен зависеть от вашего варианта использования:

Выбирайте параллельное натяжение, когда:

  • Вашему приложению требуется большинство слоев при запуске.
  • У вас есть высокопроизводительное хранилище.

Выбирайте отложенную загрузку, если:

  • Ваше приложение может начаться с минимальных слоев.
  • Вы хотите оптимизировать затраты на хранение.

Независимо от того, используете ли вы веб-сервис с высоким трафиком или развертываете модели машинного обучения, более быстрое время запуска означает улучшенное реагирование и лучший пользовательский опыт. Влияние SOCI на время запуска контейнера очевидно и существенно.

Заключение

Наши тесты показывают, что SOCI может значительно сократить время запроса, особенно для образов больших контейнеров, распространенных в приложениях искусственного интеллекта и машинного обучения. Если размер образа и время получения данных замедляют развертывание, попробуйте SOCI.

Чтобы узнать больше о внедрении SOCI в вашей среде и понять его влияние на рабочие процессы искусственного интеллекта и машинного обучения, присоединяйтесь к нашему сеансу KubeCon «От извлечения к прогнозированию: ускорение развертывания модели искусственного интеллекта с минут до секунд в Kubernetes». Мы рассмотрим примеры реализации, оптимизацию производительности и лучшие практики для различных сценариев развертывания. Готовы начать? Посетите репозиторий SOCI Snapshotter GitHub для получения документации и руководств по реализации.

Пробовали ли вы SOCI в своих контейнерных средах? Мы хотели бы услышать о вашем опыте в комментариях ниже.

Встречайтесь с нами в AWS на стенде № 210.

KubeCon + CloudNativeCon North America 2025 пройдет 10–13 ноября в Атланте, штат Джорджия. Зарегистрируйтесь сейчас.

Фонд Cloud Native Computing Foundation (CNCF) размещает критически важные компоненты глобальной технологической инфраструктуры, включая Kubernetes, Prometheus и Envoy. CNCF — это нейтральная площадка для сотрудничества, объединяющая ведущих разработчиков отрасли, конечных пользователей и поставщиков. Узнайте больше Последние новости от CNCF TRENDING STORIES YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Тьяго Райхерт — специалист по контейнерам в AWS, где он помогает стартапам оптимизировать собственные стратегии использования контейнеров и облаков. Имея опыт работы с архитектурами DevOps, GenAI и SaaS, он сотрудничает с предприятиями для разработки масштабируемых и эффективных облачных решений. Тьяго… Узнайте больше от Тьяго Райхерта Лукас Сориано Алвес Дуарте — старший специалист по контейнерам в AWS. Помимо роли архитектора решений, Лукас обладает обширным практическим опытом руководства Kubernetes и DevOps. Он внес ключевой вклад в работу нескольких компаний в Бразилии и сша… Подробнее от Лукаса Дуарте

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *