AI 도구 체인 연산자를 사용하여 AKS(Azure Kubernetes Service)에 AI 모델 배포(미리 보기)

KAITO(AI 도구 체인 연산자)는 AKS 클러스터에서 OSS AI 모델을 실행하는 환경을 간소화하는 AKS용 관리되는 추가 기능입니다. AI 도구 체인 연산자는 필요한 GPU 노드를 자동으로 프로비전하고 연결된 유추 서버를 AI 모델에 대한 엔드포인트 서버로 설정합니다. 이 추가 기능을 사용하면 온보딩 시간이 단축되고 인프라 설정보다는 AI 모델 사용 및 개발에 집중할 수 있습니다.

이 문서에서는 AI 도구 체인 연산자 추가 기능을 사용하도록 설정하고 AKS에서 AI 모델을 배포하는 방법을 보여 줍니다.

Important

AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.

시작하기 전에

  • 이 문서에서는 Kubernetes 개념에 대한 기본 지식이 있다고 가정합니다. 자세한 내용은 AKS에 대한 Kubernetes 핵심 개념을 참조 하세요.
  • 호스트된 모든 모델 유추 이미지 및 권장 인프라 설정은 KAITO GitHub 리포지토리를 참조하세요.
  • AI 도구 체인 연산자 추가 기능은 현재 KAITO 버전 v0.1.0을 지원합니다. KAITO 모델 리포지토리에서 선택한 모델을 고려해 보세요.

필수 조건

Azure CLI 미리 보기 확장 설치

  1. az extension add 명령을 사용하여 Azure CLI 미리 보기 확장을 설치 합니다.

    az extension add --name aks-preview
    
  2. az extension update 명령을 사용하여 최신 버전이 있는지 확인하도록 확장을 업데이트 합니다.

    az extension update --name aks-preview
    

AI 도구 체인 연산자 추가 기능 플래그 등록

  1. az feature register 명령을 사용하여 AIToolchainOperatorPreview 기능 플래그를 등록 합니다.

    az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

    등록을 완료하는 데 몇 분 정도 걸립니다.

  2. az feature show 명령을 사용하여 등록을 확인합니다.

    az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

환경 변수 내보내기

  • 이 문서의 구성 단계를 간소화하기 위해 다음 명령을 사용하여 환경 변수를 정의할 수 있습니다. 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.

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

AKS 클러스터에서 AI 도구 체인 연산자 추가 기능 사용

다음 섹션에서는 AI 도구 체인 연산자 추가 기능을 사용하도록 설정된 AKS 클러스터를 만들고 기본 호스트된 AI 모델을 배포하는 방법을 설명합니다.

AI 도구 체인 연산자 추가 기능을 사용하도록 설정된 AKS 클러스터 만들기

  1. az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다.

    az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
    
  2. az aks create 명령과 --enable-oidc-issuer 플래그를 사용하여 AI 도구 체인 연산자 추가 기능을 사용하도록 설정된 AKS 클러스터를 --enable-ai-toolchain-operator 만듭니다.

    az aks create --location ${AZURE_LOCATION} \
        --resource-group ${AZURE_RESOURCE_GROUP} \
        --name ${CLUSTER_NAME} \
        --enable-oidc-issuer \
        --enable-ai-toolchain-operator
    

    참고 항목

    AKS는 AI 도구 체인 연산자 추가 기능을 사용하도록 설정하면 관리 ID를 만듭니다. 관리 ID는 관리되는 AKS 클러스터에서 GPU 노드 풀을 만드는 데 사용됩니다. 다음 섹션에 소개된 단계에 따라 적절한 권한을 수동으로 설정해야 합니다.

    AI 도구 체인 연산자를 사용하도록 설정하려면 OIDC 발급자를 사용하도록 설정해야 합니다.

  3. 기존 AKS 클러스터에서 az aks update 명령을 사용하여 AI 도구 체인 연산자 추가 기능을 사용하도록 설정할 수 있습니다.

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

클러스터에 연결

  1. az aks get-credentials 명령을 사용하여 클러스터에 연결하도록 구성 kubectl 합니다.

    az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
    
  2. kubectl get 명령을 사용하여 클러스터에 대한 연결을 확인합니다.

    kubectl get nodes
    

환경 변수 내보내기

  • 다음 명령을 사용하여 MC 리소스 그룹, 보안 주체 ID ID 및 KAITO ID에 대한 환경 변수를 내보냅니다.

    export MC_RESOURCE_GROUP=$(az aks show --resource-group ${AZURE_RESOURCE_GROUP} \
        --name ${CLUSTER_NAME} \
        --query nodeResourceGroup \
        -o tsv)
    export PRINCIPAL_ID=$(az identity show --name "ai-toolchain-operator-${CLUSTER_NAME}" \
        --resource-group "${MC_RESOURCE_GROUP}" \
        --query 'principalId' \
        -o tsv)
    export KAITO_IDENTITY_NAME="ai-toolchain-operator-${CLUSTER_NAME}"
    

AKS OpenID 커넥트(OIDC) 발급자 가져오기

  • AKS OIDC 발급자 URL을 가져와서 환경 변수로 내보냅니다.

    export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \
        --name "${CLUSTER_NAME}" \
        --query "oidcIssuerProfile.issuerUrl" \
        -o tsv)
    

서비스 주체에 대한 역할 할당 만들기

  • az role assignment create 명령을 사용하여 서비스 주체에 대한 새 역할 할당을 만듭니 다.

    az role assignment create --role "Contributor" \
        --assignee "${PRINCIPAL_ID}" \
        --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
    

페더레이션 ID 자격 증명 설정

배포가 실행 중인지 확인

  1. 명령을 사용하여 Pod에서 KAITO GPU 프로비저닝자 배포를 kubectl rollout restart 다시 시작합니다.

    kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
    
  2. 다음 명령을 사용하여 배포가 실행되고 있는지 확인합니다 kubectl get .

    kubectl get deployment -n kube-system | grep kaito
    

기본 호스팅 AI 모델 배포

  1. 명령을 사용하여 KAITO 모델 리포지토리에서 Falcon 7B 지시 모델을 배포합니다 kubectl apply .

    kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
    
  2. 명령을 사용하여 작업 영역의 라이브 리소스 변경 내용을 추적합니다 kubectl get .

    kubectl get workspace workspace-falcon-7b-instruct -w
    

    참고 항목

    작업 영역에서 라이브 리소스 변경 내용을 추적할 때 컴퓨터 준비는 최대 10분, 작업 영역 준비는 최대 20분까지 걸릴 수 있습니다.

  3. 명령을 사용하여 서비스를 확인하고 서비스 IP 주소를 가져옵니다 kubectl get svc .

    export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
    
  4. 다음 curl 명령을 사용하여 선택한 샘플 입력으로 Falcon 7B 지시 모델을 실행합니다.

    kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/chat -H "accept: application/json" -H "Content-Type: application/json" -d "{\"prompt\":\"YOUR QUESTION HERE\"}"
    

리소스 정리

이러한 리소스가 더 이상 필요하지 않은 경우 추가 Azure 요금이 발생하지 않도록 삭제할 수 있습니다.

  • az group delete 명령을 사용하여 리소스 그룹 및 관련 리소스를 삭제 합니다.

    az group delete --name "${AZURE_RESOURCE_GROUP}" --yes --no-wait
    

다음 단계

더 많은 유추 모델 옵션은 KAITO GitHub 리포지토리를 참조 하세요.