أنشئ أصل البيانات

مكتمل

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

فهم أصول البيانات

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

فوائد استخدام أصول البيانات هي:

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

هناك ثلاثة أنواع رئيسية من أصول البيانات التي يمكنك استخدامها:

رسم تخطيطي للأنووع المختلفة من أصول البيانات في Azure التعلم الآلي.

  • ملف URI: يشير إلى ملف معين.
  • مجلد URI: يشير إلى مجلد.
  • MLTable: يشير إلى مجلد أو ملف، ويتضمن مخططا للقراءة كبيانات جدولية.

إشعار

URI يرمز إلى معرف الموارد الموحد ويقف على موقع تخزين على الكمبيوتر المحلي الخاص بك، أو Azure Blob أو Data Lake Storage، أو موقع https المتاح للجمهور، أو حتى مخزن بيانات مرفق.

متى تستخدم أصول البيانات

تكون أصول البيانات مفيدة للغاية عند تنفيذ مهام التعلم الآلي كوظائف Azure التعلم الآلي. كوظيفة، يمكنك تشغيل برنامج نصي Python يأخذ المدخلات وينشئ المخرجات. يمكن تحليل أصل البيانات كمدخل أو إخراج لوظيفة Azure التعلم الآلي.

دعونا نلقي نظرة على كل نوع من أنواع أصول البيانات وكيفية إنشائها وكيفية استخدام أصل البيانات في وظيفة.

إنشاء أصل بيانات ملف URI

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

المسارات المدعومة التي يمكنك استخدامها عند إنشاء أصل بيانات ملف URI هي:

  • محلي: ./<path>
  • تخزين Azure Blob: wasbs://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
  • Azure Data Lake Storage (الجيل 2): abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>
  • مخزن البيانات: azureml://datastores/<datastore_name>/paths/<folder>/<file>

هام

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

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

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

my_path = '<supported-path>'

my_data = Data(
    path=my_path,
    type=AssetTypes.URI_FILE,
    description="<description>",
    name="<name>",
    version="<version>"
)

ml_client.data.create_or_update(my_data)

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

تخيل أنك تقوم بإنشاء برنامج نصي Python تريد تشغيله كوظيفة، وقمت بتعيين قيمة معلمة input_data الإدخال لتكون أصل بيانات ملف URI (الذي يشير إلى ملف CSV). يمكنك قراءة البيانات عن طريق تضمين التعليمات البرمجية التالية في برنامج Python النصي الخاص بك:

import argparse
import pandas as pd

parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()

df = pd.read_csv(args.input_data)
print(df.head(10))

إذا كان أصل بيانات ملف URI يشير إلى نوع مختلف من الملفات، فستحتاج إلى استخدام التعليمات البرمجية Python المناسبة لقراءة البيانات. على سبيل المثال، إذا كنت تعمل مع ملفات JSON بدلا من ملفات CSV، فستستخدمها pd.read_json() بدلا من ذلك.

إنشاء أصل بيانات مجلد URI

يشير أصل بيانات مجلد URI إلى مجلد معين. وهو يعمل بشكل مشابه لأصل بيانات ملف URI ويدعم نفس المسارات.

لإنشاء أصل بيانات مجلد URI باستخدام Python SDK، يمكنك استخدام التعليمات البرمجية التالية:

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

my_path = '<supported-path>'

my_data = Data(
    path=my_path,
    type=AssetTypes.URI_FOLDER,
    description="<description>",
    name="<name>",
    version='<version>'
)

ml_client.data.create_or_update(my_data)

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

تخيل أنك تقوم بإنشاء برنامج نصي Python تريد تشغيله كوظيفة، وقمت بتعيين قيمة معلمة input_data الإدخال لتكون أصل بيانات مجلد URI (الذي يشير إلى ملفات CSV متعددة). يمكنك قراءة جميع ملفات CSV في المجلد وتسلسلها، والتي يمكنك القيام بها عن طريق تضمين التعليمات البرمجية التالية في البرنامج النصي Python الخاص بك:

import argparse
import glob
import pandas as pd

parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()

data_path = args.input_data
all_files = glob.glob(data_path + "/*.csv")
df = pd.concat((pd.read_csv(f) for f in all_files), sort=False)

اعتمادا على نوع البيانات التي تعمل معها، يمكن تغيير التعليمات البرمجية التي تستخدمها لقراءة الملفات.

إنشاء أصل بيانات MLTable

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

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

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

بالنسبة لبعض الميزات في Azure التعلم الآلي، مثل التعلم الآلي التلقائي، تحتاج إلى استخدام أصل بيانات MLTable، حيث يحتاج Azure التعلم الآلي إلى معرفة كيفية قراءة البيانات.

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

type: mltable

paths:
  - pattern: ./*.txt
transformations:
  - read_delimited:
      delimiter: ','
      encoding: ascii
      header: all_files_same_headers

لإنشاء أصل بيانات MLTable باستخدام Python SDK، يمكنك استخدام التعليمات البرمجية التالية:

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

my_path = '<path-including-mltable-file>'

my_data = Data(
    path=my_path,
    type=AssetTypes.MLTABLE,
    description="<description>",
    name="<name>",
    version='<version>'
)

ml_client.data.create_or_update(my_data)

عند توزيع أصل بيانات MLTable كمدخل إلى برنامج نصي Python تريد تشغيله كمهمة التعلم الآلي Azure، يمكنك تضمين التعليمات البرمجية التالية لقراءة البيانات:

import argparse
import mltable
import pandas

parser = argparse.ArgumentParser()
parser.add_argument("--input_data", type=str)
args = parser.parse_args()

tbl = mltable.load(args.input_data)
df = tbl.to_pandas_dataframe()

print(df.head(10))

يتمثل النهج الشائع في تحويل البيانات الجدولية إلى إطار بيانات Pandas. ومع ذلك، يمكنك أيضا تحويل البيانات إلى إطار بيانات Spark إذا كان ذلك يناسب حمل العمل بشكل أفضل.