ما هي بيئات التعلم الآلي من Azure؟

بيئات التعلّم الآلي من Azure عبارة عن تغليف للبيئة التي يحدث بها تدريب التعلّم الآلي الخاص بك. وهي تحدد حزم Python وإعدادات البرامج حول البرامج النصية للتدريب وتسجيل النقاط. تتم إدارة البيئات وإصدارها داخل مساحة عمل التعلم الآلي التي تمكن مهام سير عمل التعلم الآلي القابلة للتكرار والتدقيق والمحمولة عبر أهداف الحوسبة المختلفة.

يمكنك استخدام كائن Environment من أجل:

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

يوضح الرسم التخطيطي التالي كيف يمكنك استخدام كائن واحد Environment في كل من تكوين الوظيفة (للتدريب) وتكوين الاستدلال والنشر (لتوزيع خدمة الويب).

Diagram of an environment in machine learning workflow

تشكل البيئة وهدف الحساب والبرنامج النصي للتدريب معا تكوين الوظيفة: المواصفات الكاملة لوظيفة التدريب.

أنواع البيئات

يمكن تقسيم البيئات على نطاق واسع إلى ثلاث فئات: المنسقة، والمدارة من قبل المستخدم، والمدارة من قبل النظام.

تتوفر البيئات المجمعة بواسطة التعلم الآلي من Microsoft Azure وهي متوفرة في مساحة العمل بشكل افتراضي. يُقصد استخدامها كما هي، فهي تحتوي على مجموعات من حزم وإعدادات Python لمساعدتك على البدء بأطر عمل مختلفة للتعلّم الآلي. تسمح هذه البيئات التي تم إنشاؤها مسبقا أيضا بوقت نشر أسرع. تتم استضافة البيئات المنسقة في AzureML Registry. للحصول على قائمة كاملة، راجع البيئات في سجل azureml.

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

يمكنك استخدام البيئات المدارة من قبل النظام عندما تريد أن تقوم conda بإدارة بيئة Python نيابة عنك. يتم تجسيد بيئة conda جديدة من مواصفات conda الخاصة بك أعلى صورة docker الأساسية.

إنشاء البيئات وإدارتها

يمكنك إنشاء بيئات من عملاء مثل Azure التعلم الآلي Python SDK وAzure التعلم الآلي CLI وصفحة البيئات في Azure التعلم الآلي studio وملحق VS Code. يسمح لك كل عميل بتخصيص الصورة الأساسية وDockerfile وطبقة Python إذا لزم الأمر.

للحصول على عينة التعليمات البرمجية، راجع قسم "إدارة البيئات" في كيفية استخدام البيئات.

كما تتم إدارة البيئات بسهولة من خلال مساحة العمل الخاصة بك، ما يسمح لك بما يلي:

  • تسجيل البيئات.
  • إحضار البيئات من مساحة العمل لاستخدامها للتدريب أو النشر.
  • إنشاء مثيل جديد لبيئة عن طريق تحرير بيئة موجودة.
  • عرض التغييرات على بيئاتك بمرور الوقت، ما يضمن إمكانية إعادة الإنتاج.
  • إنشاء صور Docker تلقائياً من بيئاتك.

يتم تسجيل البيئات "المجهولة" تلقائياً في مساحة العمل الخاصة بك عند إرسال تجربة. لن يتم سردها ولكن يمكن استردادها بواسطة الإصدار.

للحصول على عينة التعليمات البرمجية، راجع قسم "إدارة البيئات" في كيفية استخدام البيئات.

بناء البيئة والتخزين المؤقت وإعادة الاستخدام

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

إشعار

قد تتطلب أي قيود على الشبكة في مساحة عمل AzureML إعداد حساب إنشاء صورة مدارة من قبل المستخدم. يرجى اتباع الخطوات لتأمين موارد مساحة العمل.

إرسال مهمة باستخدام بيئة

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

بناء البيئات كصور Docker

إذا لم تكن الصورة لتعريف بيئة معينة موجودة بالفعل في مثيل سجل الحاوية المقترن بمساحة عمل AzureML، يتم إنشاء صورة جديدة. بالنسبة للبيئات المدارة من قبل النظام، يتكون بناء الصورة من خطوتين:

  1. تنزيل صورة أساسية وتنفيذ أي خطوات Docker
  2. بناء بيئة conda وفقا لتبعيات conda المحددة في تعريف البيئة.

بالنسبة للبيئات المدارة من قبل المستخدم، سيتم إنشاء سياق docker كما هو. في هذه الحالة، أنت مسؤول عن تثبيت أي حزم Python، عن طريق تضمينها في الصورة الأساسية، أو تحديد خطوات Docker المخصصة.

التخزين المؤقت للصور وإعادة استخدامها

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

لعرض تفاصيل صورة مخزنة مؤقتا، تحقق من صفحة البيئات في Azure التعلم الآلي studio أو استخدم MLClient.environments للحصول على البيئة وفحصها.

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

  • صورة أساسية
  • خطوات docker المخصصة
  • حزم Python

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

إشعار

لن تتمكن من إرسال أي تغييرات محلية إلى بيئة منسقة دون تغيير اسم البيئة. يتم حجز البادئتين "AzureML-" و"Microsoft" حصريا للبيئات المنسقة، وسيفشل إرسال المهمة إذا بدأ الاسم بأي منهما.

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

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

Diagram of environment caching and Docker images

تحتوي الصور المخزنة مؤقتا الفعلية في سجل حاوية مساحة العمل على أسماء مشابهة ل azureml/azureml_e9607b2514b066c851012848913ba19f مع ظهور التجزئة في النهاية.

هام

  • إذا قمت بإنشاء بيئة ذات تبعية حزمة غير مثبتة (على سبيل المثال، numpy)، فإن البيئة تستخدم إصدار الحزمة الذي كان متوفراً عند إنشاء البيئة. ستستخدم أي بيئة مستقبلية تستخدم تعريف مطابقة الإصدار الأصلي.

    لتحديث الحزمة، حدد رقم إصدار لفرض إعادة إنشاء صورة. مثال على ذلك هو التغيير numpy إلى numpy==1.18.1. سيتم تثبيت تبعيات جديدة - بما في ذلك التبعيات المتداخلة - وقد تكسر سيناريو العمل السابق.

  • قد يؤدي استخدام صورة أساسية غير تثبيت كما هو الحال mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04 في تعريف البيئة إلى إعادة إنشاء الصورة في كل مرة يتم فيها تحديث العلامة latest . يساعد هذا الصورة على تلقي أحدث التصحيحات وتحديثات النظام.

تصحيح الصور

تتحمل Microsoft مسؤولية تصحيح الصور الأساسية للثغرات الأمنية المعروفة. يتم إصدار التحديثات للصور المدعومة كل أسبوعين، مع التزام بعدم وجود ثغرات أمنية غير مصححة أقدم من 30 يوما في أحدث إصدار من الصورة. يتم إصدار الصور المصححة بعلامة جديدة غير قابلة للتغيير ويتم تحديث العلامة :latest إلى أحدث إصدار من الصورة المصححة.

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

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

لمزيد من المعلومات بشأن الصور الأساسية، راجع الارتباطات التالية:

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