Использование 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на имя рантайма, уже установленного в вашей платформе (соответствующего экземпляру CRD ClusterServingRuntime). storageUriуказывает URI OCI-образа с тегом, где хранится модель. Используйте полностью квалифицированный URL реестра. Например:storageUri: oci://docker.io/alaudadockerhub/models-qwen2.5:v1
Применение InferenceService
Примените конфигурацию InferenceService с помощью kubectl:
Проверка развёртывания
Проверьте статус InferenceService:
Вы увидите сервис в состоянии Ready после успешного развёртывания.
Если сервис не запускается или остаётся в состоянии неготовности, выполните отладку:
- Просмотрите события InferenceService для получения описательных ошибок:
- Просмотрите логи пода предиктора:
- Проверьте, что образ модели можно успешно загрузить локально на кластере:
Рекомендации по лучшим практикам
- Версионирование моделей: используйте теги в контейнерных образах для версионирования моделей
- Оптимизация размера образа: используйте легковесные базовые образы и включайте только необходимые файлы модели
- Управление реестром: используйте приватные реестры с правильным контролем доступа
- Безопасность: следуйте лучшим практикам безопасности контейнеров, включая регулярное сканирование уязвимостей
- Кэширование: используйте кэширование реестра контейнеров для ускорения загрузки
Устранение неполадок
Распространённые проблемы
- Ошибки разрешений: убедитесь, что файлы модели в образе имеют корректные права доступа
- Аутентификация в реестре: проверьте, что кластер имеет доступ к реестру контейнеров
Заключение
Использование KServe Modelcar (хранение моделей на основе OCI-контейнеров) обеспечивает эффективный способ развертывания моделей в платформе Alauda AI. Следуя шагам, описанным в этом руководстве, вы сможете упаковать модели в OCI-образы и развернуть их с более быстрым временем запуска и улучшенным использованием ресурсов.