خوارزميات Amazon SageMaker المدمجة الجديدة لنمذجة البيانات الجدولية: LightGBM و CatBoost و AutoGluon-Tabular و TabTransformer

عقدة المصدر: 1541386

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

بدءًا من اليوم ، يوفر SageMaker أربع خوارزميات جديدة مدمجة لنمذجة البيانات الجدولية: LightGBM و CatBoost و AutoGluon-Tabular و TabTransformer. يمكنك استخدام هذه الخوارزميات الشائعة والحديثة لكل من التصنيف الجدولي ومهام الانحدار. إنها متاحة من خلال خوارزميات مدمجة على وحدة تحكم SageMaker وكذلك من خلال ملف أمازون سيج ميكر جومب ستارت واجهة المستخدم بالداخل أمازون ساجميكر ستوديو.

فيما يلي قائمة بأربع خوارزميات مدمجة جديدة ، مع روابط لوثائقهم ، وأمثلة على أجهزة الكمبيوتر المحمولة ، والمصدر.

توثيق مثال دفاتر الملاحظات مصدر
خوارزمية LightGBM تراجع, تصنيف LightGBM
خوارزمية CatBoost تراجع, تصنيف كاتبووست
خوارزمية AutoGluon-Tabular تراجع, تصنيف AutoGluon- جدولي
خوارزمية TabTransformer تراجع, تصنيف علامة التبويب محول

في الأقسام التالية ، نقدم وصفًا تقنيًا موجزًا ​​لكل خوارزمية ، وأمثلة عن كيفية تدريب نموذج عبر SageMaker SDK أو SageMaker Jumpstart.

LightGBM

LightGBM هو تطبيق مفتوح المصدر شائع وفعال لخوارزمية شجرة قرار تعزيز التدرج (GBDT). GBDT هي خوارزمية تعلم خاضعة للإشراف تحاول التنبؤ بدقة بالمتغير المستهدف من خلال الجمع بين مجموعة من التقديرات من مجموعة من النماذج الأبسط والأضعف. يستخدم LightGBM تقنيات إضافية لتحسين كفاءة وقابلية التوسع في GBDT التقليدي بشكل ملحوظ.

كاتبووست

كاتبووست هو تطبيق مفتوح المصدر شائع وعالي الأداء لخوارزمية GBDT. تم تقديم اثنين من التطورات الحسابية الهامة في CatBoost: تنفيذ التعزيز المطلوب ، وهو بديل يحركه التقليب للخوارزمية الكلاسيكية ، وخوارزمية مبتكرة لمعالجة الميزات الفئوية. تم إنشاء كلتا الطريقتين لمحاربة تحول التنبؤ الناجم عن نوع خاص من تسرب الهدف الموجود في جميع التطبيقات الحالية لخوارزميات تعزيز التدرج.

AutoGluon- جدولي

AutoGluon- جدولي هو مشروع AutoML مفتوح المصدر تم تطويره وصيانته بواسطة Amazon ويقوم بمعالجة البيانات المتقدمة والتعلم العميق وتجميع المكدس متعدد الطبقات. يتعرف تلقائيًا على نوع البيانات في كل عمود للمعالجة المسبقة للبيانات القوية ، بما في ذلك المعالجة الخاصة لحقول النص. يناسب AutoGluon نماذج مختلفة تتراوح من الأشجار المعززة الجاهزة إلى نماذج الشبكة العصبية المخصصة. يتم تجميع هذه النماذج بطريقة جديدة: يتم تكديس النماذج في طبقات متعددة ويتم تدريبها بطريقة حكيمة تضمن إمكانية ترجمة البيانات الأولية إلى تنبؤات عالية الجودة ضمن قيود زمنية معينة. يتم التخفيف من الملاءمة المفرطة خلال هذه العملية عن طريق تقسيم البيانات بطرق مختلفة مع التتبع الدقيق للأمثلة غير القابلة للطي. تم تحسين AutoGluon للأداء ، وقد حقق استخدامه خارج الصندوق العديد من المراكز الثلاثة الأولى والعشرة الأولى في مسابقات علوم البيانات.

علامة التبويب محول

علامة التبويب محول هي بنية جديدة لنمذجة البيانات الجدولية العميقة للتعلم تحت الإشراف. تم بناء TabTransformer على المحولات القائمة على الاهتمام الذاتي. تعمل طبقات المحولات على تحويل عمليات دمج الميزات الفئوية إلى حفلات زفاف قوية في السياق لتحقيق دقة تنبؤ أعلى. علاوة على ذلك ، فإن عمليات التضمين السياقية التي تم تعلمها من TabTransformer قوية للغاية ضد كل من ميزات البيانات المفقودة والصاخبة ، وتوفر إمكانية تفسير أفضل. هذا النموذج هو نتاج حديث علم الأمازون ابحاث (ورقة و الرسمية بلوق وظيفة هنا) وتم تبنيه على نطاق واسع من قبل مجتمع غسل الأموال ، مع تطبيقات مختلفة من جهات خارجية (KerasAutoGluonو) وميزات الوسائط الاجتماعية مثل تويتنحو علمومتوسط ​​و Kaggle.

فوائد خوارزميات SageMaker المضمنة

عند تحديد خوارزمية لنوع معين من المشاكل والبيانات ، فإن استخدام خوارزمية SageMaker المدمجة هو الخيار الأسهل ، لأن القيام بذلك يأتي مع الفوائد الرئيسية التالية:

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

دعنا الآن نرى كيفية تدريب إحدى هذه الخوارزميات المضمنة.

تدريب خوارزمية مضمنة باستخدام SageMaker SDK

لتدريب نموذج محدد ، نحتاج إلى الحصول على URI الخاص بهذا النموذج ، بالإضافة إلى نص التدريب وصورة الحاوية المستخدمة للتدريب. لحسن الحظ ، تعتمد هذه المدخلات الثلاثة فقط على اسم النموذج والإصدار (للحصول على قائمة النماذج المتاحة ، انظر JumpStart نموذج الجدول المتاح) ، ونوع المثيل الذي تريد التدرب عليه. هذا موضح في مقتطف الشفرة التالي:

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
train_image_uri = image_uris.retrieve( region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope, instance_type=training_instance_type
)
# Retrieve the training script
train_source_uri = script_uris.retrieve( model_id=train_model_id, model_version=train_model_version, script_scope=train_scope
)
# Retrieve the model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

train_model_id تغيير الى lightgbm-regression-model إذا كنا نتعامل مع مشكلة انحدار. يتم سرد معرفات جميع الطرز الأخرى المقدمة في هذا المنشور في الجدول التالي.

الموديل نوع المشكلة معرف النموذج
LightGBM تصنيف lightgbm-classification-model
. تراجع lightgbm-regression-model
كاتبووست تصنيف catboost-classification-model
. تراجع catboost-regression-model
AutoGluon- جدولي تصنيف autogluon-classification-ensemble
. تراجع autogluon-regression-ensemble
علامة التبويب محول تصنيف pytorch-tabtransformerclassification-model
. تراجع pytorch-tabtransformerregression-model

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

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

أخيرًا ، نقوم بإنشاء مثيل SageMaker Estimator مع جميع المدخلات المسترجعة وبدء العمل التدريبي مع .fit، وتمريره معرّف الموارد المنتظم (URI) الخاص بمجموعة بيانات التدريب. ال entry_point تم تسمية البرنامج النصي المقدم transfer_learning.py (نفس الشيء بالنسبة للمهام والخوارزميات الأخرى) ، وتم تمرير قناة بيانات الإدخال إلى .fit يجب تسميته training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

لاحظ أنه يمكنك تدريب الخوارزميات المضمنة باستخدام SageMaker ضبط النموذج التلقائي لتحديد المعلمات التشعبية المثلى وتحسين أداء النموذج بشكل أكبر.

تدريب خوارزمية مضمنة باستخدام SageMaker JumpStart

يمكنك أيضًا تدريب أي من هذه الخوارزميات المضمنة بنقرات قليلة عبر SageMaker JumpStart UI. JumpStart هي إحدى ميزات SageMaker التي تسمح لك بتدريب ونشر خوارزميات مدمجة ونماذج مدربة مسبقًا من أطر عمل تعلم متعددة ومحاور نموذجية من خلال واجهة رسومية. كما يسمح لك بنشر حلول ML كاملة تجمع بين نماذج ML والعديد من خدمات AWS الأخرى لحل حالة استخدام مستهدفة.

لمزيد من المعلومات ، راجع قم بتشغيل تصنيف النص باستخدام Amazon SageMaker JumpStart باستخدام نماذج TensorFlow Hub و Hugging Face.

وفي الختام

في هذا المنشور ، أعلنا عن إطلاق أربع خوارزميات مدمجة قوية جديدة لـ ML على مجموعات البيانات المجدولة المتاحة الآن على SageMaker. لقد قدمنا ​​وصفًا تقنيًا لماهية هذه الخوارزميات ، بالإضافة إلى مثال لوظيفة تدريبية لـ LightGBM باستخدام SageMaker SDK.

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


حول المؤلف

الدكتور شين هوانغ هو عالم تطبيقي في Amazon SageMaker JumpStart وخوارزميات Amazon SageMaker المدمجة. يركز على تطوير خوارزميات التعلم الآلي القابلة للتطوير. تتركز اهتماماته البحثية في مجال معالجة اللغة الطبيعية ، والتعلم العميق القابل للتفسير على البيانات المجدولة ، والتحليل القوي لتجميع الزمكان غير المعياري. وقد نشر العديد من الأوراق البحثية في ACL و ICDM ومؤتمرات KDD والجمعية الملكية للإحصاء: مجلة Series A.

د. أشيش خيتان هو عالم تطبيقي أقدم مع Amazon SageMaker JumpStart وخوارزميات Amazon SageMaker المدمجة ويساعد في تطوير خوارزميات التعلم الآلي. وهو باحث نشط في التعلم الآلي والاستدلال الإحصائي وقد نشر العديد من الأوراق البحثية في مؤتمرات NeurIPS و ICML و ICLR و JMLR و ACL و EMNLP.

جواو مورا هو مهندس حلول متخصص في AI / ML في Amazon Web Services. يركز في الغالب على حالات استخدام البرمجة اللغوية العصبية ومساعدة العملاء على تحسين تدريب ونشر نموذج التعلم العميق. وهو أيضًا مؤيد نشط لحلول ML ذات التعليمات البرمجية المنخفضة والأجهزة المتخصصة في ML.

الطابع الزمني:

اكثر من التعلم الآلي من AWS