نشر نموذج إلى 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 إلى أي تغيير. لا نقدم أي ضمانات بشأن أسماء الموارد الأساسية التي يتم إنشاؤها.

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