نشر نموذج الذكاء الاصطناعي على خدمة Azure Kubernetes (AKS) باستخدام عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي (معاينة)
عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي (KAITO) هو وظيفة إضافية مدارة ل AKS تبسط تجربة تشغيل نماذج الذكاء الاصطناعي OSS على مجموعات AKS الخاصة بك. يقوم عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي تلقائيا بتوفير عقد GPU الضرورية وإعداد خادم الاستدلال المقترن كخادم نقطة نهاية لنماذج الذكاء الاصطناعي. يؤدي استخدام هذه الوظيفة الإضافية إلى تقليل وقت الإعداد الخاص بك ويتيح لك التركيز على الذكاء الاصطناعي استخدام النموذج وتطويره بدلا من إعداد البنية الأساسية.
توضح هذه المقالة كيفية تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي ونشر نموذج الذكاء الاصطناعي على AKS.
هام
تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:
قبل البدء
- تفترض هذه المقالة مفاهيم أساسية من مفاهيم Kubernetes. لمزيد من المعلومات، راجع مفاهيم Kubernetes الأساسية ل AKS.
- لجميع صور استدلال النموذج المستضاف وإعداد البنية الأساسية الموصى بها، راجع مستودع KAITO GitHub.
- تدعم الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي حاليا إصدار KAITO v0.1.0، يرجى تدوين ملاحظة عن ذلك في النظر في اختيارك للنموذج من مستودع نموذج KAITO.
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إذا كان لديك العديد من اشتراكات Azure، فتأكد من تحديد الاشتراك الصحيح الذي سيتم فيه إنشاء الموارد وشحنها باستخدام الأمر az account set .
إشعار
يجب أن يكون للاشتراك الذي تستخدمه حصة GPU VM.
تم تثبيت الإصدار 2.47.0 من Azure CLI أو إصدار أحدث وتكوينه. قم بتشغيل
az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.عميل سطر أوامر Kubernetes، kubectl، مثبت ومكون. لمزيد من المعلومات، راجع تثبيت kubectl.
تثبيت ملحق معاينة Azure CLI AKS.
سجل علامة ميزة الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي.
تثبيت ملحق معاينة Azure CLI
قم بتثبيت ملحق معاينة Azure CLI باستخدام الأمر az extension add .
az extension add --name aks-preview
قم بتحديث الملحق للتأكد من أن لديك أحدث إصدار باستخدام الأمر az extension update .
az extension update --name aks-preview
تسجيل علامة ميزة الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي
سجل علامة ميزة AIToolchainOperatorPreview باستخدام الأمر az feature register .
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
تصف الأقسام التالية كيفية إنشاء نظام مجموعة AKS مع تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي ونشر نموذج الذكاء الاصطناعي مستضاف افتراضي.
إنشاء نظام مجموعة AKS مع تمكين الوظيفة الإضافية لعامل تشغيل سلسلة الأدوات الذكاء الاصطناعي
إنشاء مجموعة موارد Azure باستخدام الأمر az group create .
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
قم بإنشاء نظام مجموعة 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-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
إشعار
تنشئ AKS هوية مدارة بمجرد تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي. يتم استخدام الهوية المدارة لإنشاء تجمعات عقدة GPU في مجموعة AKS المدارة. يجب تعيين الأذونات المناسبة له يدويا باتباع الخطوات المقدمة في الأقسام التالية.
يتطلب تمكين عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي تمكين مصدر OIDC.
في نظام مجموعة AKS موجود، يمكنك تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي باستخدام الأمر az aks update .
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
تواصل مع مجموعتك
قم بتكوين
kubectl
للاتصال بالمجموعة باستخدام الأمر az aks get-credentials .az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
تحقق من الاتصال بالمجموعة باستخدام
kubectl get
الأمر .kubectl get nodes
تصدير متغيرات البيئة
تصدير متغيرات البيئة لمجموعة موارد MC وهوية المعرف الأساسي وهوية KAITO باستخدام الأوامر التالية:
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 Connect (OIDC)
احصل على عنوان URL لمصدر AKS OIDC وقم بتصديره كمتغير بيئة:
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}"
إنشاء بيانات اعتماد هوية موحدة
إنشاء بيانات اعتماد الهوية الموحدة بين الهوية المدارة ومصدر AKS OIDC والموضوع باستخدام الأمر az identity federated-credential create .
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
تحقق من أن التوزيع قيد التشغيل
أعد تشغيل نشر توفير KAITO GPU على pods باستخدام
kubectl rollout restart
الأمر :kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
تحقق من أن النشر قيد التشغيل باستخدام
kubectl get
الأمر :kubectl get deployment -n kube-system | grep kaito
توزيع نموذج الذكاء الاصطناعي مستضاف افتراضي
انشر نموذج Falcon 7B-instruct من مستودع نموذج KAITO باستخدام
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}')
قم بتشغيل نموذج Falcon 7B-instruct مع إدخال عينة من اختيارك باستخدام الأمر التالي
curl
: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.
Azure Kubernetes Service