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

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

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

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

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

قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:

  • مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحدة، فاستخدم الخطوات الواردة في مقالة التشغيل السريع: إنشاء موارد مساحة العمل لإنشاء واحدة.

  • Azure CLI والملحق mlأو Azure التعلم الآلي Python SDK v2:

    • لتثبيت Azure CLI والملحق، راجع تثبيت CLI (v2) وإعداده واستخدامه.

      هام

      تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux‬.

    • لتثبيت Python SDK v2، استخدم الأمر التالي:

      pip install azure-ai-ml azure-identity
      

      لتحديث تثبيت موجود من SDK إلى أحدث إصدار، استخدم الأمر التالي:

      pip install --upgrade azure-ai-ml azure-identity
      

      لمزيد من المعلومات، راجع تثبيت Python SDK v2 ل Azure التعلم الآلي.

تلميح

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

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

لتشغيل أمثلة التدريب، قم أولا باستنساخ مستودع الأمثلة. للحصول على أمثلة CLI، قم بالتغيير إلى cli الدليل. للحصول على أمثلة SDK، قم بالتغيير إلى sdk/python/assets/environment الدليل:

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

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

الاتصال إلى مساحة العمل

تلميح

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

عند استخدام Azure CLI، تحتاج إلى معلمات المعرف - اشتراك ومجموعة موارد واسم مساحة العمل. بينما يمكنك تحديد هذه المعلمات لكل أمر، يمكنك أيضا تعيين الإعدادات الافتراضية المستخدمة لجميع الأوامر. استخدم الأوامر التالية لتعيين القيم الافتراضية. استبدل <subscription ID>و <Azure Machine Learning workspace name>و <resource group> بقيم التكوين:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

بيئات منسقة

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

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

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

يمكنك مشاهدة مجموعة البيئات المنسقة المتوفرة في واجهة مستخدم Azure التعلم الآلي studio، أو باستخدام CLI (v2) عبر az ml environment list.

تلميح

عند العمل مع البيئات المنسقة في CLI أو SDK، يبدأ اسم البيئة ب AzureML- متبوعا باسم البيئة المنسقة. عند استخدام Azure التعلم الآلي studio، ليس لديهم هذه البادئة. والسبب في هذا الاختلاف هو أن واجهة مستخدم الاستوديو تعرض بيئات منسقة ومخصصة على علامات تبويب منفصلة، لذلك فإن البادئة ليست ضرورية. لا يحتوي CLI وSDK على هذا الفصل، لذلك يتم استخدام البادئة للتمييز بين البيئات المنسقة والمخصصة.

إنشاء بيئة مخصصة

يمكنك تحديد بيئة من صورة Docker، سياق بناء Docker، ومواصفات conda مع صورة Docker.

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

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

المثال التالي هو ملف مواصفات 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 التعلم الآلي بمجموعة من الصور الأساسية المستندة إلى وحدة المعالجة المركزية وGPU Ubuntu Linux مع تبعيات النظام الشائعة. على سبيل المثال، تحتوي صور GPU على Miniconda وOpenMPI وCUDA وcuDNN وNCCL. يمكنك استخدام هذه الصور لبيئاتك، أو استخدام Dockerfiles المقابلة لها كمرجع عند إنشاء صورك المخصصة.

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

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

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

المثال التالي هو ملف مواصفات YAML لبيئة محددة من سياق بناء. يتم تحديد المسار المحلي لمجلد سياق الإنشاء في الحقل build.path، ويتم تحديد المسار النسبي لملف Dockerfile ضمن مجلد سياق الإنشاء هذا في الحقل build.dockerfile_path. إذا build.dockerfile_path تم حذفه في ملف YAML، فإن Azure التعلم الآلي يبحث عن 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 التعلم الآلي في إنشاء الصورة من سياق الإنشاء عند إنشاء البيئة. يمكنك مراقبة حالة البناء وعرض سجلات البناء في واجهة مستخدم الأستوديو.

خلق بيئة من مواصفات الشقة

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

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

المثال التالي هو ملف مواصفات YAML لبيئة محددة من مواصفة الشرط. هنا يتم تحديد المسار النسبي لملف conda من ملف YAML لبيئة Azure التعلم الآلي عبر الخاصية 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/openmpi4.1.0-ubuntu20.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.yaml

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

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

يسمح لك SDK وCLI (v2) أيضا بإدارة دورة حياة أصول بيئة Azure التعلم الآلي.

List

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

az ml environment list

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

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

‏‏إظهار

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

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

Update

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

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

هام

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

أرشيف

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

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

أرشفة جميع إصدارات البيئة:

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

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

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

هام

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

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

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

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


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

استخدام البيئات لتوزيع النموذج

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

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

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