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 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
여러 Azure 구독이 있는 경우 az account set 명령을 사용하여 리소스를 만들고 요금이 청구되는 올바른 구독을 선택해야 합니다.
참고 항목
사용하는 구독에는 GPU VM 할당량이 있어야 합니다.
Azure CLI 버전 2.47.0 이상 설치 및 구성.
az --version
을 실행하여 버전을 찾습니다. 설치 또는 업그레이드해야 하는 경우 Azure CLI 설치를 참조하세요.Kubernetes 명령줄 클라이언트, kubectl, 설치 및 구성. 자세한 내용은 kubectl 설치를 참조 하세요.
Azure CLI AKS 미리 보기 확장을 설치합니다.
Azure CLI 미리 보기 확장 설치
az extension add 명령을 사용하여 Azure CLI 미리 보기 확장을 설치 합니다.
az extension add --name aks-preview
az extension update 명령을 사용하여 최신 버전이 있는지 확인하도록 확장을 업데이트 합니다.
az extension update --name aks-preview
AI 도구 체인 연산자 추가 기능 플래그 등록
az feature register 명령을 사용하여 AIToolchainOperatorPreview 기능 플래그를 등록 합니다.
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
등록을 완료하는 데 몇 분 정도 걸립니다.
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 클러스터 만들기
az group create 명령을 사용하여 Azure 리소스 그룹을 만듭니다.
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
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 발급자를 사용하도록 설정해야 합니다.
기존 AKS 클러스터에서 az aks update 명령을 사용하여 AI 도구 체인 연산자 추가 기능을 사용하도록 설정할 수 있습니다.
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
클러스터에 연결
az aks get-credentials 명령을 사용하여 클러스터에 연결하도록 구성
kubectl
합니다.az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
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 자격 증명 설정
az identity federated-credential create 명령을 사용하여 관리 ID, AKS OIDC 발급자 및 주체 간에 페더레이션 ID 자격 증명을 만듭니 다.
az identity federated-credential create --name "kaito-federated-identity" \ --identity-name "${KAITO_IDENTITY_NAME}" \ -g "${MC_RESOURCE_GROUP}" \ --issuer "${AKS_OIDC_ISSUER}" \ --subject system:serviceaccount:"kube-system:kaito-gpu-provisioner" \ --audience api://AzureADTokenExchange
배포가 실행 중인지 확인
명령을 사용하여 Pod에서 KAITO GPU 프로비저닝자 배포를
kubectl rollout restart
다시 시작합니다.kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
다음 명령을 사용하여 배포가 실행되고 있는지 확인합니다
kubectl get
.kubectl get deployment -n kube-system | grep kaito
기본 호스팅 AI 모델 배포
명령을 사용하여 KAITO 모델 리포지토리에서 Falcon 7B 지시 모델을 배포합니다
kubectl apply
.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
명령을 사용하여 작업 영역의 라이브 리소스 변경 내용을 추적합니다
kubectl get
.kubectl get workspace workspace-falcon-7b-instruct -w
참고 항목
작업 영역에서 라이브 리소스 변경 내용을 추적할 때 컴퓨터 준비는 최대 10분, 작업 영역 준비는 최대 20분까지 걸릴 수 있습니다.
명령을 사용하여 서비스를 확인하고 서비스 IP 주소를 가져옵니다
kubectl get svc
.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
다음
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 리포지토리를 참조 하세요.