نشر نموذج الذكاء الاصطناعي على خدمة Azure Kubernetes (AKS) باستخدام عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي (معاينة)
عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي (KAITO) هو وظيفة إضافية مدارة ل AKS تبسط تجربة تشغيل نماذج الذكاء الاصطناعي OSS على مجموعات AKS الخاصة بك. يقوم عامل تشغيل سلسلة الأدوات الذكاء الاصطناعي تلقائيا بتوفير عقد GPU الضرورية وإعداد خادم الاستدلال المقترن كخادم نقطة نهاية لنماذج الذكاء الاصطناعي. يؤدي استخدام هذه الوظيفة الإضافية إلى تقليل وقت الإعداد الخاص بك ويتيح لك التركيز على الذكاء الاصطناعي استخدام النموذج وتطويره بدلا من إعداد البنية الأساسية.
توضح هذه المقالة كيفية تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي ونشر نموذج الذكاء الاصطناعي على AKS.
هام
تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:
قبل البدء
- تفترض هذه المقالة مفاهيم أساسية من مفاهيم Kubernetes. لمزيد من المعلومات، راجع مفاهيم Kubernetes الأساسية ل AKS.
- لجميع صور استدلال النموذج المستضاف وإعداد البنية الأساسية الموصى بها، راجع مستودع KAITO GitHub.
- تدعم الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي حاليا الإصدار 0.1.0 من KAITO، يرجى تدوين هذا في النظر في اختيارك للنموذج من مستودع نموذج KAITO.
المتطلبات الأساسية
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
إذا كان لديك العديد من اشتراكات Azure، فتأكد من تحديد الاشتراك الصحيح الذي سيتم فيه إنشاء الموارد وشحنها باستخدام الأمر az account set .
إشعار
يجب أن يكون للاشتراك الذي تستخدمه حصة نسبية للجهاز الظاهري لوحدة معالجة الرسومات لنشر النموذج الذي تختاره.
تم تثبيت الإصدار 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 المدارة. يجب تعيين الأذونات المناسبة له يدويا باتباع الخطوات المقدمة في الأقسام التالية.
في نظام مجموعة 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
إشعار
قبل اكتمال هذه الخطوة،
gpu-provisioner
ستظل وحدة التحكم في حالة حلقة الأعطال. بمجرد إنشاء بيانات الاعتماد الموحدة،gpu-provisioner
ستصل وحدة التحكم إلى حالة التشغيل وستتمكن من التحقق من أن النشر قيد التشغيل في الخطوات التالية.
تحقق من أن التوزيع قيد التشغيل
أعد تشغيل نشر توفير 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 إضافية.
احذف مساحة عمل KAITO والموارد المقترنة
kubectl delete workspace
بها باستخدام الأمر .kubectl delete workspace workspace-falcon-7b-instruct
الخطوات التالية
لمزيد من خيارات نشر النموذج، راجع مستودع KAITO GitHub المصدر.
- استكشاف MLOps لسير عمل الذكاء الاصطناعي والتعلم الآلي على AKS
- تعرف على أفضل ممارسات MLOps للبنية الأساسية لبرنامج ربط العمليات التجارية الذكاء الاصطناعي على AKS
- تعرف على كيفية نشر أحمال عمل GPU على AKS
Azure Kubernetes Service