استخدام Azure Pipelines مع Azure التعلم الآلي
خدمات Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
يمكنك استخدام مسار Azure DevOps لأتمتة دورة حياة التعلم الآلي. بعض العمليات التي يمكنك أتمتتها هي:
- إعداد البيانات (عمليات الاستخراج والتحويل والتحميل)
- تدريب نماذج التعلم الآلي مع توسيع نطاقها وتوسيع نطاقها عند الطلب
- نشر نماذج التعلم الآلي كخدمات ويب عامة أو خاصة
- مراقبة نماذج التعلم الآلي المنشورة (مثل تحليل الأداء أو انحراف البيانات)
تعلمك هذه المقالة كيفية إنشاء Azure Pipeline الذي ينشئ نموذج التعلم الآلي وينشره إلى Azure التعلم الآلي.
يستخدم هذا البرنامج التعليمي Azure التعلم الآلي Python SDK v2 وملحق Azure CLI ML v2.
المتطلبات الأساسية
- أكمل إنشاء الموارد للبدء في:
- إنشاء مساحة عمل
- إنشاء مجموعة حوسبة مستندة إلى السحابة لاستخدامها لتدريب النموذج الخاص بك
- ملحق Azure التعلم الآلي ل Azure Pipelines. يمكن تثبيت هذا الملحق من سوق Visual Studio في https://marketplace.visualstudio.com/items?itemName=ms-air-aiagility.azureml-v2.
الخطوة 1: الحصول على التعليمات البرمجية
نسخ المستودع التالي في GitHub:
https://github.com/azure/azureml-examples
الخطوة 2: تسجيل الدخول إلى Azure Pipelines
تسجيل الدخول إلى Azure Pipelines. بعد تسجيل الدخول، ينتقل المستعرض إلى https://dev.azure.com/my-organization-name
ويعرض لوحة معلومات Azure DevOps.
ضمن مؤسستك المحددة، قم بإنشاء مشروع. إذا لم يكن لديك أي مشاريع في مؤسستك، فسترى شاشة إنشاء مشروع لبدء الاستخدام. وإلا، فحدد الزر مشروع جديد في الزاوية العلوية اليسرى من لوحة المعلومات.
الخطوة 3: إنشاء اتصال خدمة
يمكنك استخدام اتصال خدمة موجود.
تحتاج إلى اتصال Azure Resource Manager للمصادقة مع مدخل Microsoft Azure.
في Azure DevOps، حدد Project الإعدادات وافتح صفحة Service connections.
اختر + New service connection وحدد Azure Resource Manager.
حدد طريقة المصادقة الافتراضية، كيان الخدمة (تلقائي).
إنشاء اتصال الخدمة. قم بتعيين مستوى النطاق والاشتراك ومجموعة الموارد واسم الاتصال المفضل لديك.
الخطوة 4: إنشاء مسار
انتقل إلى Pipelines، ثم حدد New pipeline.
قم بخطوات المعالج عن طريق تحديد GitHub كموقع للتعليمات البرمجية المصدر.
قد تتم إعادة توجيهك إلى GitHub لتسجيل الدخول. إذا كان الأمر كذلك، فأدخل بيانات اعتماد GitHub.
عندما ترى قائمة مستودعات، حدد مستودعك.
قد تتم إعادة توجيهك إلى GitHub لتثبيت تطبيق Azure Pipelines. إذا كان الأمر كذلك، فحدد Approve & install.
حدد مسار Starter. ستقوم بتحديث قالب خط أنابيب البداية.
الخطوة 5: إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية YAML لإرسال مهمة التعلم الآلي Azure
احذف خط أنابيب البداية واستبدله بالتعليمات البرمجية YAML التالية. في هذا المسار، ستقوم ب:
- استخدم مهمة إصدار Python لإعداد Python 3.8 وتثبيت متطلبات SDK.
- استخدم مهمة Bash لتشغيل البرامج النصية bash ل Azure التعلم الآلي SDK وCLI.
- استخدم مهمة Azure CLI لإرسال مهمة التعلم الآلي Azure.
حدد علامات التبويب التالية استنادا إلى ما إذا كنت تستخدم اتصال خدمة Azure Resource Manager أو اتصال خدمة عام. في البنية الأساسية لبرنامج ربط العمليات التجارية YAML، استبدل قيمة المتغيرات بمواردك.
name: submit-azure-machine-learning-job
trigger:
- none
variables:
service-connection: 'machine-learning-connection' # replace with your service connection name
resource-group: 'machinelearning-rg' # replace with your resource group name
workspace: 'docs-ws' # replace with your workspace name
jobs:
- job: SubmitAzureMLJob
displayName: Submit AzureML Job
timeoutInMinutes: 300
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
displayName: Use Python >=3.8
inputs:
versionSpec: '>=3.8'
- bash: |
set -ex
az version
az extension add -n ml
displayName: 'Add AzureML Extension'
- task: AzureCLI@2
name: submit_azureml_job_task
displayName: Submit AzureML Job Task
inputs:
azureSubscription: $(service-connection)
workingDirectory: 'cli/jobs/pipelines-with-components/nyc_taxi_data_regression'
scriptLocation: inlineScript
scriptType: bash
inlineScript: |
# submit component job and get the run name
job_name=$(az ml job create --file single-job-pipeline.yml -g $(resource-group) -w $(workspace) --query name --output tsv)
# Set output variable for next task
echo "##vso[task.setvariable variable=JOB_NAME;isOutput=true;]$job_name"
الخطوة 6: انتظر حتى تكتمل مهمة التعلم الآلي Azure
في الخطوة 5، أضفت وظيفة لإرسال وظيفة التعلم الآلي Azure. في هذه الخطوة، يمكنك إضافة وظيفة أخرى تنتظر اكتمال مهمة التعلم الآلي Azure.
إذا كنت تستخدم اتصال خدمة Azure Resource Manager، يمكنك استخدام ملحق "التعلم الآلي". يمكنك البحث في هذا الملحق في Azure DevOps extensions Marketplace أو الانتقال مباشرة إلى الملحق. تثبيت ملحق "التعلم الآلي".
هام
لا تقم بتثبيت ملحق التعلم الآلي (الكلاسيكي) عن طريق الخطأ؛ إنه ملحق قديم لا يوفر نفس الوظيفة.
في نافذة مراجعة البنية الأساسية لبرنامج ربط العمليات التجارية، أضف مهمة الخادم. في جزء الخطوات من المهمة، حدد إظهار المساعد وابحث عن AzureML. حدد مهمة انتظار مهمة AzureML واملأ المعلومات الخاصة بالوظيفة.
تحتوي المهمة على أربعة مدخلات: Service Connection
و Azure Resource Group Name
AzureML Workspace Name
و.AzureML Job Name
املأ هذه المدخلات. يتشابه YAML الناتج لهذه الخطوات مع المثال التالي:
إشعار
- تعمل مهمة انتظار مهمة التعلم الآلي Azure على مهمة خادم، والتي لا تستخدم موارد تجمع عامل باهظة الثمن ولا تتطلب أي رسوم إضافية. تعمل مهام الخادم (المشار إليها بواسطة
pool: server
) على نفس الجهاز مثل البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك. لمزيد من المعلومات، راجع مهام الخادم. - يمكن لمهمة انتظار مهمة واحدة في Azure التعلم الآلي الانتظار في مهمة واحدة فقط. ستحتاج إلى إعداد مهمة منفصلة لكل وظيفة تريد الانتظار عليها.
- يمكن لمهمة انتظار مهمة Azure التعلم الآلي الانتظار لمدة يومين كحد أقصى. هذا حد ثابت تم تعيينه بواسطة Azure DevOps Pipelines.
- job: WaitForAzureMLJobCompletion
displayName: Wait for AzureML Job Completion
pool: server
timeoutInMinutes: 0
dependsOn: SubmitAzureMLJob
variables:
# We are saving the name of azureMl job submitted in previous step to a variable and it will be used as an inut to the AzureML Job Wait task
azureml_job_name_from_submit_job: $[ dependencies.SubmitAzureMLJob.outputs['submit_azureml_job_task.JOB_NAME'] ]
steps:
- task: AzureMLJobWaitTask@1
inputs:
serviceConnection: $(service-connection)
resourceGroupName: $(resource-group)
azureMLWorkspaceName: $(workspace)
azureMLJobName: $(azureml_job_name_from_submit_job)
الخطوة 7: إرسال البنية الأساسية لبرنامج ربط العمليات التجارية والتحقق من تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية
حدد حفظ وتشغيل. ستنتظر البنية الأساسية لبرنامج ربط العمليات التجارية حتى تكتمل مهمة التعلم الآلي Azure، وتنهي المهمة ضمن WaitForJobCompletion
بنفس حالة وظيفة Azure التعلم الآلي. على سبيل المثال: مهمة Succeeded
Azure التعلم الآلي == مهمة Azure DevOps ضمن WaitForJobCompletion
مهمة Succeeded
Azure التعلم الآلي المهمة Failed
== مهمة Azure DevOps ضمن WaitForJobCompletion
مهمة Failed
Azure التعلم الآلي المهمة Cancelled
== مهمة Azure DevOps ضمن WaitForJobCompletion
المهمةCancelled
تلميح
يمكنك عرض مهمة Azure التعلم الآلي الكاملة في Azure التعلم الآلي studio.
تنظيف الموارد
إذا كنت لن تستمر في استخدام البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، فاحذف مشروع Azure DevOps. في مدخل Microsoft Azure، احذف مجموعة الموارد ومثيل Azure التعلم الآلي.