تمييز البيانات في التعلم الآلي التلقائي

ينطبق على: Python SDK azureml v1

توضح هذه المقالة كيفية تخصيص إعدادات تمييز البيانات في Azure التعلم الآلي لتجارب التعلم الآلي التلقائي (AutoML).

هندسة الميزات والمميزات

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

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

في التعلم الآلي من Microsoft Azure، يتم تطبيق تقنيات تحجيم البيانات والتطبيع لتسهيل هندسة الميزات. بشكل جماعي، تسمى هذه التقنيات وهندسة الميزات هذه المميزة في تجارب التعلم الآلي الآلي (ML).

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

تفترض هذه المقالة أنك علي دراية بالفعل بكيفية تكوين تجربة التعلم الآلي التلقائي.

هام

تتطلب أوامر Python الموجودة في هذه المقالة أحدث إصدار من حزمة azureml-train-automl.

للحصول على معلومات حول التكوين، راجع المقالات الآتية:

تمييز التكوين

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

إشعار

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

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

يُظهر الجدول التالي الإعدادات المقبولة لـ featurization في فئة AutoMLConfig:

تكوين التمييز ‏‏الوصف
"featurization": 'auto' يشير إلى أنه كجزء من المعالجة المسبقة، يتم تنفيذ حواجز حماية البيانات وخطوات التكوين تلقائيًا. هذا الإعداد هو الافتراضي.
"featurization": 'off' يحدد أنه لا يجب القيام بخطوات التمييز تلقائيا.
"featurization": 'FeaturizationConfig' تحديد أن خطوات التمييز المخصصة لابد من استخدامها. تعرف على طريقة تخصيص التمييز.

التمييز التلقائي

يلخص الجدول التالي التقنيات التي يتم تطبيقها تلقائيًا على بياناتك. تُطبق هذه التقنيات للتجارب التي تم تكوينها باستخدام SDK أو واجهة مستخدم الاستوديو. لتعطيل هذا السلوك، قم بتعيين في العنصر "featurization": 'off' الخاص بك AutoMLConfig.

إشعار

إذا كنت تخطط لتصدير النماذج التي تم إنشاؤها بواسطة AutoML إلى نموذج ONNX، تُدعم خيارات التمييز المشار إليها بعلامة نجمية ("*") فقط بتنسيق ONNX. اعرف المزيد حول تحويل النماذج إلى ONNX.

خطوات التمييز ‏‏الوصف
إسقاط ميزات العلاقة الأساسية الكبيرة أو عدم وجود ميزات تباين* أسقِط هذه الميزات من مجموعات التدريب والتحقق من الصحة. تنطبق على الميزات التي تحتوي على كافة القيم المفقودة، بنفس القيمة عبر جميع الصفوف، أو ذات العلاقة الأساسية الكبيرة (على سبيل المثال، التجزئة أو المعرفات أو معرفات الرسومات الرسومية).
إسناد القيم المفقودة* أما بالنسبة للميزات الرقمية، احسب متوسط القيم في العمود.

وبالنسبة للميزات الفئوية، احسب القيمة الأكثر تكرارًا.
إنشاء المزيد من الميزات* لميزات «DateTime»: السنة والشهر واليوم ويوم الأسبوع ويوم السنة والربع وأسبوع السنة والساعة والدقيقة والثانية.

بالنسبة إلى مهام التنبؤ، يتم إنشاء ميزات «DateTime» الإضافية هذه: ISO year، نصف - نصف السنة، شهر التقويم كسلسلة، الأسبوع، يوم الأسبوع كسلسلة، يوم ربع السنة، يوم السنة، ص/ م (0 إذا كانت الساعة قبل الظهر (12 م)، 1 بخلاف ذلك)، ص/ م كسلسلة، ساعة من اليوم (أساس 12 ساعة)

وبالنسبة لميزات النص: تكرار المصطلح استناداً إلى «unigrams» و«bigrams» و«trigrams». تعرف على المزيد حول كيفية القيام بذلك بواسطة BERT.
التحويل والتشفير* تحويل الميزات الرقمية والتي تحتوي على قيم فريدة قليلة إلى ميزات فئوية.

يُستخدم الترميز السريع واحد للميزات الفئوية ذات العلاقة الأساسية القليلة. يُستخدم ترميز شفرة التجزئة السريع واحد للميزات الفئوية ذات العلاقة الأساسية القليلة.
تضمينات Word يقوم عارض النص بتحويل متجهات الرموز المميزة للنص إلى خطوط متجهة للجمل باستخدام نموذج مدرب مسبقًا. يُجمّع متجه تضمين كل كلمة في مستند مع الباقي لإنتاج متجه ميزة المستند.
مسافة نظام المجموعة تدريب نموذج تجميع k-means على كافة الأعمدة الرقمية. تنتج k ميزات جديدة (ميزة رقمية جديدة واحدة لكل مجموعة) بها مسافة كل عينة إلى النقطة المركزية لكل مجموعة.

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

التحجيم والمعالجة ‏‏الوصف
StandardScaleWrapper توحيد الميزات عن طريق إزالة الوسط والتحجيم إلى تباين الوحدة.
MinMaxScalar تحويل الميزات عن طريق تغيير حجم كل ميزة حسب الحد الأدنى والحد الأقصى للعمود.
MaxAbsScaler تحجيم كل ميزة بأقصى قيمة مطلقة لها.
RobustScalar تحجيم الميزات حسب نطاقها الكمي.
PCA تقليل الأبعاد الخطية باستخدام تحليل القيمة المفردة للبيانات لعرضها على مساحة أقل بعدا.
TruncatedSVD يقوم هذا المحول بإجراء تقليل الأبعاد الخطية باستخدام تحليل القيمة المفردة المقتطعة (SVD). على عكس PCA، لا يقوم هذا المقدر بتوسيط البيانات قبل حساب تحليل القيمة المفردة، ما يعني أنه يمكن أن يعمل مع مصفوفات scipy.sparse بكفاءة.
SparseNormalizer تتم إعادة تغيير حجم كل عينة (أي كل صف من مصفوفة البيانات) مع مكون غير صفري واحد على الأقل بشكل مستقل عن العينات الأخرى بحيث تساوي معيارها (l1 أو l2) واحدا.

حواجز حماية البيانات

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

تُطبق حواجز حماية البيانات:

  • بالنسبة لتجارب SDK: عند تحديد المعلمات "featurization": 'auto' أو validation=auto في الكائن الخاص بك AutoMLConfig
  • لتجارب الاستوديو: عند تمكين التمييز التلقائي

يمكنك مراجعة حواجز حماية البيانات للتجربة الخاصة بك:

  • من خلال تعيين show_output=True عند إرسال تجربة باستخدام SDK.
  • في الاستوديو، في علامة التبويب Data guardrails لتشغيل التعلم الآلي من Microsoft Azure التلقائي الخاص بك.

حالات حماية البيانات

تعرض حواجز حماية البيانات واحد من الحالات الثلاث:

حالة ‏‏الوصف
مرت لم يُكشف عن أي مشاكل في البيانات ولا يلزم اتخاذ أي إجراء من قبلك.
Done تم تطبيق التغييرات على البيانات الخاصة بك. نشجعك على مراجعة الإجراءات التصحيحية التي اتخذها التعلم الآلي من Microsoft Azure التلقائي، للتأكد من أن التغييرات تتوافق مع النتائج المتوقعة.
Alerted لقد تم الكشف عن مشكلة في البيانات ولكن تعذر إصلاحها. نشجعك على مراجعة المشكلة وإصلاحها.

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

يصف الجدول التالي حواجز حماية البيانات المدعومة حاليًا والحالات المقترنة التي قد تراها عند إرسال تجربتك:

درابزين حماية ‏الحالة حالة المشغل
تسجيل قيم الميزات المفقودة مرت


تم
لم يتم الكشف عن قيم ميزات مفقودة في بيانات تدريبك. تعرف على المزيد عن إسناد القيمة المفقودة.

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


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

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

تعين تكوين التحقق من الصحة إلى 'auto' وتحتوي بيانات التدريب على أكثر من 20,000 صف.
قُسمت بيانات الإدخال إلى مجموعة بيانات تدريب ومجموعة بيانات التحقق من الصحة للتحقق من صحة النموذج.
الكشف عن موازنة الفئة مرت




تنبيهك



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

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

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



تم
تم تحليل القيم المحددة (الأفق والتأخر والنافذة المتداولة)، ولم يتم الكشف عن أي مشاكل محتملة خارج الذاكرة. تعرف على المزيد حول تكوينات التنبؤ بالسلاسل الزمنية.

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


تم
حُللت السلسلة الزمنية، وتتم محاذاة جميع نقاط البيانات مع التردد المكتشف.

حُللت السلسلة الزمنية، وتم الكشف عن نقاط البيانات التي لا تتوافق مع التردد المكتشف. أُزيلت نقاط البيانات هذه من مجموعة البيانات.
التحقق المتقاطع تم لتقييم النموذج (النماذج) المدرب بواسطة AutoML بدقة، نستخدم مجموعة بيانات لم يتم تدريب النموذج عليها. من ثم، في حالة لم يقدم المستخدم مجموعة بيانات تحقق صريحة، يستخدم جزء من مجموعة بيانات التدريب لتحقيق ذلك. بالنسبة لمجموعات البيانات الأصغر (أقل من 20000 عينة)، يتم استخدام التحقق المتقاطع، وإلا يتم تقسيم مجموعة احتجاز واحدة من بيانات التدريب لتكون بمثابة مجموعة بيانات التحقق من الصحة. ومن ثم، بالنسبة لبيانات الإدخال الخاصة بك، نستخدم التحقق المتقاطع مع 10 طيات، إذا كان عدد عينات التدريب أقل من 1000، و3 طيات في جميع الحالات الأخرى.
عملية تقسيم بيانات Train-Test تم لتقييم النموذج (النماذج) المدرب بواسطة AutoML بدقة، نستخدم مجموعة بيانات لم يتم تدريب النموذج عليها. من ثم، في حالة لم يقدم المستخدم مجموعة بيانات تحقق صريحة، يستخدم جزء من مجموعة بيانات التدريب لتحقيق ذلك. بالنسبة لمجموعات البيانات الأصغر (أقل من 20000 عينة)، يتم استخدام التحقق المتقاطع، وإلا يتم تقسيم مجموعة احتجاز واحدة من بيانات التدريب لتكون بمثابة مجموعة بيانات التحقق من الصحة. ومن ثم، يتم تقسيم بيانات الإدخال الخاصة بك إلى مجموعة بيانات تدريب ومجموعة بيانات التحقق من صحة التعليق.
الكشف عن المعرف الخاص بالسلسلة الزمنية مرت


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

تم العثور على سلاسل زمنية متعددة في مجموعة البيانات، وتم إنشاء معرفات خاصة بالسلاسل الزمنية تلقائيًا لمجموعة البيانات الخاصة بك.
تجميع السلاسل الزمنية مرت


ثابت
تتم محاذاة التردد الخاص بمجموعة البيانات مع التردد المحدد للمستخدم. لم يتم إجراء التجميع.

جمعت البيانات لتتوافق مع التردد المقدم من المستخدم.
معالجة السلاسل القصيرة مرت


ثابت
تم كشف التعلم الآلي عن نقاط بيانات كافية لكل سلسلة في بيانات الإدخال لمواصلة التدريب.

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

تخصيص التمييز

بإمكانك تخصيص إعدادات التمييز للتأكد من أن البيانات والميزات المستخدمة لتدريب نموذج التعلم الآلي الخاص بك تؤدي إلى تنبؤات ذات صلة.

لتخصيص العلامات المميزة، حدد "featurization": FeaturizationConfig في العنصر الخاص بك AutoMLConfig. في حال كنت تستخدم استوديو التعلم الآلي من Microsoft Azure لتجربتك، فراجعمقالة الكيفية. لتخصيص تمييز أنواع مهام التنبؤات، فراجع كيفية التنبؤ.

التخصيصات المدعومة تشمل:

تخصيص تعريف
تحديث الغرض من العمود تجاوز نوع الميزة التي تم لها الكشف التلقائي للعمود المحدد.
تحديث معلمة المحول تحديث معلّمات المحول المحدد. يدعم حاليًا Imputer (المتوسط والأكثر تكرارا والوسيط) و HashOneHotEncoder.
إسقاط الأعمدة تحديد الأعمدة التي ينبغي إسقاطها من أن يتم تمييزها.
حظر المحولات تحديد محولات الكتلة لتستخدم في عملية التمييز.

إشعار

يتم إهمال وظيفة إسقاط الأعمدة اعتبارًا من الإصدار 1.19 من SDK. أسقِط الأعمدة من مجموعة البيانات الخاصة بك كجزء من تنظيف البيانات، قبل استهلاكها في تجربة التعلم الآلي من Microsoft Azure التلقائي.

إنشاء العنصر FeaturizationConfigباستخدام استدعاءات واجهة برمجة التطبيقات:

featurization_config = FeaturizationConfig()
featurization_config.blocked_transformers = ['LabelEncoder']
featurization_config.drop_columns = ['aspiration', 'stroke']
featurization_config.add_column_purpose('engine-size', 'Numeric')
featurization_config.add_column_purpose('body-style', 'CategoricalHash')
#default strategy mean, add transformer param for 3 columns
featurization_config.add_transformer_params('Imputer', ['engine-size'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['city-mpg'], {"strategy": "median"})
featurization_config.add_transformer_params('Imputer', ['bore'], {"strategy": "most_frequent"})
featurization_config.add_transformer_params('HashOneHotEncoder', [], {"number_of_bits": 3})

شفافية التمييز

يتم تطبيق كل نموذج تعلم آلي من Microsoft Azure تلقائي بشكل تلقائي. يتضمن التمييز هندسة الميزات التلقائية (عندما "featurization": 'auto') والتحجيم والتسوية، والتي تؤثر فيما بعد على الخوارزمية المحددة وقيم المعلمة الفائقة الخاصة بها. يدعم التعلم الآلي من Microsoft Azure التلقائي أساليب مختلفة للتأكد من أن لديك رؤية لما تم تطبيقه على النموذج الخاص بك.

خذ مثال التنبؤ هذا بعين الاعتبار:

  • هناك أربع ميزات إدخال: أ (رقمي) وب (رقمي) وج (رقمي) ود (تاريخ ووقت).
  • يتم إسقاط الميزة الرقمية C لأنها عمود معرف مع جميع القيم الفريدة.
  • الميزات الرقمية أ وب لها قيم مفقودة ومن ثم يتم حسابها حسب الوسط.
  • يتم تمييز ميزة التاريخ والوقت د في 11 ميزة هندسية مختلفة.

للحصول على هذه المعلومات، استخدم الإخراج fitted_model من تشغيل تجربة التعلم الآلي من Microsoft Azure التلقائي.

automl_config = AutoMLConfig(…)
automl_run = experiment.submit(automl_config …)
best_run, fitted_model = automl_run.get_output()

هندسة الميزات التلقائية

يُرجع get_engineered_feature_names() قائمة بأسماء الميزات الهندسية.

إشعار

استخدم «timeseriestransformer» للمهمة = «التنبؤ»، وإلا استخدم «datatransformer» لمهمة «الانحدار» أو «التصنيف».

fitted_model.named_steps['timeseriestransformer']. get_engineered_feature_names ()

وتتضمن هذه القائمة جميع أسماء الميزات الهندسية.

['A', 'B', 'A_WASNULL', 'B_WASNULL', 'year', 'half', 'quarter', 'month', 'day', 'hour', 'am_pm', 'hour12', 'wday', 'qday', 'week']

يحصل get_featurization_summary() على ملخص تمييز لكافة ميزات الإدخال.

fitted_model.named_steps['timeseriestransformer'].get_featurization_summary()

المخرجات

[{'RawFeatureName': 'A',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'B',
  'TypeDetected': 'Numeric',
  'Dropped': 'No',
  'EngineeredFeatureCount': 2,
  'Tranformations': ['MeanImputer', 'ImputationMarker']},
 {'RawFeatureName': 'C',
  'TypeDetected': 'Numeric',
  'Dropped': 'Yes',
  'EngineeredFeatureCount': 0,
  'Tranformations': []},
 {'RawFeatureName': 'D',
  'TypeDetected': 'DateTime',
  'Dropped': 'No',
  'EngineeredFeatureCount': 11,
  'Tranformations': ['DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime','DateTime',ateTime','DateTime','DateTime']}]
المخرجات التعريف
RawFeatureName ميزة إدخال/ اسم العمود من مجموعة البيانات المقدمة.
TypeDetected نوع البيانات المُكتشف لميزة الإدخال.
أُسقِط يشير إلى ما إذا تم إسقاط ميزة الإدخال أو تم استخدامها.
EngineeringFeatureCount عدد الميزات التي أُنشئت من خلال تحويلات هندسة الميزات التلقائية.
التحويلات قائمة التحويلات التي طُبقِت على ميزات الإدخال لإنشاء ميزات هندسية.

التحجيم والتطبيع

لفهم التحجيم/ التسوية والخوارزمية المحددة بقيم المعلمة الفائقة الخاصة بها، استخدم fitted_model.steps.

يكون إخراج العينة التالية من التشغيل fitted_model.steps لتشغيل مختار:

[('RobustScaler', 
  RobustScaler(copy=True, 
  quantile_range=[10, 90], 
  with_centering=True, 
  with_scaling=True)), 

  ('LogisticRegression', 
  LogisticRegression(C=0.18420699693267145, class_weight='balanced', 
  dual=False, 
  fit_intercept=True, 
  intercept_scaling=1, 
  max_iter=100, 
  multi_class='multinomial', 
  n_jobs=1, penalty='l2', 
  random_state=None, 
  solver='newton-cg', 
  tol=0.0001, 
  verbose=0, 
  warm_start=False))]

للحصول على مزيد من التفاصيل، استخدم وظيفة المساعد التالية:

from pprint import pprint

def print_model(model, prefix=""):
    for step in model.steps:
        print(prefix + step[0])
        if hasattr(step[1], 'estimators') and hasattr(step[1], 'weights'):
            pprint({'estimators': list(e[0] for e in step[1].estimators), 'weights': step[1].weights})
            print()
            for estimator in step[1].estimators:
                print_model(estimator[1], estimator[0]+ ' - ')
        elif hasattr(step[1], '_base_learners') and hasattr(step[1], '_meta_learner'):
            print("\nMeta Learner")
            pprint(step[1]._meta_learner)
            print()
            for estimator in step[1]._base_learners:
                print_model(estimator[1], estimator[0]+ ' - ')
        else:
            pprint(step[1].get_params())
            print()   

ترجع دالة المساعد هذه الإخراج التالي لتشغيل معين باستخدام LogisticRegression with RobustScalar كخوارزمية معينة.

RobustScaler
{'copy': True,
'quantile_range': [10, 90],
'with_centering': True,
'with_scaling': True}

LogisticRegression
{'C': 0.18420699693267145,
'class_weight': 'balanced',
'dual': False,
'fit_intercept': True,
'intercept_scaling': 1,
'max_iter': 100,
'multi_class': 'multinomial',
'n_jobs': 1,
'penalty': 'l2',
'random_state': None,
'solver': 'newton-cg',
'tol': 0.0001,
'verbose': 0,
'warm_start': False}

توقع احتمال الفئة

تحتوي كافة النماذج التي يتم إنتاجها باستخدام التعلم الآلي من Microsoft Azure التلقائي على كائنات تضمين تعكس الوظائف من فئة الأصل مفتوحة المصدر الخاصة بها. تقوم معظم كائنات تضمين نموذج التصنيف التي يتم إرجاعها بواسطة التعلم الآلي من Microsoft Azure التلقائي بتنفيذ الوظيفة predict_proba()، والتي تقبل عينة بيانات مصفوفة تشبه الصفيف أو متفرقة من ميزاتك (قيم X)، وتعيد صفيف «n-dimensional» لكل عينة واحتمال فئتها المعنية.

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

best_run, fitted_model = automl_run.get_output()
class_prob = fitted_model.predict_proba(X_test)

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

تكامل BERT في التعلم الآلي من Microsoft Azure التلقائي

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

وبالنسبة إلى BERT، يتم ضبط النموذج وتدريبه باستخدام التسميات التي يوفرها المستخدم. ومن هنا، يتم إخراج تضمين المستندات كميزات إلى جانب ميزات أخرى، مثل الميزات المستندة إلى الطابع الزمني، يوم من الأسبوع.

تعرف على كيفية إعداد AutoML لتدريب نموذج معالجة اللغة الطبيعية باستخدام Python.

خطوات استدعاء BERT

لاستدعاء BERT، عيّن enable_dnn: True في «automl_settings» واستخدام حساب GPU (vm_size = "STANDARD_NC6" أو وحدة معالجة الرسومات أعلى). في حال تم استخدام حساب وحدة المعالجة المركزية، فبدلًا من BERT، يمكّن التعلم الآلي من Microsoft Azure التلقائي المميز BiLSTM DNN.

يأخذ التعلم الآلي من Microsoft Azure التلقائي الخطوات التالية لـ BERT.

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

  2. قم بتسلسل جميع أعمدة النص في عمود نص واحد، ومن ثم StringConcatTransformer في النموذج النهائي.

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

  3. كجزء من مسح الميزات، يقارن التعلم الآلي من Microsoft Azure التلقائي BERT بخط الأساس (حقيبة من ميزات الكلمات) على عينة من البيانات. تحدد هذه المقارنة إذا كان BERT سيعطي تحسينات في الدقة. إذا كان أداء BERT أفضل من الأساس، فإن التعلم الآلي من Microsoft Azure التلقائي يستخدم BERT لتضمين النص للبيانات بأكملها. في هذه الحالة، ترى في PretrainedTextDNNTransformer النموذج النهائي.

يعمل BERT بصورة عامة لفترة أطول من العلامات المميزة الأخرى. للحصول على أداء أفضل، نوصي باستخدام STANDARD_NC24r أو STANDARD_NC24rs_V3 لقدرات RDMA الخاصة بهم.

يوزع AutoML تدريب BERT عبر عقد متعددة إذا كانت متوفرة (بحد أقصى ثماني عقد). يمكن القيام بذلك في العنصر الخاص بك AutoMLConfig عن طريق تعيين المعلّمة max_concurrent_iterations إلى أعلى من 1.

اللغات المعتمدة لـ BERT في التعلم الآلي من Microsoft Azure التلقائي

يدعم التعلم الآلي من Microsoft Azure التلقائي حاليًا حوالي 100 لغة واعتمادًا على لغة مجموعة البيانات، يختار التعلم الآلي من Microsoft Azure التلقائي نموذج BERT المناسب. وبالنسبة للبيانات الألمانية، نستخدم نموذج BERT الألماني. وللغة الإنجليزية، نستخدم نموذج اللغة الإنجليزية BERT. بالنسبة لباقي اللغات الأخرى، نستخدم نموذج BERT متعدد اللغات.

في التعليمات البرمجية التالية، يتم تشغيل نموذج BERT الألماني، حيث يتم تحديد لغة مجموعة البيانات إلى deu، رمز لغة الأحرف الثلاثة للغة الألمانية وفقًا لتصنيف ISO:

from azureml.automl.core.featurization import FeaturizationConfig

featurization_config = FeaturizationConfig(dataset_language='deu')

automl_settings = {
    "experiment_timeout_minutes": 120,
    "primary_metric": 'accuracy',
# All other settings you want to use
    "featurization": featurization_config,
    
    "enable_dnn": True, # This enables BERT DNN featurizer
    "enable_voting_ensemble": False,
    "enable_stack_ensemble": False
}