خدمة عالية الأداء مع خادم الاستدلال Triton (معاينة)
ملاحظة
تستخدم هذه المقالة أحدث إصدار من الإصدار 2 من CLI الموجود في المعاينة العامة. للحصول على إرشادات حول تحديث أحدث إصدار وتثبيته، راجع مستند تثبيت CLI (الإصدار 2) وإعداده .
تعرف على كيفية استخدام خادم الاستدلال NVIDIA Triton في Azure التعلم الآلي مع نقاط النهاية المدارة عبر الإنترنت.
Triton هو برنامج متعدد الأطر مفتوح المصدر تم تحسينه للاستدلال. يدعم أطر التعلم الآلي الشائعة مثل TensorFlow وONNX Runtime وPyTorch وNVIDIA TensorRT والمزيد. يمكن استخدامه لأحمال عمل وحدة المعالجة المركزية أو وحدة معالجة الرسومات.
في هذه المقالة ، ستتعلم كيفية نشر Triton ونموذج إلى نقطة نهاية مدارة عبر الإنترنت. يتم توفير معلومات حول استخدام كل من CLI (سطر الأوامر) واستوديو Azure التعلم الآلي.
هام
تُعد هذه الميزة قيد المعاينة العامة في الوقت الحالي. يجري توفير إصدار المعاينة هذا من دون اتفاقية على مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
ملاحظة
NVIDIA Triton Inference Server هو برنامج مفتوح المصدر تابع لجهة خارجية مدمج في Azure التعلم الآلي.
المتطلبات الأساسية
قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من أن لديك المتطلبات الأساسية التالية:
اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانياً قبل أن تبدأ. جرب الإصدار المجاني أو المدفوع من Azure التعلم الآلي.
Azure CLI والامتداد
mlإلى Azure CLI. للمزيد من المعلومات، راجع تثبيت CLI (v2) وإعداده واستخدامه (معاينة).هام
تفترض أمثلة CLI في هذه المقالة أنك تستخدم غلاف Bash (أو متوافق). على سبيل المثال، من نظام لينكس أو نظام Windows الفرعي لـ Linux.
مساحة عمل Azure التعلم الآلي. إذا لم يكن لديك واحد، فاستخدم الخطوات الواردة في تثبيت CLI (الإصدار 2) (معاينة) وإعداده واستخدامه لإنشاء واحد.
بيئة عمل بايثون 3.8 (أو أعلى).
الوصول إلى الأجهزة الظاهرية من سلسلة NCv3 لاشتراكك في Azure.
هام
قد تحتاج إلى طلب زيادة الحصة لاشتراكك قبل أن تتمكن من استخدام هذه السلسلة من الأجهزة الظاهرية. لمزيد من المعلومات، راجع سلسلة NCv3.
تستند المعلومات الواردة في هذه المقالة إلى نماذج التعليمات البرمجية الموجودة في مستودع أمثلة azureml . لتشغيل الأوامر محليا دون الحاجة إلى نسخ / لصق YAML والملفات الأخرى ، قم باستنساخ الريبو ثم قم بتغيير الدلائل إلى cli الدليل في الريبو:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples
cd cli
إذا لم تكن قد قمت بالفعل بتعيين الإعدادات الافتراضية ل Azure CLI، فاحفظ إعداداتك الافتراضية. لتجنب تمرير قيم الاشتراك ومساحة العمل ومجموعة الموارد عدة مرات، استخدم الأوامر التالية. استبدل المعلمات التالية بقيم للتكوين المحدد الخاص بك:
- استبدل
<subscription>بمعرف اشتراك Azure الخاص بك. - استبدل
<workspace>باسم مساحة عمل Azure التعلم الآلي. - استبدل
<resource-group>بمجموعة موارد Azure التي تحتوي على مساحة العمل الخاصة بك. - استبدل
<location>بمنطقة Azure التي تحتوي على مساحة العمل الخاصة بك.
تلميح
يمكنك معرفة الإعدادات الافتراضية الحالية باستخدام الأمر az configure -l .
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
يتطلب NVIDIA Triton Inference Server بنية مستودع نموذج محدد، حيث يوجد دليل لكل نموذج وأدلة فرعية لإصدار النموذج. يتم تحديد محتويات كل دليل فرعي لإصدار النموذج حسب نوع النموذج ومتطلبات الواجهة الخلفية التي تدعم النموذج. للاطلاع على كل بنية مستودع النماذج https://github.com/triton-inference-server/server/blob/main/docs/model_repository.md#model-files
تستند المعلومات الواردة في هذا المستند إلى استخدام نموذج مخزن بتنسيق ONNX ، وبالتالي فإن بنية الدليل الخاصة بمستودع النموذج هي <model-repository>/<model-name>/1/model.onnx. على وجه التحديد ، يقوم هذا النموذج بإجراء تحديد الصورة.
النشر باستخدام CLI (الإصدار 2)
APPLY TO: Azure CLI ml extension
v1
v2 (معاينة)
يوضح هذا القسم كيفية نشر Triton إلى نقطة النهاية المدارة عبر الإنترنت باستخدام Azure CLI مع ملحق التعلم الآلي (v2).
هام
بالنسبة إلى Triton بدون نشر التعليمات البرمجية ، فإن الاختبار عبر نقاط النهاية المحلية غير مدعوم حاليا.
لتجنب الكتابة في مسار لأوامر متعددة، استخدم الأمر التالي لتعيين متغير بيئة
BASE_PATH. يشير هذا المتغير إلى الدليل حيث يوجد النموذج وملفات تكوين YAML المقترنة:BASE_PATH=endpoints/online/triton/single-modelاستخدم الأمر التالي لتعيين اسم نقطة النهاية التي سيتم إنشاؤها. في هذا المثال، يتم إنشاء اسم عشوائي لنقطة النهاية:
export ENDPOINT_NAME=triton-single-endpt-`echo $RANDOM`قم بتثبيت متطلبات Python باستخدام الأوامر التالية:
pip install numpy pip install tritonclient[http] pip install pillow pip install geventإنشاء ملف تكوين YAML لنقطة النهاية الخاصة بك. يقوم المثال التالي بتكوين الاسم ووضع المصادقة لنقطة النهاية. يوجد الأمر المستخدم في الأوامر التالية في
/cli/endpoints/online/triton/single-model/create-managed-endpoint.ymlالريبو الخاص بأمثلة azureml الذي قمت باستنساخه سابقا:create-managed-endpoint.yaml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json name: my-endpoint auth_mode: aml_tokenلإنشاء نقطة نهاية جديدة باستخدام تكوين YAML، استخدم الأمر التالي:
az ml online-endpoint create -n $ENDPOINT_NAME -f $BASE_PATH/create-managed-endpoint.yamlإنشاء ملف تكوين YAML للنشر. يقوم المثال التالي بتكوين نشر باسم أزرق إلى نقطة النهاية التي تم إنشاؤها في الخطوة السابقة. يوجد الأمر المستخدم في الأوامر التالية في
/cli/endpoints/online/triton/single-model/create-managed-deployment.ymlالريبو الخاص بأمثلة azureml الذي قمت باستنساخه سابقا:هام
لكي يعمل Triton بدون نشر التعليمات البرمجية (NCD) ، يلزم الإعداد
typeإلىtriton_model.type: triton_modelلمزيد من المعلومات، راجع مخطط YAML طراز CLI (v2).يستخدم هذا النشر جهاز ظاهري Standard_NC6s_v3. قد تحتاج إلى طلب زيادة الحصة لاشتراكك قبل أن تتمكن من استخدام هذا الجهاز الظاهري. لمزيد من المعلومات، راجع سلسلة NCv3.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: blue endpoint_name: my-endpoint model: name: sample-densenet-onnx-model version: 1 path: ./models type: triton_model instance_count: 1 instance_type: Standard_NC6s_v3لإنشاء النشر باستخدام تكوين YAML، استخدم الأمر التالي:
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f $BASE_PATH/create-managed-deployment.yaml --all-traffic
استدعاء نقطة النهاية
بمجرد اكتمال النشر، استخدم الأمر التالي لتقديم طلب تسجيل النقاط إلى نقطة النهاية المنشورة.
تلميح
يتم استخدام الملف /cli/endpoints/online/triton/single-model/triton_densenet_scoring.py في الريبو أمثلة azureml لتسجيل النقاط. تحتاج الصورة التي تم تمريرها إلى نقطة النهاية إلى معالجة مسبقة لتلبية متطلبات الحجم والنوع والتنسيق، والمعالجة اللاحقة لإظهار التسمية المتوقعة. يستخدم triton_densenet_scoring.pytritonclient.http المكتبة للاتصال بخادم الاستدلال Triton.
للحصول على uri لتسجيل نقطة النهاية، استخدم الأمر التالي:
scoring_uri=$(az ml online-endpoint show -n $ENDPOINT_NAME --query scoring_uri -o tsv) scoring_uri=${scoring_uri%/*}للحصول على رمز مميز للمصادقة، استخدم الأمر التالي:
auth_token=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME --query accessToken -o tsv)لتسجيل البيانات باستخدام نقطة النهاية، استخدم الأمر التالي. يقدم صورة الطاووس (https://aka.ms/peacock-pic) إلى نقطة النهاية:
python $BASE_PATH/triton_densenet_scoring.py --base_url=$scoring_uri --token=$auth_tokenالاستجابة من البرنامج النصي مشابهة للنص التالي:
Is server ready - True Is model ready - True /azureml-examples/cli/endpoints/online/triton/single-model/densenet_labels.txt 84 : PEACOCK
حذف نقطة النهاية والنموذج
بمجرد الانتهاء من نقطة النهاية، استخدم الأمر التالي لحذفها:
az ml online-endpoint delete -n $ENDPOINT_NAME --yes
استخدم الأمر التالي لحذف الطراز:
az ml model delete --name $MODEL_NAME --version $MODEL_VERSION
النشر باستخدام استوديو Azure التعلم الآلي
يوضح هذا القسم كيفية نشر Triton إلى نقطة النهاية المدارة عبر الإنترنت باستخدام Azure التعلم الآلي studio.
سجل النموذج الخاص بك بتنسيق Triton باستخدام الأمر YAML و CLI التاليين. يستخدم YAML نموذج densenet-onnx من https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/triton/single-model
create-triton-model.yaml
name: densenet-onnx-model version: 1 path: ./models type: triton_model description: Registering my Triton format model.az ml model create -f create-triton-model.yamlتوضح لقطة الشاشة التالية كيف سيبدو النموذج المسجل في صفحة النماذج في استوديو Azure التعلم الآلي.
من الاستوديو، حدد مساحة العمل الخاصة بك ثم استخدم إما صفحة نقاط النهاية أو النماذج لإنشاء نشر نقطة النهاية:
من صفحة نقاط النهاية ، حدد +إنشاء (معاينة).
قم بتوفير اسم ونوع مصادقة لنقطة النهاية، ثم حدد التالي.
عند تحديد طراز، حدد طراز Triton المسجل مسبقا. حدد «Next» للمتابعة.
عند تحديد نموذج مسجل بتنسيق Triton، في خطوة البيئة الخاصة بالمعالج، لن تحتاج إلى برنامج نصي وبيئة لتسجيل النقاط.
أكمل المعالج لنشر النموذج إلى نقطة النهاية.
الخطوات التالية
لمعرفة المزيد، راجع هذه المقالات:
- نشر النماذج باستخدام REST (معاينة)
- إنشاء نقاط نهاية مدارة عبر الإنترنت (معاينة) واستخدامها في الاستوديو
- طرح خزينة لنقاط النهاية عبر الإنترنت (معاينة)
- كيفية القياس التلقائي لنقاط النهاية المدارة عبر الإنترنت
- عرض تكاليف نقطة نهاية (معاينة) مدارة عبر الإنترنت من Azure التعلم الآلي
- الوصول إلى موارد Azure باستخدام نقطة نهاية مدارة عبر الإنترنت وهوية مدارة (معاينة)
- استكشاف أخطاء نشر نقاط النهاية المدارة عبر الإنترنت وإصلاحها




