قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart

في ديسمبر 2020 ، AWS أعلن توافر العام لل أمازون سيج ميكر جومب ستارت، قدرة الأمازون SageMaker يساعدك على البدء بسرعة وسهولة في التعلم الآلي (ML). في مارس 2022 ، نحن أيضًا أعلن دعم واجهات برمجة التطبيقات في JumpStart. يوفر JumpStart ضبطًا دقيقًا ونشر مجموعة متنوعة من النماذج المدربة مسبقًا عبر مهام ML الشائعة بنقرة واحدة ، بالإضافة إلى مجموعة مختارة من الحلول الشاملة التي تحل مشاكل العمل الشائعة. تعمل هذه الميزات على إزالة الأحمال الثقيلة من كل خطوة من خطوات عملية ML ، مما يجعل تطوير نماذج عالية الجودة أسهل وتقليل وقت النشر.

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

SageMaker ضبط النموذج التلقائي

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

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

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

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

في هذا المنشور ، نستخدم استراتيجية بحث Bayesian الافتراضية لتوضيح الخطوات المتضمنة في تشغيل ضبط تلقائي للنموذج باستخدام JumpStart باستخدام LightGBM نموذج.

يدعم JumpStart حاليًا 10 أمثلة لأجهزة الكمبيوتر المحمولة مع ضبط تلقائي للطراز. كما أنه يدعم أربعة خوارزميات شائعة لنمذجة البيانات الجدولية. تم تلخيص المهام والارتباطات إلى نماذج دفاتر الملاحظات الخاصة بهم في الجدول التالي.

مهمة النماذج المدربة مسبقًا يدعم مجموعة البيانات المخصصة الأطر المعتمدة مثال دفاتر الملاحظات
تصنيف الصور نعم فعلا نعم فعلا PyTorch ، TensorFlow مقدمة إلى JumpStart - تصنيف الصور
كشف الكائن نعم فعلا نعم فعلا PyTorch ، TensorFlow ، MXNet مقدمة إلى JumpStart - اكتشاف الكائنات
التجزئة الدلالي نعم فعلا نعم فعلا MXNet مقدمة إلى JumpStart - التجزئة الدلالية
تصنيف النص نعم فعلا نعم فعلا TensorFlow مقدمة إلى JumpStart - تصنيف النص
تصنيف زوج الجملة نعم فعلا نعم فعلا TensorFlow ، وجه معانق مقدمة إلى JumpStart - تصنيف زوج الجمل
الإجابة على السؤال نعم فعلا نعم فعلا PyTorch مقدمة إلى JumpStart - الإجابة على الأسئلة
تصنيف جدولي نعم فعلا نعم فعلا LightGBM ، CatBoost ، XGBoost ، المتعلم الخطي مقدمة إلى JumpStart - التصنيف الجدولي - LightGBM ، CatBoost
مقدمة إلى JumpStart - التصنيف الجدولي - XGBoost ، المتعلم الخطي
انحدار جدولي نعم فعلا نعم فعلا LightGBM ، CatBoost ، XGBoost ، المتعلم الخطي مقدمة إلى JumpStart - الانحدار الجدولي - LightGBM ، CatBoost
مقدمة إلى JumpStart - الانحدار الجدولي - XGBoost ، المتعلم الخطي

حل نظرة عامة

يوفر سير العمل الفني هذا نظرة عامة على ميزات Amazon Sagemaker المختلفة والخطوات اللازمة لضبط نموذج JumpStart تلقائيًا.

قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

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

نسير من خلال الخطوات عالية المستوى التالية:

  1. استرجع نموذج JumpStart وحاوية الصور المدربة مسبقًا.
  2. تعيين معلمات تشعبية ثابتة.
  3. حدد نطاقات المعلمات التشعبية القابلة للضبط.
  4. ابدأ الضبط التلقائي للنموذج.
  5. قم بتشغيل وظيفة الضبط.
  6. انشر أفضل نموذج إلى نقطة نهاية.

استرجع نموذج JumpStart وحاوية الصور المدربة مسبقًا

في هذا القسم ، نختار نموذج تصنيف LightGBM للضبط الدقيق. نستخدم نوع المثيل ml.m5.xlarge الذي يتم تشغيل النموذج عليه. ثم نقوم باسترداد حاوية Docker التدريبية ومصدر خوارزمية التدريب والنموذج المدرب مسبقًا. انظر الكود التالي:

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 pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
    model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

تعيين معلمات تشعبية ثابتة

نقوم الآن باسترداد المعلمات الفائقة الافتراضية لنموذج LightGBM هذا ، كما تم تكوينه مسبقًا بواسطة JumpStart. نتجاوز أيضًا num_boost_round معلمة ذات قيمة مخصصة.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

حدد نطاقات المعلمات التشعبية القابلة للضبط

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

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

ابدأ الضبط التلقائي للنموذج

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

HyperparameterTuner يقبل كمعلمات كائن المقدر ، والقياس الهدف الذي بناءً عليه يتم تحديد أفضل مجموعة من المعلمات الفائقة ، والعدد الإجمالي لوظائف التدريب (max_jobs) لبدء وظيفة ضبط المعلمة الفائقة ، ووظائف التدريب الموازي القصوى للتشغيل (max_parallel_jobs). يتم تشغيل وظائف التدريب باستخدام خوارزمية LightGBM ، وقيم المعلمة الفائقة التي تحتوي على الحد الأدنى mlogloss تم اختيار المقياس. لمزيد من المعلومات حول تكوين الضبط التلقائي للنموذج ، راجع أفضل الممارسات لضبط Hyperparameter.

# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

في الكود السابق ، أخبرنا الموالف أن يجري 10 تجارب على الأكثر (max_jobs) وتجربتان متزامنتان فقط في كل مرة (max_parallel_jobs). كل من هذه المعلمات تحافظ على التكلفة ووقت التدريب تحت السيطرة.

قم بتشغيل وظيفة الضبط

لبدء تشغيل وظيفة ضبط SageMaker ، نسمي الطريقة المناسبة لكائن موالف hyperparameter ونمرر خدمة تخزين أمازون البسيطة (Amazon S3) مسار بيانات التدريب:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

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

انشر أفضل نموذج إلى نقطة نهاية

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

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

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

وفي الختام

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

في هذا المنشور ، أظهرنا قيمة تشغيل ضبط تلقائي للنموذج على نموذج JumpStart مُدرَّب مسبقًا باستخدام واجهات برمجة تطبيقات SageMaker. استخدمنا خوارزمية LightGBM وحددنا 10 وظائف تدريبية كحد أقصى. قدمنا ​​أيضًا روابط لأمثلة من دفاتر الملاحظات تعرض أطر عمل تعلم الآلة التي تدعم تحسين نموذج JumpStart.

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


عن المؤلف

قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.دوج مبايا هو مهندس حلول شريك أول مع التركيز على البيانات والتحليلات. يعمل Doug بشكل وثيق مع شركاء AWS ، مما يساعدهم على دمج حلول البيانات والتحليلات في السحابة.

قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.كروثي جاياسيمها راو هو مهندس حلول شريك في فريق Scale-PSA. يجري كروثي عمليات التحقق الفنية للشركاء لتمكينهم من التقدم في مسار الشريك.

قم بتشغيل الضبط التلقائي للنموذج باستخدام Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.جيانيس ميتروبولوس هو مهندس تطوير برمجيات لشركة SageMaker الضبط التلقائي للنموذج.

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

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

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