تدريب النماذج باستخدام Azure التعلم الآلي CLI وSDK وواجهة برمجة تطبيقات REST

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

يوفر Azure التعلم الآلي طرقا متعددة لإرسال مهام التدريب على التعلم الآلي. في هذه المقالة، ستتعلم كيفية إرسال المهام باستخدام الطرق التالية:

  • ملحق Azure CLI للتعلم الآلي: الملحق ml ، يشار إليه أيضا باسم CLI v2.
  • Python SDK v2 ل Azure التعلم الآلي.
  • REST API: واجهة برمجة التطبيقات التي تم بناء CLI وSDK عليها.

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

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

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

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

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

تلميح

استخدم --depth 1 لنسخ آخر تثبيت فقط في المستودع، ما يقلل الوقت اللازم لإكمال العملية.

مثال الوظيفة

تستخدم الأمثلة في هذه المقالة مجموعة بيانات زهرة قزحية القزحية لتدريب نموذج MLFlow.

التدريب في السحابة

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

1. تعيين مساحة العمل

تلميح

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

للاتصال بمساحة العمل، تحتاج إلى معلمات المعرف - اشتراك ومجموعة موارد واسم مساحة العمل. ستستخدم هذه التفاصيل في MLClient من azure.ai.ml مساحة الاسم للحصول على مؤشر إلى مساحة عمل Azure التعلم الآلي المطلوبة. للمصادقة، يمكنك استخدام مصادقة Azure الافتراضية. افحص هذا المثال لمزيد من التفاصيل حول كيفية تكوين بيانات الاعتماد وتعيين مساحة عمل.

#import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace = '<AZUREML_WORKSPACE_NAME>'

#connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)

2. إنشاء مورد حساب للتدريب

إشعار

لتجربة الحوسبة بلا خادم، تخطي هذه الخطوة وانتقل إلى 3. إرسال مهمة التدريب.

نظام مجموعة حساب Azure التعلم الآلي هو مورد حساب مدار بالكامل يمكن استخدامه لتشغيل مهمة التدريب. في الأمثلة التالية، يتم إنشاء نظام مجموعة حساب يسمى cpu-compute .

from azure.ai.ml.entities import AmlCompute

# specify aml compute name.
cpu_compute_target = "cpu-cluster"

try:
    ml_client.compute.get(cpu_compute_target)
except Exception:
    print("Creating a new cpu compute target...")
    compute = AmlCompute(
        name=cpu_compute_target, size="STANDARD_D2_V2", min_instances=0, max_instances=4
    )
    ml_client.compute.begin_create_or_update(compute).result()

3. تقديم وظيفة التدريب

لتشغيل هذا البرنامج النصي، ستستخدم command الذي ينفذ main.py برنامج Python النصي الموجود ضمن ./sdk/python/jobs/single-step/lightgbm/iris/src/. سيتم تشغيل الأمر عن طريق إرساله ك job إلى Azure التعلم الآلي.

إشعار

لاستخدام الحوسبة بلا خادم، احذف compute="cpu-cluster" في هذه التعليمة البرمجية.

from azure.ai.ml import command, Input

# define the command
command_job = command(
    code="./src",
    command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
    environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
    inputs={
        "iris_csv": Input(
            type="uri_file",
            path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
        ),
        "learning_rate": 0.9,
        "boosting": "gbdt",
    },
    compute="cpu-cluster",
)
# submit the command
returned_job = ml_client.jobs.create_or_update(command_job)
# get a URL for the status of the job
returned_job.studio_url

في الأمثلة أعلاه، قمت بتكوين:

  • code - المسار حيث توجد التعليمة البرمجية لتشغيل الأمر
  • command - الأمر الذي يحتاج للتشغيل
  • environment - البيئة اللازمة لتشغيل البرنامج النصي للتدريب. في هذا المثال، نستخدم بيئة منسقة أو جاهزة يوفرها Azure التعلم الآلي تسمى AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu. نستخدم أحدث إصدار من هذه البيئة باستخدام @latest التوجيه . يمكنك أيضا استخدام بيئات مخصصة عن طريق تحديد صورة docker أساسية وتحديد conda yaml فوقها.
  • inputs - قاموس الإدخالات باستخدام أزواج من قيمة الاسم للأمر. المفتاح هو اسم للإدخال ضمن سياق الوظيفة والقيمة هي قيمة الإدخال. تتم الإشارة إلى الإدخالات ب command استخدام ${{inputs.<input_name>}} التعبير. لاستخدام الملفات أو المجلدات كمدخلات، يمكنك استخدام Input الفئة. لمزيد من المعلومات، راجع تعبيرات SDK وCLI v2.

لمزيد من المعلومات، راجع الوثائق المرجعية.

عند إرسال المهمة، يتم إرجاع عنوان URL إلى حالة الوظيفة في Azure التعلم الآلي studio. استخدم واجهة مستخدم الاستوديو لعرض تقدم المهمة. يمكنك أيضا استخدام returned_job.status للتحقق من الحالة الحالية للوظيفة.

تسجيل النموذج المدرب

توضح الأمثلة التالية كيفية تسجيل نموذج في مساحة عمل Azure التعلم الآلي.

تلميح

name يتم استخدام الخاصية التي تم إرجاعها بواسطة مهمة التدريب كجزء من المسار إلى النموذج.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

run_model = Model(
    path="azureml://jobs/{}/outputs/artifacts/paths/model/".format(returned_job.name),
    name="run-model-example",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL
)

ml_client.models.create_or_update(run_model)

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

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

لمزيد من الأمثلة، راجع مستودع GitHub لأمثلة Azure التعلم الآلي.

لمزيد من المعلومات حول أوامر Azure CLI أو فئات Python SDK أو واجهات برمجة تطبيقات REST المستخدمة في هذه المقالة، راجع الوثائق المرجعية التالية: