نشر نموذج إلى Azure Container Instances باستخدام CLI (v1)
هام
يوضح هذا المقال كيفية استخدام CLI وSDK v1 لنشر نموذج. للحصول على النهج الموصى به للإصدار 2، راجع Deploy and score a machine learning model by using an online endpoint.
تعرف على كيفية استخدام التعلم الآلي من Microsoft Azure لنشر نموذج كخدمة ويب على Azure Container Instances (ACI). استخدم Azure Container Instances إذا كنت:
- تفضل عدم إدارة نظام مجموعة Kubernetes الخاصة بك
- لا بأس من وجود نسخة متماثلة واحدة فقط لخدمتك، ما قد يؤثر على وقت التشغيل
للحصول على معلومات حول الحصة النسبية وتوافر المنطقة لـ ACI، راجع مقالة Quotas and region availability for Azure Container Instances.
هام
يُنصح بشدة بتتبع الأخطاء محلياً قبل النشر إلى خدمة الويب، لمزيد من المعلومات، راجع Debug Locally
يمكنك أيضاً الرجوع إلى التعلم الآلي من Microsoft Azure - النشر في Local Notebook
المتطلبات الأساسية
مساحة عمل Azure التعلم الآلي. لمزيد من المعلومات، راجع إنشاء مساحة عمل التعلم الآلي من Azure.
نموذج التعلم الآلي المسجل في مساحة عملك. إذا لم يكن لديك نموذج مسجل، فراجع How and where to deploy models.
ملحق Azure CLI (الإصدار 1) لخدمة التعلم الآلي أو Azure Machine Learning Python SDK أو ملحق Azure Machine Learning Visual Studio Code.
هام
تتطلب أوامر Azure CLI الواردة في هذه المقالة ملحق
azure-cli-ml
، أو الإصدار 1، التعلم الآلي من Microsoft Azure. سينتهي دعم ملحق الإصدار 1 في 30 سبتمبر 2025. ستتمكن من تثبيت ملحق v1 واستخدامه حتى ذلك التاريخ.نوصي بالانتقال إلى ملحق
ml
أو الإصدار 2 قبل 30 سبتمبر 2025. لمزيد من المعلومات حول ملحق v2، راجع ملحق Azure ML CLI وPython SDK v2.تفترض القصاصة البرمجية Python في هذه المقالة أنه تم تعيين المتغيرات التالية:
ws
- معينة إلى مساحة العمل الخاصة بك.model
- معينة إلى نموذجك المسجل.inference_config
- معينة إلى تكوين الاستدلال للنموذج.
لمزيد من المعلومات حول تعيين هذه المتغيرات، راجع How and where to deploy models.
تفترض القصاصات البرمجية لـ CLI في هذه المقالة أنك أنشأت مستنداً
inferenceconfig.json
. لمزيد من المعلومات حول إنشاء هذا المستند، راجع How and where to deploy models.
التقييدات
عند تكوين مساحة عمل التعلم الآلي من Azure بنقطة نهاية خاصة، لا يتم دعم النشر إلى مثيلات حاوية Azure في VNet. بدلًا من ذلك، ضع في اعتبارك استخدام نقطة نهاية مدارة عبر الإنترنت مع عزل الشبكة.
النشر إلى ACI
لنشر نموذج إلى Azure Container Instances، أنشئ تكوين نشر يصف موارد الحساب المطلوبة. على سبيل المثال، عدد الذاكرات الأساسية والذاكرة. تحتاج أيضاً إلى تكوين الاستدلال، الذي يصف البيئة اللازمة لاستضافة النموذج وخدمة الويب. لمزيد من المعلومات حول إنشاء تكوين الاستدلال، راجع How and where to deploy models.
ملاحظة
- ACI مناسب فقط للنماذج الصغيرة التي يقل حجمها عن 1 جيجابايت.
- نوصي باستخدام AKS بعقدة واحدة لتطوير اختبار نماذج أكبر.
- عدد النماذج التي سيتم نشرها محدد بـ 1000 نموذج لكل عملية نشر (لكل حاوية).
استخدام SDK
ينطبق على:Python SDK Azure ML الإصدار 1
from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)
لمزيد من المعلومات حول الفئات والأساليب والمعلمات المستخدمة في هذا المثال، راجع المستندات المرجعية التالية:
استخدام Azure CLI
ينطبق على:ملحق التعلم الآلي من Azure CLI الإصدار 1
للنشر باستخدام CLI، استخدم الأمر التالي. استبدل mymodel:1
باسم وإصدار النموذج المسجل. استبدل myservice
بالاسم لمنح هذه الخدمة:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
تقوم الإدخالات الموجودة في مستند deploymentconfig.json
بالتعيين إلى معلمات AciWebservice.deploy_configuration. يصف الجدول التالي التعيين بين الكيانات في مستند JSON ومعلمات الأسلوب:
كيان JSON | معلمة الأسلوب | الوصف |
---|---|---|
computeType |
غير متوفر | هدف الحساب. بالنسبة إلى ACI، يجب أن تكون القيمة ACI . |
containerResourceRequirements |
غير متوفر | حاوية لكيانات CPU وكيانات الذاكرة. |
cpu |
cpu_cores |
عدد الذاكرات الأساسية لوحدة CPU المطلوب تخصيصها. الإعدادات الافتراضية، 0.1 |
memoryInGB |
memory_gb |
مقدار الذاكرة (بالجيجابايت) المراد تخصيصها لخدمة الويب هذه. الإعداد الافتراضي، 0.5 |
location |
location |
منطقة Azure المراد نشر خدمة الويب هذه إليها. إذا لم يتم تحديدها، فسيتم استخدام موقع مساحة العمل. يمكن العثور على مزيد من التفاصيل حول المناطق المتاحة هنا: ACI Regions |
authEnabled |
auth_enabled |
معرفة ما إذا كان سيتم تمكين المصادقة لخدمة الويب هذه. الإعدادات الافتراضية معينة على False |
sslEnabled |
ssl_enabled |
معرفة ما إذا كان سيتم تمكين SSL لخدمة الويب هذه. الإعدادات الافتراضية معينة على False. |
appInsightsEnabled |
enable_app_insights |
معرفة ما إذا كان سيتم تمكين Application Insights لخدمة الويب هذه أم لا. الإعدادات الافتراضية معينة على False |
sslCertificate |
ssl_cert_pem_file |
ملف cert المطلوب إذا تم تمكين SSL |
sslKey |
ssl_key_pem_file |
ملف key المطلوب إذا تم تمكين SSL |
cname |
ssl_cname |
سجل cname إذا تم تمكين SSL |
dnsNameLabel |
dns_name_label |
تسمية اسم dns لنقطة نهاية تسجيل النقاط. إذا لم يتم تحديد تسمية اسم dns فريدة سيتم إنشاؤها لنقطة نهاية تسجيل النقاط. |
ملف JSON التالي هو مثال لتكوين النشر للاستخدام مع CLI:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
لمزيد من المعلومات، راجع مرجع az ml model deploy reference.
استخدام التعليمات البرمجية VS
راجع how to manage resources in VS Code.
هام
لا تحتاج إلى إنشاء حاوية ACI للاختبار مسبقاً. يتم إنشاء حاويات ACI حسب الحاجة.
هام
نلحق معرف مساحة العمل المجزأة بجميع موارد ACI الأساسية التي تم إنشاؤها، وستكون جميع أسماء ACI من نفس مساحة العمل لها نفس اللاحقة. سيظل اسم خدمة التعلم الآلي من Microsoft Azure هو نفسه "service_name" المقدم من العميل ولا يحتاج كل المستخدمين الذين يواجهون Azure Machine Learning SDK API إلى أي تغيير. لا نقدم أي ضمانات بشأن أسماء الموارد الأساسية التي يتم إنشاؤها.
الخطوات التالية
- كيفية توزيع نموذج باستخدام صورة Docker مخصصة
- استكشاف أخطاء التوزيع وإصلاحها
- تحديث خدمة الويب
- استخدام TLS لتأمين خدمة ويب من خلال التعلم الآلي من Microsoft Azure
- استهلاك نموذج التعلم الآلي المنشور كخدمة ويب
- عرض نماذج التعلم الآلي من Microsoft Azure باستخدام Application Insights
- جمع البيانات للنماذج في الإنتاج