Использование KServe Modelcar для хранения моделей
Содержание
OverviewПреимущества использования OCI-контейнеров для хранения моделейТребованияУпаковка модели в OCI-образВариант 1: Использование базового образа Busybox (рекомендация Alauda AI)Вариант 2: Использование базового образа UBI Micro (рекомендация Red Hat)Сборка и публикация образа моделиРазвертывание модели из OCI-образаТребования для развертыванияСоздание InferenceServiceПрименение InferenceServiceПроверка развертыванияРекомендуемые практикиУстранение неполадокРаспространённые проблемыЗаключениеOverview
KServe Modelcar, также известный как хранение моделей на основе OCI-контейнеров, представляет собой мощный подход для развертывания моделей в облачно-нативных средах. Упаковывая модели в виде OCI-контейнерных образов, вы можете использовать возможности контейнерного рантайма для более быстрого запуска и эффективного использования ресурсов.
Преимущества использования OCI-контейнеров для хранения моделей
- Сокращение времени запуска: избегайте многократной загрузки одной и той же модели
- Снижение использования дискового пространства: уменьшите количество локально загружаемых моделей
- Улучшение производительности модели: возможность предварительной загрузки образов для более быстрого старта
- Поддержка офлайн-сред: идеально подходит для сред с ограниченным доступом в интернет
- Упрощение распространения моделей: используйте внутренние корпоративные реестры, такие как Quay или Harbor
Требования
- Установленная и запущенная платформа Alauda AI
- Готовые файлы модели для упаковки
- Права на запись/публикацию в контейнерный реестр (например, Harbor, Quay)
- Установленные Podman или nerdctl на локальной машине
Упаковка модели в OCI-образ
Вариант 1: Использование базового образа Busybox (рекомендация Alauda AI)
Создайте Containerfile со следующим содержимым:
Вариант 2: Использование базового образа UBI Micro (рекомендация Red Hat)
Создайте Containerfile со следующим содержимым:
Сборка и публикация образа модели
-
Создайте временную директорию для хранения модели и вспомогательных файлов:
-
Создайте папку models (и при необходимости поддиректорию версии для таких фреймворков, как OpenVINO):
-
Скопируйте файлы модели в соответствующую директорию:
- Для большинства фреймворков:
cp -r your-model-folder/* models/ - Для OpenVINO:
cp -r your-model-folder/* models/1/
- Для большинства фреймворков:
-
Соберите OCI-контейнерный образ:
-
Опубликуйте образ в контейнерный реестр:
Примечание Если ваш репозиторий приватный, убедитесь, что вы аутентифицированы в реестре перед загрузкой образа.
Развертывание модели из OCI-образа
Требования для развертывания
Дополнительных требований, помимо перечисленных выше, не требуется.
Создание InferenceService
Создайте YAML-файл InferenceService со следующим содержимым:
- Замените
Qwen2.5-0.5B-Instructна фактическое имя вашей модели. aml.cpaas.io/runtime-type: vllmуказывает тип рантайма кода. Подробнее о кастомных inference runtime смотрите в разделе Extend Inference Runtimes.- Замените
demo-spaceна существующее namespace или создайте его командойkubectl create namespace demo-space. - Замените
aml-vllm-0.11.2-cpuна имя рантайма, уже установленного в вашей платформе (соответствует экземпляру ClusterServingRuntime CRD). storageUriуказывает URI OCI-образа с тегом, где хранится модель. Используйте полностью квалифицированный URL реестра. Например:storageUri: oci://docker.io/alaudapublic/models-qwen2.5:v1
Применение InferenceService
Примените конфигурацию InferenceService с помощью kubectl:
Проверка развертывания
Проверьте статус InferenceService:
Вы увидите сервис в состоянии Ready, когда развертывание будет успешным.
Если сервис не запускается или остается в состоянии неготовности, выполните отладку:
- Просмотрите события InferenceService для описания ошибок:
- Просмотрите логи пода предиктора:
- Проверьте, что образ модели можно успешно загрузить локально на кластере:
Рекомендуемые практики
- Версионирование моделей: используйте теги в контейнерных образах для версионирования моделей
- Оптимизация размера образа: используйте легковесные базовые образы и включайте только необходимые файлы модели
- Управление реестром: используйте приватные реестры с правильным контролем доступа
- Безопасность: следуйте лучшим практикам безопасности контейнеров, включая регулярное сканирование уязвимостей
- Кэширование: используйте кэширование реестра контейнеров для ускорения загрузки
Устранение неполадок
Распространённые проблемы
- Ошибки прав доступа: убедитесь, что файлы модели в образе имеют корректные права
- Аутентификация в реестре: проверьте, что кластер имеет доступ к контейнерному реестру
Заключение
Использование KServe Modelcar (хранение моделей на основе OCI-контейнеров) обеспечивает эффективный способ развертывания моделей в платформе Alauda AI. Следуя шагам, описанным в этом руководстве, вы сможете упаковать модели в OCI-образы и развернуть их с более быстрым запуском и улучшенным использованием ресурсов.