Поделиться через


Разверните модель искусственного интеллекта на сервисе Azure Kubernetes (AKS) с помощью надстройки оператора инструментальной цепочки ИИ.

Развертывание в Azure

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

О KAITO

Самостоятельное размещение крупных языковых моделей (LLMs) в Kubernetes набирает обороты среди организаций с нагрузками вывода данных в масштабе, такими как пакетная обработка заданий, чат-боты, агенты и приложения на основе искусственного интеллекта. Эти организации часто имеют доступ к графическим процессорам коммерческого класса и ищут альтернативные варианты дорогостоящих моделей цен на API токенов, которые могут быстро масштабироваться из-под контроля. Многие также требуют возможности точной настройки или настройки своих моделей, как правило, ограниченной поставщиками API закрытого источника. Кроме того, компании, обрабатывающие конфиденциальные или частные данные, особенно в регулируемых секторах, таких как финансы, здравоохранение или оборона, определяют приоритеты самостоятельного размещения для поддержания строгого контроля над данными и предотвращения воздействия через сторонние системы.

Чтобы устранить эти потребности и многое другое, оператор цепочки инструментов Kubernetes AI Toolchain Operator (KAITO), проект в песочнице Cloud Native Computing Foundation (CNCF), упрощает развертывание и управление рабочими нагрузками LLM с открытым кодом в Kubernetes. KAITO интегрируется с vLLM, подсистемой вывода с высокой пропускной способностью, предназначенной для эффективного обслуживания больших языковых моделей. VLLM в качестве подсистемы вывода помогает снизить требования к памяти и GPU без значительной компрометации точности.

На основе проекта KAITO с открытым исходным кодом, управляемое дополнение оператора цепочки инструментов ИИ предлагает модульную настройку plug-and-play, которая позволяет командам быстро развертывать модели и предоставлять их через API, готовые к эксплуатации в производственных условиях. Он включает встроенные функции, такие как API, совместимые с OpenAI, форматирование запросов и поддержка потокового ответа. При развертывании в кластере AKS KAITO гарантирует, что данные остаются в управляемой среде вашей организации, обеспечивая безопасную и соответствующую требованиям альтернативу облачным API LLM.

Прежде чем вы начнете

  • В этой статье предполагается базовое понимание концепций Kubernetes. Дополнительные сведения см. в разделе основные понятия Kubernetes для AKS.
  • Для всех предварительно настроенных образов и конфигурации ресурсов размещенной модели см. репозиторий KAITO GitHub.
  • Надстройка оператора цепочки инструментов ИИ в настоящее время поддерживает KAITO версии 0.6.0, обратите внимание на это при рассмотрении выбранной модели из репозитория моделей KAITO.

Ограничения

  • SKU ОС AzureLinux и Windows в настоящее время не поддерживаются.
  • Размеры виртуальных машин GPU AMD не поддерживаются instanceType в рабочей области KAITO.
  • Надстройка оператора цепочки инструментов ИИ поддерживается в общедоступных регионах Azure.

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

  • Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

    • Если у вас несколько подписок Azure, убедитесь, что выбрана правильная подписка, в которой будут созданы ресурсы и взиматься плата с помощью команды az account set .

      Примечание.

      Ваша подписка Azure должна иметь рекомендованную квоту на виртуальные машины GPU для развертывания модели в том же регионе Azure, что и ваши ресурсы AKS.

  • Azure CLI версии 2.76.0 или более поздней версии, установленной и настроенной. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

  • Клиент командной строки Kubernetes, kubectl, установленный и настроенный. Дополнительные сведения см. в разделе "Установка kubectl".

Экспорт переменных среды

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

    export AZURE_SUBSCRIPTION_ID="mySubscriptionID"
    export AZURE_RESOURCE_GROUP="myResourceGroup"
    export AZURE_LOCATION="myLocation"
    export CLUSTER_NAME="myClusterName"
    

Включение надстройки оператора цепочки инструментов ИИ в кластере AKS

В следующих разделах описывается создание кластера AKS с включенной надстройкой оператора цепочки инструментов ИИ и развертывание размещенной по умолчанию модели ИИ.

Создайте кластер AKS с включенным дополнением оператора инструментов ИИ

  1. Создайте группу ресурсов Azure с помощью команды az group create .

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. Создайте кластер AKS с поддержкой надстройки оператора "инструментальная цепочка ИИ" с помощью команды az aks create с флагами --enable-ai-toolchain-operator и --enable-oidc-issuer.

    az aks create --location $AZURE_LOCATION \
        --resource-group $AZURE_RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --enable-ai-toolchain-operator \
        --enable-oidc-issuer \
        --generate-ssh-keys
    
  3. На существующем кластере AKS вы можете включить надстройку оператора инструментальной цепочки ИИ с помощью команды az aks update.

    az aks update --name $CLUSTER_NAME \
            --resource-group $AZURE_RESOURCE_GROUP \
            --enable-ai-toolchain-operator \
            --enable-oidc-issuer
    

Подключение к кластеру

  1. Настройте kubectl для подключения к вашему кластеру с помощью команды az aks get-credentials.

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Проверьте подключение к кластеру kubectl get с помощью команды.

    kubectl get nodes
    

Развертывание размещенной по умолчанию модели искусственного интеллекта

KAITO предлагает диапазон небольших и больших языковых моделей, размещаемых в виде общедоступных образов контейнеров, которые можно развертывать одним шагом с использованием рабочей области KAITO. Вы можете просмотреть предварительно настроенные образы LLM, доступные в реестре моделей KAITO. В этом разделе мы будем использовать высокопроизводительную мультимодальную модель Microsoft Phi-4-mini в качестве примера:

  1. Разверните предустановку модели phi-4-mini для вывода из репозитория моделей KAITO с помощью kubectl apply команды.

    kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/refs/heads/main/examples/inference/kaito_workspace_phi_4_mini.yaml
    
  2. Отслеживайте изменения динамических ресурсов в рабочей области с помощью kubectl get команды.

    kubectl get workspace workspace-phi-4-mini -w
    

    Примечание.

    При отслеживании развертывания рабочей области KAITO обратите внимание, что готовность компьютера может занять до 10 минут и готовность рабочей области до 20 минут в зависимости от размера модели.

  3. Проверьте службу вывода и получите IP-адрес службы с помощью kubectl get svc команды.

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. Проверьте службу вывода Phi-4-mini с помощью примера входных данных, используя формат API завершения чата OpenAI:

    kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/v1/completions -H "Content-Type: application/json" \
      -d '{
            "model": "phi-4-mini-instruct",
            "prompt": "How should I dress for the weather today?",
            "max_tokens": 10
           }'
    

Развертывание пользовательского или доменного LLM

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

Очистка ресурсов

Если эти ресурсы больше не нужны, их можно удалить, чтобы избежать дополнительных расходов на вычислительные ресурсы Azure.

  1. Удалите область KAITO с помощью команды kubectl delete workspace.

    kubectl delete workspace workspace-phi-4-mini
    
  2. Необходимо вручную удалить пулы узлов GPU, подготовленные развертыванием KAITO. Используйте метку узла, созданную Phi-4-mini instruct workspace, чтобы получить имя пула узлов с помощью команды az aks nodepool list. В этом примере метка узла — "kaito.sh/workspace": "workspace-phi-4-mini".

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. Удалите пул узлов с таким именем из кластера AKS и повторите действия, описанные в этом разделе для каждой рабочей области KAITO, которая будет удалена.

Распространенные сценарии устранения неполадок

После применения рабочей области вывода модели KAITO ваши условия готовности к ресурсам и рабочей области могут не обновляться True по следующим причинам:

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

Дополнительные сведения о вариантах развертывания модели KAITO см. ниже.