تفعيل البيانات في التعلم الآلي الآلي
تعرف على إعدادات تحسين البيانات في Azure التعلم الآلي، وكيفية تخصيص هذه الميزات لتجارب التعلم الآلي التلقائية.
هندسة الميزات وتحقيقها
تتكون بيانات التدريب من صفوف وأعمدة. كل صف عبارة عن ملاحظة أو سجل، وأعمدة كل صف هي الميزات التي تصف كل سجل. عادة ما يتم تحديد الميزات التي تميز الأنماط في البيانات بشكل أفضل لإنشاء نماذج تنبؤية.
على الرغم من أنه يمكن استخدام العديد من حقول البيانات الخام مباشرة لتدريب نموذج، إلا أنه غالبا ما يكون من الضروري إنشاء ميزات إضافية (هندسية) توفر معلومات تميز الأنماط في البيانات بشكل أفضل. وتسمى هذه العملية هندسة الميزات، حيث يتم الاستفادة من استخدام معرفة المجال للبيانات لإنشاء ميزات تساعد بدورها خوارزميات التعلم الآلي على التعلم بشكل أفضل.
في Azure التعلم الآلي، يتم تطبيق تقنيات قياس البيانات وتطبيعها لتسهيل هندسة الميزات. بشكل جماعي ، تسمى هذه التقنيات وهندسة الميزات هذه featurization في تجارب ML الآلية.
المتطلبات الأساسية
تفترض هذه المقالة أنك تعرف بالفعل كيفية تكوين تجربة ML تلقائية.
هام
تتطلب أوامر Python في هذه المقالة أحدث azureml-train-automl إصدار حزمة.
- قم بتثبيت أحدث
azureml-train-automlحزمة على بيئتك المحلية. - للحصول على تفاصيل حول أحدث
azureml-train-automlحزمة، راجع ملاحظات الإصدار.
لمزيد من المعلومات حول التكوين، راجع المقالات التالية:
- للحصول على تجربة التعليمات البرمجية أولا: قم بتكوين تجارب ML التلقائية باستخدام Azure التعلم الآلي SDK ل Python.
- للحصول على تجربة منخفضة التعليمات البرمجية أو بدون تعليمات برمجية: يمكنك إنشاء نماذج التعلم الآلي التلقائية ومراجعتها ونشرها باستخدام استوديو Azure التعلم الآلي.
تكوين الإنجاز
في كل تجربة تعلم آلي آلي، يتم تطبيق تقنيات القياس والتطبيع التلقائية على بياناتك بشكل افتراضي. هذه التقنيات هي أنواع من التلاعب التي تساعد خوارزميات معينة حساسة للميزات على مقاييس مختلفة. يمكنك تمكين المزيد من التجميل، مثل إسناد القيم المفقودةوالترميزوالتحويلات.
ملاحظة
تصبح خطوات تنفيذ التعلم الآلي الآلي (مثل تطبيع الميزات أو معالجة البيانات المفقودة أو تحويل النص إلى رقمي) جزءا من النموذج الأساسي. عند استخدام النموذج للتنبؤات، يتم تطبيق نفس خطوات الإنجاز التي يتم تطبيقها أثناء التدريب على بيانات الإدخال تلقائيا.
بالنسبة للتجارب التي تقوم بتكوينها باستخدام Python SDK، يمكنك تمكين إعداد featurization أو تعطيله وتحديد خطوات الإنجاز التي سيتم استخدامها لتجربتك. إذا كنت تستخدم استوديو Azure التعلم الآلي، فراجع الخطوات اللازمة لتمكين التجميل.
يوضح الجدول التالي الإعدادات featurization المقبولة في فئة AutoMLConfig:
| تكوين الإنجاز | الوصف |
|---|---|
"featurization": 'auto' |
يحدد أنه كجزء من المعالجة المسبقة ، يجب أن يتم إجراء حواجز حماية البياناتوخطوات الإنجاز تلقائيا. هذا الإعداد الافتراضي. |
"featurization": 'off' |
يحدد أن خطوات الإنجاز لا يجب أن تتم تلقائيا. |
"featurization": 'FeaturizationConfig' |
يحدد أنه سيتم استخدام خطوات التثمار المخصصة. تعلم كيفية تخصيص التجميل. |
الإنجاز التلقائي
يلخص الجدول التالي التقنيات التي يتم تطبيقها تلقائيا على بياناتك. يتم تطبيق هذه التقنيات على التجارب التي تم تكوينها باستخدام SDK أو واجهة مستخدم الاستوديو. لتعطيل هذا السلوك، قم بتعيين "featurization": 'off' في الكائن الخاص بك AutoMLConfig .
ملاحظة
إذا كنت تخطط لتصدير النماذج التي أنشأتها AutoML إلى طراز ONNX، فلن يتم دعم سوى خيارات الإنجاز المشار إليها بعلامة نجمية ("*") بتنسيق ONNX. تعرف على المزيد حول تحويل الطرز إلى ONNX.
| خطوات الإنجاز | الوصف |
|---|---|
| إسقاط الكاردينالية العالية أو عدم وجود ميزات التباين* | قم بإسقاط هذه الميزات من مجموعات التدريب والتحقق من الصحة. ينطبق على المعالم التي تحتوي على جميع القيم مفقودة، أو بنفس القيمة عبر جميع الصفوف، أو ذات الكاردينالية العالية (على سبيل المثال، التجزئات أو المعرفات أو GUIDs). |
| فرض قيم مفقودة* | بالنسبة للميزات الرقمية، قم بحساب متوسط القيم في العمود. بالنسبة للميزات الفئوية ، نسب القيمة الأكثر شيوعا. |
| توليد المزيد من الميزات* | للحصول على ميزات DateTime: السنة والشهر واليوم ويوم الأسبوع ويوم السنة والربع وأسبوع السنة والساعة والدقيقة والثانية. لمهام التنبؤ ، يتم إنشاء ميزات DateTime الإضافية التالية: سنة ISO ، نصف - نصف سنة ، شهر تقويمي كسلسلة ، أسبوع ، يوم من الأسبوع كسلسلة ، يوم من ربع سنة ، يوم من السنة ، صباحا / مساء (0 إذا كانت الساعة قبل الظهر (12 مساء) ، 1 خلاف ذلك) ، صباحا / مساء كسلسلة ، ساعة من اليوم (على أساس 12 ساعة) بالنسبة لميزات النص: تكرار المصطلح استنادا إلى اليونيغرامات والبيغرام والتريغرامات. تعرف على المزيد حول كيفية القيام بذلك باستخدام BERT. |
| التحويل والترميز* | قم بتحويل الميزات الرقمية التي تحتوي على عدد قليل من القيم الفريدة إلى ميزات فئوية. يستخدم ترميز واحد ساخن للميزات الفئوية منخفضة الكاردينالية. يتم استخدام ترميز التجزئة الساخنة الواحدة للميزات الفئوية عالية الكاردينالية. |
| تضمين الكلمات | يقوم أداة تنفيذ النص بتحويل متجهات الرموز النصية إلى متجهات جملة باستخدام نموذج مدرب مسبقا. يتم تجميع متجه تضمين كل كلمة في مستند مع الباقي لإنتاج متجه معالم وثيقة. |
| المسافة العنقودية | يدرب نموذج تجميع k-means على جميع الأعمدة الرقمية. ينتج k ميزات جديدة (معلم رقمي جديد واحد لكل مجموعة) تحتوي على مسافة كل عينة إلى المركز المركزي لكل مجموعة. |
في كل تجربة تعلم آلي آلي، يتم تحجيم بياناتك أو تطبيعها تلقائيا لمساعدة الخوارزميات على الأداء الجيد. أثناء التدريب على النموذج ، يتم تطبيق إحدى تقنيات القياس أو التطبيع التالية على كل نموذج.
| معالجة التحجيم & | الوصف |
|---|---|
| قياسيسلمالمجمع | توحيد الميزات عن طريق إزالة المتوسط والتوسع إلى تباين الوحدة |
| مينماكسكالار | تحويل المعالم عن طريق تغيير حجم كل ميزة حسب الحد الأدنى والحد الأقصى لهذا العمود |
| MaxAbsScaler | قياس كل ميزة حسب قيمتها المطلقة القصوى |
| RobustScalar | ميزات المقاييس حسب نطاقها الكمي |
| PCA | تقليل الأبعاد الخطية باستخدام تحليل القيمة المفردة للبيانات لإسقاطها على مساحة ذات أبعاد أقل |
| مبتورةSVDWrapper | يقوم هذا المحول بتقليل الأبعاد الخطية عن طريق تحلل القيمة المفردة المبتورة (SVD). على عكس PCA ، لا يقوم هذا المقدر بتوسيط البيانات قبل حساب تحلل القيمة الفردية ، مما يعني أنه يمكن أن يعمل مع مصفوفات scipy.sparse بكفاءة |
| سبارسينورلايزر | يتم إعادة قياس كل عينة (أي كل صف من مصفوفة البيانات) تحتوي على مكون واحد على الأقل غير صفري بشكل مستقل عن العينات الأخرى بحيث يساوي معيارها (l1 أو l2) واحدا |
درابزين البيانات
تساعدك حواجز حماية البيانات على تحديد المشكلات المحتملة في بياناتك (على سبيل المثال، القيم المفقودة أو اختلال التوازن الطبقي). كما أنها تساعدك على اتخاذ إجراءات تصحيحية لتحسين النتائج.
يتم تطبيق حواجز حماية البيانات:
- بالنسبة لتجارب SDK: عندما يتم تحديد المعلمات
"featurization": 'auto'أوvalidation=autoفي الكائن الخاص بكAutoMLConfig. - بالنسبة لتجارب الاستوديو: عند تمكين الإنجاز التلقائي.
يمكنك مراجعة حواجز حماية البيانات لتجربتك:
من خلال تعيين
show_output=Trueوقت إرسال تجربة باستخدام SDK.في الاستوديو ، في علامة التبويب درابزين البيانات لتشغيل ML التلقائي.
حالات درابزين البيانات
تعرض حواجز حماية البيانات واحدة من ثلاث حالات:
| الولاية | الوصف |
|---|---|
| ناجح | لم يتم اكتشاف أي مشاكل في البيانات ولا يلزم اتخاذ أي إجراء من قبلك. |
| تم | تم تطبيق التغييرات على بياناتك. نحن نشجعك على مراجعة الإجراءات التصحيحية التي اتخذتها AutoML ، لضمان توافق التغييرات مع النتائج المتوقعة. |
| تنبيهك | تم اكتشاف مشكلة في البيانات ولكن تعذر معالجتها. نحن نشجعك على مراجعة المشكلة وحلها. |
درابزين البيانات المدعوم
يصف الجدول التالي حواجز حماية البيانات المدعومة حاليا والحالات المرتبطة بها التي قد تراها عند إرسال تجربتك:
| درابزين | الحالة | شرط الزناد |
|---|---|---|
| فقدان إسناد قيم المعالم | ناجح تم |
لم يتم الكشف عن أي قيم ميزات مفقودة في بيانات التدريب الخاصة بك. تعرف على المزيد حول إسناد القيمة المفقودة. تم اكتشاف قيم الميزات المفقودة في بيانات التدريب الخاصة بك وتم إسنادها. |
| معالجة ميزة الكاردينالية العالية | ناجح تم |
تم تحليل مدخلاتك ، ولم يتم اكتشاف أي ميزات عالية الكاردينالية. تم اكتشاف ميزات عالية الكاردينالية في مدخلاتك وتم التعامل معها. |
| معالجة تقسيم التحقق من الصحة | تم | تم تعيين تكوين التحقق من الصحة إلى واحتوت بيانات التدريب على 'auto'أقل من 20000 صف. تم التحقق من صحة كل تكرار للنموذج المدرب باستخدام التحقق المتبادل. مزيد من المعلومات حول بيانات التحقق من الصحة. تم تعيين تكوين التحقق من الصحة إلى 'auto'، واحتوت بيانات التدريب على أكثر من 20000 صف. تم تقسيم بيانات الإدخال إلى مجموعة بيانات تدريب ومجموعة بيانات التحقق من الصحة للتحقق من صحة النموذج. |
| الكشف عن موازنة الفصل الدراسي | ناجح تنبيهك تم |
تم تحليل مدخلاتك ، وتم موازنة جميع الفئات في بيانات التدريب الخاصة بك. تعتبر مجموعة البيانات متوازنة إذا كان لكل فئة تمثيل جيد في مجموعة البيانات ، كما يتم قياسها بعدد العينات ونسبتها. تم الكشف عن فئات غير متوازنة في مدخلاتك. لإصلاح تحيز النموذج، قم بإصلاح مشكلة التوازن. تعرف على المزيد حول البيانات غير المتوازنة. تم اكتشاف فئات غير متوازنة في مدخلاتك وقد قرر المنطق الشامل تطبيق التوازن. |
| الكشف عن مشاكل الذاكرة | ناجح تم |
تم تحليل القيم المحددة (الأفق ، التأخر ، النافذة المتداولة) ، ولم يتم اكتشاف أي مشكلات محتملة خارج الذاكرة. تعرف على المزيد حول تكوينات التنبؤ بالسلاسل الزمنية. تم تحليل القيم المحددة (الأفق والتأخر والنافذة المتداولة) ومن المحتمل أن تتسبب في نفاد الذاكرة من تجربتك. تم إيقاف تشغيل تكوينات التأخر أو النافذة المتداولة. |
| كشف التردد | ناجح تم |
تم تحليل السلسلة الزمنية ، ويتم محاذاة جميع نقاط البيانات مع التردد المكتشف. تم تحليل السلسلة الزمنية، وتم اكتشاف نقاط البيانات التي لا تتوافق مع التردد المكتشف. تمت إزالة نقاط البيانات هذه من مجموعة البيانات. |
تخصيص الإنجاز
يمكنك تخصيص إعدادات الإنجاز الخاصة بك للتأكد من أن البيانات والميزات المستخدمة لتدريب نموذج ML الخاص بك تؤدي إلى تنبؤات ذات صلة.
لتخصيص التجميلات، حدد "featurization": FeaturizationConfig في الكائن الخاص بك AutoMLConfig . إذا كنت تستخدم استوديو Azure التعلم الآلي لتجربتك، فراجع المقالة الإرشادية. لتخصيص الإنجاز لأنواع مهام التنبؤ، راجع كيفية التنبؤ.
التخصيصات المدعومة تشمل:
| التخصيص | التعريف |
|---|---|
| تحديث الغرض من العمود | تجاوز نوع الميزة المكتشفة تلقائيا للعمود المحدد. |
| تحديث معلمة المحول | تحديث معلمات المحول المحدد. يدعم حاليا Imputer (المتوسط والأكثر تكرارا والمتوسط) و HashOneHotEncoder. |
| إسقاط الأعمدة | يحدد الأعمدة التي سيتم إسقاطها من التحقق. |
| محولات الكتلة | يحدد محولات الكتلة لاستخدامها في عملية التجميل. |
ملاحظة
تم إهمال وظيفة أعمدة الإسقاط اعتبارا من إصدار SDK 1.19. قم بإسقاط أعمدة من مجموعة البيانات كجزء من تنظيف البيانات، قبل استهلاكها في تجربة التعلم الآلي التلقائية.
قم بإنشاء الكائن 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 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})
شفافية الإنجاز
كل طراز AutoML لديه featurization تطبيقها تلقائيا. يتضمن Featurization هندسة الميزات الآلية (متى "featurization": 'auto') والتحجيم والتطبيع ، مما يؤثر بعد ذلك على الخوارزمية المحددة وقيم المعلمات الفائقة الخاصة بها. يدعم AutoML طرقا مختلفة لضمان رؤيتك لما تم تطبيقه على نموذجك.
ضع في اعتبارك مثال التنبؤ هذا:
- هناك أربع ميزات إدخال: A (رقمي) ، B (رقمي) ، C (رقمي) ، D (DateTime).
- يتم إسقاط الميزة الرقمية C لأنها عمود معرف مع جميع القيم الفريدة.
- تحتوي الميزات الرقمية A و B على قيم مفقودة وبالتالي يتم عزوها بواسطة الوسط.
- يتم تجسيد ميزة DateTime D في 11 ميزة هندسية مختلفة.
للحصول على هذه المعلومات، استخدم الإخراج fitted_model من تشغيل تجربة ML التلقائية.
automl_config = AutoMLConfig(…)
automl_run = experiment.submit(automl_config …)
best_run, fitted_model = automl_run.get_output()
هندسة الميزات الآلية
ترجع هذه الدالة قائمة بأسماء المعالم الهندسية get_engineered_feature_names() .
ملاحظة
استخدم "timeseriestransformer" للمهمة = "التنبؤ" ، واستخدم "محول البيانات" لمهمة "الانحدار" أو "التصنيف".
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() يحصل على ملخص featurization لجميع ميزات الإدخال.
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','DateTime','DateTime','DateTime']}]
| المخرجات | التعريف |
|---|---|
| RawFeatureName | إدخال اسم الميزة/العمود من مجموعة البيانات المتوفرة. |
| النوعمكتشف | نوع البيانات المكتشف لميزة الإدخال. |
| انخفض | يشير إلى ما إذا كانت ميزة الإدخال قد تم إسقاطها أو استخدامها. |
| الهندسةميزةالعد | عدد الميزات التي تم إنشاؤها من خلال تحويلات هندسة الميزات الآلية. |
| التحويلات | قائمة التحويلات المطبقة على ميزات الإدخال لإنشاء ميزات هندسية. |
التحجيم والتطبيع
لفهم القياس/التطبيع والخوارزمية المحددة بقيم المعلمات التشعبية الخاصة بها، استخدم 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}
التنبؤ باحتمال الفئة
تحتوي جميع النماذج المنتجة باستخدام ML الآلي على كائنات مغلفة تعكس الوظائف من فئة الأصل مفتوحة المصدر. تقوم معظم كائنات غلاف نموذج التصنيف التي يتم إرجاعها بواسطة ML الآلي بتنفيذ الدالة predict_proba() ، التي تقبل عينة بيانات مصفوفة تشبه الصفيف أو متفرقة من معالمك (قيم X)، وترجع صفيفا ذا أبعاد n لكل عينة واحتمال فئتها المعني.
على افتراض أنك قمت باسترداد أفضل طراز تشغيل وتركيب باستخدام نفس المكالمات من الأعلى ، يمكنك الاتصال 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 في ML الآلي
يستخدم BERT في طبقة التخصيب من ML الآلي. في هذه الطبقة ، إذا كان العمود يحتوي على نص حر أو أنواع أخرى من البيانات مثل الطوابع الزمنية أو الأرقام البسيطة ، تطبيق الإنجاز وفقا لذلك.
بالنسبة ل BERT ، يتم ضبط النموذج وتدريبه بدقة باستخدام الملصقات التي يقدمها المستخدم. من هنا، يتم إخراج مضمنات المستندات كميزات إلى جانب ميزات أخرى، مثل الميزات المستندة إلى الطوابع الزمنية، في يوم من أيام الأسبوع.
تعرف على كيفية إعداد تجارب معالجة اللغة الطبيعية (NLP) التي تستخدم أيضا BERT مع ML التلقائي.
خطوات استدعاء BERT
من أجل استدعاء BERT ، قم بتعيين enable_dnn: True automl_settings واستخدام حساب GPU (vm_size = "STANDARD_NC6" أو وحدة معالجة رسومات أعلى). إذا تم استخدام حساب وحدة المعالجة المركزية ، فبدلا من BERT ، يقوم AutoML بتمكين جهاز BiLSTM DNN featurizer.
يتخذ ML الآلي الخطوات التالية ل BERT.
المعالجة المسبقة والرمز المميز لجميع أعمدة النص. على سبيل المثال ، يمكن العثور على محول "StringCast" في ملخص الإنجاز للنموذج النهائي. يمكن العثور على مثال على كيفية إنتاج ملخص إنجاز النموذج في هذا الدفتر.
قم بتسلسل جميع أعمدة النص في عمود نص واحد ، وبالتالي في
StringConcatTransformerالنموذج النهائي.يحد تطبيقنا ل BERT من إجمالي طول النص لعينة التدريب إلى 128 رمزا. وهذا يعني أن جميع أعمدة النص عند تسلسلها ، يجب أن تكون مثالية على الأكثر 128 رمزا مميزا. في حالة وجود أعمدة متعددة ، يجب تقليم كل عمود حتى يتم استيفاء هذا الشرط. خلاف ذلك ، بالنسبة للأعمدة المتسلسلة ذات الطول >128 رمزا مميزا ، تقوم طبقة الرمز المميز ل BERT باقتطاع هذا الإدخال إلى 128 رمزا.
كجزء من مسح الميزات ، يقارن AutoML BERT بالخط الأساسي (ميزات حقيبة الكلمات) على عينة من البيانات. تحدد هذه المقارنة ما إذا كان BERT سيعطي تحسينات في الدقة. إذا كان أداء BERT أفضل من خط الأساس ، فإن AutoML يستخدم BERT لإنجاز النص للبيانات بأكملها. في هذه الحالة ، سترى في
PretrainedTextDNNTransformerالنموذج النهائي.
يعمل BERT بشكل عام لفترة أطول من اللاعبين الآخرين. للحصول على أداء أفضل، نوصي باستخدام "STANDARD_NC24r" أو "STANDARD_NC24rs_V3" لقدرات RDMA الخاصة بهم.
سيقوم AutoML بتوزيع تدريب BERT عبر عقد متعددة إذا كانت متوفرة (بحد أقصى ثماني عقد). يمكن القيام بذلك في الكائن الخاص بك AutoMLConfig عن طريق تعيين المعلمة max_concurrent_iterations إلى أعلى من 1.
اللغات المدعومة ل BERT في AutoML
يدعم AutoML حاليا حوالي 100 لغة واعتمادا على لغة مجموعة البيانات ، يختار AutoML طراز 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
}
الخطوات التالية
تعرف على كيفية إعداد تجارب التعلم الآلي التلقائية:
- للحصول على تجربة التعليمات البرمجية أولا: قم بتكوين تجارب ML التلقائية باستخدام Azure التعلم الآلي SDK.
- للحصول على تجربة منخفضة التعليمات البرمجية أو بدون تعليمات برمجية: أنشئ تجارب ML التلقائية في استوديو Azure التعلم الآلي.
تعرف على المزيد حول كيفية نشر نموذج ومكانه.
تعرف على المزيد حول كيفية تدريب نموذج الانحدار باستخدام التعلم الآلي الآلي أو كيفية التدريب باستخدام التعلم الآلي التلقائي على مورد بعيد.