إعداد AutoML لتدريب نماذج رؤية الكمبيوتر

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

في هذه المقالة، ستتعلم كيفية تدريب نماذج رؤية الكمبيوتر على بيانات الصور باستخدام التعلم الآلي الآلي. يمكنك تدريب النماذج باستخدام ملحق Azure التعلم الآلي CLI v2 أو Azure التعلم الآلي Python SDK v2.

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

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

ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

تحديد نوع المهمة

يدعم التعلم الآلي التلقائي للصور أنواع المهام التالية:

نوع المهمة صيغة أوامر وظيفة AutoML
تصنيف الصور الإصدار 2 من CLI: image_classification
الإصدار 2 من SDK: image_classification()
تصنيف الصور متعدد التسميات الإصدار 2 من CLI: image_classification_multilabel
الإصدار 2 من SDK: image_classification_multilabel()
كشف عنصر الصورة الإصدار 2 من CLI: image_object_detection
الإصدار 2 من SDK: image_object_detection()
تجزئة مثيل الصورة الإصدار 2 من CLI: image_instance_segmentation
الإصدار 2 من SDK: image_instance_segmentation()

ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

نوع المهمة هذا هو معلمة مطلوبة ويمكن تعيينه باستخدام المفتاح task.

على سبيل المثال:

task: image_object_detection

بيانات التدريب والتحقق من الصحة

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

إذا كانت بيانات التدريب بتنسيق مختلف (مثل pascal VOC أو COCO)، يمكنك تطبيق البرامج النصية المساعدة المضمنة مع نماذج دفاتر الملاحظات لتحويل البيانات إلى JSONL. تعرّف على المزيد حول كيفية إعداد البيانات لمهام رؤية الكمبيوتر باستخدام التعلم الآلي المؤتمت.

إشعار

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

تحذير

يُدعم إنشاء MLTable من البيانات بتنسيق JSONL باستخدام SDK وCLI فقط لهذه الإمكانية. لا يتم دعم إنشاء MLTable عبر واجهة المستخدم في الوقت الحالي.

نماذج مخططات JSONL

تعتمد بنية TabularDataset على المهمة الموجودة. بالنسبة إلى أنواع مهام رؤية الكمبيوتر، تتكون من الحقول التالية:

الحقل ‏‏الوصف
image_url يحتوي على مسار الملف كعنصر StreamInfo
image_details تتكون معلومات بيانات تعريف الصورة من الارتفاع والعرض والتنسيق. هذا الحقل اختياري، وبالتالي قد يكون موجودًا أو غير موجود.
label تمثيل json لتسمية الصورة حسب نوع المهمة.

التعليمات البرمجية التالية هي نموذج ملف JSONL لتصنيف الصور:

{
      "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/image_data/Image_01.png",
      "image_details":
      {
          "format": "png",
          "width": "2230px",
          "height": "4356px"
      },
      "label": "cat"
  }
  {
      "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/image_data/Image_02.jpeg",
      "image_details":
      {
          "format": "jpeg",
          "width": "3456px",
          "height": "3467px"
      },
      "label": "dog"
  }

تمثل التعليمة البرمجية التالية نموذج ملف JSONL لكشف العناصر:

{
    "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/image_data/Image_01.png",
    "image_details":
    {
        "format": "png",
        "width": "2230px",
        "height": "4356px"
    },
    "label":
    {
        "label": "cat",
        "topX": "1",
        "topY": "0",
        "bottomX": "0",
        "bottomY": "1",
        "isCrowd": "true",
    }
}
{
    "image_url": "azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/image_data/Image_02.png",
    "image_details":
    {
        "format": "jpeg",
        "width": "1230px",
        "height": "2356px"
    },
    "label":
    {
        "label": "dog",
        "topX": "0",
        "topY": "1",
        "bottomX": "0",
        "bottomY": "1",
        "isCrowd": "false",
    }
}

استهلاك البيانات

بمجرد أن تكون بياناتك بتنسيق JSONL، يمكنك إنشاء التدريب والتحقق من صحة MLTable كما هو موضح أدناه.

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

لا يفرض التعلم الآلي التلقائي أي قيود على حجم بيانات التدريب أو التحقق من الصحة لمهام رؤية الكمبيوتر. الحد الأقصى لحجم مجموعة البيانات محدود فقط بواسطة طبقة التخزين خلف مجموعة البيانات (مثال: مخزن كائن ثنائي كبير الحجم). لا يوجد حد أدنى لعدد الصور أو التسميات. ومع ذلك، نوصي بالبدء بما لا يقل عن 10-15 عينة لكل تسمية لضمان تدريب نموذج الإخراج بشكل كاف. كلما ارتفع العدد الإجمالي للتسميات/الفئات، زادت العينات التي تحتاجها لكل تسمية.

ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

بيانات التدريب هي معلمة مطلوبة ويتم تمريرها باستخدام training_data المفتاح . يمكنك تحديد MLtable آخر حسب اختيارك كبيانات التحقق من الصحة باستخدام المفتاح validation_data. إذا لم يتم تحديد بيانات التحقق من الصحة، يتم استخدام 20٪ من بيانات التدريب الخاصة بك للتحقق من الصحة بشكل افتراضي، إلا إذا قمت بتمرير validation_data_size وسيطة بقيمة مختلفة.

اسم العمود الهدف هو معلمة مطلوبة ويُستخدم كهدف لمهمة التعلم الآلي الخاضعة للإشراف. يتم تمريره باستخدام target_column_name المفتاح. على سبيل المثال،

target_column_name: label
training_data:
  path: data/training-mltable-folder
  type: mltable
validation_data:
  path: data/validation-mltable-folder
  type: mltable

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

يمكن توفير هدف حساب للتعلم الآلي التلقائي لإجراء تدريب نموذج. تتطلب نماذج التعلم الآلي التلقائي لمهام رؤية الكمبيوتر وحدات SKU لـ GPU ودعم مجموعات NC وND. نوصي بسلسلة NCsv3 (مع وحدات معالجة الرسومات v100) لتدريب أسرع. يستخدم هدف الحوسبة مع وحدة SKU متعددة وحدات معالجة الرسومات VM وحدات معالجة الرسومات المتعددة لتسريع التدريب أيضا. بالإضافة إلى ذلك، عند إعداد هدف حساب مع عقد متعددة، يمكنك إجراء تدريب أسرع على النموذج من خلال التوازي عند ضبط المعلمات الفائقة لنموذجك.

إشعار

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

يتم تمرير هدف الحساب باستخدام المعلمة compute. على سبيل المثال:

ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

compute: azureml:gpu-cluster

تكوين التجارب

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

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

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

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

حدود الوظائف

يمكنك التحكم في الموارد التي تم إنفاقها على مهمة تدريب AutoML Image عن طريق تحديد timeout_minutes، max_trials و max_concurrent_trials للمهمة في إعدادات الحد كما هو موضح في المثال أدناه.

المعلمة‬ تفاصيل
max_trials معلمة للحد الأقصى لعدد التجارب التي يجب مسحها. يجب أن يكون عدداً صحيحاً بين 1 و1000. عند استكشاف المعلمات الفائقة الافتراضية فقط لبنية نموذج معين، قم بتعيين هذه المعلمة إلى 1. القيمة الافتراضية هي 1.
max_concurrent_trials الحد الأقصى لعدد الإصدارات التجريبية التي يمكن تشغيلها بشكل متزامن. في حال عدم التحديد، يجب أن يكون عدداً صحيحاً بين 1 و100. القيمة الافتراضية هي 1.

ملاحظة:
  • يتم تحديد عدد التجارب المتزامنة على الموارد المتوفرة في هدف الحساب المحدد. تأكد من أن هدف الحساب لديه الموارد المتاحة للتزامن المطلوب.
  • max_concurrent_trials يتم تحديده max_trials داخليا. على سبيل المثال، إذا كان المستخدم يعين max_concurrent_trials=4، max_trials=2فسيتم تحديث القيم داخليا ك max_concurrent_trials=2، max_trials=2.
  • timeout_minutes مقدار الوقت بالدقائق قبل انتهاء التجربة. إذا لم يتم تحديد أي شيء، فإن timeout_minutes التجربة الافتراضية هي سبعة أيام (60 يوما كحد أقصى)

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    limits:
      timeout_minutes: 60
      max_trials: 10
      max_concurrent_trials: 2
    

    مسح المعلمات الفائقة للنموذج تلقائيا (AutoMode)

    هام

    تُعد هذه الميزة قيد الإصدار الأولي العام في الوقت الحالي. يتم توفير إصدار المعاينة هذا من دون اتفاقية مستوى الخدمة. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

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

    تشغيل AutoMode

    يمكنك تشغيل عمليات المسح التلقائي عن طريق تعيين max_trials قيمة أكبر من 1 في limits وعدم تحديد مساحة البحث وطريقة أخذ العينات ونهج الإنهاء. نطلق على هذه الوظيفة AutoMode؛ يرجى الاطلاع على المثال التالي.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    limits:
      max_trials: 10
      max_concurrent_trials: 2
    

    من المحتمل أن يعمل عدد من التجارب بين 10 و20 بشكل جيد على العديد من مجموعات البيانات. لا يزال من الممكن تعيين ميزانية الوقت لمهمة AutoML، ولكن نوصي بالقيام بذلك فقط إذا كان كل إصدار تجريبي قد يستغرق وقتا طويلا.

    تحذير

    لا يتم دعم بدء عمليات المسح التلقائي عبر واجهة المستخدم في الوقت الحالي.

    التجارب الفردية

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

    بنيات النموذج المدعومة

    يلخص الجدول التالي النماذج القديمة المدعومة لكل مهمة رؤية كمبيوتر. سيؤدي استخدام هذه النماذج القديمة فقط إلى تشغيل التشغيل باستخدام وقت التشغيل القديم (حيث يتم إرسال كل تشغيل فردي أو إصدار تجريبي كمهمة أمر). يرجى الاطلاع أدناه على دعم HuggingFace وMMDetection.

    المهمة بنى النموذج صيغة أوامر سلسلة حرفية
    default_model* المشار إليه بـ *
    تصنيف الصورة
    (متعدد الفئات ومتعددة التسميات)
    MobileNet: نماذج خفيفة الوزن لتطبيقات الجوال
    ResNet: الشبكات المتبقية
    ResNeSt: شبكات تقسيم الانتباه
    SE-ResNeXt50: شبكات الضغط والتحفيز
    ViT: شبكات محول الرؤية
    mobilenetv2
    resnet18
    resnet34
    resnet50
    resnet101
    resnet152
    resnest50
    resnest101
    seresnext
    vits16r224 (صغير)
    vitb16r224* (قاعدة)
    vitl16r224 (كبير)
    كشف الكائنات YOLOv5: نموذج الكشف عن الكائنات في مرحلة واحدة
    RCNN ResNet FPN أسرع: نموذجان للكشف عن الكائنات في المرحلة
    RetinaNet ResNet FPN: معالجة عدم توازن الفئة مع فقدان التركيز

    ملاحظة: ارجع إلى model_sizeالمعلمة الفائقة لأحجام نموذج YOLOv5.
    yolov5*
    fasterrcnn_resnet18_fpn
    fasterrcnn_resnet34_fpn
    fasterrcnn_resnet50_fpn
    fasterrcnn_resnet101_fpn
    fasterrcnn_resnet152_fpn
    retinanet_resnet50_fpn
    تجزئة مثيل الصورة MaskRCNN ResNet FPN maskrcnn_resnet18_fpn
    maskrcnn_resnet34_fpn
    maskrcnn_resnet50_fpn*
    maskrcnn_resnet101_fpn
    maskrcnn_resnet152_fpn

    بنيات النموذج المدعومة - HuggingFace وMMDetection (معاينة)

    باستخدام الواجهة الخلفية الجديدة التي تعمل على البنية الأساسية لبرنامج ربط العمليات التجارية Azure التعلم الآلي، يمكنك بالإضافة إلى ذلك استخدام أي نموذج لتصنيف الصور من HuggingFace Hub الذي يعد جزءا من مكتبة المحولات (مثل microsoft/beit-base-patch16-224)، بالإضافة إلى أي الكشف عن الكائنات أو نموذج تجزئة المثيل من MMDetection الإصدار 3.1.0 Model Zoo (مثل atss_r50_fpn_1x_coco).

    بالإضافة إلى دعم أي نموذج من HuggingFace Transfomers وMMDetection 3.1.0، نقدم أيضا قائمة بالنماذج المنسقة من هذه المكتبات في سجل azureml. تم اختبار هذه النماذج المنسقة بدقة واستخدام المعلمات الفائقة الافتراضية المختارة من قياس الأداء الواسع لضمان التدريب الفعال. يلخص الجدول أدناه هذه النماذج المنسقة.

    المهمة بنى النموذج صيغة أوامر سلسلة حرفية
    تصنيف الصورة
    (متعدد الفئات ومتعددة التسميات)
    بيت
    فيتامين
    DeiT
    SwinV2
    microsoft/beit-base-patch16-224-pt22k-ft22k
    google/vit-base-patch16-224
    facebook/deit-base-patch16-224
    microsoft/swinv2-base-patch4-window12-192-22k
    الكشف عن العنصر Sparse R-CNN
    DETR قابل للتشويه
    VFNet
    YOLOF
    Swin
    mmd-3x-sparse-rcnn_r50_fpn_300-proposals_crop-ms-480-800-3x_coco
    mmd-3x-sparse-rcnn_r101_fpn_300-proposals_crop-ms-480-800-3x_coco
    mmd-3x-deformable-detr_refine_twostage_r50_16xb2-50e_coco
    mmd-3x-vfnet_r50-mdconv-c3-c5_fpn_ms-2x_coco
    mmd-3x-vfnet_x101-64x4d-mdconv-c3-c5_fpn_ms-2x_coco
    mmd-3x-yolof_r50_c5_8x8_1x_coco
    تجزئة المثيل Swin mmd-3x-mask-rcnn_swin-t-p4-w7_fpn_1x_coco

    نقوم بتحديث قائمة النماذج المنسقة باستمرار. يمكنك الحصول على أحدث قائمة بالنماذج المنسقة لمهمة معينة باستخدام Python SDK:

    credential = DefaultAzureCredential()
    ml_client = MLClient(credential, registry_name="azureml")
    
    models = ml_client.models.list()
    classification_models = []
    for model in models:
        model = ml_client.models.get(model.name, label="latest")
        if model.tags['task'] == 'image-classification': # choose an image task
            classification_models.append(model.name)
    
    classification_models
    

    إخراج:

    ['google-vit-base-patch16-224',
     'microsoft-swinv2-base-patch4-window12-192-22k',
     'facebook-deit-base-patch16-224',
     'microsoft-beit-base-patch16-224-pt22k-ft22k']
    

    سيؤدي استخدام أي نموذج HuggingFace أو MMDetection إلى تشغيل التشغيل باستخدام مكونات البنية الأساسية لبرنامج ربط العمليات التجارية. إذا تم استخدام كل من النماذج القديمة و HuggingFace/MMdetection، فسيتم تشغيل جميع عمليات التشغيل/الإصدارات التجريبية باستخدام المكونات.

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

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    إذا كنت ترغب في استخدام قيم المعلمات الفائقة الافتراضية لبنية معينة (على سبيل المثال yolov5)، يمكنك تحديدها باستخدام مفتاح model_name في قسم training_parameters. على سبيل المثال،

    training_parameters:
        model_name: yolov5
    

    مسح المعلمات الفائقة للنموذج يدويا

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

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    search_space:
      - model_name:
          type: choice
          values: [yolov5]
        learning_rate:
          type: uniform
          min_value: 0.0001
          max_value: 0.01
        model_size:
          type: choice
          values: [small, medium]
    
      - model_name:
          type: choice
          values: [fasterrcnn_resnet50_fpn]
        learning_rate:
          type: uniform
          min_value: 0.0001
          max_value: 0.001
        optimizer:
          type: choice
          values: [sgd, adam, adamw]
        min_size:
          type: choice
          values: [600, 800]
    

    تحديد مساحة البحث عن المعلمة

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

    أساليب أخذ العينات للمسح

    عند مسح المعلمات الفائقة، عليك تحديد أسلوب أخذ العينات لاستخدامه للمسح على مساحة المعلمة المحددة. يتم حاليًا دعم أساليب أخذ العينات التالية مع المعلمة sampling_algorithm:

    نوع أخذ العينات صيغة أوامر وظيفة AutoML
    أخذ عينات عشوائية random
    أخذ عينات الشبكة grid
    أخذ العينات البايزية bayesian

    إشعار

    حاليا يدعم أخذ العينات العشوائية والشبكية فقط مسافات المعلمات الفائقة الشرطية.

    نُهج الإنهاء المبكر

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

    نهج الإنهاء المبكر صيغة أوامر وظيفة AutoML
    سياسة اللصوص الإصدار 2 من CLI: bandit
    الإصدار 2 من SDK: BanditPolicy()
    نهج الإيقاف الوسيط الإصدار 2 من CLI: median_stopping
    الإصدار 2 من SDK: MedianStoppingPolicy()
    نهج تحديد الاقتطاع الإصدار 2 من CLI: truncation_selection
    الإصدار 2 من SDK: TruncationSelectionPolicy()

    تعرّف على المزيد حول كيفية تكوين نهج الإنهاء المبكر لمسح المعلمات الفائقة.

    إشعار

    للحصول على عينة تكوين مسح كاملة، يرجى الرجوع إلى هذا البرنامج التعليمي.

    يمكنك تكوين جميع المعلمات ذات الصلة بالمسح كما هو موضح في المثال التالي.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    sweep:
      sampling_algorithm: random
      early_termination:
        type: bandit
        evaluation_interval: 2
        slack_factor: 0.2
        delay_evaluation: 6
    

    الإعدادات الثابتة

    يمكنك تمرير الإعدادات أو المعلمات الثابتة التي لا تتغير أثناء مسح مساحة المعلمة كما هو موضح في المثال التالي.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    training_parameters:
      early_stopping: True
      evaluation_frequency: 1
    

    زيادة البيانات

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

    المهمة مجموعة البيانات المتأثرة تطبيق تقنية (تقنيات) زيادة البيانات
    تصنيف الصور (متعدد الفئات ومتعدد الملصقات) التدريب


    التحقق من الصحة واختباره
    تغيير الحجم والقص العشوائي، والعكس الأفقي، وتشويه الألوان (السطوع والتباين والتشبع واللون)، والتطبيع باستخدام متوسط ImageNet من خلال القناة والانحراف المعياري


    تغيير الحجم وقص المركز والتسوية
    كشف العنصر وتجزئة المثيل التدريب

    التحقق من الصحة واختباره
    اقتصاص عشوائي حول المربعات المحيطة، والتوسيع، والعكس الأفقي، والتطبيع، وتغيير الحجم


    التسوية وتغيير الحجم
    كشف العنصر باستخدام yolov5 التدريب

    التحقق من الصحة واختباره
    فسيفساء، أفين عشوائي (تدوير، ترجمة، مقياس، مقص)، انعكاس أفقي


    تغيير حجم تنسيق letterbox

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

    1. apply_mosaic_for_yolo: هذه العلامة خاصة فقط بنموذج Yolo. يؤدي تعيينه إلى False إلى إيقاف تشغيل زيادة بيانات الفسيفساء، والتي يتم تطبيقها في وقت التدريب.
    2. apply_automl_train_augmentations: يؤدي تعيين هذه العلامة إلى خطأ إلى إيقاف تشغيل الزيادة المطبقة أثناء وقت التدريب لنماذج الكشف عن الكائنات وتجزئة المثيل. للحصول على عمليات زيادة، راجع التفاصيل في الجدول أعلاه.
      • بالنسبة لنموذج الكشف عن الكائنات غير yolo ونماذج تجزئة المثيل، توقف هذه العلامة عمليات التعزيز الثلاثة الأولى فقط. على سبيل المثال: اقتصاص عشوائي حول المربعات المحيطة، والتوسيع، والعكس الأفقي. لا يزال يتم تطبيق التطبيع وتغيير حجم الزيادة بغض النظر عن هذه العلامة.
      • بالنسبة لنموذج Yolo، توقف هذه العلامة عن تكبيرات الزعانف العشوائية والأفقية.

    يتم دعم هاتين العلامتين عبر advanced_settings ضمن training_parameters ويمكن التحكم فيهما بالطريقة التالية.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    training_parameters:
      advanced_settings: >
        {"apply_mosaic_for_yolo": false}
    
    training_parameters:
      advanced_settings: >
        {"apply_automl_train_augmentations": false}
    

    لاحظ أن هاتين العلامتين مستقلتان عن بعضهما البعض ويمكن استخدامهما أيضا في تركيبة باستخدام الإعدادات التالية.

    training_parameters:
     advanced_settings: >
       {"apply_automl_train_augmentations": false, "apply_mosaic_for_yolo": false}
    

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

    تدريب تزايدي (اختياري)

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

    تمرير نقطة التحقق عبر معرف الوظيفة

    يمكنك تمرير معرف الوظيفة الذي تريد تحميل نقطة التحقق منه.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    training_parameters:
      checkpoint_run_id : "target_checkpoint_run_id"
    

    إرسال وظيفة AutoML

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    لإرسال وظيفة AutoML، يمكنك تشغيل أمر CLI v2 التالي مع المسار إلى ملف .yml واسم مساحة العمل ومجموعة الموارد ومعرّف الاشتراك.

    az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    المخرجات ومقاييس التقييم

    تنشئ مهام التدريب الآلي على التعلم الآلي ملفات نموذج الإخراج ومقاييس التقييم والسجلات وبيانات التوزيع الاصطناعية مثل ملف التسجيل وملف البيئة. يمكن عرض هذه الملفات والمقاييس من علامة تبويب المخرجات والسجلات والمقاييس للوظائف التابعة.

    تلميح

    تحقق من كيفية الانتقال إلى نتائج المهمة من قسم عرض نتائج المهمة.

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

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

    بمجرد اكتمال المهمة، يمكنك تسجيل النموذج الذي تم إنشاؤه من أفضل تجربة (التكوين الذي أدى إلى أفضل مقياس أساسي). يمكنك إما تسجيل النموذج بعد التنزيل أو عن طريق تحديد مسار azureml مع معرّف الوظيفة المقابل. ملاحظة: عندما تريد تغيير إعدادات الاستدلال الموضحة أدناه، تحتاج إلى تنزيل النموذج وتغيير settings.json والتسجيل باستخدام مجلد النموذج المحدث.

    الحصول على أفضل تجربة

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    CLI example not available, please use Python SDK.
    

    تسجيل النموذج

    سجّل النموذج إما باستخدام مسار azureml أو المسار الذي تم تنزيله محليًا.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

     az ml model create --name od-fridge-items-mlflow-model --version 1 --path azureml://jobs/$best_run/outputs/artifacts/outputs/mlflow-model/ --type mlflow_model --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    بعد تسجيل النموذج الذي تريد استخدامه، يمكنك توزيعه باستخدام نقطة النهاية المُدارة عبر الإنترنت deploy-managed-online-endpoint

    تكوين نقطة النهاية عبر الإنترنت

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    $schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
    name: od-fridge-items-endpoint
    auth_mode: key
    

    أنشئ نقطة النهاية

    باستخدام الذي MLClient تم إنشاؤه سابقا، نقوم بإنشاء نقطة النهاية في مساحة العمل. يبدأ هذا الأمر إنشاء نقطة النهاية ويعيد استجابة تأكيد أثناء استمرار إنشاء نقطة النهاية.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    az ml online-endpoint create --file .\create_endpoint.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    تكوين التوزيع عبر الإنترنت

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

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    name: od-fridge-items-mlflow-deploy
    endpoint_name: od-fridge-items-endpoint
    model: azureml:od-fridge-items-mlflow-model@latest
    instance_type: Standard_DS3_v2
    instance_count: 1
    liveness_probe:
        failure_threshold: 30
        success_threshold: 1
        timeout: 2
        period: 10
        initial_delay: 2000
    readiness_probe:
        failure_threshold: 10
        success_threshold: 1
        timeout: 10
        period: 10
        initial_delay: 2000 
    

    إنشاء النشر

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

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    az ml online-deployment create --file .\create_deployment.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    تحديث نسبة استخدام الشبكة:

    يُعيّن التوزيع الحالي بشكل افتراضي لتلقي 0% من نسبة استخدام الشبكة. يمكنك تعيين النسبة المئوية لنسبة استخدام الشبكة التي يجب أن يتلقاها التوزيع الحالي. مجموع النسب المئوية لنسبة استخدام الشبكة لجميع عمليات التوزيع ذات نقطة نهاية واحدة يجب ألا يتجاوز 100٪.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    az ml online-endpoint update --name 'od-fridge-items-endpoint' --traffic 'od-fridge-items-mlflow-deploy=100' --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]
    

    بدلاً من ذلك، يمكنك توزيع النموذج من واجهة مستخدم استوديو التعلم الآلي من Microsoft Azure. انتقل إلى النموذج الذي ترغب في نشره في علامة تبويب النماذج لوظيفة التعلم الآلي المؤتمت وحدد نشر وحدد Deploy to real-time endpoint .

    Screenshot of how the Deployment page looks like after selecting the Deploy option..

    هكذا تبدو صفحة "المراجعة". يمكننا تحديد نوع المثيل وعدد المثيلات وتعيين نسبة استخدام الشبكة للتوزيع الحالي.

    Screenshot of how the top of review page looks like after selecting the options to deploy.. Screenshot of how the bottom of review page looks like after selecting the options to deploy..

    تحديث إعدادات الاستدلال

    نزّلنا في الخطوة السابقة ملف mlflow-model/artifacts/settings.json من أفضل نموذج. والذي يمكن استخدامه لتحديث إعدادات الاستدلال قبل تسجيل النموذج. على الرغم من أنه من المستحسن استخدام نفس المعلمات مثل التدريب للحصول على أفضل أداء.

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

    المهمة اسم المعلمة الإعداد الافتراضي
    تصنيف الصور (متعدد الفئات ومتعدد الملصقات) valid_resize_size
    valid_crop_size
    256
    224
    كشف الكائنات min_size
    max_size
    box_score_thresh
    nms_iou_thresh
    box_detections_per_img
    600
    1333
    0.3
    0.5
    100
    الكشف عن العناصر باستخدام yolov5 img_size
    model_size
    box_score_thresh
    nms_iou_thresh
    640
    متوسطة
    0.1
    0.5
    تجزئة مثيل الصورة min_size
    max_size
    box_score_thresh
    nms_iou_thresh
    box_detections_per_img
    mask_pixel_score_threshold
    max_number_of_polygon_points
    export_as_image
    image_type
    600
    1333
    0.3
    0.5
    100
    0.5
    100
    خطأ
    JPG

    للحصول على وصف مفصل حول المعلمات الفائقة الخاصة بالمهمة، راجع Hyperparameters لمهام رؤية الكمبيوتر في التعلم الآلي التلقائي.

    إذا كنت تريد استخدام التجانب، وتريد التحكم في سلوك التجانب، تتوفر المعلمات التالية: tile_grid_size وtile_overlap_ratio وtile_predictions_nms_thresh. لمزيد من التفاصيل حول هذه المعلمات، تحقق من تدريب نموذج صغير للكشف عن الكائنات باستخدام AutoML.

    اختبر التوزيع

    تحقق من قسم اختبار التوزيع هذا لاختبار التوزيع وتصور الاكتشافات من النموذج.

    إنشاء تفسيرات للتنبؤات

    هام

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

    تحذير

    يتم دعم Model Explainability فقط للتصنيفمتعدد الفئات والتصنيف متعدد التسميات.

    بعض مزايا استخدام الذكاء الاصطناعي القابلة للشرح (XAI) مع AutoML للصور:

    • تحسين الشفافية في تنبؤات نموذج الرؤية المعقدة
    • يساعد المستخدمين على فهم الميزات/وحدات البكسل المهمة في صورة الإدخال التي تساهم في تنبؤات النموذج
    • يساعد في استكشاف أخطاء النماذج وإصلاحها
    • يساعد في اكتشاف التحيز

    تفسيرات

    التفسيرات هي سمات الميزة أو الأوزان المعطاة لكل بكسل في صورة الإدخال بناء على مساهمتها في تنبؤ النموذج. يمكن أن يكون كل وزن سالبا (مرتبطا سلبا بالتنبؤ) أو موجبا (مرتبطا بشكل إيجابي بالتنبؤ). يتم حساب هذه الإسنادات مقابل الفئة المتوقعة. بالنسبة للتصنيف متعدد الفئات، يتم إنشاء مصفوفة إسناد واحدة بالضبط من الحجم [3, valid_crop_size, valid_crop_size] لكل عينة، بينما بالنسبة للتصنيف متعدد التسميات، يتم إنشاء مصفوفة الإسناد من الحجم [3, valid_crop_size, valid_crop_size] لكل تسمية/فئة متوقعة لكل عينة.

    باستخدام الذكاء الاصطناعي القابلة للتفسير في AutoML للصور على نقطة النهاية المنشورة، يمكن للمستخدمين الحصول على مرئيات للتفسيرات (الإسنادات متراكبة على صورة إدخال) و/أو الإسنادات (صفيف متعدد الأبعاد من الحجم [3, valid_crop_size, valid_crop_size]) لكل صورة. وبصرف النظر عن المرئيات، يمكن للمستخدمين أيضا الحصول على مصفوفات الإسناد للحصول على مزيد من التحكم في التفسيرات (مثل إنشاء تصورات مخصصة باستخدام الإسنادات أو فحص أجزاء من الإسنادات). تستخدم جميع خوارزميات التفسير صور مربعة مقتصة بحجم valid_crop_size لإنشاء السمات.

    يمكن إنشاء التفسيرات إما من نقطة النهاية عبر الإنترنت أو نقطة نهاية الدفعة. بمجرد الانتهاء من النشر، يمكن استخدام نقطة النهاية هذه لإنشاء تفسيرات للتنبؤات. في عمليات النشر عبر الإنترنت، تأكد من تمرير request_settings = OnlineRequestSettings(request_timeout_ms=90000) المعلمة إلى ManagedOnlineDeployment وتعيين request_timeout_ms إلى قيمتها القصوى لتجنب مشكلات المهلة أثناء إنشاء تفسيرات (راجع قسم تسجيل النموذج ونشره). بعض أساليب الشرح (XAI) مثل xrai استهلاك المزيد من الوقت (خصيصا للتصنيف متعدد التسميات لأننا بحاجة إلى إنشاء إسنادات و/أو مرئيات مقابل كل تسمية متوقعة). لذلك، نوصي بأي مثيل GPU للحصول على تفسيرات أسرع. لمزيد من المعلومات حول مخطط الإدخال والإخراج لإنشاء تفسيرات، راجع مستندات المخطط.

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

    يصف الجدول التالي معلمات ضبط خوارزمية قابلية الشرح الخاصة ب XRAI والتدرجات المتكاملة. لا يتطلب توفير الخلفية الموجه وكاميرا الدرجات الإرشادية أي معلمات ضبط.

    خوارزمية XAI معلمات محددة للخوارزمية القيم الافتراضية
    xrai 1. n_steps: عدد الخطوات المستخدمة بواسطة أسلوب التقريب. يؤدي العدد الأكبر من الخطوات إلى تقريب أفضل للإسنادات (التفسيرات). نطاق n_steps هو [2، inf)، ولكن يبدأ أداء الإسنادات في التقارب بعد 50 خطوة.
    Optional, Int

    2. xrai_fast: ما إذا كنت تريد استخدام إصدار أسرع من XRAI. إذا ، Trueفإن وقت الحساب للتفسيرات أسرع ولكنه يؤدي إلى تفسيرات أقل دقة (الإسنادات)
    Optional, Bool
    n_steps = 50
    xrai_fast = True
    integrated_gradients 1. n_steps: عدد الخطوات المستخدمة بواسطة أسلوب التقريب. يؤدي العدد الأكبر من الخطوات إلى إسنادات أفضل (تفسيرات). نطاق n_steps هو [2، inf)، ولكن يبدأ أداء الإسنادات في التقارب بعد 50 خطوة.
    Optional, Int

    2. approximation_method: طريقة لتقريب التكامل. أساليب التقريب المتوفرة هي riemann_middle و gausslegendre.
    Optional, String
    n_steps = 50
    approximation_method = riemann_middle

    تستخدم خوارزمية XRAI داخليا تدرجات متكاملة. لذلك، n_steps المعلمة مطلوبة من قبل كل من التدرجات المتكاملة وخوارزميات XRAI. يستهلك عدد أكبر من الخطوات مزيدا من الوقت لتقريب التفسيرات وقد يؤدي ذلك إلى حدوث مشكلات في المهلة على نقطة النهاية عبر الإنترنت.

    نوصي باستخدام خوارزميات التدرجات المتدرجة الإرشادية > XRAI > GradCAM > المتكاملة للحصول على تفسيرات أفضل، بينما > يوصى باستخدام التدرجات > المتدرجة المتكاملة ل GradCAM الإرشادية GradCAM > للحصول على تفسيرات أسرع بالترتيب المحدد.

    يبدو نموذج الطلب إلى نقطة النهاية عبر الإنترنت كما يلي. ينشئ هذا الطلب تفسيرات عند model_explainability تعيين إلى True. ينشئ الطلب التالي مرئيات وإسنادات باستخدام إصدار أسرع من خوارزمية XRAI مع 50 خطوة.

    import base64
    import json
    
    def read_image(image_path):
        with open(image_path, "rb") as f:
            return f.read()
    
    sample_image = "./test_image.jpg"
    
    # Define explainability (XAI) parameters
    model_explainability = True
    xai_parameters = {"xai_algorithm": "xrai",
                      "n_steps": 50,
                      "xrai_fast": True,
                      "visualizations": True,
                      "attributions": True}
    
    # Create request json
    request_json = {"input_data": {"columns":  ["image"],
                                   "data": [json.dumps({"image_base64": base64.encodebytes(read_image(sample_image)).decode("utf-8"),
                                                        "model_explainability": model_explainability,
                                                        "xai_parameters": xai_parameters})],
                                   }
                    }
    
    request_file_name = "sample_request_data.json"
    
    with open(request_file_name, "w") as request_file:
        json.dump(request_json, request_file)
    
    resp = ml_client.online_endpoints.invoke(
        endpoint_name=online_endpoint_name,
        deployment_name=deployment.name,
        request_file=request_file_name,
    )
    predictions = json.loads(resp)
    

    لمزيد من المعلومات حول إنشاء تفسيرات، راجع مستودع دفتر ملاحظات GitHub لعينات التعلم الآلي المؤتمتة.

    تفسير المرئيات

    تقوم نقطة النهاية المنشورة بإرجاع سلسلة الصور المشفرة base64 إذا تم تعيين كل من model_explainability و visualizations إلى True. فك ترميز سلسلة base64 كما هو موضح في دفاتر الملاحظات أو استخدام التعليمات البرمجية التالية لفك ترميز سلاسل الصور base64 وتصورها في التنبؤ.

    import base64
    from io import BytesIO
    from PIL import Image
    
    def base64_to_img(base64_img_str):
        base64_img = base64_img_str.encode("utf-8")
        decoded_img = base64.b64decode(base64_img)
        return BytesIO(decoded_img).getvalue()
    
    # For Multi-class classification:
    # Decode and visualize base64 image string for explanations for first input image
    # img_bytes = base64_to_img(predictions[0]["visualizations"])
    
    # For  Multi-label classification:
    # Decode and visualize base64 image string for explanations for first input image against one of the classes
    img_bytes = base64_to_img(predictions[0]["visualizations"][0])
    image = Image.open(BytesIO(img_bytes))
    

    توضح الصورة التالية تصور التفسيرات لنموذج صورة إدخال. Screenshot of visualizations generated by XAI for AutoML for images.

    يحتوي الشكل base64 الذي تم فك ترميزه على أربعة أقسام صور داخل شبكة 2 × 2.

    • الصورة في الزاوية العلوية اليمنى (0، 0) هي صورة الإدخال المقتصة
    • الصورة في الزاوية العلوية اليسرى (0، 1) هي خريطة التمثيل اللوني للإسنادات على مقياس ألوان bgyw (أزرق أخضر أصفر أبيض) حيث تكون مساهمة وحدات البكسل البيضاء في الفئة المتوقعة هي الأعلى والبكسل الأزرق هو الأدنى.
    • الصورة في الزاوية السفلية اليمنى (1، 0) هي خريطة التمثيل اللوني المخلوطة من السمات على صورة الإدخال المقتصة
    • الصورة في الزاوية السفلية اليسرى (1، 1) هي صورة الإدخال المقتصة مع أعلى 30 بالمائة من وحدات البكسل استنادا إلى درجات الإسناد.

    تفسير الإسنادات

    ترجع نقطة النهاية المنشورة الإسنادات إذا تم تعيين كل من model_explainability و attributions إلى True. لمزيد من التفاصيل، راجع دفاتر ملاحظات التصنيف متعدد الفئات والتصنيف متعدد التسميات.

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

    استخدم القيم و valid_crop_size الدقيقة valid_resize_size للنموذج المحدد لإنشاء التفسيرات (القيم الافتراضية هي 256 و 224 على التوالي). تستخدم التعليمات البرمجية التالية وظيفة مرئيات Captum لإنشاء مرئيات مخصصة. يمكن للمستخدمين الاستفادة من أي مكتبة أخرى لإنشاء مرئيات. لمزيد من التفاصيل، يرجى الرجوع إلى الأدوات المساعدة لتصور captum.

    import colorcet as cc
    import numpy as np
    from captum.attr import visualization as viz
    from PIL import Image
    from torchvision import transforms
    
    def get_common_valid_transforms(resize_to=256, crop_size=224):
    
        return transforms.Compose([
            transforms.Resize(resize_to),
            transforms.CenterCrop(crop_size)
        ])
    
    # Load the image
    valid_resize_size = 256
    valid_crop_size = 224
    sample_image = "./test_image.jpg"
    image = Image.open(sample_image)
    # Perform common validation transforms to get the image used to generate attributions
    common_transforms = get_common_valid_transforms(resize_to=valid_resize_size,
                                                    crop_size=valid_crop_size)
    input_tensor = common_transforms(image)
    
    # Convert output attributions to numpy array
    
    # For Multi-class classification:
    # Selecting attribution matrix for first input image
    # attributions = np.array(predictions[0]["attributions"])
    
    # For  Multi-label classification:
    # Selecting first attribution matrix against one of the classes for first input image
    attributions = np.array(predictions[0]["attributions"][0])
    
    # visualize results
    viz.visualize_image_attr_multiple(np.transpose(attributions, (1, 2, 0)),
                                      np.array(input_tensor),
                                      ["original_image", "blended_heat_map"],
                                      ["all", "absolute_value"],
                                      show_colorbar=True,
                                      cmap=cc.cm.bgyw,
                                      titles=["original_image", "heatmap"],
                                      fig_size=(12, 12))
    

    مجموعات البيانات الكبيرة

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

    هام

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

    تدريب متعدد GPU ومتعددة العقد

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

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    properties:
      node_count_per_trial: "2"
    

    دفق ملفات الصور من التخزين

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

    إشعار

    إذا تم تمكين الدفق، فتأكد من وجود حساب تخزين Azure في نفس المنطقة مثل الحساب لتقليل التكلفة وزمن الانتقال.

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    training_parameters:
      advanced_settings: >
        {"stream_image_files": true}
    

    مثال دفاتر الملاحظات

    راجع أمثلة التعليمات البرمجية التفصيلية وحالات الاستخدام في مستودع دفتر الملاحظات GitHub لعينات التعلم الآلي. تحقق من المجلدات باستخدام بادئة "automl-image-" للحصول على عينات خاصة بإنشاء نماذج رؤية الكمبيوتر.

    أمثلة على التعليمات البرمجية

    راجع الأمثلة التفصيلية للتعليمات البرمجية وحالات الاستخدام في مستودع azureml-examples لعينات التعلم الآلي.

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