إدارة بيئات Azure التعلم الآلي باستخدام CLI (v2) (معاينة)

APPLY TO: Azure CLI ml extension v1 v2 (معاينة)

ملاحظة

تستخدم هذه المقالة أحدث إصدار من الإصدار 2 من CLI الموجود في المعاينة العامة. للحصول على إرشادات حول تحديث أحدث إصدار وتثبيته، راجع مستند تثبيت CLI (الإصدار 2) وإعداده .

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

في هذه المقالة، تعرف على كيفية إنشاء بيئات Azure ML وإدارتها باستخدام CLI (الإصدار 2).

هام

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

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

تلميح

للحصول على بيئة تطوير كاملة الميزات، استخدم Visual Studio Code وملحق Azure التعلم الآلي لإدارة موارد Azure التعلم الآليوتدريب نماذج التعلم الآلي.

مستودع أمثلة النسخ

لتشغيل أمثلة التدريب، قم أولا باستنساخ مستودع الأمثلة وتغييره في الدليل cli :

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli

لاحظ أن --depth 1 المستنسخين فقط الأحدث يلتزمون بالمستودع مما يقلل من الوقت لإكمال العملية.

بيئات منسقة

هناك نوعان من البيئات في Azure ML: البيئات المنسقة والمخصصة. البيئات المنسقة هي بيئات محددة مسبقا تحتوي على أطر عمل ML الشائعة والأدوات. يتم تعريف البيئات المخصصة من قبل المستخدم ويمكن إنشاؤها عبر az ml environment create.

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

يمكنك استخدام هذه البيئات المنسقة خارج الصندوق للتدريب أو النشر عن طريق الرجوع إلى بيئة معينة باستخدام بناء الجملة أو azureml:<curated-environment-name>@latest بناء الجملةazureml:<curated-environment-name>:<version>. يمكنك أيضا استخدامها كمرجع للبيئات المخصصة الخاصة بك عن طريق تعديل Dockerfiles التي تدعم هذه البيئات المنسقة.

يمكنك الاطلاع على مجموعة البيئات المنسقة المتوفرة في واجهة مستخدم استوديو Azure ML، أو باستخدام CLI (v2) عبر az ml environments list.

إنشاء بيئة

يمكنك تعريف بيئة من مواصفات conda أو صورة Docker أو سياق إنشاء Docker. تكوين البيئة باستخدام ملف مواصفات YAML وإنشاء البيئة باستخدام الأمر CLI التالي:

az ml environment create --file my_environment.yml

للحصول على الوثائق المرجعية YAML لبيئات Azure ML، راجع مخطط YAML بيئة CLI (v2).

إنشاء بيئة من صورة Docker

لتحديد بيئة من صورة Docker، قم بتوفير عنوان URI للصورة المستضافة في سجل مثل Docker Hub أو سجل حاوية Azure.

المثال التالي هو ملف مواصفات YAML لبيئة معرفة من صورة Docker. يتم تحديد صورة من مستودع PyTorch الرسمي على Docker Hub عبر image الخاصية الموجودة في ملف YAML.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.

لخلق البيئة:

az ml environment create --file assets/environment/docker-image.yml

تلميح

يحتفظ Azure ML بمجموعة من الصور الأساسية المستندة إلى وحدة المعالجة المركزية ووحدة معالجة الرسومات Ubuntu Linux مع تبعيات النظام الشائعة. على سبيل المثال، تحتوي صور وحدة معالجة الرسومات على Miniconda وOpenMPI وCUDA وcuDNN وNCCL. يمكنك استخدام هذه الصور لبيئاتك ، أو استخدام Dockerfiles المقابلة لها كمرجع عند إنشاء صورك المخصصة.

للحصول على مجموعة الصور الأساسية وملفات Dockerfiles المقابلة لها، راجع إعادة شراء AzureML-Containers.

إنشاء بيئة من سياق إنشاء Docker

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

المثال التالي هو ملف مواصفات YAML لبيئة معرفة من سياق إنشاء. يتم تحديد المسار المحلي إلى مجلد سياق الإنشاء في الحقل، ويتم تحديد المسار النسبي إلى Dockerfile ضمن مجلد سياق الإنشاء هذا في الحقل build.pathbuild.dockerfile_path . إذا build.dockerfile_path تم حذفه في ملف YAML، فسيبحث Azure ML عن ملف Dockerfile مسمى Dockerfile في جذر سياق الإنشاء.

في هذا المثال، يحتوي سياق الإنشاء على Dockerfile مسمى Dockerfile وملف requirements.txt مشار إليه داخل Dockerfile لتثبيت حزم Python.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
  path: docker-contexts/python-and-pip

لخلق البيئة:

az ml environment create --file assets/environment/docker-context.yml

سيبدأ Azure ML في إنشاء الصورة من سياق الإنشاء عند إنشاء البيئة. يمكنك مراقبة حالة البنية وعرض سجلات الإنشاء في واجهة مستخدم الاستوديو.

إنشاء بيئة من مواصفات كوندا

يمكنك تعريف بيئة باستخدام ملف تكوين conda YAML قياسي يتضمن تبعيات بيئة conda. راجع إنشاء بيئة يدويا للحصول على معلومات حول هذا التنسيق القياسي.

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

المثال التالي هو ملف مواصفات YAML لبيئة معرفة من مواصفات conda. هنا يتم تحديد المسار النسبي إلى ملف conda من ملف YAML بيئة Azure ML عبر conda_file الخاصية. يمكنك بدلا من ذلك تعريف مواصفات conda المضمنة باستخدام conda_file الخاصية، بدلا من تعريفها في ملف منفصل.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.

لخلق البيئة:

az ml environment create --file assets/environment/docker-image-plus-conda.yml

سيقوم Azure ML بإنشاء صورة Docker النهائية من مواصفات البيئة هذه عند استخدام البيئة في مهمة أو نشر. يمكنك أيضا تشغيل بنية البيئة يدويا في واجهة مستخدم الاستوديو.

إدارة البيئات

يوفر CLI (الإصدار 2) مجموعة من الأوامر ضمن az ml environment لإدارة دورة حياة أصول بيئة Azure ML الخاصة بك.

قائمة

قم بإدراج جميع البيئات في مساحة العمل الخاصة بك:

az ml environment list

سرد كافة إصدارات البيئة تحت اسم معين:

az ml environment list --name docker-image-example

‏‏إظهار

احصل على تفاصيل بيئة معينة:

az ml environment list --name docker-image-example --version 1

Update

تحديث الخصائص القابلة للتغيير لبيئة معينة:

az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."

هام

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

الأرشفة والاستعادة

ستؤدي أرشفة بيئة إلى إخفائها افتراضيا من استعلامات القائمة (az ml environment list). لا يزال بإمكانك الاستمرار في الرجوع إلى بيئة مؤرشفة واستخدامها في مهام سير العمل. يمكنك أرشفة حاوية بيئة أو إصدار بيئة معين.

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

أرشفة حاوية بيئية:

az ml environment archive --name docker-image-example

أرشفة إصدار بيئة معين:

az ml environment archive --name docker-image-example --version 1

يمكنك استعادة بيئة مؤرشفة لعدم إخفائها من استعلامات القائمة.

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

استعادة حاوية بيئة:

az ml environment restore --name docker-image-example

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

استعادة إصدار بيئة معين:

az ml environment restore --name docker-image-example --version 1

استخدام البيئات للتدريب

لاستخدام بيئة لمهمة تدريبية، حدد environment مجال تكوين YAML للوظيفة. يمكنك إما الرجوع إلى بيئة Azure ML مسجلة موجودة عبر environment: azureml:<environment-name>:<environment-version> أو (للإشارة إلى أحدث إصدار من بيئة)، أو environment: azureml:<environment-name>@latest تحديد مواصفات بيئة مضمنة. في حالة تعريف بيئة مضمنة، لا تحدد الحقول والحقولversion، حيث يتم التعامل مع هذه البيئات name على أنها بيئات "غير مسجلة" ولا يتم تعقبها في سجل أصول البيئة.

عند تقديم وظيفة تدريبية، قد يستغرق بناء بيئة جديدة عدة دقائق. تعتمد المدة على حجم التبعيات المطلوبة. يتم تخزين البيئات مؤقتا بواسطة الخدمة. طالما ظل تعريف البيئة دون تغيير، فإنك تتحمل وقت الإعداد الكامل مرة واحدة فقط.

لمزيد من المعلومات حول كيفية استخدام البيئات في الوظائف، راجع تدريب النماذج باستخدام CLI (الإصدار 2).

استخدام البيئات لعمليات نشر النماذج

يمكنك أيضا استخدام البيئات لعمليات نشر النماذج الخاصة بك لكل من التسجيل عبر الإنترنت والدفعات. للقيام بذلك، حدد الحقل environment في تكوين YAML للنشر.

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

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