نقاط النهاية والنشر عبر الإنترنت للاستدلال في الوقت الحقيقي

ينطبق على:ملحق ML Azure CLI v2 (الحالي)Python SDK azure-ai-ml v2 (الحالي)

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

نقاط النهاية عبر الإنترنت

تنشر نقاط النهاية عبر الإنترنت نماذج إلى خادم ويب يمكنه إرجاع التنبؤات ضمن بروتوكول HTTP. استخدم نقاط النهاية عبر الإنترنت لتشغيل النماذج للاستدلال في الوقت الفعلي في طلبات زمن انتقال منخفض متزامنة. نوصي باستخدامها عندما:

  • لديك متطلبات زمن انتقال منخفض
  • يمكن لنموذجك الرد على الطلب في فترة زمنية قصيرة نسبيا
  • تتناسب مدخلات النموذج الخاص بك مع حمولة HTTP للطلب
  • تحتاج إلى التوسع من حيث عدد الطلبات

لتعريف نقطة نهاية، تحتاج إلى تحديد:

  • اسم نقطة النهاية: يجب أن يكون هذا الاسم فريدا في منطقة Azure. لمزيد من المعلومات حول قواعد التسمية، راجع حدود نقطة النهاية.
  • وضع المصادقة: يمكنك الاختيار من بين وضع المصادقة المستندة إلى المفتاح أو وضع المصادقة المستندة إلى الرمز المميز في Azure التعلم الآلي أو المصادقة المستندة إلى الرمز المميز من Microsoft Entra (معاينة) لنقطة النهاية. لمزيد من المعلومات حول المصادقة، راجع المصادقة إلى نقطة نهاية عبر الإنترنت.

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

لماذا تختار نقاط النهاية المدارة عبر الإنترنت عبر ACI أو AKS(v1)؟

استخدام نقاط النهاية المدارة عبر الإنترنت هو الطريقة الموصى بها لاستخدام نقاط النهاية عبر الإنترنت في Azure التعلم الآلي. يسلط الجدول التالي الضوء على السمات الرئيسية لنقاط النهاية المدارة عبر الإنترنت مقارنة بحلول Azure التعلم الآلي SDK/CLI v1 (ACI وAKS(v1)).

السمات نقاط النهاية المدارة عبر الإنترنت (v2) ACI أو AKS(v1)
أمان/عزل الشبكة التحكم السهل الوارد/الصادر مع التبديل السريع الشبكة الظاهرية غير مدعومة أو تتطلب تكوينا يدويا معقدا
⁧⁩خدمة مدارة⁧ - توفير/تحجيم حساب مدار بالكامل
- تكوين الشبكة لمنع تسرب البيانات
- ترقية نظام التشغيل المضيف، الإطلاق المتحكم به للتحديثات الموضعية
- التحجيم محدود في الإصدار 1
- يجب إدارة تكوين الشبكة أو الترقية من قبل المستخدم
مفهوم نقطة النهاية/التوزيع يتيح التمييز بين نقطة النهاية والنشر سيناريوهات معقدة مثل الإطلاق الآمن للنماذج لا يوجد مفهوم لنقطة النهاية
التشخيص والمراقبة - تصحيح أخطاء نقطة النهاية المحلية ممكن مع Docker وVisual Studio Code
- تحليل المقاييس والسجلات المتقدمة باستخدام المخطط/الاستعلام للمقارنة بين عمليات التوزيع
- تقسيم التكلفة إلى مستوى النشر
لا يوجد تصحيح أخطاء محلي سهل
قابلية التوسع التحجيم غير محدود والمرونة والتلقائية - ACI غير قابل للتطوير
- يدعم AKS (v1) المقياس داخل نظام المجموعة فقط ويتطلب تكوين قابلية التوسع
الاستعداد المؤسسي رابط خاص، مفاتيح مدارة من قبل العملاء، معرف Microsoft Entra، إدارة الحصة النسبية، تكامل الفوترة، اتفاقية مستوى الخدمة غير مدعوم
ميزات التعلم الآلي المتقدمة - جمع بيانات النموذج
- مراقبة النموذج
- نموذج بطل التحدي، إطلاق آمن، انعكاس حركة المرور
- قابلية التوسعة الذكاء الاصطناعي المسؤولة
غير مدعوم

بدلا من ذلك، إذا كنت تفضل استخدام Kubernetes لنشر نماذجك وخدمة نقاط النهاية، وكنت مرتاحا لإدارة متطلبات البنية الأساسية، يمكنك استخدام نقاط نهاية Kubernetes عبر الإنترنت. تسمح لك نقاط النهاية هذه بنشر النماذج وخدمة نقاط النهاية عبر الإنترنت في مجموعة Kubernetes المكونة بالكامل والمدارة في أي مكان، مع وحدات المعالجة المركزية أو وحدات معالجة الرسومات.

لماذا تختار نقاط النهاية المدارة عبر الإنترنت عبر AKS(v2)؟

يمكن أن تساعد نقاط النهاية المدارة عبر الإنترنت في تبسيط عملية النشر وتوفير المزايا التالية عبر نقاط نهاية Kubernetes عبر الإنترنت:

  • البنية الأساسية المدارة

    • توفير الحساب تلقائياً واستضافة النموذج (تحتاج فقط إلى تحديد نوع الجهاز الظاهري وإعدادات المقياس)
    • تحديث صورة نظام التشغيل المضيف الأساسي وتصحيحها تلقائياً
    • تنفيذ استرداد العقدة تلقائيا إذا كان هناك فشل في النظام
  • المراقبة والسجلات

    لقطة شاشة تظهر الرسم البياني لـ Azure Monitor لزمن انتقال نقطة النهاية.

  • عرض التكاليف

    لقطة شاشة لمخطط تكلفة نقطة النهاية والنشر.

    إشعار

    تستند نقاط النهاية المدارة عبر الإنترنت إلى حساب التعلم الآلي من Azure. عند استخدام نقطة نهاية مدارة عبر الإنترنت، تدفع مقابل رسوم الحساب والشبكات. لا توجد رسوم إضافية. لمزيدٍ من المعلومات، يُرجى الرجوع إلى صفحة أسعار Azure.

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

نقاط النهاية المدارة عبر الإنترنت مقابل نقاط نهاية kubernetes عبر الإنترنت

يسلط الجدول التالي الضوء على الاختلافات الرئيسية بين نقاط النهاية المدارة عبر الإنترنت ونقاط نهاية Kubernetes عبر الإنترنت.

نقاط النهاية عبر الإنترنت المدارة نقاط نهاية Kubernetes عبر الإنترنت (AKS(v2))
المستخدمون الموصى بهم المستخدمون الذين يريدون توزيع نموذج مدار وتجربة MLOps محسنة المستخدمون الذين يفضلون Kubernetes، ويمكنهم إدارة متطلبات البنية الأساسية ذاتياً
توفير العقدة توفير الحساب المدار، والتحديث، والإزالة مسؤولية المستخدم
صيانة العقدة تحديثات صورة نظام التشغيل المضيف المدارة، وتصلب الأمان مسؤولية المستخدم
تغيير حجم نظام المجموعة (التحجيم) يدوي مدار وتحجيم تلقائي، مما يدعم توفير عقد إضافية التحجيم اليدوي والتلقوي، ما يدعم تحجيم عدد النسخ المتماثلة داخل حدود نظام المجموعة الثابتة
نوع الحساب مدار بواسطة الخدمة مجموعة Kubernetes التي يديرها العميل (Kubernetes)
الهوية المدارة دعم مدعوم
الشبكة الظاهرية (VNet) مدعوم عبر عزل الشبكة المدارة مسؤولية المستخدم
المراقبة غير المعلبة والتسجيل يتم تشغيل Azure Monitor وLog Analytics (بما في ذلك المقاييس الرئيسية وجداول السجل لنقاط النهاية والنشر) مسؤولية المستخدم
تسجيل الدخول باستخدام Application Insights (قديم) مدعوم مدعوم
عرض التكاليف مفصل إلى نقطة النهاية / مستوى النشر مستوى نظام المجموعة
التكلفة المطبقة على الأجهزة الظاهرية المعينة إلى عمليات التوزيع الأجهزة الظاهرية المعينة إلى نظام المجموعة
نسبة استخدام الشبكة المتطابقة دعم غير مدعوم
نشر بدون تعليمات برمجية مدعوم (نماذج MLflow و Triton ) مدعوم (نماذج MLflow و Triton )

عمليات النشر عبر الإنترنت

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

يوضح الرسم التخطيطي التالي نقطة نهاية عبر الإنترنت تحتوي على اثنين من عمليات التوزيع، الأزرق والأخضر. يستخدم التوزيع الأزرق الأجهزة الظاهرية مع وحدة SKU لوحدة المعالجة المركزية، ويعمل على تشغيل الإصدار 1 من النموذج. يستخدم التوزيع الأخضر الأجهزة الظاهرية مع وحدة حفظ المخزون GPU، ويشغل الإصدار 2 من النموذج. تم تكوين نقطة النهاية لتوجيه 90٪ من نسبة استخدام الشبكة الواردة إلى النشر الأزرق، بينما يتلقى التوزيع الأخضر نسبة ال 10٪ المتبقية.

رسم تخطيطي يوضح نقطة نهاية تقسيم حركة المرور إلى نشرين.

لنشر نموذج، يجب أن يكون لديك:

  • ملفات النموذج (أو اسم النموذج المسجل بالفعل في مساحة العمل وإصداره).
  • برنامج نصي لتسجيل النقاط، أي التعليمات البرمجية التي تنفذ النموذج على طلب إدخال معين. يتلقى البرنامج النصي لتسجيل النقاط البيانات المرسلة إلى خدمة ويب منشورة ويمررها إلى النموذج. ثم ينفذ البرنامج النصي النموذج ويعيد استجابته إلى العميل. البرنامج النصي لتسجيل النقاط خاص بالنموذج الخاص بك ويجب أن يفهم البيانات التي يتوقعها النموذج كإدخل وإرجاع كإخراج.
  • بيئة يتم فيها تشغيل النموذج الخاص بك. يمكن أن تكون البيئة صورة Docker مع تبعيات Conda أو Dockerfile.
  • الإعدادات لتحديد نوع المثيل وسعة التحجيم.

السمات الرئيسية للتوزيع

يصف الجدول التالي السمات الرئيسية للتوزيع:

السمة الوصف
الاسم اسم التوزيع.
اسم نقطة النهاية اسم نقطة النهاية لإنشاء التوزيع ضمن.
الطراز1 النموذج الذي يجب استخدامه للتوزيع. يمكن أن تكون هذه القيمة إما مرجعًا لنموذج موجود بإصدار في مساحة العمل أو لمواصفات نموذج مدمج. لمزيد من المعلومات حول كيفية تتبع وتحديد المسار إلى النموذج الخاص بك، راجع تحديد مسار النموذج فيما يتعلق ب AZUREML_MODEL_DIR.
مسار التعليمات البرمجية المسار إلى الدليل على بيئة التطوير المحلية التي تحتوي على جميع التعليمات البرمجية لمصدر Python لتسجيل النموذج. يمكنك استخدام الدلائل والحزم المتداخلة.
برنامج نصي لتسجيل النقاط المسار النسبي لملف تسجيل النقاط في دليل التعليمات البرمجية المصدر. يجب أن تحتوي التعليمة البرمجية لـPython هذه على دالة init() ودالة run() . init() سيتم استدعاء الدالة بعد إنشاء النموذج أو تحديثه (يمكنك استخدامه لتخزين النموذج مؤقتا في الذاكرة، على سبيل المثال). يتم استدعاء الدالة run() في كل استدعاء لنقطة النهاية للقيام بتسجيل النقاط والتنبؤ الفعليين.
البيئة1 البيئة لاستضافة النموذج والرمز. يمكن أن تكون هذه القيمة إما مرجعًا لبيئة موجودة بإصدار في مساحة العمل أو مواصفات بيئة مدمجة. ملاحظة: تقوم Microsoft بتصحيح الصور الأساسية بانتظام بحثا عن الثغرات الأمنية المعروفة. ستحتاج إلى إعادة نشر نقطة النهاية لاستخدام الصورة المصححة. إذا قمت بتوفير صورتك الخاصة، فأنت مسؤول عن تحديثها. لمزيد من المعلومات، راجع تصحيح الصور.
نوع المثيل حجم الجهاز الظاهري المراد استخدامه للتوزيع. للحصول على قائمة بالأحجام المدعومة، راجع قائمة SKU لنقاط النهاية المدارة عبر الإنترنت.
عدد المثيلات عدد المثيلات التي يجب استخدامها للتوزيع. قم بإسناد القيمة إلى حِمل العمل الذي تتوقعه. للحصول على قابلية وصول عالية، نوصي بتعيين القيمة إلى على الأقل 3. نحتفظ بنسبة 20٪ إضافية لإجراء الترقيات. لمزيد من المعلومات، راجع تخصيص حصة الجهاز الظاهري للنشر.

1 بعض الأشياء التي يجب ملاحظتها حول النموذج والبيئة:

  • يمكن الرجوع إلى صورة النموذج والحاوية (كما هو محدد في البيئة) مرة أخرى في أي وقت من خلال النشر عندما تمر المثيلات خلف التوزيع بتصحيحات الأمان و/أو عمليات الاسترداد الأخرى. إذا كنت تستخدم نموذجا مسجلا أو صورة حاوية في Azure Container Registry للنشر وإزالة النموذج أو صورة الحاوية، يمكن أن تفشل عمليات التوزيع التي تعتمد على هذه الأصول عند حدوث إعادة التصوير. إذا قمت بإزالة النموذج أو صورة الحاوية، فتأكد من إعادة إنشاء عمليات النشر التابعة أو تحديثها بنموذج بديل أو صورة حاوية.
  • يمكن أن يكون سجل الحاوية الذي تشير إليه البيئة خاصا فقط إذا كانت هوية نقطة النهاية لديها الإذن للوصول إليها عبر مصادقة Microsoft Entra وAzure RBAC. لنفس السبب، سجلات Docker الخاصة بخلاف Azure Container Registry غير مدعومة.

لمعرفة كيفية نشر نقاط النهاية عبر الإنترنت باستخدام قالب CLI وSDK والاستوديو وARM، راجع نشر نموذج التعلم الآلي باستخدام نقطة نهاية عبر الإنترنت.

تحديد مسار النموذج فيما يتعلق AZUREML_MODEL_DIR

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

للتوضيح، نشير إلى بنية المجلد المحلي التالية لأول حالتين حيث تقوم بنشر نموذج واحد أو نشر نماذج متعددة مخزنة محليا:

لقطة شاشة تعرض بنية مجلد تحتوي على نماذج متعددة.

استخدام نموذج محلي واحد في عملية نشر

لاستخدام نموذج واحد لديك على جهازك المحلي في عملية نشر، حدد path إلى model في YAML النشر الخاص بك. فيما يلي مثال على توزيع YAML مع المسار /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

بعد إنشاء النشر الخاص بك، سيشير متغير AZUREML_MODEL_DIR البيئة إلى موقع التخزين داخل Azure حيث يتم تخزين النموذج الخاص بك. على سبيل المثال، /var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 سيحتوي على النموذج sample_m1.pkl.

ضمن البرنامج النصي لتسجيل النقاط (score.py)، يمكنك تحميل النموذج الخاص بك (في هذا المثال، sample_m1.pkl) في الدالة init() :

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl") 
    model = joblib.load(model_path) 

استخدام نماذج محلية متعددة في عملية نشر

على الرغم من أن Azure CLI وPython SDK وأدوات العميل الأخرى تسمح لك بتحديد نموذج واحد فقط لكل عملية نشر في تعريف التوزيع، فلا يزال بإمكانك استخدام نماذج متعددة في عملية نشر عن طريق تسجيل مجلد نموذج يحتوي على جميع النماذج كملفات أو أدلة فرعية.

في بنية مجلد المثال السابق، لاحظت أن هناك نماذج متعددة في models المجلد. في توزيع YAML، يمكنك تحديد المسار إلى models المجلد كما يلي:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/ 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

بعد إنشاء النشر الخاص بك، سيشير متغير AZUREML_MODEL_DIR البيئة إلى موقع التخزين داخل Azure حيث يتم تخزين نماذجك. على سبيل المثال، /var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 سيحتوي على النماذج وبنية الملف.

على سبيل المثال، ستبدو محتويات AZUREML_MODEL_DIR المجلد كما يلي:

لقطة شاشة لبنية المجلد لموقع التخزين لنماذج متعددة.

ضمن البرنامج النصي لتسجيل النقاط (score.py)، يمكنك تحميل نماذجك في الدالة init() . تحمل التعليمات البرمجية sample_m1.pkl التالية النموذج:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ") 
    model = joblib.load(model_path) 

للحصول على مثال حول كيفية نشر نماذج متعددة إلى نشر واحد، راجع نشر نماذج متعددة إلى نشر واحد (مثال CLI) ونشر نماذج متعددة إلى نشر واحد (مثال SDK) .

تلميح

إذا كان لديك أكثر من 1500 ملف للتسجيل، ففكر في ضغط الملفات أو الدلائل الفرعية على أنها .tar.gz عند تسجيل النماذج. لاستهلاك النماذج، يمكنك إلغاء ضغط الملفات أو الدلائل الفرعية في الدالة init() من البرنامج النصي لتسجيل النقاط. بدلا من ذلك، عند تسجيل النماذج، قم بتعيين الخاصية azureml.unpack إلى True، لإلغاء ضغط الملفات أو الدلائل الفرعية تلقائيا. في كلتا الحالتين، يحدث إلغاء الضغط مرة واحدة في مرحلة التهيئة.

استخدام النماذج المسجلة في مساحة عمل Azure التعلم الآلي في عملية نشر

لاستخدام نموذج واحد أو أكثر، والتي تم تسجيلها في مساحة عمل Azure التعلم الآلي، حدد اسم النموذج (النماذج) المسجلة في YAML للتوزيع. على سبيل المثال، يحدد تكوين YAML للتوزيع التالي الاسم المسجل model ك azureml:local-multimodel:3:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: azureml:local-multimodel:3 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

في هذا المثال، ضع في اعتبارك أن local-multimodel:3 يحتوي على عناصر النموذج التالية، والتي يمكن عرضها من علامة التبويب Models في Azure التعلم الآلي studio:

لقطة شاشة لبنية المجلد تعرض بيانات النموذج الاصطناعية للنموذج المسجل.

بعد إنشاء النشر الخاص بك، سيشير متغير AZUREML_MODEL_DIR البيئة إلى موقع التخزين داخل Azure حيث يتم تخزين نماذجك. على سبيل المثال، /var/azureml-app/azureml-models/local-multimodel/3 سيحتوي على النماذج وبنية الملف. AZUREML_MODEL_DIR سيشير إلى المجلد الذي يحتوي على جذر البيانات الاصطناعية للنموذج. استنادا إلى هذا المثال، ستبدو محتويات AZUREML_MODEL_DIR المجلد كما يلي:

لقطة شاشة لبنية المجلد تظهر نماذج متعددة.

ضمن البرنامج النصي لتسجيل النقاط (score.py)، يمكنك تحميل نماذجك في الدالة init() . على سبيل المثال، قم بتحميل diabetes.sav النموذج:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav") 
    model = joblib.load(model_path) 

تخصيص حصة الجهاز الظاهري للتوزيع

بالنسبة لنقاط النهاية المدارة عبر الإنترنت، تحتفظ Azure التعلم الآلي بنسبة 20٪ من موارد الحوسبة لإجراء ترقيات على بعض وحدات SKU للجهاز الظاهري. إذا طلبت عددا معينا من المثيلات لوحدات SKU للأجهزة الظاهرية هذه في عملية نشر، فيجب أن يكون لديك حصة نسبية متاحة ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU لتجنب حدوث خطأ. على سبيل المثال، إذا طلبت 10 مثيلات لجهاز ظاهري Standard_DS3_v2 (يأتي مع أربعة ذاكرات أساسية) في عملية نشر، يجب أن يكون لديك حصة نسبية ل 48 نواة (12 instances * 4 cores) متوفرة. يتم حجز هذه الحصة الإضافية للعمليات التي بدأها النظام مثل ترقيات نظام التشغيل واسترداد الجهاز الظاهري، ولن تتحمل تكلفة ما لم يتم تشغيل مثل هذه العمليات.

هناك بعض وحدات SKU للجهاز الظاهري التي يتم إعفاءها من حجز الحصة الإضافية. لعرض القائمة الكاملة، راجع قائمة SKU لنقاط النهاية المدارة عبر الإنترنت.

لعرض زيادة الحصة النسبية للاستخدام والطلب، راجع عرض الاستخدام والحصص النسبية في مدخل Microsoft Azure. لعرض تكلفة تشغيل نقطة نهاية مدارة عبر الإنترنت، راجع عرض التكاليف لنقطة نهاية مدارة عبر الإنترنت.

يوفر Azure التعلم الآلي مجموعة حصص مشتركة يمكن من خلالها لجميع المستخدمين الوصول إلى الحصة النسبية لإجراء الاختبار لفترة محدودة. عند استخدام الاستوديو لنشر نماذج Llama (من كتالوج النموذج) إلى نقطة نهاية مدارة عبر الإنترنت، يسمح لك Azure التعلم الآلي بالوصول إلى هذه الحصة النسبية المشتركة لفترة قصيرة.

لنشر نموذج Llama-2-70b أو Llama-2-70b-chat، ومع ذلك، يجب أن يكون لديك اشتراك اتفاقية Enterprise قبل أن تتمكن من النشر باستخدام الحصة النسبية المشتركة. لمزيد من المعلومات حول كيفية استخدام الحصة النسبية المشتركة لنشر نقطة النهاية عبر الإنترنت، راجع كيفية نشر نماذج الأساس باستخدام الاستوديو.

لمزيد من المعلومات حول الحصص النسبية والحدود للموارد في Azure التعلم الآلي، راجع إدارة وزيادة الحصص النسبية والحدود للموارد باستخدام Azure التعلم الآلي.

التوزيع للمبرمجين وغير المبرمجين

يدعم Azure التعلم الآلي نشر النموذج إلى نقاط النهاية عبر الإنترنت للمبرمجين وغير المبرمجين على حد سواء، من خلال توفير خيارات لنشر بدون تعليمات برمجية، ونشر التعليمات البرمجية المنخفضة، ونشر إحضار الحاوية الخاصة بك (BYOC).

  • يوفر النشر بدون تعليمات برمجية الاستدلال الجاهز لأطر العمل الشائعة (على سبيل المثال، scikit-learn وTensorFlow وPyTorch وONNX) عبر MLflow وTriton.
  • يسمح لك نشر التعليمات البرمجية المنخفضة بتوفير الحد الأدنى من التعليمات البرمجية جنبا إلى جنب مع نموذج التعلم الآلي الخاص بك للتوزيع.
  • يتيح لك نشر BYOC إحضار أي حاويات لتشغيل نقطة النهاية عبر الإنترنت. يمكنك استخدام جميع ميزات النظام الأساسي Azure التعلم الآلي مثل التحجيم التلقائي وGitOps وتصحيح الأخطاء والنشر الآمن لإدارة مسارات MLOps.

يسلط الجدول التالي الضوء على الجوانب الرئيسية حول خيارات النشر عبر الإنترنت:

بلا تعليمات برمجية تعليمات برمجية منخفضة BYOC
الملخص يستخدم الاستدلال الجاهز لأطر العمل الشائعة مثل scikit-learn وTensorFlow وPyTorch و ONNX عبر MLflow و Triton. لمزيد من المعلومات، راجع نشر نماذج MLflow إلى نقاط النهاية عبر الإنترنت. يستخدم الصور المنسقة الآمنة والمنشرة بشكل عام لأطر العمل الشائعة، مع تحديثات كل أسبوعين لمعالجة الثغرات الأمنية. يمكنك توفير البرنامج النصي لتسجيل النقاط و/أو تبعيات Python. لمزيد من المعلومات، راجع Azure التعلم الآلي البيئات المنسقة. يمكنك توفير مكدس الذاكرة المؤقتة الكامل عبر دعم Azure التعلم الآلي للصور المخصصة. لمزيد من المعلومات، راجع استخدام حاوية مخصصة لنشر نموذج إلى نقطة نهاية عبر الإنترنت.
صورة أساسية مخصصة لا، ستوفر البيئة المنسقة هذا للنشر السهل. نعم ولا، يمكنك إما استخدام صورة منسقة أو صورتك المخصصة. نعم، قم بإحضار موقع صورة حاوية يمكن الوصول إليه (على سبيل المثال، docker.io أو Azure Container Registry (ACR) أو Microsoft Container Registry (MCR) أو Dockerfile الذي يمكنك إنشاءه/دفعه باستخدام ACR للحاوية الخاصة بك.
التبعيات المخصصة لا، ستوفر البيئة المنسقة هذا للنشر السهل. نعم، أحضر بيئة Azure التعلم الآلي التي يعمل فيها النموذج؛ إما صورة Docker مع تبعيات Conda، أو dockerfile. نعم، سيتم تضمين هذا في صورة الحاوية.
التعليمات البرمجية المخصصة لا، سيتم إنشاء برنامج نصي لتسجيل النقاط تلقائيا لتسهيل النشر. نعم، أحضر برنامجك النصي لتسجيل النقاط. نعم، سيتم تضمين هذا في صورة الحاوية.

إشعار

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

تصحيح أخطاء نقطة النهاية عبر الإنترنت

نوصي بشدة باختبار تشغيل نقطة النهاية محليا للتحقق من صحة التعليمات البرمجية والتكوين وتصحيحها قبل النشر إلى Azure. يدعم Azure CLI وPython SDK نقاط النهاية المحلية والنشرات، بينما لا يدعم Azure التعلم الآلي studio وقالب ARM.

يوفر Azure التعلم الآلي طرقا مختلفة لتصحيح نقاط النهاية عبر الإنترنت محليا وباستخدام سجلات الحاوية.

تصحيح الأخطاء المحلي باستخدام خادم HTTP للاستدلال على Azure التعلم الآلي

يمكنك تصحيح أخطاء البرنامج النصي لتسجيل النقاط محليا باستخدام خادم HTTP للاستدلال على Azure التعلم الآلي. خادم HTTP هو حزمة Python تعرض وظيفة تسجيل النقاط كنقطة نهاية HTTP والتفاف التعليمات البرمجية لخادم Flask والتبعيات في حزمة مفردة. يتم تضمينه في صور Docker التي تم إنشاؤها مسبقا للاستدلال الذي يتم استخدامه عند نشر نموذج مع Azure التعلم الآلي. باستخدام الحزمة وحدها، يمكنك نشر النموذج محليا للإنتاج، ويمكنك أيضا التحقق من صحة البرنامج النصي لتسجيل النقاط (الإدخال) بسهولة في بيئة تطوير محلية. إذا كانت هناك مشكلة في البرنامج النصي لتسجيل النقاط، فسيرجع الخادم خطأ والموقع الذي حدث فيه الخطأ. يمكنك أيضا استخدام Visual Studio Code لتصحيح الأخطاء باستخدام خادم HTTP للاستدلال على Azure التعلم الآلي.

تلميح

يمكنك استخدام حزمة Python لخادم Azure التعلم الآلي الاستدلال HTTP لتصحيح أخطاء البرنامج النصي لتسجيل النقاط محليا دون Docker Engine. يساعدك تصحيح الأخطاء باستخدام خادم الاستدلال على تصحيح أخطاء البرنامج النصي لتسجيل النقاط قبل النشر إلى نقاط النهاية المحلية بحيث يمكنك تصحيح الأخطاء دون التأثر بتكوينات حاوية التوزيع.

لمعرفة المزيد حول تصحيح الأخطاء باستخدام خادم HTTP، راجع تصحيح أخطاء البرنامج النصي لتسجيل النقاط باستخدام Azure التعلم الآلي خادم HTTP للاستدلال.

تصحيح الأخطاء المحلي باستخدام نقطة النهاية المحلية

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

تلميح

يبدأ Docker Engine عادةً عند بدء تشغيل الكمبيوتر. إذا لم يحدث ذلك، يمكنك استكشاف أخطاء محرك Docker وإصلاحها. يمكنك استخدام أدوات من جانب العميل مثل Docker Desktop لتصحيح ما يحدث في الحاوية.

تتضمن خطوات تصحيح الأخطاء المحلية عادة ما يلي:

  • التحقق من نجاح النشر المحلي
  • استدعاء نقطة النهاية المحلية للاستدلال
  • مراجعة السجلات لإخراج عملية الاستدعاء

إشعار

نقاط النهاية المحلية لها القيود التالية:

  • لا تدعم قواعد حركة المرور أو المصادقة أو إعدادات الفحص.
  • وهي تدعم عملية نشر واحدة فقط لكل نقطة نهاية.
  • وهي تدعم ملفات النموذج المحلي والبيئة مع ملف conda المحلي فقط. إذا كنت ترغب في اختبار النماذج المسجلة، فبادر أولا بتنزيلها باستخدام CLI أو SDK، ثم استخدم path في تعريف النشر للإشارة إلى المجلد الأصل. إذا كنت ترغب في اختبار البيئات المسجلة، فتحقق من سياق البيئة في Azure التعلم الآلي studio وقم بإعداد ملف conda محلي لاستخدامه.

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

تصحيح الأخطاء المحلي باستخدام نقطة النهاية المحلية وVisual Studio Code (معاينة)

هام

تُعد هذه الميزة قيد الإصدار الأولي العام في الوقت الحالي. يجري توفير إصدار المعاينة هذا دون اتفاقية على مستوى الخدمة، ولا نوصي باستخدامه لأحمال عمل الإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة.

لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

كما هو الحال مع تصحيح الأخطاء المحلي، تحتاج أولا إلى تثبيت Docker Engine وتشغيله ثم نشر نموذج إلى بيئة Docker المحلية. بمجرد أن يكون لديك نشر محلي، تستخدم نقاط النهاية المحلية Azure التعلم الآلي حاويات تطوير Docker وVisual Studio Code (حاويات التطوير) لإنشاء بيئة تصحيح الأخطاء المحلية وتكوينها. باستخدام حاويات التطوير، يمكنك الاستفادة من ميزات Visual Studio Code، مثل التصحيح التفاعلي، من داخل حاوية Docker.

لمعرفة المزيد حول تصحيح أخطاء نقاط النهاية عبر الإنترنت بشكل تفاعلي في VS Code، راجع تصحيح نقاط النهاية عبر الإنترنت محليا في Visual Studio Code.

تصحيح الأخطاء باستخدام سجلات الحاوية

للنشر، لا يمكنك الحصول على وصول مباشر إلى الجهاز الظاهري حيث يتم نشر النموذج. ومع ذلك، يمكنك الحصول على السجلات من بعض الحاويات التي تعمل على «الجهاز الظاهري». هناك نوعان من الحاويات التي يمكنك الحصول على السجلات منها:

  • خادم الاستدلال: تتضمن السجلات سجل وحدة التحكم (من خادم الاستدلال) الذي يحتوي على إخراج وظائف الطباعة/التسجيل من البرنامج النصي لتسجيل النقاط (score.py التعليمات البرمجية).
  • تهيئة التخزين: تحتوي السجلات على معلومات حول ما إذا كان قد تم تنزيل التعليمات البرمجية وبيانات النموذج بنجاح إلى الحاوية. يتم تشغيل الحاوية قبل بدء تشغيل حاوية خادم الاستدلال.

لمعرفة المزيد حول تصحيح الأخطاء باستخدام سجلات الحاوية، راجع الحصول على سجلات الحاوية.

توجيه نسبة استخدام الشبكة والعكس إلى عمليات النشر عبر الإنترنت

تذكر أن نقطة نهاية واحدة عبر الإنترنت يمكن أن تحتوي على عمليات نشر متعددة. نظرا لأن نقطة النهاية تتلقى نسبة استخدام الشبكة الواردة (أو الطلبات)، يمكنها توجيه النسب المئوية لنسبة استخدام الشبكة إلى كل عملية نشر، كما هو مستخدم في استراتيجية التوزيع الأصلية باللون الأزرق/الأخضر. كما يمكن أن تعكس (أو تنسخ) نسبة استخدام الشبكة من عملية نشر إلى أخرى، وتسمى أيضا النسخ المتطابق لنسبة استخدام الشبكة أو التظليل.

توجيه نسبة استخدام الشبكة للتوزيع الأزرق/الأخضر

النشر الأزرق/الأخضر هو استراتيجية توزيع تسمح لك بنشر نشر جديد (النشر الأخضر) إلى مجموعة فرعية صغيرة من المستخدمين أو الطلبات قبل طرحها بالكامل. يمكن لنقطة النهاية تنفيذ موازنة التحميل لتخصيص نسب مئوية معينة من نسبة استخدام الشبكة لكل عملية نشر، مع إضافة التخصيص الإجمالي عبر جميع عمليات النشر ما يصل إلى 100٪.

تلميح

يمكن للطلب تجاوز موازنة تحميل نسبة استخدام الشبكة المكونة عن طريق تضمين عنوان HTTP لـ azureml-model-deployment. قم بتعيين قيمة العنوان إلى اسم التوزيع الذي تريد توجيه الطلب إليه.

تعرض الصورة التالية الإعدادات في Azure التعلم الآلي studio لتخصيص نسبة استخدام الشبكة بين التوزيع الأزرق والأخضر.

لقطة شاشة تعرض واجهة شريط التمرير لتعيين توزيع حركة المرور بين عمليات النشر.

يوجه تخصيص نسبة استخدام الشبكة هذا نسبة استخدام الشبكة كما هو موضح في الصورة التالية، مع انتقال 10٪ من نسبة استخدام الشبكة إلى التوزيع الأخضر، و90٪ من نسبة استخدام الشبكة تنتقل إلى التوزيع الأزرق.

رسم تخطيطي يوضح نقطة نهاية تقسيم حركة المرور إلى نشرين.

النسخ المتطابق لنسبة استخدام الشبكة إلى عمليات النشر عبر الإنترنت

يمكن أن تعكس نقطة النهاية أيضا (أو تنسخ) نسبة استخدام الشبكة من عملية نشر إلى نشر آخر. النسخ المتطابق لنسبة استخدام الشبكة (يسمى أيضا اختبار الظل) مفيد عندما تريد اختبار توزيع جديد باستخدام حركة مرور الإنتاج دون التأثير على النتائج التي يتلقاها العملاء من عمليات النشر الحالية. على سبيل المثال، عند تنفيذ توزيع أزرق/أخضر حيث يتم توجيه 100٪ من نسبة استخدام الشبكة إلى اللون الأزرق و10٪ معكوسة للتوزيع الأخضر، لا يتم إرجاع نتائج حركة المرور المتطابقة إلى النشر الأخضر إلى العملاء، ولكن يتم تسجيل المقاييس والسجلات.

رسم تخطيطي يوضح نقطة نهاية مرور متطابقة لحركة النشر

لمعرفة كيفية استخدام النسخ المتطابق لنسبة استخدام الشبكة، راجع خزينة الإطلاق لنقاط النهاية عبر الإنترنت.

المزيد من قدرات نقاط النهاية عبر الإنترنت في Azure التعلم الآلي

المصادقة والتشفير

  • المصادقة: الرموز المميزة للمفتاح وAzure التعلم الآلي
  • الهوية المدارة: تم تعيين المستخدم وتعيين النظام
  • SSL بشكل افتراضي لاستدعاء نقطة النهاية

التحجيم التلقائي

يقوم التحجيم التلقائي بتشغيل المقدار المناسب من الموارد للتعامل مع الحِمل على تطبيقك. تدعم نقاط النهاية المُدارة التحجيم التلقائي من خلال التكامل مع ميزة التحجيم التلقائي لمراقبة Azure. يمكنك تكوين القياس المستند إلى القياسات (على سبيل المثال، استخدام وحدة المعالجة المركزية >70%)، أو القياس المستند إلى الجدول الزمني (على سبيل المثال، قواعد القياس لساعات العمل القصوى)، أو مجموعة.

لقطة شاشة توضح أن المقياس التلقائي يوفر بمرونة بين مثيلات الحد الأدنى وأقصى حد، اعتماداً على القواعد.

لمعرفة كيفية تكوين التحجيم التلقائي، راجع كيفية التحجيم التلقائي لنقاط النهاية عبر الإنترنت.

عزل الشبكة المدارة

عند توزيع نموذج التعلم الآلي لنقطة نهاية عبر الإنترنت مُدارة، يمكنك تأمين الاتصال بنقطة النهاية عبر الإنترنت باستخدام نقاط النهاية الخاصة.

يمكنك تكوين الأمان لطلبات تسجيل النقاط الواردة والاتصالات الصادرة مع مساحة العمل والخدمات الأخرى بشكل منفصل. تستخدم الاتصالات الواردة نقطة النهاية الخاصة لمساحة عمل التعلم الآلي من Azure. تستخدم الاتصالات الصادرة نقاط النهاية الخاصة التي تم إنشاؤها للشبكة الظاهرية المدارة لمساحة العمل.

لمزيد من المعلومات، راجع عزل الشبكة مع نقاط النهاية المدارة عبر الإنترنت.

مراقبة نقاط النهاية والنشر عبر الإنترنت

يمكن مراقبة نقاط نهاية Azure التعلم الآلي عن طريق التكامل مع Azure Monitor. يسمح لك هذا التكامل بعرض المقاييس في المخططات، وتكوين التنبيهات، والاستعلام من جداول السجل، واستخدام Application Insights لتحليل الأحداث من حاويات المستخدم، وما إلى ذلك.

  • المقاييس: استخدم Azure Monitor لتعقب مقاييس نقطة النهاية المختلفة، مثل زمن انتقال الطلب، والتنقل لأسفل إلى مستوى النشر أو الحالة. يمكنك أيضا تتبع مقاييس مستوى النشر، مثل استخدام وحدة المعالجة المركزية/GPU والتنقل لأسفل إلى مستوى المثيل. يسمح لك Azure Monitor بتعقب هذه المقاييس في المخططات وإعداد لوحات المعلومات والتنبيهات لمزيد من التحليل.

  • السجلات: إرسال مقاييس إلى مساحة عمل Log Analytics حيث يمكنك الاستعلام عن السجلات باستخدام بناء جملة استعلام Kusto. يمكنك أيضا إرسال مقاييس إلى حساب التخزين و/أو مراكز الأحداث لمزيد من المعالجة. بالإضافة إلى ذلك، يمكنك استخدام جداول السجل المخصصة للأحداث المتعلقة بنقطة النهاية عبر الإنترنت وحركة المرور وسجلات الحاويات. يسمح استعلام Kusto بتحليل معقد ينضم إلى جداول متعددة.

  • رؤى التطبيق: تتضمن البيئات المنسقة التكامل مع Application Insights، ويمكنك تمكينه/تعطيله عند إنشاء نشر عبر الإنترنت. يتم إرسال المقاييس والسجلات المضمنة إلى Application insights، ويمكنك استخدام ميزاتها المضمنة مثل المقاييس المباشرة والبحث في المعاملات والفشل والأداء لمزيد من التحليل.

لمزيد من المعلومات حول المراقبة، راجع مراقبة نقاط النهاية عبر الإنترنت.

إدخال البيانات السرية في عمليات النشر عبر الإنترنت (معاينة)

يعد إدخال البيانات السرية في سياق النشر عبر الإنترنت عملية استرداد البيانات السرية (مثل مفاتيح API) من المخازن السرية، وحقنها في حاوية المستخدم التي تعمل داخل عملية نشر عبر الإنترنت. سيتم الوصول إلى الأسرار في النهاية عبر متغيرات البيئة، مما يوفر طريقة آمنة لهم ليتم استهلاكها بواسطة خادم الاستدلال الذي يقوم بتشغيل البرنامج النصي لتسجيل النقاط أو عن طريق مكدس الاستدلال الذي تجلبه مع نهج نشر BYOC (إحضار الحاوية الخاصة بك).

هناك طريقتان لإدخال الأسرار. يمكنك إدخال البيانات السرية بنفسك، أو باستخدام الهويات المدارة، أو يمكنك استخدام ميزة حقن البيانات السرية. لمعرفة المزيد حول طرق إدخال البيانات السرية، راجع إدخال البيانات السرية في نقاط النهاية عبر الإنترنت (معاينة).

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