مشاركة عبر


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

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

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

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

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

لاستخدام معلومات 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 تكوين الوظيفة.

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

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

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

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

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

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

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

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

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

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

قد لا يتم تحسين المقاييس المعتمدة على العتبة، مثل accuracyrecall_score_weightednorm_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_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
)

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