• Русский
  • Хранение модели

    Для развертывания модели необходимо сначала сохранить её в одном из типов хранилищ, поддерживаемых Alauda AI. Поддерживаемые типы хранилищ включают:

    • S3 Object Storage: самый часто используемый режим. Данные загружаются до запуска основного контейнера с помощью Storage Initializer (InitContainer).
    • Persistent Volume Claim (PVC): монтирует данные, хранящиеся на постоянном томе, до запуска основного контейнера через Storage Initializer.
    • Open Container Initiative (OCI) контейнеры: также известны как modelcars в KServe. Этот подход обеспечивает загрузку за секунды с использованием возможности кэширования слоёв контейнерного рантайма через Sidecar.

    Использование S3 Object Storage для хранения модели

    Это самый часто используемый режим. Управление учётными данными реализуется через Secret с аннотациями, содержащими специфические параметры конфигурации S3.

    Конфигурация аутентификации

    Рекомендуется создавать отдельные ServiceAccount и Secret для каждого проекта.

    Параметры конфигурации ключей S3

    Параметр конфигурацииФактическое значениеОписание
    Endpointyour-s3-service-ip:your-s3-port IP и порт, указывающие на приватный сервис MinIO
    Region(Не указано)Обычно по умолчанию us-east-1, KServe использует значение по умолчанию, если не обнаружено
    HTTPS Enabled0Шифрование отключено для внутреннего тестирования/демо среды
    Authentication MethodСтатический Access Key / Secret KeyУправляется через Secret с именем minio-creds
    Namespace Isolationdemo-spaceПрава ограничены этим namespace, в соответствии с принципами мультиарендности
    apiVersion: v1
    data:
      AWS_ACCESS_KEY_ID: YOUR_BASE64_ENCODED_ACCESS_KEY
      AWS_SECRET_ACCESS_KEY: YOUR_BASE64_ENCODED_SECRET_KEY
    kind: Secret
    metadata:
      annotations:
        serving.kserve.io/s3-endpoint: your_s3_service_ip:your_s3_port
        serving.kserve.io/s3-usehttps: "0"
      name: minio-creds
      namespace: demo-space
    type: Opaque
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: sa-models
      namespace: demo-space
    secrets:
    - name: minio-creds
    1. Замените YOUR_BASE64_ENCODED_ACCESS_KEY на ваш фактический Base64-кодированный AWS access key ID.
    2. Замените YOUR_BASE64_ENCODED_SECRET_KEY на ваш фактический Base64-кодированный AWS secret access key.
    3. Замените your_s3_service_ip:your_s3_port на фактический IP-адрес и порт вашего S3-сервиса.
    4. Установите serving.kserve.io/s3-usehttps в "1", если ваш S3-сервис использует HTTPS, или в "0", если HTTP.

    Развертывание Inference Service

    kind: InferenceService
    apiVersion: serving.kserve.io/v1beta1
    metadata:
      annotations:
        aml-model-repo: Qwen2.5-0.5B-Instruct
        aml-pipeline-tag: text-generation
        serving.kserve.io/deploymentMode: Standard
      labels:
        aml.cpaas.io/runtime-type: vllm
      name: s3-demo
      namespace: demo-space
    spec:
      predictor:
        maxReplicas: 1
        minReplicas: 1
        model:
          modelFormat:
            name: transformers
          name: ''
          protocolVersion: v2
          resources:
            limits:
              cpu: '2'
              ephemeral-storage: 10Gi
              memory: 8Gi
            requests:
              cpu: '2'
              memory: 4Gi
          runtime: aml-vllm-0.11.2-cpu
          storageUri: s3://models/Qwen2.5-0.5B-Instruct
        securityContext:
          seccompProfile:
            type: RuntimeDefault
        serviceAccountName: sa-models
    1. Замените Qwen2.5-0.5B-Instruct на фактическое имя вашей модели.
    2. aml.cpaas.io/runtime-type: vllm указывает тип рантайма кода. Для получения дополнительной информации о пользовательских inference runtime смотрите Extend Inference Runtimes.
    3. Замените aml-vllm-0.11.2-cpu на имя рантайма, уже установленного на вашей платформе (соответствующего экземпляру ClusterServingRuntime CRD).
    4. storageUri: s3://models/Qwen2.5-0.5B-Instruct указывает URI S3-бакета, где хранится модель.
    5. serviceAccountName: sa-models указывает сервисный аккаунт с правами доступа к секрету с учётными данными S3.

    Использование OCI контейнеров для хранения модели

    В качестве альтернативы хранению модели в S3-бакете или PVC, вы можете хранить модели в Open Container Initiative (OCI) контейнерах. Развёртывание моделей из OCI контейнеров также известно как modelcars в KServe. Этот подход идеально подходит для офлайн-сред и внутренних корпоративных регистров, таких как Quay или Harbor.

    Подробные инструкции по упаковке и развертыванию моделей с использованием OCI контейнеров смотрите в разделе Using KServe Modelcar for Model Storage.

    Использование PVC для хранения модели

    Загрузка файлов модели в PVC

    При развертывании модели вы можете обслуживать её из уже существующего Persistent Volume Claim (PVC), где хранятся файлы модели. Вы можете загрузить локальные файлы модели в PVC через IDE, доступную из запущенного workbench.

    Предварительные условия

    • У вас есть доступ к панели управления Alauda AI.

    • У вас есть доступ к проекту с запущенным workbench.

    • Вы создали Persistent Volume Claim (PVC).

    • Workbench подключён к Persistent Volume (PVC).

      Для инструкций по созданию workbench и подключению PVC смотрите Create Workbench.

    • Файлы модели сохранены на вашем локальном компьютере.

    Процедура

    Выполните следующие шаги для загрузки файлов модели в PVC через ваш workbench:

    1. В панели управления Alauda AI нажмите Workbench, чтобы перейти на страницу списка workbench.

    2. Найдите запущенный экземпляр workbench и нажмите кнопку Connect для входа в workbench.

    3. В IDE workbench откройте файловый браузер:

      • В JupyterLab это вкладка Files в левой боковой панели.
      • В code-server это вид Explorer в левой боковой панели.
    4. В файловом браузере перейдите в домашний каталог. Этот каталог представляет корень подключённого PVC.

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

    5. По желанию: создайте новую папку для организации моделей:

      • В файловом браузере кликните правой кнопкой мыши в домашнем каталоге и выберите New Folder.
      • Назовите папку (например, models).
      • Дважды кликните по новой папке models, чтобы войти в неё.
    6. Загрузите файлы модели в текущую папку:

      • В JupyterLab:
        • Нажмите кнопку Upload на панели инструментов файлового браузера.
        • В диалоговом окне выбора файлов перейдите к файлам модели на локальном компьютере и выберите их. Нажмите Open.
        • Дождитесь завершения загрузки.
      • В code-server:
        • Перетащите файлы модели из локального проводника файлов прямо в панель файлового браузера в целевой папке внутри code-server.
        • Дождитесь завершения загрузки.

    Проверка

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

    Следующие шаги

    При развертывании модели из PVC укажите storageUri в формате pvc://<pvc-name>/<optional-path>. Например:

    • pvc://model-pvc — загрузка из корня PVC.
    • pvc://model-pvc/models/Qwen2.5-0.5B-Instruct — загрузка из конкретной поддиректории.

    Развертывание Inference Service

    kind: InferenceService
    apiVersion: serving.kserve.io/v1beta1
    metadata:
      annotations:
        aml-model-repo: Qwen2.5-0.5B-Instruct
        aml-pipeline-tag: text-generation
        serving.kserve.io/deploymentMode: Standard
      labels:
        aml.cpaas.io/runtime-type: vllm
      name: pvc-demo-1
      namespace: demo-space
    spec:
      predictor:
        maxReplicas: 1
        minReplicas: 1
        model:
          modelFormat:
            name: transformers
          protocolVersion: v2
          resources:
            limits:
              cpu: '2'
              ephemeral-storage: 10Gi
              memory: 8Gi
            requests:
              cpu: '2'
              memory: 4Gi
          runtime: aml-vllm-0.11.2-cpu
          storageUri: pvc://model-pvc
        securityContext:
          seccompProfile:
            type: RuntimeDefault
    1. Замените Qwen2.5-0.5B-Instruct на фактическое имя вашей модели.
    2. aml.cpaas.io/runtime-type: vllm указывает тип рантайма кода. Для получения дополнительной информации о пользовательских inference runtime смотрите Extend Inference Runtimes.
    3. Замените aml-vllm-0.11.2-cpu на имя рантайма, уже установленного на вашей платформе (соответствующего экземпляру ClusterServingRuntime CRD).
    4. storageUri: pvc://model-pvc указывает имя PVC, где хранится модель.