نشر نموذج محليا
تعرف على كيفية استخدام Azure التعلم الآلي لنشر نموذج كخدمة ويب على مثيل حساب Azure التعلم الآلي. استخدم مثيلات الحساب إذا تحقق أحد الشروط التالية:
- تحتاج إلى نشر النموذج الخاص بك والتحقق من صحته بسرعة.
- أنت تختبر نموذجا قيد التطوير.
تلميح
يعد نشر نموذج من دفتر ملاحظات Jupyter على مثيل حوسبة، إلى خدمة ويب على نفس الجهاز الظاهري عملية نشر محلية. في هذه الحالة، الكمبيوتر "المحلي" هو مثيل الحوسبة.
ملاحظة
توفر نقاط نهاية Azure التعلم الآلي (المعاينة) تجربة نشر محسنة وأبسط. تدعم نقاط النهاية سيناريوهات الاستدلال في الوقت الفعلي والدفعات. توفر نقاط النهاية واجهة موحدة لاستدعاء عمليات نشر النماذج وإدارتها عبر أنواع الحوسبة. راجع ما هي نقاط نهاية Azure التعلم الآلي (معاينة)؟.
المتطلبات الأساسية
- A Azure التعلم الآلي مساحة عمل مع تشغيل مثيل حوسبة. لمزيد من المعلومات، راجع التشغيل السريع: بدء استخدام Azure التعلم الآلي.
النشر إلى مثيلات الحوسبة
يتم تضمين مثال على دفتر الملاحظات الذي يوضح عمليات النشر المحلية في مثيل الحوسبة الخاص بك. اتبع الخطوات التالية لتحميل دفتر الملاحظات ونشر النموذج كخدمة ويب على الجهاز الظاهري:
من استوديو Azure التعلم الآلي، حدد "دفاتر الملاحظات"، ثم حدد كيفية الاستخدام-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb ضمن "نماذج دفاتر الملاحظات". قم باستنساخ دفتر الملاحظات هذا إلى مجلد المستخدم الخاص بك.
ابحث عن دفتر الملاحظات المستنسخ في الخطوة 1، واختر مثيل حوسبة أو قم بإنشائه لتشغيل دفتر الملاحظات.

يعرض دفتر الملاحظات عنوان URL والمنفذ اللذين يتم تشغيل الخدمة عليهما. على سبيل المثال،
https://localhost:6789. يمكنك أيضا تشغيل الخلية التي تحتوي علىprint('Local service port: {}'.format(local_service.port))عرض المنفذ.
لاختبار الخدمة من مثيل حوسبة، استخدم
https://localhost:<local_service.port>عنوان URL. للاختبار من عميل بعيد، احصل على عنوان URL العام للخدمة قيد التشغيل على مثيل الحوسبة. يمكن تحديد عنوان URL العام باستخدام الصيغة التالية:- دفتر VM:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.notebooks.azureml.net/score. - مثيل الحساب:
https://<vm_name>-<local_service_port>.<azure_region_of_workspace>.instances.azureml.net/score.
على سبيل المثال،
- الكمبيوتر المحمول VM:
https://vm-name-6789.northcentralus.notebooks.azureml.net/score - مثيل الحساب:
https://vm-name-6789.northcentralus.instances.azureml.net/score
- دفتر VM:
اختبار الخدمة
لإرسال نموذج بيانات إلى الخدمة قيد التشغيل، استخدم التعليمة البرمجية التالية. استبدل قيمة service_url عنوان URL من الخطوة السابقة:
ملاحظة
عند المصادقة إلى نشر على مثيل الحوسبة، تتم المصادقة باستخدام Azure Active Directory. يقوم الاستدعاء إلى interactive_auth.get_authentication_header() في رمز المثال بمصادقتك باستخدام AAD (دليل Azure النشط)، وإرجاع رأس يمكن استخدامه بعد ذلك للمصادقة على الخدمة على مثيل الحوسبة. لمزيد من المعلومات، راجع إعداد المصادقة لموارد Azure التعلم الآلي ومهام سير العمل.
عند المصادقة إلى نشر على خدمة Azure Kubernetes أو مثيلات حاوية Azure، يتم استخدام طريقة مصادقة مختلفة. لمزيد من المعلومات حول، راجع تكوين المصادقة لطرز Azure Machine التي تم نشرها كخدمات ويب.
import requests
import json
from azureml.core.authentication import InteractiveLoginAuthentication
# Get a token to authenticate to the compute instance from remote
interactive_auth = InteractiveLoginAuthentication()
auth_header = interactive_auth.get_authentication_header()
# Create and submit a request using the auth header
headers = auth_header
# Add content type header
headers.update({'Content-Type':'application/json'})
# Sample data to send to the service
test_sample = json.dumps({'data': [
[1,2,3,4,5,6,7,8,9,10],
[10,9,8,7,6,5,4,3,2,1]
]})
test_sample = bytes(test_sample,encoding = 'utf8')
# Replace with the URL for your compute instance, as determined from the previous section
service_url = "https://vm-name-6789.northcentralus.notebooks.azureml.net/score"
# for a compute instance, the url would be https://vm-name-6789.northcentralus.instances.azureml.net/score
resp = requests.post(service_url, test_sample, headers=headers)
print("prediction:", resp.text)