مشاركة عبر


نشر نموذج الذكاء الاصطناعي على Azure Kubernetes Service (AKS) باستخدام الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي

نشر في Azure

في هذه المقالة، ستتعلم كيفية استخدام الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي للاستضافة الذاتية لنماذج اللغات الكبيرة بكفاءة على Kubernetes، وتقليل التكاليف وتعقيد الموارد، وتحسين التخصيص، والحفاظ على التحكم الكامل في بياناتك.

نبذة عن كايتو

تكتسب نماذج اللغات الكبيرة ذاتية الاستضافة (LLMs) على Kubernetes زخما بين المؤسسات التي لديها أعباء عمل استدلال على نطاق واسع ، مثل معالجة الدفعات وروبوتات الدردشة والوكلاء والتطبيقات التي تعتمد على الذكاء الاصطناعي. غالبا ما تتمتع هذه المؤسسات بإمكانية الوصول إلى وحدات معالجة الرسومات من الدرجة التجارية وتبحث عن بدائل لنماذج تسعير واجهة برمجة التطبيقات المكلفة لكل رمز مميز ، والتي يمكن أن تخرج عن نطاق السيطرة بسرعة. يتطلب الكثيرون أيضا القدرة على ضبط نماذجهم أو تخصيصها ، وهي إمكانية مقيدة عادة من قبل موفري واجهة برمجة التطبيقات مغلقة المصدر. بالإضافة إلى ذلك ، تعطي الشركات التي تتعامل مع البيانات الحساسة أو المملوكة - خاصة في القطاعات الخاضعة للتنظيم مثل التمويل أو الرعاية الصحية أو الدفاع - الأولوية للاستضافة الذاتية للحفاظ على رقابة صارمة على البيانات ومنع التعرض من خلال أنظمة الطرف الثالث.

لتلبية هذه الاحتياجات والمزيد، يعمل Kubernetes الذكاء الاصطناعي Toolchain Operator (KAITO)، وهو مشروع وضع الحماية لمؤسسة الحوسبة السحابية الأصلية (CNCF)، على تبسيط عملية نشر وإدارة أحمال عمل LLM مفتوحة المصدر على Kubernetes. يتكامل KAITO مع vLLM ، وهو محرك استدلال عالي الإنتاجية مصمم لخدمة نماذج اللغات الكبيرة بكفاءة. يساعد vLLM كمحرك استدلال على تقليل متطلبات الذاكرة ووحدة معالجة الرسومات دون المساس بالدقة بشكل كبير.

وتوفر الوظيفة الإضافية المدارة من قبل مشغل سلسلة أدوات الذكاء الاصطناعي، التي تم إنشاؤها على رأس مشروع KAITO مفتوح المصدر، إعدادا معياريا للتوصيل والتشغيل يسمح للفرق بنشر النماذج بسرعة وعرضها عبر واجهات برمجة التطبيقات الجاهزة للإنتاج. يتضمن ميزات مضمنة مثل واجهات برمجة التطبيقات المتوافقة مع OpenAI والتنسيق الفوري ودعم استجابة البث. عند نشرها على نظام مجموعة AKS، تضمن KAITO بقاء البيانات داخل البيئة الخاضعة للرقابة في مؤسستك، مما يوفر بديلا آمنا ومتوافقا لواجهات برمجة تطبيقات LLM المستضافة على السحابة.

قبل البدء

  • تفترض هذه المقالة مفاهيم أساسية من مفاهيم Kubernetes. لمزيد من المعلومات، راجع مفاهيم Kubernetes الأساسية ل AKS.
  • للحصول على جميع الصور المعينة مسبقا للنموذج المستضاف وتكوين الموارد الافتراضي، راجع مستودع KAITO GitHub.
  • تدعم الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي حاليا الإصدار 0.6.0 من KAITO ، يرجى تدوين ذلك عند التفكير في اختيارك للنموذج من مستودع نموذج KAITO.

القيود

  • AzureLinux وSKU Windows لنظام التشغيل غير مدعوم حاليا.
  • أحجام الجهاز الظاهري لوحدة معالجة الرسومات AMD غير مدعومة instanceType في مساحة عمل KAITO.
  • يتم دعم الوظيفة الإضافية لمشغل سلسلة أدوات الذكاء الاصطناعي في مناطق Azure العامة .

Prerequisites

  • في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

    • إذا كان لديك العديد من اشتراكات Azure، فتأكد من تحديد الاشتراك الصحيح الذي سيتم فيه إنشاء الموارد وشحنها باستخدام الأمر az account set .

      Note

      يجب أن يكون لاشتراك Azure حصة نسبية ل GPU VM مستحسنة لنشر النموذج الخاص بك في نفس منطقة Azure مثل موارد AKS الخاصة بك.

  • تم تثبيت الإصدار 2.76.0 من Azure CLI أو إصدار أحدث وتكوينه. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

  • عميل سطر أوامر Kubernetes، kubectl، مثبت ومكون. لمزيد من المعلومات، راجع تثبيت kubectl.

تصدير متغيرات البيئة

  • لتبسيط خطوات التكوين في هذه المقالة، يمكنك تعريف متغيرات البيئة باستخدام الأوامر التالية. تأكد من استبدال قيم العنصر النائب بقيمك الخاصة.

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

تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي على نظام مجموعة AKS

تصف الأقسام التالية كيفية إنشاء نظام مجموعة AKS مع تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي ونشر نموذج الذكاء الاصطناعي مستضاف افتراضي.

إنشاء نظام مجموعة AKS مع تمكين الوظيفة الإضافية لعامل تشغيل سلسلة الأدوات الذكاء الاصطناعي

  1. إنشاء مجموعة موارد Azure باستخدام الأمر az group create .

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. قم بإنشاء نظام مجموعة 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-ai-toolchain-operator \
        --enable-oidc-issuer \
        --generate-ssh-keys
    
  3. في نظام مجموعة AKS موجود، يمكنك تمكين الوظيفة الإضافية لمشغل سلسلة الأدوات الذكاء الاصطناعي باستخدام الأمر az aks update .

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

تواصل مع مجموعتك

  1. قم بتكوين kubectl للاتصال بالمجموعة باستخدام الأمر az aks get-credentials .

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. تحقق من الاتصال بالمجموعة باستخدام kubectl get الأمر .

    kubectl get nodes
    

توزيع نموذج الذكاء الاصطناعي مستضاف افتراضي

تقدم KAITO مجموعة من نماذج اللغات الصغيرة والكبيرة المستضافة كصور حاوية عامة ، والتي يمكن نشرها في خطوة واحدة باستخدام مساحة عمل KAITO. يمكنك تصفح صور LLM المعدة مسبقا المتوفرة في سجل نموذج KAITO. في هذا القسم، سنستخدم نموذج لغة Microsoft Phi-4-mini متعدد الوسائط عالي الأداء كمثال:

  1. انشر الإعداد المسبق لنموذج التعليمات Phi-4-mini للاستدلال من مستودع نماذج KAITO باستخدام kubectl apply الأمر.

    kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/refs/heads/main/examples/inference/kaito_workspace_phi_4_mini.yaml
    
  2. تعقب تغييرات الموارد المباشرة في مساحة العمل باستخدام kubectl get الأمر .

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

    Note

    أثناء تتبع نشر مساحة عمل KAITO، لاحظ أن استعداد الجهاز قد يستغرق ما يصل إلى 10 دقائق، واستعداد مساحة العمل حتى 20 دقيقة اعتمادا على حجم النموذج الخاص بك.

  3. تحقق من خدمة الاستدلال والحصول على عنوان IP للخدمة باستخدام الأمر kubectl get svc.

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. اختبر خدمة استدلال التعليمات Phi-4-mini باستخدام نموذج إدخال من اختيارك باستخدام تنسيق واجهة برمجة تطبيقات إكمال الدردشة 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
           }'
    

نشر LLM مخصص أو خاص بالمجال

غالبا ما يتم تدريب LLMs مفتوحة المصدر في سياقات ومجالات مختلفة ، وقد لا تتناسب الإعدادات المسبقة للنموذج المستضاف دائما مع متطلبات التطبيق أو البيانات الخاصة بك. في هذه الحالة، يدعم KAITO أيضا نشر الاستدلال لنماذج اللغات الأحدث أو الخاصة بالمجال من HuggingFace. جرب نشر استدلال نموذج مخصص باستخدام KAITO باتباع هذه المقالة.

تنظيف الموارد

إذا لم تعد بحاجة إلى هذه الموارد، يمكنك حذفها لتجنب تكبد رسوم حساب Azure إضافية.

  1. احذف مساحة عمل KAITO باستخدام الأمر kubectl delete workspace.

    kubectl delete workspace workspace-phi-4-mini
    
  2. تحتاج إلى حذف تجمعات عقدة GPU التي تم توفيرها بواسطة نشر KAITO يدويا. استخدم تسمية العقدة التي تم إنشاؤها بواسطة مساحة عمل Phi-4-mini instruct للحصول على اسم تجمع العقدة باستخدام az aks nodepool list الأمر. في هذا المثال، تسمية العقدة هي "kaito.sh/workspace": "workspace-phi-4-mini".

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. حذف تجمع العقدة بهذا الاسم من مجموعة AKS وكرر الخطوات الواردة في هذا القسم لكل مساحة عمل KAITO ستتم إزالتها.

سيناريوهات استكشاف الأخطاء وإصلاحها الشائعة

بعد تطبيق مساحة عمل استدلال نموذج KAITO، قد لا يتم تحديث حالة جاهزية الموارد وشروط مساحة العمل إلى True للأسباب التالية:

  • لا يحتوي اشتراك Azure الخاص بك على حصة نسبية للحد الأدنى من نوع مثيل GPU المحدد في مساحة عمل KAITO. ستحتاج إلى طلب زيادة الحصة النسبية لعائلة GPU VM في اشتراك Azure.
  • نوع مثيل GPU غير متوفر في منطقة AKS. تأكد من توفر مثيل GPU في منطقتك المحددة وقم بتبديل منطقة Azure إذا لم تكن عائلة GPU VM متوفرة.

الخطوات التالية

تعرف على المزيد حول خيارات نشر نموذج KAITO أدناه: