Partilhar via


Implantar um modelo de IA no Serviço Kubernetes do Azure (AKS) com o complemento do operador da cadeia de ferramentas de IA

Implantar no Azure

Neste artigo, você aprenderá a usar o complemento do operador da cadeia de ferramentas de IA para autohospedar com eficiência modelos de linguagem grandes no Kubernetes, reduzindo custos e complexidade de recursos, aprimorando a personalização e mantendo controle total sobre seus dados.

Sobre a KAITO

A auto-hospedagem de grandes modelos de linguagem (LLMs) no Kubernetes está ganhando força entre as organizações com cargas de trabalho de inferência em escala, como processamento em lote, chatbots, agentes e aplicativos orientados por IA. Essas organizações geralmente têm acesso a GPUs de nível comercial e estão buscando alternativas aos caros modelos de preços de API por token, que podem rapidamente sair do controle. Muitos também exigem a capacidade de ajustar ou personalizar seus modelos, um recurso normalmente restrito por provedores de API de código fechado. Além disso, as empresas que lidam com dados confidenciais ou proprietários - especialmente em setores regulamentados, como finanças, saúde ou defesa - priorizam a autohospedagem para manter um controle rigoroso sobre os dados e evitar a exposição por meio de sistemas de terceiros.

Para atender a essas necessidades e muito mais, o Kubernetes AI Toolchain Operator (KAITO), um projeto Sandbox da Cloud Native Computing Foundation (CNCF), simplifica o processo de implantação e gerenciamento de cargas de trabalho LLM de código aberto no Kubernetes. O KAITO integra-se com o vLLM, um mecanismo de inferência de alto rendimento projetado para servir modelos de linguagem grandes de forma eficiente. O vLLM como um mecanismo de inferência ajuda a reduzir os requisitos de memória e GPU sem comprometer significativamente a precisão.

Construído sobre o projeto KAITO de código aberto, o complemento gerenciado pelo operador da cadeia de ferramentas de IA oferece uma configuração modular plug-and-play que permite que as equipes implantem modelos rapidamente e os exponham por meio de APIs prontas para produção. Ele inclui recursos internos, como APIs compatíveis com OpenAI, formatação de prompt e suporte a resposta de streaming. Quando implantado em um cluster AKS, o KAITO garante que os dados permaneçam dentro do ambiente controlado da sua organização, fornecendo uma alternativa segura e compatível às APIs LLM hospedadas na nuvem.

Antes de começar

  • Este artigo pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, consulte Conceitos principais do Kubernetes para AKS.
  • Para todas as imagens predefinidas de modelo hospedado e configuração de recursos padrão, consulte o repositório KAITO GitHub.
  • O complemento do operador da cadeia de ferramentas AI atualmente suporta KAITO versão 0.6.0, por favor, tome nota disso ao considerar sua escolha de modelo do repositório de modelos KAITO.

Limitações

  • AzureLinux e Windows OS SKU não são suportados atualmente.
  • Os tamanhos de VM de GPU AMD não são suportados instanceType em um espaço de trabalho KITO.
  • O complemento do operador da cadeia de ferramentas de IA é suportado em regiões públicas do Azure.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

    • Se você tiver várias assinaturas do Azure, certifique-se de selecionar a assinatura correta na qual os recursos serão criados e cobrados usando o comando az account set .

      Observação

      Sua assinatura do Azure deve ter a cota de VM de GPU recomendada para sua implantação de modelo na mesma região do Azure que seus recursos AKS.

  • Azure CLI versão 2.76.0 ou posterior instalado e configurado. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, consulte Install Azure CLI.

  • O cliente de linha de comandos do Kubernetes kubectl está instalado e configurado. Para obter mais informações, consulte Instalar kubectl.

Exportar variáveis de ambiente

  • Para simplificar as etapas de configuração neste artigo, você pode definir variáveis de ambiente usando os comandos a seguir. Certifique-se de substituir os valores de espaço reservado pelos seus.

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

Habilite o complemento do operador da cadeia de ferramentas de IA em um cluster AKS

As seções a seguir descrevem como criar um cluster AKS com o complemento do operador da cadeia de ferramentas de IA habilitado e implantar um modelo de IA hospedado padrão.

Crie um cluster AKS com o complemento do operador da cadeia de ferramentas de IA habilitado

  1. Crie um grupo de recursos do Azure usando o comando az group create .

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. Crie um cluster AKS com o add-on do operador da cadeia de ferramentas de IA ativado usando o comando az aks create com os --enable-ai-toolchain-operator e --enable-oidc-issuer parâmetros.

    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. Num cluster AKS existente, pode-se habilitar o complemento do operador da cadeia de ferramentas de IA usando o comando az aks update.

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

Conectar-se ao cluster

  1. Configure kubectl para se conectar ao cluster usando o seguinte comando az aks get-credentials.

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Verifique a conexão ao seu cluster utilizando o comando kubectl get.

    kubectl get nodes
    

Implantar um modelo de IA hospedado padrão

O KAITO oferece uma variedade de modelos de linguagem pequenos a grandes hospedados como imagens de contêiner público, que podem ser implantados em uma etapa usando um espaço de trabalho KAITO. Você pode navegar pelas imagens LLM predefinidas disponíveis no registro do modelo KITO. Nesta seção, usaremos o modelo de linguagem multimodal de alto desempenho Microsoft Phi-4-mini como exemplo:

  1. Implante a predefinição do modelo de instrução Phi-4-mini para inferência do repositório do modelo KAITO usando o kubectl apply comando.

    kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/refs/heads/main/examples/inference/kaito_workspace_phi_4_mini.yaml
    
  2. Acompanhe as alterações de recursos em tempo real em seu espaço de trabalho usando o kubectl get comando.

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

    Observação

    Ao acompanhar a implantação do espaço de trabalho KITO, observe que a preparação da máquina pode levar até 10 minutos e a preparação do espaço de trabalho até 20 minutos, dependendo do tamanho do seu modelo.

  3. Verifique seu serviço de inferência e obtenha o endereço IP do serviço usando o kubectl get svc comando.

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. Teste o serviço de inferência de instruções Phi-4-mini com uma entrada de amostra de sua escolha usando o formato da API de conclusão de bate-papo do 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
           }'
    

Implantar um LLM personalizado ou específico do domínio

Os LLMs de código aberto geralmente são treinados em diferentes contextos e domínios, e as predefinições do modelo hospedado nem sempre se ajustam aos requisitos do seu aplicativo ou dados. Nesse caso, o KAITO também suporta a implantação de inferência de modelos de linguagem mais recentes ou específicos de domínio do HuggingFace. Experimente uma implantação de inferência de modelo personalizado com o KAITO seguindo este artigo.

Limpeza de recursos

Se você não precisar mais desses recursos, poderá excluí-los para evitar incorrer em cobranças extras de computação do Azure.

  1. Exclua o espaço de trabalho KAITO usando o kubectl delete workspace comando.

    kubectl delete workspace workspace-phi-4-mini
    
  2. Você precisa excluir manualmente os pools de nós da GPU provisionados pela implantação do KAITO. Use o rótulo de nó criado pelo espaço de trabalho Phi-4-mini instruct para obter o nome do pool de nós usando o az aks nodepool list comando. Neste exemplo, o rótulo do nó é "kaito.sh/workspace": "workspace-phi-4-mini".

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. Exclua o pool de nós com esse nome do cluster AKS e repita as etapas nesta seção para cada espaço de trabalho KAITO que será removido.

Cenários comuns de solução de problemas

Depois de aplicar o espaço de trabalho de inferência do modelo KAITO, a prontidão de recursos e as condições do espaço de trabalho podem não ser atualizadas para True pelos seguintes motivos:

  • Sua assinatura do Azure não tem cota para o tipo mínimo de instância de GPU especificado em seu espaço de trabalho KAITO. Você precisará solicitar um aumento de cota para a família de VMs GPU em sua assinatura do Azure.
  • Na sua região AKS, o tipo de instância da GPU não está disponível. Confirme a disponibilidade da instância de GPU em sua região específica e alterne a região do Azure se sua família de VMs de GPU não estiver disponível.

Próximos passos

Saiba mais sobre as opções de implantação do modelo KAITO abaixo: