ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على:ملحق ML Azure CLI v2 (الحالي)
Python SDK azure-ai-ml v2 (الحالي)
في هذه المقالة، تعرف على كيفية إعداد مهمة تدريب التعلم الآلي التلقائي (AutoML) باستخدام Azure Machine Learning Python SDK v2. يختار التعلم الآلي خوارزمية ومعلمات تشعبية لك وينشئ نموذجاً جاهزاً للتوزيع. توفر هذه المقالة تفاصيل الخيارات المختلفة التي يمكنك استخدامها لتكوين تجارب التعلم الآلي المؤتمتة.
إذا كنت تفضل تجربة بدون تعليمات برمجية، يمكنك أيضا إعداد تدريب التعلم الآلي التلقائي بدون تعليمات برمجية للبيانات الجدولية باستخدام واجهة مستخدم الاستوديو.
المتطلبات الأساسية
- اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فبادر بإنشاء حساب مجاني قبل البدء. جرّب الإصدار المجاني أو المدفوع من «التعلم الآلي» من Azure.
- مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحد، فشاهد إنشاء موارد للبدء.
لاستخدام معلومات SDK، قم بتثبيت Azure التعلم الآلي SDK v2 ل Python.
لتثبيت SDK، يمكنك إما:
- إنشاء مثيل حساب، والذي يحتوي بالفعل على أحدث Azure Machine Learning Python SDK وتم تكوينه لسير عمل التعلم الآلي. لمزيد من المعلومات، راجع إنشاء مثيل حساب Azure التعلم الآلي.
- تثبيت SDK على جهازك المحلي.
إعداد مساحة العمل الخاصة بك
للاتصال بمساحة عمل، تحتاج إلى توفير اشتراك ومجموعة موارد ومساحة عمل.
يتم استخدام تفاصيل مساحة العمل في MLClient
من azure.ai.ml
للحصول على مقبض إلى مساحة عمل Azure التعلم الآلي المطلوبة.
يستخدم المثال التالي مصادقة Azure الافتراضية مع تكوين مساحة العمل الافتراضي أو التكوين من config.json
ملف في بنية المجلدات. إذا لم يعثر على ، config.json
فستحتاج إلى تقديم معرف الاشتراك ومجموعة الموارد ومساحة العمل يدويا عند إنشاء MLClient
.
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
تحديد مصدر البيانات وتنسيقها
من أجل توفير بيانات التدريب في SDK v2، تحتاج إلى تحميلها إلى السحابة من خلال MLTable.
متطلبات تحميل البيانات في MLTable:
- يجب أن تكون البيانات في نموذج مجدول.
- يجب أن تكون القيمة التي يجب توقعها، العمود الهدف، في البيانات.
يجب أن تكون بيانات التدريب قابلة للوصول من الحساب البعيد. يقبل ML v2 (Python SDK وCLI/YAML) أصول بيانات MLTable (v2). للتوافق مع الإصدارات السابقة، فإنه يدعم أيضا v1 Tabular Datasets من v1، وهي مجموعة بيانات جدولية مسجلة، من خلال نفس خصائص مجموعة بيانات الإدخال. نوصي باستخدام MLTable، المتوفر في الإصدار 2. في هذا المثال، يتم تخزين البيانات في المسار المحلي، ./train_data/bank_marketing_train_data.csv.
يمكنك إنشاء MLTable باستخدام mltable Python SDK كما في المثال التالي:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
تنشئ هذه التعليمة البرمجية ملفا جديدا، ./train_data/MLTable، والذي يحتوي على تنسيق الملف وإرشادات التحميل.
الآن يحتوي المجلد ./train_data على ملف تعريف MLTable بالإضافة إلى ملف البيانات ،bank_marketing_train_data.csv.
لمزيد من المعلومات حول MLTable، راجع العمل مع الجداول في التعلم الآلي من Microsoft Azure.
بيانات التدريب والتحقق من الصحة والاختبار
يمكنك تحديد بيانات تدريب منفصلة ومجموعات بيانات التحقق من الصحة. يجب توفير بيانات التدريب للمعلمة training_data
في وظيفة المصنع لوظيفة التعلم الآلي المؤتمتة.
إذا لم تحدد معلمة validation_data
أو n_cross_validation
بشكل صريح، يطبق التعلم الآلي التلقائي التقنيات الافتراضية لتحديد كيفية إجراء التحقق من الصحة. يعتمد هذا التحديد على عدد الصفوف في مجموعة البيانات المعينة لمعلمة training_data
.
حجم بيانات التدريب | تقنية التحقق من الصحة |
---|---|
أكبر من 20,000 سجل | يتم تطبيق تقسيم بيانات التدريب والتحقق من الصحة. الافتراضي هو أن تأخذ 10% من مجموعة بيانات التدريب الأولية كمجموعة التحقق من الصحة. في المقابل، يتم استخدام مجموعة التحقق من الصحة لحساب القياسات. |
أصغر من أو يساوي 20000 صف | تم تطبيق نهج التحقق المتبادل. يعتمد العدد الافتراضي للطيات على عدد السجلات. إذا كانت مجموعة البيانات أقل من 1000 صف، يتم استخدام عشرة طيات. إذا كانت الصفوف تساوي أو بين 1000 و20000، يتم استخدام ثلاثة طيات. |
حساب لتشغيل التجربة
وظائف التعلم الآلي التلقائي مع Python SDK v2 (أو CLI v2) مدعومة حاليا فقط على نظام مجموعة الحوسبة عن بعد للتعلم الآلي من Azure أو مثيل الحساب. لمزيد من المعلومات حول إنشاء حساب باستخدام Python SDKv2 أو CLIv2، راجع تدريب النماذج باستخدام Azure Machine Learning CLI وSDK وREST API.
تكوين إعدادات تجربتك
هناك العديد من الخيارات التي يمكنك استخدامها لتكوين تجربة التعلم الآلي المؤتمتة. معلمات التكوين هذه هي مجموعة في أسلوب مهمتك. يمكنك أيضا تعيين إعدادات التدريب على الوظيفة ومعايير الخروج باستخدام training
الإعدادات و limits
.
يوضح المثال التالي المعلمات المطلوبة لمهمة التصنيف التي تحدد الدقة كمقياس أساسي وخمس طيات عبر التحقق من الصحة.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
تحديد نوع مهمة التعلم الآلي
قبل أن تتمكن من إرسال وظيفة التعلم الآلي التلقائي، حدد نوع مشكلة التعلم الآلي التي تريد حلها. تحدد هذه المشكلة الوظيفة التي تستخدمها وظيفتك وخوارزميات النموذج التي تطبقها.
يدعم التعلم الآلي التلقائي أنواع المهام المختلفة:
المهام المستندة إلى البيانات الجدولية
- تصنيف
- تراجع
- التنبؤ
مهام رؤية الكمبيوتر، بما في ذلك
- تصنيف الصور
- الكشف عن الكائنات
مهام معالجة اللغة الطبيعية، بما في ذلك
- تصنيف النصوص
- التعرف على الكيانات
لمزيد من المعلومات، راجع أنواع المهام. لمزيد من المعلومات حول إعداد مهام التنبؤ، راجع إعداد AutoML لتدريب نموذج التنبؤ بالسلاسل الزمنية.
الخوارزميات المدعومة
يحاول التعلم الآلي استخدام نماذج وخوارزميات مختلفة أثناء عملية التنفيذ التلقائي والضبط. كمستخدم، لا تحتاج إلى تحديد الخوارزمية.
يحدد أسلوب المهمة قائمة الخوارزميات أو النماذج التي يجب تطبيقها. لتعديل التكرارات بشكل أكبر مع النماذج المتاحة لتضمينها أو استبعادها، استخدم allowed_training_algorithms
المعلمات أو blocked_training_algorithms
في training
تكوين الوظيفة.
في الجدول التالي، استكشف الخوارزميات المدعومة لكل مهمة تعلم آلي.
مع الخوارزميات الأخرى:
- خوارزميات تصنيف الصور متعددة الفئات
- خوارزميات تصنيف الصور متعددة التسميات
- خوارزميات الكشف عن كائن الصورة
- خوارزميات تصنيف نص NLP متعددة التسميات
- خوارزميات التعرف على الكيان (NER) لنص NLP المسمى
على سبيل المثال دفاتر الملاحظات لكل نوع مهمة، راجع automl-standalone-jobs.
المقياس الأساسي
تحدد المعلمة primary_metric
المقياس الذي سيتم استخدامه أثناء تدريب النموذج من أجل التحسين. يحدد نوع المهمة الذي تختاره المقاييس التي يمكنك تحديدها.
اختيار مقياس أساسي للتعلم الآلي المؤتمت لتحسين يعتمد على العديد من العوامل. نوصي بأن يكون الاعتبار الأساسي هو اختيار مقياس يمثل احتياجات عملك على أفضل وجه. ثم ضع في اعتبارك ما إذا كان المقياس مناسبا لملف تعريف مجموعة البيانات، بما في ذلك حجم البيانات والنطاق وتوزيع الفئة. تلخص الأقسام التالية القياسات الأساسية الموصى بها بناءً على نوع المهمة وسيناريو العمل.
للتعرف على التعريفات المحددة لهذه المقاييس، راجع تقييم نتائج تجربة التعلم الآلي التلقائي.
قياسات تصنيف سيناريوهات الفئات المتعددة
تنطبق هذه المقاييس على جميع سيناريوهات التصنيف، بما في ذلك البيانات الجدولية والصور أو رؤية الكمبيوتر ونص معالجة اللغة الطبيعية (NLP-Text).
قد لا يتم تحسين المقاييس المعتمدة على العتبة، مثل accuracy
recall_score_weighted
norm_macro_recall
، و، precision_score_weighted
و، وكذلك لمجموعات البيانات الصغيرة، أو انحراف فئة كبيرة (عدم توازن الفئة)، أو عندما تكون قيمة المقياس المتوقعة قريبة جدا من 0.0 أو 1.0. في هذه الحالات، يمكن أن يكون AUC_weighted
خيارًا أفضل للمقياس الأساسي. بعد اكتمال التعلم الآلي التلقائي، يمكنك اختيار النموذج الفائز استنادا إلى المقياس الأنسب لاحتياجات عملك.
متري | أمثلة على حالات الاستخدام |
---|---|
accuracy |
تصنيف الصورة، تحليل المشاعر، تنبؤات الزبدة |
AUC_weighted |
كشف الاحتيال، تصنيف الصور، كشف الأخطاء/كشف البريد العشوائي |
average_precision_score_weighted |
تحليل التوجه |
norm_macro_recall |
التنبؤ المضطرب |
precision_score_weighted |
قياسات لتصنيف سيناريوهات متعددة التسميات
بالنسبة لتصنيف النص متعدد التسميات، "الدقة" حاليا هو المقياس الأساسي الوحيد المدعوم.
بالنسبة لتصنيف الصور متعدد التسميات، يتم تعريف المقاييس الأساسية المدعومة ClassificationMultilabelPrimaryMetrics
في قائمة التعداد.
مقاييس سيناريوهات التعرف على الكيانات المسماة لنص NLP
بالنسبة إلى NLP Text Named Entity Recognition (NER)، فإن "الدقة" حاليا هي المقياس الأساسي الوحيد المدعوم.
قياسات سيناريوهات التراجع
r2_score
، normalized_mean_absolute_error
وكلها normalized_root_mean_squared_error
تحاول تقليل أخطاء التنبؤ.
r2_score
و normalized_root_mean_squared_error
كلاهما يقللان من متوسط الأخطاء التربيعية بينما normalized_mean_absolute_error
يقللان من متوسط القيمة المطلقة للأخطاء. تعالج القيمة المطلقة الأخطاء في جميع المقدار على حد سواء والأخطاء التربيعية لها عقوبة أكبر بكثير للأخطاء ذات القيم المطلقة الأكبر. اعتمادا على ما إذا كان يجب معاقبة الأخطاء الأكبر أم لا، يمكنك اختيار تحسين الخطأ التربيعي أو الخطأ المطلق.
الفرق الرئيسي بين r2_score
و normalized_root_mean_squared_error
هو الطريقة التي يتم تطبيعها ومعانيها.
normalized_root_mean_squared_error
هو جذر متوسط التربيع للخطأ الذي تم تسويته حسب النطاق ويمكن تفسيره على أنه متوسط حجم الخطأ للتنبؤ.
r2_score
هو متوسط الخطأ التربيعي الذي تم تسويته من خلال تقدير تباين البيانات. إنها نسبة التباين التي يمكن للنموذج التقاطها.
ملاحظة
r2_score
وnormalized_root_mean_squared_error
يتصرفان أيضًا بشكل مشابه للقياسات الأساسية. إذا تم تطبيق مجموعة تحقق ثابتة، فإن هذين القياسين يعملان على تحسين نفس الهدف، متوسط الخطأ التربيعي، ويتم تحسينهما من خلال نفس النموذج. عندما تتوفر مجموعة تدريب فقط ويتم تطبيق التحقق المقطعي فسيكونان مختلفين قليلاً حيث تم إصلاح المقياس لـ normalized_root_mean_squared_error
كنطاق لمجموعة التدريب، لكن عامل التسوية لـ r2_score
قد يختلف لكل طية لأنه تباين لكل طية.
إذا كانت الرتبة، بدلا من القيمة الدقيقة، ذات فائدة، spearman_correlation
يمكن أن تكون خيارا أفضل. وهو يقيس ارتباط الرتبة بين القيم والتنبؤات الحقيقية.
لا يدعم التعلم الآلي التلقائي حاليا أي مقاييس أساسية تقيس الفرق النسبي بين التنبؤات والملاحظات. المقاييس r2_score
و normalized_mean_absolute_error
و normalized_root_mean_squared_error
كلها مقاييس للفرق المطلق. على سبيل المثال، إذا كان التنبؤ يختلف عن الملاحظة بمقدار 10 وحدات، فإن هذه المقاييس تحسب نفس القيمة إذا كانت الملاحظة 20 وحدة أو 20000 وحدة. في المقابل، يعطي الفرق في النسبة المئوية، وهو مقياس نسبي، أخطاء من 50% و0.05%، على التوالي. لتحسين الفرق النسبي، يمكنك تشغيل التعلم الآلي التلقائي باستخدام مقياس أساسي مدعوم ثم تحديد النموذج بأفضل mean_absolute_percentage_error
أو root_mean_squared_log_error
. لا يتم تعريف هذه المقاييس عندما تكون أي قيم مراقبة صفرية، لذلك قد لا تكون دائما خيارات جيدة.
متري | أمثلة على حالات الاستخدام |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
توقع السعر (منزل/منتج/نصيحة)، توقع درجة المراجعة |
r2_score |
تأخير Airline، تقدير الراتب، وقت دقة الأخطاء |
normalized_mean_absolute_error |
قياسات سيناريوهات التنبؤ بالسلاسل الزمنية
التوصيات مشابهة للتوصيات الخاصة بسيناريوهات التراجع.
متري | أمثلة على حالات الاستخدام |
---|---|
normalized_root_mean_squared_error |
تنبؤ السعر (التنبؤ)، تحسين المخزون، التنبؤ بالطلب |
r2_score |
تنبؤ السعر (التنبؤ)، تحسين المخزون، التنبؤ بالطلب |
normalized_mean_absolute_error |
قياسات سيناريوهات اكتشاف عنصر الصورة
بالنسبة إلى "Image Object Detection"، يتم تعريف المقاييس الأساسية المدعومة ObjectDetectionPrimaryMetrics
في قائمة التعداد.
قياسات سيناريوهات تجزئة مثيل الصورة
بالنسبة لسيناريوهات تجزئة مثيل الصورة، يتم تعريف المقاييس الأساسية المدعومة InstanceSegmentationPrimaryMetrics
في قائمة التعداد.
تخصيص البيانات
في كل تجربة تعلم آلي تلقائي، يتم تحويل بياناتك تلقائيا إلى أرقام وناقلات من الأرقام. يتم أيضا تحجيم البيانات وتطبيعها لمساعدة الخوارزميات الحساسة للميزات الموجودة على مقاييس مختلفة. تسمى تحويلات البيانات هذه بالتميز.
ملاحظة
تصبح خطوات تمييز التعلم الآلي التلقائي، مثل تسوية الميزات، ومعالجة البيانات المفقودة، وتحويل النص إلى رقمي، جزءا من النموذج الأساسي. عند استخدام النموذج للتنبؤات، يتم تطبيق نفس خطوات التمييز المطبقة أثناء التدريب على بيانات الإدخال تلقائيا.
عند تكوين مهام التعلم الآلي التلقائي، يمكنك تمكين الإعدادات أو تعطيلها featurization
.
يوضح الجدول التالي الإعدادات المقبولة للتخصيص.
تكوين التضمين | وصف |
---|---|
"mode": 'auto' |
يشير إلى أنه كجزء من المعالجة المسبقة، يتم تنفيذ حواجز البيانات وخطوات التمييز تلقائيا. هذه القيمة هي الإعداد الافتراضي. |
"mode": 'off' |
يشير إلى أن خطوة التخصيص لا يجب إجراؤها تلقائيًا. |
"mode": 'custom' |
يشير إلى أنه يجب استخدام خطوة التخصيص المخصصة. |
يوضح التعليمة البرمجية التالية كيف يمكن توفير السمات المخصصة في هذه الحالة لمهمة التراجع.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
معايير الخروج
هناك بعض الخيارات التي يمكنك تحديدها في الدالة set_limits()
لإنهاء تجربتك قبل اكتمال المهمة.
معايير | وصف |
---|---|
لا توجد معايير | إذا لم تحدد أي معلمات خروج، تستمر التجربة حتى لا يتم إحراز أي تقدم إضافي على المقياس الأساسي. |
timeout |
يحدد المدة التي يجب أن تستمر فيها تجربتك في التشغيل في غضون دقائق. إذا لم يتم تحديدها، فإن إجمالي المهلة للوظيفة الافتراضية هو ستة أيام (8640 دقيقة). لتحديد مهلة أقل من أو تساوي ساعة واحدة (60 دقيقة)، تأكد من أن حجم مجموعة البيانات ليس أكبر من 10,000,000 (عمود أوقات الصفوف) أو نتائج خطأ. تتضمن هذه المهلة الإعداد والتميز وتشغيل التدريب ولكنها لا تتضمن عمليات التضمين وتشغيل شرح النموذج في نهاية العملية حيث يجب أن تحدث هذه الإجراءات بعد الانتهاء من جميع التجارب (وظائف الأطفال). |
trial_timeout_minutes |
أقصى وقت بالدقائق يمكن تشغيل كل إصدار تجريبي (مهمة فرعية) لها قبل أن تنتهي. إذا لم يتم تحديدها، يتم استخدام قيمة شهر أو 43200 دقيقة. |
enable_early_termination |
ما إذا كان يجب إنهاء المهمة إذا لم تتحسن النتيجة على المدى القصير. |
max_trials |
الحد الأقصى لعدد التجارب/التشغيل لكل مجموعة مختلفة من الخوارزمية والمعلمات الفائقة لتجربتها أثناء الوظيفة. إذا لم يتم تحديده، يكون الافتراضي هو 1000 تجربة. إذا كنت تستخدم enable_early_termination ، يمكن أن يكون عدد الإصدارات التجريبية المستخدمة أصغر. |
max_concurrent_trials |
يمثل الحد الأقصى لعدد المحاولات (وظائف فرعية) التي سيتم تنفيذها بالتوازي. من الممارسات الجيدة مطابقة هذا الرقم مع عدد العقد التي مجموعتك. |
قم بإجراء التجربة
إرسال التجربة للتشغيل وإنشاء نموذج.
ملاحظة
إذا قمت بتشغيل تجربة بنفس إعدادات التكوين والمقياس الأساسي عدة مرات، فقد ترى تباينا في كل اختبار نقاط المقاييس النهائية والنماذج التي تم إنشاؤها. الخوارزميات التي يستخدمها التعلم الآلي الآلي لها عشوائية متأصلة يمكن أن تسبب تباينا طفيفا في إخراج النماذج من خلال التجربة ودرجة المقاييس النهائية للنموذج الموصى بها، مثل الدقة. قد ترى أيضا نتائج بنفس اسم النموذج، ولكن معلمات hyper-parameter مختلفة مستخدمة.
تحذير
إذا قمت بتعيين قواعد في جدار الحماية أو مجموعة أمان الشبكة عبر مساحة العمل الخاصة بك، فتحقق من منح الأذونات المطلوبة لحركة مرور الشبكة الواردة والصادرة كما هو محدد في تكوين نسبة استخدام الشبكة الواردة والصادرة.
MLClient
مع التي تم إنشاؤها في المتطلبات الأساسية، يمكنك تشغيل الأمر التالي في مساحة العمل.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
يعمل العديد من التشغيل الفرعي في نظام مجموعات
يمكن إجراء عمليات التشغيل الفرعية لتجربة التعلم الآلي المؤتمت على نظام مجموعة تقوم بالفعل بتشغيل تجربة أخرى. ومع ذلك، يعتمد التوقيت على عدد العقد الموجودة في نظام المجموعة، وما إذا كانت هذه العقد متاحة لإجراء تجربة مختلفة.
تعمل كل عقدة في نظام المجموعة كجهاز ظاهري فردي (VM) يمكنه إنجاز تشغيل تدريب واحد. بالنسبة إلى التعلم الآلي التلقائي، تعني هذه الحقيقة تشغيل طفل. إذا كانت جميع العقد مشغولة، يتم وضع تجربة جديدة في قائمة الانتظار. إذا كانت هناك عقد مجانية، فإن التجربة الجديدة تعمل بشكل متواز في العقد المتوفرة أو الأجهزة الظاهرية.
للمساعدة في إدارة عمليات التشغيل التابعة ومتى يمكن تنفيذها، نوصي بإنشاء مجموعة مخصصة لكل تجربة، ومطابقة عدد max_concurrent_iterations
تجربتك مع عدد العقد في نظام المجموعة. بهذه الطريقة، يمكنك استخدام جميع عقد نظام المجموعة في نفس الوقت مع عدد عمليات التشغيل التابعة المتزامنة والتكرارات التي تريدها.
تكوين max_concurrent_iterations
في limits
التكوين. إذا لم يتم تكوينه، فسيسمح افتراضيا بتشغيل/تكرار تابع واحد فقط متزامن لكل تجربة. بالنسبة لمثيل الحساب، max_concurrent_trials
يمكن تعيينه ليكون نفس عدد الذاكرات الأساسية على الجهاز الظاهري لمثيل الحساب.
استكشف النماذج والقياسات
يوفر لك التعلم الآلي خيارات لمراقبة وتقييم نتائج التدريب.
للحصول على تعريفات وأمثلة لمخططات وقياسات الأداء المقدمة لكل عملية تشغيل، راجع تقييم نتائج تجربة التعلم الآلي المؤتمت.
للحصول على ملخص السمات وفهم الميزات التي تمت إضافتها إلى نموذج معين، راجع شفافية التخصيص.
من واجهة مستخدم التعلم الآلي من Azure في صفحة النموذج، يمكنك أيضا عرض المعلمات الفائقة المستخدمة عند تدريب نموذج معين وكذلك عرض وتخصيص التعليمات البرمجية للتدريب للنموذج الداخلي المستخدم.
تسجيل النماذج وتوزيعها
بعد اختبار نموذج وتأكيد رغبتك في استخدامه في الإنتاج، يمكنك تسجيله لاستخدامه لاحقاً.
تلميح
بالنسبة للنماذج المسجلة، يمكنك استخدام النشر بنقرة واحدة باستخدام استوديو التعلم الآلي من Azure. راجع نشر النموذج الخاص بك.
استخدام AutoML في البنية الأساسية لبرنامج ربط العمليات التجارية
لاستخدام التعلم الآلي التلقائي في مهام سير عمل عمليات التعلم الآلي، يمكنك إضافة خطوات مهمة AutoML إلى مسارات التعلم الآلي من Azure. يسمح لك هذا الأسلوب بأتمتة سير العمل بأكمله عن طريق ربط البرامج النصية لإعداد البيانات ب Automated ML. ثم قم بتسجيل والتحقق من صحة أفضل نموذج الناتج.
هذه التعليمة البرمجية هي نموذج مسار مع مكون تصنيف التعلم الآلي الآلي ومكون أمر يعرض الإخراج الناتج. تشير التعليمات البرمجية إلى المدخلات (بيانات التدريب والتحقق من الصحة) والمخرجات (أفضل نموذج) في خطوات مختلفة.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
لمزيد من الأمثلة حول كيفية تضمين التعلم الآلي التلقائي في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، راجع مستودع الأمثلة.
استخدام AutoML على نطاق واسع: التدريب الموزع
بالنسبة لسيناريوهات البيانات الكبيرة، يدعم التعلم الآلي التلقائي التدريب الموزع لمجموعة محدودة من النماذج:
خوارزمية موزعة | مهام مدعومة | حد حجم البيانات (تقريبي) |
---|---|---|
جهاز غيغابايت فاتح | التصنيف والانحدار | 1 تيرابايت |
TCNForecaster | التنبؤ | 200 غيغابايت |
تقوم خوارزميات التدريب الموزعة بتقسيم بياناتك وتوزيعها تلقائيا عبر عقد حساب متعددة لتدريب النموذج.
ملاحظة
لا يتم حاليا دعم التحقق المشترك ونماذج المجموعة ودعم ONNX وإنشاء التعليمات البرمجية في وضع التدريب الموزع. أيضا، يمكن أن يتخذ التعلم الآلي التلقائي خيارات مثل تقييد المميزات المتوفرة وبيانات أخذ العينات الفرعية المستخدمة للتحقق من الصحة وقابلية التفسير وتقييم النموذج.
التدريب الموزع للتصنيف والانحدار
لاستخدام التدريب الموزع للتصنيف أو التراجع، قم بتعيين training_mode
خصائص و max_nodes
لكائن الوظيفة.
الخاصية | وصف |
---|---|
training_mode | يشير إلى وضع التدريب: distributed أو non_distributed . الإعدادات الافتراضية لـ non_distributed . |
max_nodes | عدد العقد التي يجب استخدامها للتدريب من قبل كل إصدار تجريبي. يجب أن يكون هذا الإعداد أكبر من أو يساوي 4. |
يظهر نموذج التعليمات البرمجية التالي مثالا على هذه الإعدادات لمهمة التصنيف:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
ملاحظة
لا يدعم التدريب الموزع لمهام التصنيف والانحدار حاليا إصدارات تجريبية متزامنة متعددة. يتم تنفيذ الإصدارات التجريبية النموذجية بشكل تسلسلي مع كل إصدار تجريبي باستخدام max_nodes
العقد.
max_concurrent_trials
يتم تجاهل إعداد الحد حاليا.
تدريب موزع للتنبؤ
لمعرفة كيفية عمل التدريب الموزع لمهام التنبؤ، راجع التنبؤ على نطاق واسع. لاستخدام التدريب الموزع للتنبؤ، تحتاج إلى تعيين training_mode
enable_dnn_training
max_nodes
خصائص كائن الوظيفة و و اختياريا.max_concurrent_trials
الخاصية | وصف |
---|---|
training_mode | يشير إلى وضع التدريب؛ distributed أو non_distributed . الإعدادات الافتراضية لـ non_distributed . |
enable_dnn_training | وضع علامة لتمكين نماذج الشبكة العصبية العميقة. |
max_concurrent_trials | هذه القيمة هي الحد الأقصى لعدد النماذج التجريبية للتدريب بالتوازي. الإعدادات الافتراضية إلى 1. |
max_nodes | العدد الإجمالي للعقد المراد استخدامها للتدريب. يجب أن يكون هذا الإعداد أكبر من أو يساوي 2. بالنسبة إلى مهام التنبؤ، يتم تدريب كل نموذج تجريبي باستخدام $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$ nodes. |
يظهر نموذج التعليمات البرمجية التالي مثالا على هذه الإعدادات لمهمة التنبؤ:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
للحصول على عينات من التعليمات البرمجية للتكوين الكامل، راجع الأقسام السابقة حول التكوينوإرسال الوظيفة.
المحتويات ذات الصلة
- تعرف على المزيد حول كيفية نشر نموذج ومكانه.
- تعرف على المزيد حول كيفية إعداد AutoML لتدريب نموذج تنبؤ السلسلة الزمنية.