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

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

يمكنك استخدام كائن Environment على الحوسبة المحلية من أجل:

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

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

Diagram of an environment in machine learning workflow

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

بالنسبة لعمليات التشغيل المحلية، يتم إنشاء بيئة Docker أو conda استنادا إلى تعريف البيئة. ثم يتم تنفيذ البرامج النصية على الحوسبة المستهدفة - بيئة وقت تشغيل محلية أو محرك Docker محلي.

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

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

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

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

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

إذا كنت تستخدم نفس تعريف البيئة لتشغيل آخر، التعلم الآلي Azure بإعادة استخدام الصورة المخزنة مؤقتا من Workspace ACR لتوفير الوقت.

لعرض تفاصيل صورة مخزنة مؤقتا، راجع صفحة البيئات في استوديو Azure التعلم الآلي أو استخدم Environment.get_image_details الطريقة.

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

  • الصورة الأساسية
  • خطوات عامل الرصيف المخصص
  • باقات بايثون
  • باقات سبارك

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

ملاحظة

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

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

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

Diagram of environment caching and Docker images

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

هام

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

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

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

تحذير

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

تصحيح الصور

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

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

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

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