مشاركة عبر


إعداد تدريب AutoML للبيانات الجدولية باستخدام Azure التعلم الآلي CLI وPython SDK

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

في هذه المقالة، تعرف على كيفية إعداد مهمة تدريب AutoML باستخدام التعلم الآلي من Microsoft Azure Python SDK v2. يختار AutoML خوارزمية ومعلمات فائقة لك وينشئ نموذجا جاهزا للنشر. توفر هذه المقالة تفاصيل حول الخيارات المختلفة التي يمكنك استخدامها لتكوين تجارب AutoML.

إذا كنت تفضل تجربة بدون تعليمات برمجية ، فيمكنك أيضا إعداد تدريب AutoML بدون تعليمات برمجية للبيانات الجدولية باستخدام واجهة مستخدم الاستوديو.

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

لاستخدام معلومات SDK، قم بتثبيت Azure التعلم الآلي SDK v2 ل Python.

يمكنك تثبيت SDK بطريقتين:

  • إنشاء مثيل حساب، والذي يحتوي بالفعل على أحدث Azure Machine Learning Python SDK وتم تكوينه لسير عمل التعلم الآلي. لمزيد من المعلومات، راجع إنشاء مثيل حساب Azure التعلم الآلي.
  • تثبيت SDK على جهازك المحلي.

إعداد مساحة العمل الخاصة بك

للاتصال بمساحة عمل، تحتاج إلى توفير اشتراك ومجموعة موارد ومساحة عمل.

تنتقل تفاصيل مساحة العمل إلى MLClient من azure.ai.ml للاتصال بمساحة عمل التعلم الآلي من Microsoft 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:

  • يجب أن تكون البيانات في نموذج مجدول.
  • يجب أن تكون القيمة التي يجب توقعها، العمود الهدف، في البيانات.

يجب أن تكون بيانات التدريب قابلة للوصول من الحساب البعيد. يقبل AutoML v2 (Python SDK و CLI/YAML) أصول البيانات MLTable (الإصدار 2). للتوافق مع الإصدارات السابقة، فإنه يدعم أيضا 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 المعلمة في وظيفة المصنع لوظيفة AutoML الخاصة بك.

إذا لم تحدد معلمة validation_data أو n_cross_validation معلمة بشكل صريح، يطبق AutoML الأساليب الافتراضية لتحديد كيفية إجراء التحقق من الصحة. يعتمد هذا التحديد على عدد الصفوف في مجموعة البيانات المعينة لمعلمة training_data.

حجم بيانات التدريب تقنية التحقق من الصحة
أكبر من 20,000 سجل يطبق AutoML تقسيم بيانات التدريب والتحقق من الصحة. يأخذ الإعداد الافتراضي 10% من مجموعة بيانات التدريب الأولية كمجموعة التحقق من الصحة. يستخدم AutoML بعد ذلك مجموعة التحقق من الصحة هذه لحساب المقاييس.
أصغر من أو يساوي 20000 صف يطبق AutoML نهج التحقق المتبادل. يعتمد العدد الافتراضي للطيات على عدد السجلات.
إذا كانت مجموعة البيانات أقل من 1,000 صف، يستخدم AutoML عشرة أضعاف.
إذا كانت الصفوف تساوي أو بين 1,000 و 20,000 ، يستخدم AutoML ثلاث طيات.

حساب لتشغيل التجربة

يتم حاليا دعم مهام AutoML مع Python SDK v2 (أو CLI v2) فقط على نظام مجموعة الحوسبة عن بعد أو مثيل الحساب للتعلم الآلي من Microsoft Azure. لمزيد من المعلومات حول إنشاء حساب باستخدام Python SDKv2 أو CLIv2، راجع تدريب النماذج باستخدام CLI للتعلم الآلي من Microsoft Azure وSDK وواجهة برمجة تطبيقات REST.

تكوين إعدادات تجربتك

يمكنك استخدام عدة خيارات لتكوين تجربة AutoML الخاصة بك. معلمات التكوين هذه هي مجموعة في أسلوب مهمتك. يمكنك أيضا تعيين إعدادات التدريب على الوظيفة ومعايير الخروج باستخدام 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 الخاصة بك، حدد نوع مشكلة التعلم الآلي التي تريد حلها. تحدد هذه المشكلة الوظيفة التي تستخدمها وظيفتك وخوارزميات النموذج التي تطبقها.

يدعم AutoML أنواع المهام المختلفة:

  • المهام المستندة إلى البيانات الجدولية

    • تصنيف
    • تراجع
    • التنبؤ
  • مهام رؤية الكمبيوتر، بما في ذلك

    • تصنيف الصور
    • الكشف عن الكائنات
  • مهام معالجة اللغة الطبيعية، بما في ذلك

    • تصنيف النصوص
    • التعرف على الكيانات

لمزيد من المعلومات، راجع أنواع المهام. لمزيد من المعلومات حول إعداد وظائف التنبؤ، راجع إعداد AutoML لتدريب نموذج التنبؤ بالسلاسل الزمنية.

الخوارزميات المدعومة

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

يحدد أسلوب المهمة قائمة الخوارزميات أو النماذج التي يجب تطبيقها. لتعديل التكرارات بشكل أكبر مع النماذج المتاحة لتضمينها أو استبعادها، استخدم allowed_training_algorithms المعلمات أو blocked_training_algorithms في training تكوين الوظيفة.

في الجدول التالي، استكشف الخوارزميات المدعومة لكل مهمة تعلم آلي.

تصنيف الانحدار التنبؤ بالسلاسل الزمنية
الانحدار اللوجستي* الشبكة المرنة* AutoARIMA
LightGBM* LightGBM* نبي
تعزيز التدرج* تعزيز التدرج* الشبكة المرنة
شجرة القرارات* شجرة القرارات* LightGBM
أقرب بكسلات مصدر* أقرب بكسلات مصدر* أقرب بكسلات مصدر
SVC خطي* لارس لاسو* شجرة القرارات
دعم تصنيف المتجهات (SVC)* الانخفاض المتدرج العشوائي (SGD)* Arimax
المجالات العشوائية* المجالات العشوائية لارس لاسو
أشجار عشوائية للغاية* أشجار عشوائية للغاية* أشجار عشوائية للغاية*
إكس جي بوست* إكس جي بوست* المجالات العشوائية
ساذج بايز* Xgboost TCNForecaster
الانخفاض المتدرج العشوائي (SGD)* الانخفاض المتدرج العشوائي (SGD) تعزيز التدرج
الاتصال الأسي
موسمي
متوسط
ساذج
موسمية

مع الخوارزميات الأخرى:

على سبيل المثال دفاتر الملاحظات لكل نوع مهمة، راجع automl-standalone-jobs.

المقياس الأساسي

تحدد المعلمة primary_metric المقياس الذي سيتم استخدامه أثناء تدريب النموذج للتحسين. يحدد نوع المهمة الذي تختاره المقاييس التي يمكنك تحديدها.

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

للتعرف على التعريفات المحددة لهذه المقاييس، راجع تقييم نتائج تجربة AutoML.

قياسات تصنيف سيناريوهات الفئات المتعددة

تنطبق هذه المقاييس على جميع سيناريوهات التصنيف، بما في ذلك البيانات الجدولية والصور أو رؤية الكمبيوتر ونص معالجة اللغة الطبيعية (NLP-Text).

قد لا يتم تحسين المقاييس المعتمدة على العتبة، مثل accuracyrecall_score_weightednorm_macro_recall، و، precision_score_weighted و، وكذلك لمجموعات البيانات الصغيرة، أو انحراف فئة كبيرة (عدم توازن الفئة)، أو عندما تكون قيمة المقياس المتوقعة قريبة جدا من 0.0 أو 1.0. في هذه الحالات، يمكن أن يكون AUC_weighted خيارًا أفضل للمقياس الأساسي. بعد اكتمال AutoML ، يمكنك اختيار النموذج الفائز بناء على المقياس الأنسب لاحتياجات عملك.

متري أمثلة على حالات الاستخدام
accuracy تصنيف الصورة، تحليل المشاعر، تنبؤات الزبدة
AUC_weighted كشف الاحتيال، تصنيف الصور، كشف الأخطاء/كشف البريد العشوائي
average_precision_score_weighted تحليل التوجه
norm_macro_recall التنبؤ المضطرب
precision_score_weighted

قياسات لتصنيف سيناريوهات متعددة التسميات

بالنسبة إلى تصنيف النص متعدد التسميات، تعد "الدقة" حاليا المقياس الأساسي الوحيد المدعوم.

بالنسبة إلى تصنيف الصور متعدد التسميات، يتم تحديد المقاييس الأساسية المدعومة في التعداد ClassificationMultilabelPrimaryMetrics .

مقاييس سيناريوهات التعرف على الكيانات المسماة لنص NLP

بالنسبة لنص البرمجة اللغوية العصبية التعرف على الكيان المسمى (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 يمكن أن تكون خيارا أفضل. وهو يقيس ارتباط الرتبة بين القيم والتنبؤات الحقيقية.

لا يدعم AutoML حاليا أي مقاييس أساسية تقيس الفرق النسبي بين التنبؤات والملاحظات. المقاييس r2_scoreو normalized_mean_absolute_errorو normalized_root_mean_squared_error كلها مقاييس للفرق المطلق. على سبيل المثال، إذا كان التنبؤ يختلف عن الملاحظة بمقدار 10 وحدات، فإن هذه المقاييس تحسب نفس القيمة إذا كانت الملاحظة 20 وحدة أو 20000 وحدة. في المقابل، يعطي الفرق في النسبة المئوية، وهو مقياس نسبي، أخطاء من 50% و0.05%، على التوالي. لتحسين الفرق النسبي، يمكنك تشغيل AutoML باستخدام مقياس أساسي مدعوم ثم تحديد النموذج بأفضل 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

قياسات سيناريوهات اكتشاف عنصر الصورة

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

قياسات سيناريوهات تجزئة مثيل الصورة

بالنسبة لسيناريوهات تجزئة مثيل الصورة، يتم تحديد المقاييس الأساسية المدعومة في التعداد InstanceSegmentationPrimaryMetrics .

تخصيص البيانات

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

ملاحظة

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

عند تكوين مهام AutoML، يمكنك تمكين الإعدادات أو تعطيلها 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 أقصى وقت بالدقائق يمكن تشغيل كل إصدار تجريبي (مهمة فرعية) لها قبل أن تنتهي. إذا لم يتم تحديده ، يستخدم AutoML قيمة 1 شهر أو 43200 دقيقة.
enable_early_termination ما إذا كان يجب إنهاء المهمة إذا لم تتحسن النتيجة على المدى القصير.
max_trials الحد الأقصى لعدد التجارب/التشغيل لكل مجموعة مختلفة من الخوارزمية والمعلمات الفائقة لتجربتها أثناء الوظيفة. إذا لم يتم تحديده، يكون الافتراضي هو 1000 تجربة. إذا كنت تستخدم enable_early_termination، فقد يستخدم AutoML إصدارات تجريبية أقل.
max_concurrent_trials الحد الأقصى لعدد التجارب (وظائف الأطفال) التي ستجري بالتوازي. من الممارسات الجيدة مطابقة هذا الرقم مع عدد العقد التي مجموعتك.

قم بإجراء التجربة

إرسال التجربة للتشغيل وإنشاء نموذج.

ملاحظة

إذا أجريت تجربة بنفس إعدادات الضبط والمقياس الأساسي عدة مرات، قد تلاحظ تباينا في نقاط المقاييس النهائية لكل تجربة والنماذج التي تم إنشاؤها. تحتوي الخوارزميات التي يستخدمها AutoML على عشوائية متأصلة يمكن أن تسبب اختلافا طفيفا في إخراج النماذج من خلال التجربة ودرجة المقاييس النهائية للنموذج الموصى به ، مثل الدقة. قد ترى أيضا نتائج بنفس اسم النموذج، ولكن معلمات 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

يعمل العديد من التشغيل الفرعي في نظام مجموعات

يمكنك تشغيل تجربة AutoML التابعة التي يتم تشغيلها على نظام مجموعة تقوم بالفعل بتشغيل تجربة أخرى. يعتمد التوقيت على عدد العقد التي تمتلكها المجموعة وما إذا كانت هذه العقد متاحة لإجراء تجربة مختلفة.

تعمل كل عقدة في نظام المجموعة كجهاز ظاهري فردي (VM) يمكنه إنجاز تشغيل تدريب واحد. بالنسبة إلى AutoML ، هذا يعني تشغيل تابع. إذا كانت جميع العقد مشغولة، فإن AutoML يضع تجربة جديدة في قائمة الانتظار. إذا كانت العقد المجانية متوفرة، فإن التجربة الجديدة تقوم بتشغيل الأطفال بالتوازي في العقد أو الأجهزة الظاهرية المتوفرة.

للمساعدة في إدارة عمليات التشغيل التابعة ومتى يمكن تشغيلها، نوصي بإنشاء نظام مجموعة مخصص لكل تجربة، ومطابقة عدد max_concurrent_iterations تجربتك مع عدد العقد في نظام المجموعة. بهذه الطريقة، يمكنك استخدام جميع عقد نظام المجموعة في نفس الوقت مع عدد عمليات التشغيل التابعة المتزامنة والتكرارات التي تريدها.

تكوين max_concurrent_iterations في limits التكوين. إذا لم يتم تكوينه، فسيسمح افتراضيا بتشغيل/تكرار تابع واحد فقط متزامن لكل تجربة. بالنسبة لمثيل الحساب، يمكنك تعيينه max_concurrent_trials ليكون نفس عدد المراكز على الجهاز الظاهري لمثيل الحساب.

استكشف النماذج والقياسات

يوفر AutoML خيارات لك لمراقبة وتقييم نتائج التدريب الخاصة بك.

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

  • للحصول على ملخص تمييز وفهم الميزات التي تمت إضافتها إلى نموذج معين، راجع شفافية التمييز.

من واجهة مستخدم التعلم الآلي من Azure في صفحة النموذج، يمكنك أيضا عرض المعلمات الفائقة المستخدمة عند تدريب نموذج معين وكذلك عرض وتخصيص التعليمات البرمجية للتدريب للنموذج الداخلي المستخدم.

تسجيل النماذج وتوزيعها

بعد اختبار نموذج وتأكيد رغبتك في استخدامه في الإنتاج، يمكنك تسجيله لاستخدامه لاحقاً.

تلميح

بالنسبة للنماذج المسجلة، يمكنك استخدام النشر بنقرة واحدة باستخدام استوديو التعلم الآلي من Azure. راجع نشر النموذج الخاص بك.

استخدام AutoML في البنية الأساسية لبرنامج ربط العمليات التجارية

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

هذه التعليمات البرمجية عبارة عن نموذج لخط أنابيب مع مكون تصنيف AutoML ومكون أمر يعرض الإخراج الناتج. تشير التعليمات البرمجية إلى المدخلات (بيانات التدريب والتحقق من الصحة) والمخرجات (أفضل نموذج) في خطوات مختلفة.

# 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 في المسارات الخاصة بك، راجع مستودع الأمثلة.

استخدام AutoML على نطاق واسع: التدريب الموزع

بالنسبة لسيناريوهات البيانات الكبيرة، يدعم AutoML التدريب الموزع لمجموعة محدودة من النماذج:

خوارزمية موزعة مهام مدعومة حد حجم البيانات (تقريبي)
جهاز غيغابايت فاتح التصنيف والانحدار 1 تيرابايت
TCNForecaster التنبؤ 200 غيغابايت

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

ملاحظة

لا يتم حاليا دعم التحقق المشترك ونماذج المجموعة ودعم ONNX وإنشاء التعليمات البرمجية في وضع التدريب الموزع. أيضا ، يمكن ل AutoML اتخاذ خيارات مثل تقييد ميزات الميزات المتاحة وبيانات أخذ العينات الفرعية المستخدمة للتحقق من الصحة وقابلية الشرح وتقييم النموذج.

التدريب الموزع للتصنيف والانحدار

لاستخدام التدريب الموزع للتصنيف أو التراجع، قم بتعيين 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_modeenable_dnn_trainingmax_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
)

للحصول على عينات من التعليمات البرمجية للتكوين الكامل، راجع الأقسام السابقة حول التكوينوإرسال الوظيفة.