توزيع نموذجًا محليًا

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

  • تحتاج إلى توزيع النموذج الخاص بك والتحقق منه بسرعة.
  • أنت تختبر نموذجًا قيد التطوير.

تلميح

يعد توزيع نموذج من Jupyter Notebook على مثيل حوسبة، إلى خدمة ويب على نفس الجهاز الظاهري توزيعًا محليًا. في هذه الحالة، يكون الكمبيوتر "المحلي" هو مثيل الحساب.

إشعار

توفر نقاط نهاية Azure التعلم الآلي (v2) تجربة توزيع محسنة أبسط. تدعم نقاط النهاية كلا من سيناريوهات الاستدلال في الوقت الحقيقي والدفعة. توفر نقاط النهاية واجهة موحدة لاستدعاء عمليات توزيع النموذج وإدارتها عبر أنواع الحساب. راجع ما هي نقاط نهاية Azure التعلم الآلي؟.

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

  • مساحة عمل التعلم الآلي من Azure مع تشغيل مثيل حساب. لمزيد من المعلومات، راجع إنشاء موارد للبدء.

التوزيع إلى مثيلات الحساب

تم تضمين مثال دفتر ملاحظات يوضح عمليات التوزيع المحلية في مثيل الحساب الخاص بك. استخدم الخطوات التالية لتحميل الكمبيوتر الدفتري وتوزيع النموذج كخدمة ويب على الجهاز الظاهري:

  1. من استديو التعلم الآلي من Azure، حدد "أجهزة الكمبيوتر المحمولة"، ثم حدد how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local.ipynb ضمن "نماذج دفاتر الملاحظات". استنساخ دفتر الملاحظات هذا إلى مجلد المستخدم الخاص بك.

  2. ابحث عن دفتر الملاحظات المستنسخ في الخطوة 1، واختر أو أنشئ حسابًا مثيلًا لتشغيل دفتر الملاحظات.

    Screenshot of the running local service on notebook

  3. يعرض دفتر الملاحظات عنوان URL والمنفذ الذي تعمل عليه الخدمة. على سبيل المثال، https://localhost:6789. يمكنك أيضًا تشغيل الخلية التي تحتوي على print('Local service port: {}'.format(local_service.port)) لعرض المنفذ.

    Screenshot of the running local service port

  4. لاختبار الخدمة من مثيل حساب، استخدم عنوان URL الخاص بـ https://localhost:<local_service.port>. للاختبار من عميل بعيد، احصل على عنوان URL العام للخدمة قيد التشغيل على مثيل الحساب. يمكن تحديد عنوان URL العام باستخدام الصيغة التالية؛

    • جهاز ظاهري Notebook: 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.

    مثال،

    • جهاز ظاهري Notebook: https://vm-name-6789.northcentralus.notebooks.azureml.net/score
    • مثيل الحساب: https://vm-name-6789.northcentralus.instances.azureml.net/score

اختبار الخدمة

لإرسال نموذج البيانات إلى الخدمة قيد التشغيل، استخدم التعليمات البرمجية التالية. استبدل القيمة service_url بعنوان URL من الخطوة السابقة:

إشعار

عند المصادقة على نشر على مثيل الحساب، يتم إجراء المصادقة باستخدام معرف Microsoft Entra. الاستدعاء في interactive_auth.get_authentication_header() مثال التعليمات البرمجية يصادقك باستخدام معرف Microsoft Entra، ويعيد عنوانا يمكن استخدامه بعد ذلك للمصادقة على الخدمة على مثيل الحساب. للحصول على مزيدٍ من المعلومات، راجع إعداد المصادقة لموارد التعلم الآلي من 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)

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