مشاركة عبر


إنشاء وتشغيل مسارات التعلم الآلي باستخدام المكونات مع SDK التعلم الآلي الإصدار 2

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

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

يدرب مسار المثال شبكة عصبية التفافية صغيرة من Keras لتصنيف الصور في مجموعة بيانات Fashion MNIST . يبدو المسار كما يلي:

لقطة شاشة تعرض رسما بيانيا للبنية الأساسية لبرنامج ربط العمليات التجارية لمثال تصنيف الصور.

في هذه المقالة، تكمل المهام التالية:

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

إذا لم يكن لديك اشتراك Azure، فبادر بإنشاء حساب مجاني قبل البدء. جرب الإصدار المجاني أو المدفوع الخاص بـ Azure Machine Learning اليوم.

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

  • مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحد، فأكمل البرنامج التعليمي إنشاء الموارد.

  • بيئة Python التي قمت بتثبيت Azure Machine Learning Python SDK v2 فيها. للحصول على إرشادات التثبيت، راجع بدء الاستخدام. هذه البيئة مخصصة لتعريف موارد التعلم الآلي من Azure والتحكم فيها وهي منفصلة عن البيئة المستخدمة في وقت التشغيل للتدريب.

  • نسخة من مستودع الأمثلة.

    لتشغيل أمثلة التدريب، قم أولا باستنساخ مستودع الأمثلة وانتقل إلى sdk الدليل:

    git clone --depth 1 https://github.com/Azure/azureml-examples
    cd azureml-examples/sdk
    

بدء جلسة عمل Python تفاعلية

تستخدم هذه المقالة Azure Machine Learning Python SDK لإنشاء مسار التعلم الآلي من Azure والتحكم فيه. تتم كتابة المقالة بناء على افتراض أنك ستقوم بتشغيل قصاصات التعليمات البرمجية بشكل تفاعلي إما في بيئة Python REPL أو دفتر ملاحظات Jupyter.

تستند هذه المقالة إلى دفتر ملاحظات image_classification_keras_minist_convnet.ipynb ، والذي يمكنك العثور عليه في sdk/python/jobs/pipelines/2e_image_classification_keras_minist_convnet دليل مستودع أمثلة التعلم الآلي من Azure .

استيراد المكتبات المطلوبة

استيراد جميع مكتبات التعلم الآلي من Azure التي تحتاجها لهذه المقالة:

# import required libraries
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential

from azure.ai.ml import MLClient
from azure.ai.ml.dsl import pipeline
from azure.ai.ml import load_component

تحضير بيانات الإدخال لوظيفة خط التدفق الخاص بك

تحتاج إلى إعداد بيانات الإدخال لمسار تصنيف الصور.

Fashion MNIST هي مجموعة بيانات من صور الموضة التي تنقسم إلى 10 فئات. كل صورة هي صورة تدرج الرمادي 28 × 28. هناك 60,000 صورة تدريب و10,000 صورة اختبار. كمشكلة في تصنيف الصور، تعد Fashion MNIST أكثر تحديا من قاعدة بيانات الأرقام المكتوبة بخط اليد من MNIST الكلاسيكية. يتم توزيعه في نفس النموذج الثنائي المضغوط مثل قاعدة البيانات الرقمية الأصلية المكتوبة بخط اليد .

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

إنشاء مكونات لبناء البنية الأساسية لبرنامج ربط العمليات التجارية

يمكن تقسيم مهمة تصنيف الصور إلى ثلاث خطوات: إعداد البيانات وتدريب النموذج وتسجيل النموذج.

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

  • إعداد البيانات للتدريب واختبارها.
  • تدريب شبكة عصبية لتصنيف الصور باستخدام بيانات التدريب.
  • سجل النموذج باستخدام بيانات الاختبار.

لكل مكون، تحتاج إلى إكمال الخطوات التالية:

  1. إعداد البرنامج النصي Python الذي يحتوي على منطق التنفيذ.

  2. تعريف واجهة المكون.

  3. أضف بيانات تعريف أخرى للمكون، بما في ذلك بيئة وقت التشغيل والأمر لتشغيل المكون.

يوضح القسم التالي كيفية إنشاء المكونات بطريقتين. بالنسبة للمكونين الأولين، يمكنك استخدام دالة Python. بالنسبة للمكون الثالث، يمكنك استخدام تعريف YAML.

إنشاء مكون إعداد البيانات

يحول المكون الأول في هذا المسار ملفات البيانات المضغوطة fashion_ds إلى ملفين .csv، أحدهما للتدريب والآخر لتسجيل النقاط. يمكنك استخدام دالة Python لتعريف هذا المكون.

إذا كنت تتابع جنبا إلى جنب مع المثال في مستودع أمثلة التعلم الآلي من Azure، فإن الملفات المصدر متوفرة بالفعل في prep المجلد. يحتوي هذا المجلد على ملفين لإنشاء المكون: prep_component.py، الذي يعرف المكون، و conda.yaml، الذي يحدد بيئة وقت التشغيل للمكون.

تعريف المكون باستخدام دالة Python

باستخدام الدالة command_component() كمصمم، يمكنك بسهولة تحديد واجهة المكون وبيانات التعريف الخاصة به والرمز الذي سيتم تشغيله من دالة Python. سيتم تحويل كل دالة Python مزخرفة إلى مواصفة ثابتة واحدة (YAML) يمكن لخدمة خط التدفق معالجتها.

# Converts MNIST-formatted files at the passed-in input path to training data output path and test data output path
import os
from pathlib import Path
from mldesigner import command_component, Input, Output


@command_component(
    name="prep_data",
    version="1",
    display_name="Prep Data",
    description="Convert data to CSV file, and split to training and test data",
    environment=dict(
        conda_file=Path(__file__).parent / "conda.yaml",
        image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
    ),
)
def prepare_data_component(
    input_data: Input(type="uri_folder"),
    training_data: Output(type="uri_folder"),
    test_data: Output(type="uri_folder"),
):
    convert(
        os.path.join(input_data, "train-images-idx3-ubyte"),
        os.path.join(input_data, "train-labels-idx1-ubyte"),
        os.path.join(training_data, "mnist_train.csv"),
        60000,
    )
    convert(
        os.path.join(input_data, "t10k-images-idx3-ubyte"),
        os.path.join(input_data, "t10k-labels-idx1-ubyte"),
        os.path.join(test_data, "mnist_test.csv"),
        10000,
    )


def convert(imgf, labelf, outf, n):
    f = open(imgf, "rb")
    l = open(labelf, "rb")
    o = open(outf, "w")

    f.read(16)
    l.read(8)
    images = []

    for i in range(n):
        image = [ord(l.read(1))]
        for j in range(28 * 28):
            image.append(ord(f.read(1)))
        images.append(image)

    for image in images:
        o.write(",".join(str(pix) for pix in image) + "\n")
    f.close()
    o.close()
    l.close()

تحدد التعليمات البرمجية السابقة مكونا باسم Prep Data العرض باستخدام @command_component مصمم الديكور:

  • name هو المعرف الفريد للمكون.

  • version هو الإصدار الحالي من المكون. يمكن أن يكون للمكون إصدارات متعددة.

  • display_name هو اسم عرض مألوف لمكون واجهة المستخدم. إنه ليس فريدا.

  • description عادة ما يصف المهمة التي يمكن للمكون إكمالها.

  • environment يحدد بيئة وقت التشغيل للمكون. تحدد بيئة هذا المكون صورة Docker وتشير إلى conda.yaml الملف.

    conda.yaml يحتوي الملف على جميع الحزم المستخدمة للمكون:

    name: imagekeras_prep_conda_env
    channels:
      - defaults
    dependencies:
      - python=3.7.11
      - pip=20.0
      - pip:
        - mldesigner==0.1.0b4
    
  • تحدد الوظيفة prepare_data_component إدخالاً واحداً لـ input_data ومخرجين لـ training_data وtest_data. input_data هو مسار بيانات الإدخال. training_data وtest_data هما مساران لبيانات الإخراج لبيانات التدريب وبيانات الاختبار.

  • يحول المكون البيانات من input_data إلى training_data .csv لتدريب البيانات .csv test_data لاختبار البيانات.

هذا هو الشكل الذي يبدو عليه المكون في واجهة مستخدم الاستوديو:

  • المكون هو كتلة في الرسم البياني لخط التدفق.
  • input_data، training_dataو، و test_data عبارة عن منافذ للمكون، والتي تتصل بمكونات أخرى لتدفق البيانات.

لقطة شاشة لمكون Prep Data في واجهة المستخدم والتعليمة البرمجية.

لقد أعددت الآن جميع ملفات المصدر للمكون Prep Data .

إنشاء مكون تدريب النموذج

في هذا القسم، ستقوم بإنشاء مكون لتدريب نموذج تصنيف الصور في دالة Python، كما فعلت مع Prep Data المكون.

نظرا لأن منطق التدريب أكثر تعقيدا، فستضع التعليمة البرمجية للتدريب في ملف Python منفصل.

الملفات المصدر لهذا المكون موجودة في train المجلد في مستودع أمثلة التعلم الآلي من Azure. يحتوي هذا المجلد على ثلاثة ملفات لتكوين المكون:

  • train.py يحتوي على المنطق لتدريب النموذج.
  • train_component.py يحدد واجهة المكون ويستورد الدالة الموجودة في train.py.
  • conda.yaml يحدد بيئة وقت التشغيل للمكون.

الحصول على برنامج نصي يحتوي على المنطق

train.py يحتوي الملف على دالة Python عادية تقوم بتنفيذ المنطق لتدريب شبكة Keras العصبية لتصنيف الصور. لعرض التعليمات البرمجية ، راجع ملف train.py على GitHub.

تعريف المكون باستخدام دالة Python

بعد تحديد دالة التدريب، يمكنك استخدام @command_component في Azure Machine Learning SDK v2 لتضمين وظيفتك كمكون يمكن استخدامه في مسارات التعلم الآلي من Azure:

import os
from pathlib import Path
from mldesigner import command_component, Input, Output


@command_component(
    name="train_image_classification_keras",
    version="1",
    display_name="Train Image Classification Keras",
    description="train image classification with keras",
    environment=dict(
        conda_file=Path(__file__).parent / "conda.yaml",
        image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
    ),
)
def keras_train_component(
    input_data: Input(type="uri_folder"),
    output_model: Output(type="uri_folder"),
    epochs=10,
):
    # avoid dependency issue, execution logic is in train() func in train.py file
    from train import train

    train(input_data, output_model, epochs)

تعرف التعليمات البرمجية السابقة مكونا له اسم Train Image Classification Keras العرض باستخدام @command_component.

  • keras_train_component تحدد الدالة إدخالا واحدا، ، input_dataلبيانات التدريب المصدر، وإدخالا واحدا، epochs، والذي يحدد عدد العهود التي يجب استخدامها أثناء التدريب، وإخراج واحد، output_model، والذي يحدد مسار الإخراج لملف النموذج. القيمة الافتراضية لـ epochs هي 10. منطق هذا المكون هو من الدالة train() في train.py.

يحتوي مكون نموذج التدريب على تكوين أكثر تعقيدا قليلا من مكون بيانات الإعداد. conda.yaml يبدو كما يلي:

name: imagekeras_train_conda_env
channels:
  - defaults
dependencies:
  - python=3.8
  - pip=20.2
  - pip:
    - mldesigner==0.1.0b12
    - azureml-mlflow==1.50.0
    - tensorflow==2.7.0
    - numpy==1.21.4
    - scikit-learn==1.0.1
    - pandas==1.3.4
    - matplotlib==3.2.2
    - protobuf==3.20.0

لقد أعددت الآن جميع الملفات المصدر للمكون Train Image Classification Keras .

إنشاء مكون تسجيل النموذج

في هذا القسم، يمكنك إنشاء مكون لتسجيل النموذج المدرب عبر مواصفات YAML والبرنامج النصي.

إذا كنت تتابع جنبا إلى جنب مع المثال في مستودع أمثلة التعلم الآلي من Azure، فإن الملفات المصدر متوفرة بالفعل في score المجلد. يحتوي هذا المجلد على ثلاثة ملفات لتكوين المكون:

  • score.py يحتوي على التعليمات البرمجية المصدر للمكون.
  • score.yaml يحدد الواجهة والتفاصيل الأخرى للمكون.
  • conda.yaml يحدد بيئة وقت التشغيل للمكون.

الحصول على برنامج نصي يحتوي على المنطق

score.py يحتوي الملف على دالة Python عادية تقوم بتنفيذ منطق نموذج التدريب:

from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.utils import to_categorical
from keras.callbacks import Callback
from keras.models import load_model

import argparse
from pathlib import Path
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
import mlflow


def get_file(f):

    f = Path(f)
    if f.is_file():
        return f
    else:
        files = list(f.iterdir())
        if len(files) == 1:
            return files[0]
        else:
            raise Exception("********This path contains more than one file*******")


def parse_args():
    # setup argparse
    parser = argparse.ArgumentParser()

    # add arguments
    parser.add_argument(
        "--input_data", type=str, help="path containing data for scoring"
    )
    parser.add_argument(
        "--input_model", type=str, default="./", help="input path for model"
    )

    parser.add_argument(
        "--output_result", type=str, default="./", help="output path for model"
    )

    # parse args
    args = parser.parse_args()

    # return args
    return args


def score(input_data, input_model, output_result):

    test_file = get_file(input_data)
    data_test = pd.read_csv(test_file, header=None)

    img_rows, img_cols = 28, 28
    input_shape = (img_rows, img_cols, 1)

    # Read test data
    X_test = np.array(data_test.iloc[:, 1:])
    y_test = to_categorical(np.array(data_test.iloc[:, 0]))
    X_test = (
        X_test.reshape(X_test.shape[0], img_rows, img_cols, 1).astype("float32") / 255
    )

    # Load model
    files = [f for f in os.listdir(input_model) if f.endswith(".h5")]
    model = load_model(input_model + "/" + files[0])

    # Log metrics of the model
    eval = model.evaluate(X_test, y_test, verbose=0)

    mlflow.log_metric("Final test loss", eval[0])
    print("Test loss:", eval[0])

    mlflow.log_metric("Final test accuracy", eval[1])
    print("Test accuracy:", eval[1])

    # Score model using test data
    y_predict = model.predict(X_test)
    y_result = np.argmax(y_predict, axis=1)

    # Output result
    np.savetxt(output_result + "/predict_result.csv", y_result, delimiter=",")


def main(args):
    score(args.input_data, args.input_model, args.output_result)


# run script
if __name__ == "__main__":
    # parse args
    args = parse_args()

    # call main function
    main(args)

تأخذ التعليمات البرمجية في score.py ثلاث وسيطات سطر الأوامر: input_dataو input_modelو.output_result يسجل البرنامج نموذج الإدخال باستخدام بيانات الإدخال ثم يقوم بإخراج النتيجة.

تعريف المكون عبر YAML

في هذا القسم، ستتعلم كيفية إنشاء مواصفات مكون بتنسيق مواصفات مكون YAML الصالح. يحدد هذا الملف المعلومات التالية:

  • بيانات التعريف. الاسم واسم العرض والإصدار والنوع وما إلى ذلك.
  • الواجهة المدخلات والمخرجات.
  • الأمر، التعليمات البرمجية، والبيئة. الأمر والرمز والبيئة المستخدمة لتشغيل المكون.
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command

name: score_image_classification_keras
display_name: Score Image Classification Keras
inputs:
  input_data: 
    type: uri_folder
  input_model:
    type: uri_folder
outputs:
  output_result:
    type: uri_folder
code: ./
command: python score.py --input_data ${{inputs.input_data}} --input_model ${{inputs.input_model}} --output_result ${{outputs.output_result}}
environment:
  conda_file: ./conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
  • name هو المعرف الفريد للمكون. اسم عرضها هو Score Image Classification Keras.
  • يحتوي هذا المكون على مدخلين ومخرج واحد.
  • يتم تعريف مسار التعليمات البرمجية المصدر في code القسم . عند تشغيل المكون في السحابة، سيتم تحميل جميع الملفات من هذا المسار كقطة للمكون.
  • command يحدد القسم الأمر الذي يجب تنفيذه عند تشغيل المكون.
  • environment يحتوي القسم على صورة Docker وملف conda YAML. الملف المصدر موجود في نموذج المستودع.

لديك الآن جميع الملفات المصدر لمكون تسجيل النموذج.

تحميل المكونات لإنشاء مسار

يمكنك استيراد مكون إعداد البيانات ومكون تدريب النموذج، والتي يتم تعريفها بواسطة وظائف Python، تماما مثل وظائف Python العادية.

تستورد التعليمات البرمجية prepare_data_component() التالية الدالتين و keras_train_component() من prep_component.py الملف في prep المجلد والملف train_component في train المجلد، على التوالي.

%load_ext autoreload
%autoreload 2

# load component function from component python file
from prep.prep_component import prepare_data_component
from train.train_component import keras_train_component

# print hint of components
help(prepare_data_component)
help(keras_train_component)

يمكنك استخدام الدالة load_component() لتحميل مكون النتيجة، الذي يتم تعريفه بواسطة YAML.

# load component function from yaml
keras_score_component = load_component(source="./score/score.yaml")

بناء خط التدفق الخاص بك

لقد قمت بإنشاء وتحميل جميع المكونات وبيانات الإدخال لإنشاء البنية الأساسية لبرنامج ربط العمليات التجارية. يمكنك الآن إنشاءها في البنية الأساسية لبرنامج ربط العمليات التجارية:

ملاحظه

لاستخدام الحوسبة بلا خادم، أضف from azure.ai.ml.entities import ResourceConfiguration إلى أعلى الملف. ثم استبدل:

  • default_compute=cpu_compute_target مع default_compute="serverless".
  • train_node.compute = gpu_compute_target مع train_node.resources = "ResourceConfiguration(instance_type="Standard_NC6s_v3",instance_count=2).
# define a pipeline containing 3 nodes: Prepare data node, train node, and score node
@pipeline(
    default_compute=cpu_compute_target,
)
def image_classification_keras_minist_convnet(pipeline_input_data):
    """E2E image classification pipeline with keras using python sdk."""
    prepare_data_node = prepare_data_component(input_data=pipeline_input_data)

    train_node = keras_train_component(
        input_data=prepare_data_node.outputs.training_data
    )
    train_node.compute = gpu_compute_target

    score_node = keras_score_component(
        input_data=prepare_data_node.outputs.test_data,
        input_model=train_node.outputs.output_model,
    )


# create a pipeline
pipeline_job = image_classification_keras_minist_convnet(pipeline_input_data=mnist_ds)

يحتوي المسار على حساب cpu_compute_targetافتراضي . إذا لم تحدد حسابا لعقدة معينة، تشغيل هذه العقدة على الحساب الافتراضي.

يحتوي المسار على إدخال على مستوى البنية الأساسية لبرنامج ربط العمليات التجارية، pipeline_input_data. يمكنك تعيين قيمة لإدخال البنية الأساسية لبرنامج ربط العمليات التجارية عند إرسال مهمة البنية الأساسية لبرنامج ربط العمليات التجارية.

يحتوي المسار على ثلاث عقد: prepare_data_nodeو train_nodeو.score_node

  • يستخدم input_data لـ prepare_data_node قيمة pipeline_input_data.

  • من input_datatrain_node هو training_data إخراج prepare_data_node.

  • من input_data هو إخراج ، و input_model هو من train_nodeoutput_model .prepare_data_nodetest_datascore_node

  • نظرا لتدريب train_node نموذج CNN، يمكنك تحديد حسابه ك gpu_compute_target. يمكن أن يؤدي القيام بذلك إلى تحسين أداء التدريب.

إرسال وظيفة خط التدفق الخاص بك

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

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

تكوين بيانات الاعتماد

ستستخدم DefaultAzureCredential للوصول إلى مساحة العمل. DefaultAzureCredential يجب أن يكون قادراً على التعامل مع معظم سيناريوهات مصادقة Azure SDK.

إذا DefaultAzureCredential لم يعمل لك، فشاهد مثال تكوين بيانات الاعتماد هذاوحزمة الهوية.

try:
    credential = DefaultAzureCredential()
    # Check if given credential can get token successfully.
    credential.get_token("https://management.azure.com/.default")
except Exception as ex:
    # Fall back to InteractiveBrowserCredential in case DefaultAzureCredential not work
    credential = InteractiveBrowserCredential()

الحصول على مقبض لمساحة عمل تحتوي على حساب

إنشاء كائن MLClient لإدارة خدمات التعلم الآلي من Azure. إذا كنت تستخدم حساب بلا خادم، فلن تحتاج إلى إنشاء هذه الحسابات.

# Get a handle to workspace
ml_client = MLClient.from_config(credential=credential)

# Retrieve an already attached Azure Machine Learning Compute.
cpu_compute_target = "cpu-cluster"
print(ml_client.compute.get(cpu_compute_target))
gpu_compute_target = "gpu-cluster"
print(ml_client.compute.get(gpu_compute_target))

هام

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

إرسال مهمة المسار إلى مساحة العمل

الآن بعد أن أصبح لديك مقبض لمساحة العمل الخاصة بك، يمكنك إرسال مهمة البنية الأساسية لبرنامج ربط العمليات التجارية:

pipeline_job = ml_client.jobs.create_or_update(
    pipeline_job, experiment_name="pipeline_samples"
)
pipeline_job

ترسل التعليمات البرمجية السابقة مهمة مسار تصنيف الصور هذه إلى تجربة تسمى pipeline_samples. يقوم تلقائيا بإنشاء التجربة إذا لم تكن موجودة. pipeline_input_data يستخدم fashion_ds.

تكتمل الدعوة لإرسال التجربة بسرعة. ينتج إخراجا مشابها لهذا:

التجربه اسم النوع الحالة صفحة التفاصيل
pipeline_samples sharp_pipe_4gvqx6h1fb خط انابيب اعداد الارتباط بأستوديو Azure Machine Learning.

يمكنك مراقبة تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية عن طريق تحديد الارتباط. أو يمكنك حظره حتى يكتمل عن طريق تشغيل هذه التعليمة البرمجية:

# wait until the job completes
ml_client.jobs.stream(pipeline_job.name)

هام

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

التحقق من المخرجات وتصحيح مسارك في واجهة المستخدم

يمكنك تحديد Link to Azure Machine Learning studio، وهي صفحة تفاصيل المهمة للبنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك. سترى الرسم البياني للبنية الأساسية لبرنامج ربط العمليات التجارية:

لقطة شاشة توضح صفحة تفاصيل مهمة التدفق.

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

(اختياري) تسجيل المكونات في مساحة العمل

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

try:
    # try get back the component
    prep = ml_client.components.get(name="prep_data", version="1")
except:
    # if not exists, register component using following code
    prep = ml_client.components.create_or_update(prepare_data_component)

# list all components registered in workspace
for c in ml_client.components.list():
    print(c)

يمكنك استخدام ml_client.components.get() للحصول على مكون مسجل حسب الاسم والإصدار. يمكنك استخدام ml_client.components.create_or_update() لتسجيل مكون تم تحميله مسبقا من دالة Python أو YAML.

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