مشاركة البيانات عبر مساحات العمل باستخدام السجلات (معاينة)

يتيح لك سجل Azure التعلم الآلي التعاون عبر مساحات العمل داخل مؤسستك. باستخدام السجلات، يمكنك مشاركة النماذج والمكونات والبيئات والبيانات. تعد مشاركة البيانات مع السجلات حاليا ميزة معاينة. في هذه المقالة، ستتعرف على كيفية:

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

هام

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

لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

السيناريو الرئيسي الذي تمت معالجته عن طريق مشاركة البيانات باستخدام سجل Azure التعلم الآلي

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

تتضمن الأمثلة ما يلي:

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

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

السيناريوهات التي لم تتم معالجتها عن طريق مشاركة البيانات باستخدام سجل Azure التعلم الآلي

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

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

أنواع أصول البيانات التي يدعمها سجل التعلم الآلي Azure

تلميح

تحقق من السيناريوهات المتعارفة التالية عند تحديد ما إذا كنت تريد استخدام uri_fileأو uri_folderأو mltable للسيناريو الخاص بك.

يمكنك إنشاء ثلاثة أنواع من أصول البيانات:

نوع V2 API سيناريو متعارف عليه
ملف: الرجوع إلى ملف واحد uri_file قراءة/كتابة ملف واحد - يمكن أن يحتوي الملف على أي تنسيق.
المجلد: الرجوع إلى مجلد واحد uri_folder يجب قراءة/كتابة دليل ملفات parquet/CSV في Pandas/Spark. التعلم العميق مع الصور والنص والصوت وملفات الفيديو الموجودة في دليل.
الجدول: الرجوع إلى جدول بيانات mltable لديك مخطط معقد يخضع للتغييرات المتكررة، أو تحتاج إلى مجموعة فرعية من البيانات الجدولية الكبيرة.

المسارات التي يدعمها سجل التعلم الآلي Azure

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

تلميح

"محلي" يعني التخزين المحلي للكمبيوتر الذي تستخدمه. على سبيل المثال، إذا كنت تستخدم كمبيوتر محمول، محرك الأقراص المحلي. إذا كان مثيل حساب Azure التعلم الآلي، فإن محرك الأقراص "المحلي" لمثيل الحساب.

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

قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:

  • الإلمام بسجلات Azure التعلم الآلي ومفاهيم البيانات في Azure التعلم الآلي.

  • سجل التعلم الآلي Azure لمشاركة البيانات. لإنشاء سجل، راجع التعرف على كيفية إنشاء سجل.

  • مساحة عمل للتعلم الآلي من Microsoft Azure. إذا لم يكن لديك واحدة، فاستخدم الخطوات الواردة في مقالة التشغيل السريع: إنشاء موارد مساحة العمل لإنشاء واحدة.

    هام

    يجب أن تكون منطقة Azure (الموقع) حيث تقوم بإنشاء مساحة العمل الخاصة بك في قائمة المناطق المدعومة لسجل Azure التعلم الآلي.

  • البيئة والمكون الذي تم إنشاؤه من مقالة كيفية مشاركة النماذج والمكونات والبيئات.

  • Azure CLI والملحق ml أو Azure التعلم الآلي Python SDK v2:

    لتثبيت Azure CLI والملحق، راجع تثبيت CLI (v2) وإعداده واستخدامه.

    هام

    • تفترض أمثلة CLI في هذه المقالة أنك تستخدم Bash (أو متوافق). على سبيل المثال، من النظام الخاص بـ Linux أو نظام Windows الفرعي لـ Linux‬.

    • تفترض الأمثلة أيضا أنك قمت بتكوين الإعدادات الافتراضية ل Azure CLI بحيث لا تضطر إلى تحديد المعلمات للاشتراك أو مساحة العمل أو مجموعة الموارد أو الموقع. لتعيين الإعدادات الافتراضية، استخدم الأوامر التالية. استبدل المعلمات التالية بقيم التكوين:

      • استبدل <subscription> بمعرف اشتراك Azure الخاص بك.
      • استبدل <workspace> بمساحة عمل التعلم الآلي من Azure.
      • استبدل <resource-group> بمجموعة موارد Azure التي تحتوي على مساحة العمل لديك.
      • استبدل <location> بمنطقة Azure التي تحتوي على مساحة العمل.
      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
      

      بإمكانك معرفة ما الإعدادات الافتراضية الحالية باستخدام الأمر az configure -l.

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

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

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

بالنسبة لمثال CLI، قم بتغيير الدلائل إلى cli/jobs/pipelines-with-components/nyc_taxi_data_regression في النسخة المحلية من مستودع الأمثلة.

cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression

إنشاء اتصال SDK

تلميح

هذه الخطوة مطلوبة فقط عند استخدام Python SDK.

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

ml_client_workspace = MLClient( credential=credential,
    subscription_id = "<workspace-subscription>",
    resource_group_name = "<workspace-resource-group",
    workspace_name = "<workspace-name>")
print(ml_client_workspace)

ml_client_registry = MLClient(credential=credential,
                        registry_name="<REGISTRY_NAME>",
                        registry_location="<REGISTRY_REGION>")
print(ml_client_registry)

إنشاء بيانات في السجل

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

تلميح

يمكن استخدام نفس أمر az ml data create CLI لإنشاء بيانات في مساحة عمل أو سجل. يؤدي تشغيل الأمر باستخدام --workspace-name الأمر إلى إنشاء البيانات في مساحة عمل بينما يؤدي تشغيل الأمر مع --registry-name إلى إنشاء البيانات في السجل.

يوجد مصدر البيانات في مستودع الأمثلة الذي نسخته سابقا. ضمن النسخة المحلية، انتقل إلى مسار الدليل التالي: cli/jobs/pipelines-with-components/nyc_taxi_data_regression. في هذا الدليل، قم بإنشاء ملف YAML باسم data-registry.yml واستخدم YAML التالي كمحتويات الملف:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: transformed-nyc-taxt-data
description: Transformed NYC Taxi data created from local folder.
version: 1
type: uri_folder
path: data_transformed/

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

لإنشاء البيانات في السجل، استخدم az ml data create. في الأمثلة التالية، استبدل <registry-name> باسم السجل الخاص بك.

az ml data create --file data-registry.yml --registry-name <registry-name>

إذا تلقيت خطأ بأن البيانات بهذا الاسم والإصدار موجودة بالفعل في السجل، يمكنك إما تحرير version الحقل في data-registry.yml أو تحديد إصدار مختلف على CLI يتجاوز قيمة الإصدار في data-registry.yml.

# use shell epoch time as the version
version=$(date +%s)
az ml data create --file data-registry.yml --registry-name <registry-name> --set version=$version

تلميح

version=$(date +%s) إذا لم يقم الأمر بتعيين $version المتغير في بيئتك، فاستبدل $version برقم عشوائي.

احفظ name البيانات و version من إخراج az ml data create الأمر واستخدمها مع az ml data show الأمر لعرض تفاصيل الأصل.

az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>

تلميح

إذا استخدمت اسما أو إصدارا مختلفا للبيانات، فاستبدل --name المعلمتين و --version وفقا لذلك.

يمكنك أيضا استخدام az ml data list --registry-name <registry-name> لسرد جميع أصول البيانات في السجل.

إنشاء بيئة ومكون في السجل

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

تلميح

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

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

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

إشعار

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

تحقق من أنك في cli/jobs/pipelines-with-components/nyc_taxi_data_regression الدليل. قم بتحرير component القسم في أسفل train_job قسم من single-job-pipeline.yml الملف للإشارة إلى مكون التدريب وضمن path training_data القسم للإشارة إلى أصل البيانات الذي تم إنشاؤه في الأقسام السابقة. يوضح المثال التالي الشكل الذي single-job-pipeline.yml يبدو عليه بعد التحرير. <registry_name> استبدل باسم السجل الخاص بك:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset

jobs:
  train_job:
    type: command
    component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
    compute: azureml:cpu-cluster
    inputs:
      training_data: 
        type: uri_folder
        path: azureml://registries/<registry-name>/data/transformed-nyc-taxt-data/versions/1
    outputs:
      model_output: 
        type: mlflow_model
      test_data: 

تحذير

  • قبل تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية، تأكد من أن مساحة العمل التي ستقوم بتشغيل المهمة فيها موجودة في منطقة Azure التي يدعمها السجل الذي قمت بإنشاء البيانات فيه.
  • تأكد من أن مساحة العمل تحتوي على نظام مجموعة حساب بالاسم cpu-cluster أو قم بتحرير compute الحقل تحت jobs.train_job.compute باسم الحساب الخاص بك.

تشغيل مهمة البنية الأساسية لبرنامج ربط العمليات التجارية باستخدام az ml job create الأمر .

az ml job create --file single-job-pipeline.yml 

تلميح

إذا لم تقم بتكوين مساحة العمل الافتراضية ومجموعة الموارد كما هو موضح في قسم المتطلبات الأساسية، فستحتاج إلى تحديد --workspace-name المعلمتين و --resource-group للعمل az ml job create .

لمزيد من المعلومات حول تشغيل المهام، راجع المقالات التالية:

مشاركة البيانات من مساحة العمل إلى السجل

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

أولا، إنشاء أصل بيانات في مساحة العمل. تأكد من أنك في cli/assets/data الدليل. local-folder.yml يتم استخدام الموجود في هذا الدليل لإنشاء أصل بيانات في مساحة العمل. البيانات المحددة في هذا الملف متوفرة في cli/assets/data/sample-data الدليل. YAML التالي هو محتويات local-folder.yml الملف:

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: local-folder-example-titanic
description: Dataset created from local folder.
type: uri_folder
path: sample-data/

لإنشاء أصل البيانات في مساحة العمل، استخدم الأمر التالي:

az ml data create -f local-folder.yml

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

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

يوضح المثال التالي استخدام أمر المشاركة لمشاركة أصل بيانات. استبدل <registry-name> باسم السجل الذي ستتم مشاركة البيانات إليه.

az ml data share --name local-folder-example-titanic --version <version-in-workspace> --share-with-name <name-in-registry> --share-with-version <version-in-registry> --registry-name <registry-name>

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