نشر نموذج إلى مثيلات حاوية Azure

تعرف على كيفية استخدام Azure التعلم الآلي لنشر نموذج كخدمة ويب على مثيلات حاوية Azure (ACI). استخدم مثيلات حاوية Azure إذا:

  • تفضل عدم إدارة مجموعة Kubernetes الخاصة بك
  • لا بأس من وجود نسخة متماثلة واحدة فقط من خدمتك ، مما قد يؤثر على وقت التشغيل

للحصول على معلومات حول الحصة النسبية وتوفر المنطقة ل ACI، راجع مقالة الحصص النسبية وتوافر المنطقة لمثيلات حاوية Azure .

هام

ينصح بشدة بتصحيح الأخطاء محليا قبل النشر على خدمة الويب ، لمزيد من المعلومات ، راجع تصحيح الأخطاء محليا

يمكنك أيضا الرجوع إلى Azure التعلم الآلي - النشر إلى دفتر الملاحظات المحلي

المتطلبات الأساسية

التقييدات

  • عند استخدام مثيلات حاوية Azure في شبكة ظاهرية، يجب أن تكون الشبكة الظاهرية في نفس مجموعة الموارد مثل مساحة عمل Azure التعلم الآلي.
  • عند استخدام مثيلات حاوية Azure داخل الشبكة الظاهرية، لا يمكن أيضا أن يكون سجل حاوية Azure (ACR) لمساحة العمل الخاصة بك في الشبكة الظاهرية.

لمزيد من المعلومات، راجع كيفية تأمين الاستدلال باستخدام الشبكات الظاهرية.

النشر في ACI

لنشر نموذج إلى مثيلات حاوية Azure، قم بإنشاء تكوين نشر يصف موارد الحوسبة المطلوبة. على سبيل المثال ، عدد النوى والذاكرة. تحتاج أيضا إلى تكوين الاستدلال ، والذي يصف البيئة اللازمة لاستضافة النموذج وخدمة الويب. لمزيد من المعلومات حول إنشاء تكوين الاستدلال، راجع كيفية ومكان نشر النماذج.

ملاحظة

  • ACI مناسب فقط للطرز الصغيرة التي يقل حجمها عن 1 جيجابايت.
  • نوصي باستخدام AKS أحادي العقدة لتطوير نماذج أكبر.
  • يقتصر عدد النماذج التي سيتم نشرها على 1000 نموذج لكل عملية نشر (لكل حاوية).

استخدام SDK

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

APPLY TO: Azure CLI ml extensionع1 v2 (معاينة)

للنشر باستخدام 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_cores عدد نوى وحدة المعالجة المركزية لتخصيصها. افتراضيات 0.1
  memoryInGB memory_gb مقدار الذاكرة (بالجيجابايت) المراد تخصيصها لخدمة الويب هذه. افتراضي 0.5
location location منطقة Azure لنشر خدمة الويب هذه إلى. إذا لم يتم تحديد موقع مساحة العمل، استخدامه. يمكن العثور على مزيد من التفاصيل حول المناطق المتاحة هنا: مناطق ACI
authEnabled auth_enabled ما إذا كنت تريد تمكين المصادقة لخدمة الويب هذه. الإعدادات الافتراضية إلى False
sslEnabled ssl_enabled ما إذا كنت تريد تمكين طبقة المقابس الآمنة لخدمة الويب هذه. الإعدادات الافتراضية إلى False.
appInsightsEnabled enable_app_insights ما إذا كنت تريد تمكين AppInsights لخدمة الويب هذه. الإعدادات الافتراضية إلى False
sslCertificate ssl_cert_pem_file ملف الشهادة المطلوب إذا تم تمكين SSL
sslKey ssl_key_pem_file الملف الرئيسي المطلوب إذا تم تمكين SSL
cname ssl_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 .

استخدام التعليمات البرمجية VS

تعرف على كيفية إدارة الموارد في VS Code.

هام

لست بحاجة إلى إنشاء حاوية ACI لاختبارها مسبقا. يتم إنشاء حاويات ACI حسب الحاجة.

هام

نقوم بإلحاق معرف مساحة العمل المجزأة بجميع موارد ACI الأساسية التي تم إنشاؤها ، وسيكون لجميع أسماء ACI من نفس مساحة العمل نفس اللاحقة. سيظل اسم خدمة Azure التعلم الآلي هو نفس العميل المقدم "service_name" ولا يحتاج جميع المستخدمين الذين يواجهون واجهات برمجة تطبيقات Azure التعلم الآلي SDK إلى أي تغيير. نحن لا نعطي أي ضمانات بشأن أسماء الموارد الأساسية التي يجري إنشاؤها.

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