نشر نموذج إلى مثيلات حاوية Azure
تعرف على كيفية استخدام Azure التعلم الآلي لنشر نموذج كخدمة ويب على مثيلات حاوية Azure (ACI). استخدم مثيلات حاوية Azure إذا:
- تفضل عدم إدارة مجموعة Kubernetes الخاصة بك
- لا بأس من وجود نسخة متماثلة واحدة فقط من خدمتك ، مما قد يؤثر على وقت التشغيل
للحصول على معلومات حول الحصة النسبية وتوفر المنطقة ل ACI، راجع مقالة الحصص النسبية وتوافر المنطقة لمثيلات حاوية Azure .
هام
ينصح بشدة بتصحيح الأخطاء محليا قبل النشر على خدمة الويب ، لمزيد من المعلومات ، راجع تصحيح الأخطاء محليا
يمكنك أيضا الرجوع إلى Azure التعلم الآلي - النشر إلى دفتر الملاحظات المحلي
المتطلبات الأساسية
مساحة عمل Azure التعلم الآلي. لمزيد من المعلومات، راجع إنشاء مساحة عمل Azure التعلم الآلي.
نموذج تعلم آلي مسجل في مساحة العمل الخاصة بك. إذا لم يكن لديك نموذج مسجل، فراجع كيفية نشر النماذج ومكانها.
ملحق Azure CLI (v1) لخدمة التعلم الآلي أو Azure التعلم الآلي Python SDKأوملحق Azure التعلم الآلي Visual Studio Code.
تفترض مقتطفات التعليمات البرمجية Python في هذه المقالة تعيين المتغيرات التالية:
ws- تعيين إلى مساحة العمل الخاصة بك.model- تعيين إلى النموذج المسجل الخاص بك.inference_config- تعيين إلى تكوين الاستدلال للنموذج.
لمزيد من المعلومات حول إعداد هذه المتغيرات، راجع كيفية ومكان نشر النماذج.
تفترض مقتطفات CLI في هذه المقالة أنك قمت بإنشاء
inferenceconfig.jsonمستند. لمزيد من المعلومات حول إنشاء هذا المستند، راجع كيفية ومكان نشر النماذج.
التقييدات
- عند استخدام مثيلات حاوية 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 إلى أي تغيير. نحن لا نعطي أي ضمانات بشأن أسماء الموارد الأساسية التي يجري إنشاؤها.