نماذج وخوارزميات Amazon SageMaker JumpStart متاحة الآن عبر API PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

تتوفر الآن نماذج وخوارزميات Amazon SageMaker JumpStart عبر واجهة برمجة التطبيقات

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

في السابق ، كان كل محتوى JumpStart متاحًا فقط من خلال أمازون ساجميكر ستوديووالتي توفر واجهة رسومية سهلة الاستخدام للتفاعل مع الميزة. يسعدنا اليوم أن نعلن عن إطلاق تطبيق سهل الاستخدام واجهات برمجة تطبيقات JumpStart كامتداد لـ SageMaker Python SDK. تسمح لك واجهات برمجة التطبيقات هذه بنشر مجموعة كبيرة من النماذج المدربة مسبقًا والمدعومة من JumpStart على مجموعات البيانات الخاصة بك وضبطها برمجيًا. يفتح هذا الإطلاق استخدام إمكانات JumpStart في مهام سير عمل التعليمات البرمجية الخاصة بك وخطوط أنابيب MLOps وفي أي مكان آخر تتفاعل فيه مع SageMaker عبر SDK.

في هذا المنشور ، نقدم تحديثًا للحالة الحالية لإمكانيات JumpStart ونوجهك خلال تدفق استخدام واجهة برمجة تطبيقات JumpStart مع مثال لحالة الاستخدام.

نظرة عامة حول JumpStart

JumpStart هو منتج متعدد الأوجه يتضمن قدرات مختلفة لمساعدتك على البدء بسرعة مع ML على SageMaker. في وقت كتابة هذا التقرير ، يمكنك JumpStart من القيام بما يلي:

  • انشر نماذج مدربة مسبقًا لمهام ML الشائعة - يمكّنك JumpStart من حل مهام ML الشائعة دون بذل جهود تطويرية من خلال توفير النشر السهل للنماذج المدربة مسبقًا على مجموعات البيانات الكبيرة المتاحة للجمهور. بذل مجتمع أبحاث ML قدرًا كبيرًا من الجهد في جعل غالبية النماذج المطورة حديثًا متاحة للاستخدام العام. يستضيف JumpStart مجموعة من أكثر من 300 نموذج ، تغطي 15 مهمة ML الأكثر شيوعًا مثل اكتشاف الكائنات وتصنيف النص وإنشاء النصوص ، مما يسهل على المبتدئين استخدامها. هذه النماذج مستمدة من محاور النماذج الشهيرة ، مثل TensorFlow و PyTorch و Hugging Face و MXNet Hub.
  • صقل النماذج المدربة مسبقًا - يسمح لك JumpStart بضبط النماذج المدربة مسبقًا دون الحاجة إلى كتابة خوارزمية التدريب الخاصة بك. في ML ، تسمى القدرة على نقل المعرفة المكتسبة في مجال ما إلى مجال آخر نقل التعلم. يمكنك استخدام التعلم بالنقل لإنتاج نماذج دقيقة على مجموعات البيانات الأصغر ، بتكاليف تدريب أقل بكثير من تلك المستخدمة في تدريب النموذج الأصلي من البداية. يتضمن JumpStart أيضًا خوارزميات تدريب شائعة تعتمد على LightGBM و CatBoost و XGBoost و Scikit - تعلم أنه يمكنك التدريب من البداية على انحدار البيانات الجدولية وتصنيفها.
  • استخدم الحلول الجاهزة - يوفر JumpStart مجموعة من ملفات 17 حلاً مبنيًا مسبقًا لحالات استخدام ML الشائعة ، مثل التنبؤ بالطلب والتطبيقات الصناعية والمالية ، والتي يمكنك نشرها ببضع نقرات فقط. الحلول عبارة عن تطبيقات ML شاملة تجمع بين خدمات AWS المتنوعة لحل حالة استخدام عمل معينة. هم يستخدمون تكوين سحابة AWS القوالب والبنى المرجعية للنشر السريع ، مما يعني أنها قابلة للتخصيص بالكامل.
  • استخدم أمثلة دفتر الملاحظات لخوارزميات SageMaker - يوفر SageMaker مجموعة من ملفات خوارزميات مدمجة لمساعدة علماء البيانات وممارسي تعلم الآلة على البدء في التدريب ونشر نماذج التعلم الآلي بسرعة. يوفر JumpStart نماذج من دفاتر الملاحظات التي يمكنك استخدامها لاستخدام هذه الخوارزميات بسرعة.
  • استفد من مقاطع الفيديو التدريبية والمدونات - يوفر JumpStart أيضًا العديد من منشورات المدونة ومقاطع الفيديو التي تعلمك كيفية استخدام وظائف مختلفة داخل SageMaker.

يقبل JumpStart إعدادات VPC المخصصة ومفاتيح تشفير KMS ، بحيث يمكنك استخدام النماذج والحلول المتاحة بأمان داخل بيئة مؤسستك. يمكنك تمرير إعدادات الأمان الخاصة بك إلى JumpStart داخل SageMaker Studio أو من خلال SageMaker Python SDK.

مهام ML المدعومة من JumpStart وأمثلة على دفاتر الملاحظات API

يدعم JumpStart حاليًا 15 مهمة من مهام ML الأكثر شيوعًا ؛ 13 منها عبارة عن مهام قائمة على الرؤية والمعالجة اللغوية العصبية ، 8 منها تدعم الضبط الدقيق لعدم وجود كود. كما أنه يدعم أربعة خوارزميات شائعة لنمذجة البيانات الجدولية. تم تلخيص المهام والارتباطات إلى نماذج دفاتر الملاحظات الخاصة بهم في الجدول التالي.

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

بناءً على المهمة ، يمكن أن ترشدك نماذج دفاتر الملاحظات المرتبطة في الجدول السابق إلى كل أو مجموعة فرعية من العمليات التالية:

  • حدد نموذجًا مدعومًا مسبقًا من JumpStart لمهمتك المحددة.
  • استضف نموذجًا مدربًا مسبقًا ، واحصل على تنبؤات منه في الوقت الفعلي ، واعرض النتائج بشكل مناسب.
  • اضبط نموذجًا مدربًا مسبقًا باختيارك للمعلمات الفائقة وانشره للاستدلال.

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

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

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

  1. قم بتشغيل الاستدلال على النموذج المدرب مسبقًا.
    1. استرداد عناصر JumpStart الأثرية ونشر نقطة نهاية.
    2. الاستعلام عن نقطة النهاية ، وتحليل الاستجابة ، وعرض تنبؤات النموذج.
  2. اضبط النموذج المدرَّب مسبقًا على مجموعة البيانات الخاصة بك.
    1. استرجاع المشغولات التدريبية.
    2. قم بتشغيل التدريب.

قم بتشغيل الاستدلال على النموذج المدرب مسبقًا

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

استرداد عناصر JumpStart الأثرية ونشر نقطة نهاية

SageMaker عبارة عن منصة تعتمد على حاويات Docker. يستخدم JumpStart الإطار الخاص المتاح حاويات التعلم العميق من SageMaker (DLCs). نقوم بإحضار أي حزم إضافية ، بالإضافة إلى البرامج النصية للتعامل مع التدريب والاستدلال على المهمة المحددة. أخيرًا ، يتم جلب القطع الأثرية للنموذج المدربة مسبقًا بشكل منفصل model_uris، مما يوفر المرونة للنظام الأساسي. يمكنك استخدام أي عدد من النماذج التي تم تدريبها مسبقًا لنفس المهمة بنص تدريب واحد أو نص برمجي للاستدلال. انظر الكود التالي:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

بعد ذلك ، نقوم بتغذية الموارد في ملف نموذج SageMaker مثيل ونشر نقطة نهاية:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

قد يستغرق نشر نقطة النهاية بضع دقائق حتى يكتمل.

الاستعلام عن نقطة النهاية ، وتحليل الاستجابة ، وعرض التنبؤات

للحصول على استنتاجات من نموذج تم نشره ، يجب توفير صورة إدخال بتنسيق ثنائي جنبًا إلى جنب مع نوع القبول. في JumpStart ، يمكنك تحديد عدد المربعات المحيطة التي تم إرجاعها. في مقتطف الشفرة التالي ، نتوقع عشرة مربعات إحاطة لكل صورة عن طريق إلحاقها ;n_predictions=10 إلى Accept. للتنبؤ بمربعات xx ، يمكنك تغييرها إلى ;n_predictions=xx ، أو احصل على جميع المربعات المتوقعة عن طريق الحذف ;n_predictions=xx تماما.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

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

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

تُظهر لقطة الشاشة التالية إخراج صورة مع تسميات التنبؤ والمربعات المحيطة.

نماذج وخوارزميات Amazon SageMaker JumpStart متاحة الآن عبر API PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

صقل نموذجًا تم تدريبه مسبقًا على مجموعة البيانات الخاصة بك

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

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

استرجاع المشغولات التدريبية

تتشابه أدوات التدريب مع أدوات الاستدلال التي تمت مناقشتها في القسم السابق. يتطلب التدريب حاوية Docker أساسية ، وهي حاوية MXNet في رمز المثال التالي. يتم تضمين أي حزم إضافية مطلوبة للتدريب مع نصوص التدريب في train_sourcer_uri. يتم حزم النموذج المدرب مسبقًا ومعلماته بشكل منفصل.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. 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 and dependencies. This contains all the necessary files including data processing, model training etc.
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)

تشغيل التدريب

لإجراء التدريب ، نقوم ببساطة بإدخال العناصر المطلوبة إلى جانب بعض المعلمات الإضافية إلى ملف مقدر SageMaker واتصل على .fit وظيفة:

# Create SageMaker Estimator instance
od_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", # Entry-point file in source_dir and present in train_source_uri. 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
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

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

وفي الختام

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

نتطلع إلى الاستماع منك أثناء تجربة JumpStart.


حول المؤلف

نماذج وخوارزميات Amazon SageMaker JumpStart متاحة الآن عبر API PlatoBlockchain Data Intelligence. البحث العمودي. عاي.الدكتور فيفيك مادان هو عالم تطبيقي مع فريق Amazon SageMaker JumpStart. حصل على الدكتوراه من جامعة إلينوي في أوربانا شامبين وكان باحثًا بعد الدكتوراه في Georgia Tech. وهو باحث نشط في التعلم الآلي وتصميم الخوارزميات ، وقد نشر أوراقًا علمية في مؤتمرات EMNLP و ICLR و COLT و FOCS و SODA.

نماذج وخوارزميات Amazon SageMaker JumpStart متاحة الآن عبر API PlatoBlockchain Data Intelligence. البحث العمودي. عاي.جواو مورا هو مهندس حلول متخصص في AI / ML في Amazon Web Services. وهو يركز في الغالب على حالات استخدام البرمجة اللغوية العصبية ومساعدة العملاء على تحسين تدريب ونشر نموذج التعلم العميق.

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

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

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