نشر حزم النموذج إلى نقاط النهاية عبر الإنترنت (معاينة)
حزمة النموذج هي قدرة في Azure التعلم الآلي تسمح لك بجمع جميع التبعيات المطلوبة لنشر نموذج التعلم الآلي إلى نظام أساسي لتقديم الخدمات. يوفر إنشاء الحزم قبل توزيع النماذج توزيعا قويا وموثوقا به وسير عمل MLOps أكثر كفاءة. يمكن نقل الحزم عبر مساحات العمل وحتى خارج Azure التعلم الآلي. تعرف على المزيد حول حزم النموذج (معاينة)
هام
تُعد هذه الميزة قيد الإصدار الأولي العام في الوقت الحالي. يجري توفير إصدار المعاينة هذا دون اتفاقية على مستوى الخدمة، ولا نوصي باستخدامه لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة.
لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
في هذه المقالة، ستتعلم كيفية حزم نموذج ونشره في نقطة نهاية عبر الإنترنت في Azure التعلم الآلي.
المتطلبات الأساسية
قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:
اشتراك Azure. في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء. جرّب الإصدار المجاني أو المدفوع من «التعلم الآلي» من Azure.
مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحدة، فاستخدم الخطوات الواردة في مقالة كيفية إدارة مساحاتالعمل لإنشاء مساحة عمل.
يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم الخاص بك لمساحة عمل Azure التعلم الآلي أو دور مخصص. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.
حول هذا المثال
في هذا المثال، يمكنك حزم نموذج من نوع مخصص ونشره إلى نقطة نهاية عبر الإنترنت للاستدلال عبر الإنترنت.
يستند المثال في هذه المقالة إلى نماذج التعليمات البرمجية الموجودة في مستودع أمثلة azureml. لتشغيل الأوامر محليا دون الحاجة إلى نسخ/لصق YAML والملفات الأخرى، قم أولا باستنساخ المستودع ثم تغيير الدلائل إلى المجلد:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
يستخدم هذا القسم المثال في نقاط نهاية المجلد /online/deploy-packages/custom-model.
الاتصال بمساحة العمل
الاتصال إلى مساحة عمل Azure التعلم الآلي حيث ستقوم بعملك.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
حزم النموذج
يمكنك إنشاء حزم نماذج بشكل صريح للسماح لك بالتحكم في كيفية إجراء عملية التعبئة والتغليف. يمكنك إنشاء حزم نموذج عن طريق تحديد:
- نموذج إلى حزمة: يمكن أن تحتوي كل حزمة نموذج على نموذج واحد فقط. لا يدعم Azure التعلم الآلي حزم نماذج متعددة ضمن حزمة النموذج نفسها.
- البيئة الأساسية: تستخدم البيئات للإشارة إلى الصورة الأساسية، وفي حزم Python تعتمد التبعيات التي يحتاجها النموذج الخاص بك. بالنسبة لنماذج MLflow، يقوم Azure التعلم الآلي تلقائيا بإنشاء البيئة الأساسية. بالنسبة للنماذج المخصصة، تحتاج إلى تحديدها.
- خدمة التكنولوجيا: مكدس الاستدلال المستخدم لتشغيل النموذج.
تلميح
إذا كان النموذج الخاص بك هو MLflow، فلن تحتاج إلى إنشاء حزمة النموذج يدويا. يمكننا الحزم تلقائيا قبل النشر. راجع نشر نماذج MLflow إلى نقاط النهاية عبر الإنترنت.
تتطلب حزم النموذج تسجيل النموذج إما في مساحة العمل الخاصة بك أو في سجل Azure التعلم الآلي. في هذا المثال، لديك بالفعل نسخة محلية من النموذج في المستودع، لذلك تحتاج فقط إلى نشر النموذج إلى السجل في مساحة العمل. يمكنك تخطي هذا القسم إذا كان النموذج الذي تحاول نشره مسجلا بالفعل.
يتطلب نموذجنا تشغيل الحزم التالية ولدينا محددة في ملف conda:
conda.yaml
name: model-env channels: - conda-forge dependencies: - python=3.9 - numpy=1.23.5 - pip=23.0.1 - scikit-learn=1.2.2 - scipy=1.10.1 - xgboost==1.3.3
إشعار
لاحظ كيف تتم الإشارة إلى متطلبات النموذج فقط في conda YAML. سيتم تضمين أي حزمة مطلوبة لخادم الاستدلال بواسطة عملية الحزمة.
تلميح
إذا كان النموذج الخاص بك يتطلب حزما مستضافة في موجزات خاصة، يمكنك تكوين الحزمة الخاصة بك لتضمينها. اقرأ حزمة نموذج له تبعيات في موجزات Python الخاصة.
إنشاء بيئة أساسية تحتوي على متطلبات النموذج وصورة أساسية. تتم الإشارة فقط إلى التبعيات المطلوبة من قبل النموذج الخاص بك في البيئة الأساسية. بالنسبة لنماذج MLflow، تكون البيئة الأساسية اختيارية في هذه الحالة يقوم Azure التعلم الآلي بإنشاءها تلقائيا نيابة عنك.
إنشاء تعريف بيئة أساسية:
sklearn-regression-env.yml
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: sklearn-regression-env image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04 conda_file: conda.yaml description: An environment for models built with XGBoost and Scikit-learn.
ثم قم بإنشاء البيئة كما يلي:
az ml environment create -f environment/sklearn-regression-env.yml
إنشاء مواصفات حزمة:
package-moe.yml
$schema: http://azureml/sdk-2-0/ModelVersionPackage.json base_environment_source: type: environment_asset resource_id: azureml:sklearn-regression-env:1 target_environment: sklearn-regression-online-pkg inferencing_server: type: azureml_online code_configuration: code: src scoring_script: score.py
بدء عملية حزمة النموذج:
نتيجة عملية الحزمة هي بيئة.
نشر حزمة النموذج
يمكن نشر حزم النموذج مباشرة إلى نقاط النهاية عبر الإنترنت في Azure التعلم الآلي. اتبع هذه الخطوات لنشر حزمة إلى نقطة نهاية عبر الإنترنت:
اختر اسما لنقطة نهاية لاستضافة نشر الحزمة وإنشاءها:
إنشاء النشر، باستخدام الحزمة. لاحظ كيفية
environment
تكوين مع الحزمة التي قمت بإنشائها.deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: with-package endpoint_name: hello-packages environment: azureml:sklearn-regression-online-pkg@latest instance_type: Standard_DS3_v2 instance_count: 1
تلميح
لاحظ أنك لا تحدد النموذج أو البرنامج النصي لتسجيل النقاط في هذا المثال؛ كلهم جزء من الحزمة.
بدء النشر:
عند هذه النقطة، يكون النشر جاهزا للاستهلاك. يمكنك اختبار كيفية عمله عن طريق إنشاء نموذج ملف طلب:
sample-request.json
{ "data": [ [1,2,3,4,5,6,7,8,9,10], [10,9,8,7,6,5,4,3,2,1] ] }
إرسال الطلب إلى نقطة النهاية