قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة

تمت كتابة هذا المنشور بالاشتراك مع حاييم راند من Mobileye.

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

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

لحالة استخدام مماثلة ، Mobileye، وهي شركة لتطوير تقنيات المركبات المستقلة ، كان عليها مشاركة ما يلي:

"من خلال نقل تدريب نموذج الرؤية الحاسوبية للتعلم العميق المرتبط بوحدة المعالجة المركزية إلى أنواع مثيلات متعددة (مسرعات وحدة المعالجة المركزية ووحدة معالجة الرسومات / تعلّم الآلة) ، باستخدام tf.data.service حل قائم على أساس أنشأناه ، تمكنا من تقليل وقت التدريب بنسبة 40٪ مع تقليل تكلفة التدريب بنسبة 30٪. نحن متحمسون بشأن المجموعات غير المتجانسة التي تسمح لنا بتشغيل هذا الحل على Amazon SageMaker ".

- هندسة الذكاء الاصطناعي ، Mobileye

في هذا المنشور نناقش المواضيع التالية:

  • كيف تساعد المجموعات غير المتجانسة في إزالة الاختناقات في وحدة المعالجة المركزية
  • متى تستخدم المجموعات غير المتجانسة والبدائل الأخرى
  • تطبيقات مرجعية في PyTorch و TensorFlow
  • نتائج قياس الأداء
  • مجموعات غير متجانسة في Mobileye

AWS's مثيل الحوسبة المعجلة تتضمن العائلة مسرعات من شرائح AWS المخصصة (استدلال AWS, تدريب AWS) ، NVIDIA (وحدات معالجة الرسومات)، و مسرعات Gaudi من Habana Labs (إحدى شركات Intel). لاحظ أنه في هذا المنشور ، نستخدم المصطلحين GPU و Accelerator بالتبادل.

كيف تزيل المجموعات غير المتجانسة معوقات معالجة البيانات

يهدف علماء البيانات الذين يدربون نماذج التعلم العميق إلى زيادة كفاءة تكلفة التدريب وتقليل وقت التدريب. لتحقيق ذلك ، يتمثل أحد أهداف التحسين الأساسية في زيادة استخدام GPU ، وهو المورد الأغلى والأندر داخل الأمازون الحوسبة المرنة السحابية (Amazon EC2) مثيل. قد يكون هذا أكثر صعوبة مع أعباء العمل ML التي تجمع بين الانتشار الأمامي والخلفي لنموذج الشبكة العصبية الكلاسيكي الذي يعتمد على وحدة معالجة الرسومات مع المهام التي تتطلب وحدة المعالجة المركزية (CPU) المكثفة ، مثل معالجة البيانات والزيادة في رؤية الكمبيوتر أو تشغيل محاكاة البيئة في التعلم المعزز. يمكن أن ينتهي الأمر بأحمال العمل هذه إلى أن تكون مرتبطة بوحدة المعالجة المركزية ، حيث يؤدي وجود المزيد من وحدة المعالجة المركزية إلى إنتاجية أعلى وتدريب أسرع وأرخص حيث أن المسرعات الحالية معطلة جزئيًا. في بعض الحالات ، يمكن حل اختناقات وحدة المعالجة المركزية عن طريق التبديل إلى نوع مثيل آخر مع نسبة CPU: GPU أعلى. ومع ذلك ، هناك مواقف قد لا يكون فيها التبديل إلى نوع مثيل آخر ممكنًا بسبب بنية عائلة المثيل أو التخزين أو تبعيات الشبكة.

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

على سبيل المثال ، ضع في اعتبارك نوع مثيل GPU قويًا ، ml.p4d.24xlarge (96 vCPU ، 8 x NVIDIA A100 GPU) ، مع CPU: نسبة GPU 12: 1. لنفترض أن وظيفتك التدريبية تحتاج إلى 20 وحدة معالجة مركزية للمعالجة المسبقة للبيانات الكافية للحفاظ على استخدام وحدة معالجة رسومات واحدة بنسبة 100٪. لذلك ، للحفاظ على استخدام جميع وحدات معالجة الرسومات الثمانية بنسبة 8٪ ، فأنت بحاجة إلى نوع مثيل لـ 100 وحدة معالجة مركزية (vCPU). ومع ذلك ، فإن ml.p160d.4xlarge أقل من 24 vCPUs ، أو 64٪ ، مما يحد من استخدام GPU إلى 40٪ ، كما هو موضح على يسار الرسم البياني التالي. هل ستساعد إضافة مثيل ml.p60d.4xlarge آخر؟ لا ، لأن نسبة وحدة معالجة الرسومات (CPU) الخاصة بالوظيفة ستظل كما هي.

باستخدام المجموعات غير المتجانسة ، يمكننا إضافة مللتين .c5.18xlarge (72 vCPU) ، كما هو موضح على يمين الرسم التخطيطي. إجمالي صافي وحدة المعالجة المركزية الافتراضية في هذه المجموعة هو 210 (96 + 2 * 72) ، مما يؤدي إلى وحدة المعالجة المركزية: نسبة GPU إلى 30: 1. سيتم إلغاء تحميل كل من هذه المثيلات المحسّنة للحوسبة بمهمة مكثفة للمعالجة المسبقة للبيانات ، وستسمح باستخدام GPU بكفاءة. على الرغم من التكلفة الإضافية للشاشة ml.c5.18xlarge ، فإن استخدام GPU الأعلى يسمح بمعالجة أسرع ، وبالتالي فوائد أداء سعر أعلى.

متى تستخدم المجموعات غير المتجانسة والبدائل الأخرى

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

تتمثل الطريقة السريعة لتحديد عنق الزجاجة في وحدة المعالجة المركزية في مراقبة وحدة المعالجة المركزية ووحدة معالجة الرسومات مقاييس الاستخدام لوظائف تدريب SageMaker في الأمازون CloudWatch. يمكنك الوصول إلى هذه الآراء من وحدة تحكم إدارة AWS ضمن الارتباط التشعبي لمقاييس مثيل صفحة وظيفة التدريب. اختر المقاييس ذات الصلة وقم بالتبديل من دقة 5 دقائق إلى دقيقة واحدة. لاحظ أن المقياس هو 1٪ لكل vCPU أو GPU ، وبالتالي فإن معدل الاستخدام لمثيل يحتوي على 100 vCPUs / GPU يمكن أن يصل إلى 4٪. الشكل التالي هو أحد الأمثلة من مقاييس CloudWatch ، حيث يتم استخدام وحدة المعالجة المركزية بنسبة 400 ٪ تقريبًا ، مما يشير إلى اختناق وحدة المعالجة المركزية ، في حين أن وحدة معالجة الرسومات غير مستغلة بشكل كافٍ.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

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

إذا استنتجت أن وظيفتك يمكن أن تستفيد من وحدة معالجة مركزية أعلى: نسبة حوسبة GPU ، ففكر أولاً في الارتقاء إلى نوع مثيل آخر في نفس عائلة المثيل ، إذا كان أحدها متاحًا. على سبيل المثال ، إذا كنت تقوم بتدريب النموذج الخاص بك على ml.g5.8xlarge (32 vCPUs ، 1 GPU) ، ففكر في توسيع النطاق إلى ml.g5.16xlarge (64 vCPUs ، 1 GPU). أو ، إذا كنت تقوم بتدريب النموذج الخاص بك باستخدام مثيل GPU متعدد ml.g5.12xlarge (48 وحدة معالجة مركزية ، 4 وحدات معالجة رسومات) ، ففكر في توسيع النطاق إلى ml.g5.24xlarge (96 vCPUs ، 4 GPUs). الرجوع إلى G5 مواصفات عائلة المثال لمزيد من التفاصيل.

في بعض الأحيان ، لا يعد التوسع خيارًا ، لأنه لا يوجد نوع مثيل به نسبة أعلى من vCPU: GPU في نفس عائلة المثيل. على سبيل المثال ، إذا كنت تقوم بتدريب النموذج على ml.trn1.32xlarge أو ml.p4d.24xlarge أو ml.g5.48xlarge ، يجب مراعاة المجموعات غير المتجانسة لتدريب نموذج SageMaker.

إلى جانب التوسع ، نود أن نلاحظ أن هناك بدائل إضافية لمجموعة غير متجانسة ، مثل NVIDIA DALI، والذي يؤدي إلى إلغاء تحميل المعالجة المسبقة للصور إلى وحدة معالجة الرسومات. لمزيد من المعلومات ، يرجى الرجوع إلى التغلب على اختناقات المعالجة المسبقة للبيانات باستخدام TensorFlow Data Service و NVIDIA DALI وطرق أخرى.

لتبسيط عملية اتخاذ القرار ، راجع المخطط الانسيابي التالي.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

كيفية استخدام مجموعات SageMaker غير المتجانسة

للبدء بسرعة ، يمكنك الانتقال مباشرة إلى أمثلة TensorFlow أو PyTorch المقدمة كجزء من هذا المنشور.

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

قبل هذه الميزة ، قمت بتهيئة فئة مقدِّر مهمة التدريب باستخدام InstanceCount ومعلمات InstanceType ، والتي تفترض ضمنيًا أن لديك نوع مثيل واحد فقط (مجموعة متجانسة). مع إصدار مجموعات غير متجانسة ، قدمنا ​​الجديد sagemaker.instance_group.InstanceGroup صف دراسي. يمثل هذا مجموعة من مثيل واحد أو أكثر من نوع مثيل معين ، تم تصميمه للقيام بدور منطقي (مثل معالجة البيانات أو تحسين الشبكة العصبية. يمكن أن يكون لديك مجموعتان أو أكثر ، وتحديد اسم مخصص لكل مجموعة مثيل ، المثيل النوع وعدد المثيلات لكل مجموعة مثيل. لمزيد من المعلومات ، راجع استخدام SageMaker Python SDK و استخدام واجهات برمجة تطبيقات SageMaker منخفضة المستوى.

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

دعنا نذهب من خلال مثال بسيط لبدء وظيفة تدريبية غير متجانسة وقراءة تكوين البيئة في وقت التشغيل.

  1. عند تحديد وظيفة التدريب وبدء تشغيلها ، نقوم بتكوين مجموعتي مثيل تستخدمان كوسيطات لمقدر SageMaker:
    from sagemaker.instance_group import InstanceGroup
    data_group = InstanceGroup("data_group", "ml.c5.18xlarge", 2)
    dnn_group = InstanceGroup("dnn_group", "ml.p4d.24xlarge", 1)
    
    from sagemaker.pytorch import PyTorch
    estimator = PyTorch(...,
        entry_point='launcher.py',
        instance_groups=[data_group, dnn_group]
    )
  2. على البرنامج النصي للتدريب على نقطة الدخول (المسمى launcher.py) ، قرأنا تكوين المجموعة غير المتجانسة لمعرفة ما إذا كان المثيل سيعمل على المعالجة المسبقة أو كود DNN:
    from sagemaker_training import environment
    env = environment.Environment()
    if env.current_instance_group == 'data_group': ...;

مع هذا ، دعنا نلخص المهام التي يقوم بها SageMaker نيابة عنك ، والمهام التي تتحمل مسؤوليتها.

يقوم SageMaker بتنفيذ المهام التالية:

  1. توفير أنواع مثيل مختلفة وفقًا لتعريف مجموعة المثيل.
  2. توفير قنوات الإدخال على كل مجموعات المثيل أو مجموعات محددة.
  3. قم بتوزيع البرامج النصية التدريبية والتبعيات على الأمثلة.
  4. قم بإعداد كتلة MPI على مجموعة مثيل معينة ، إذا تم تحديدها.

أنت مسؤول عن المهام التالية:

  1. قم بتعديل البرنامج النصي لوظيفة بدء التدريب لتحديد مجموعات المثيل.
  2. تنفيذ خط أنابيب البيانات الموزعة (على سبيل المثال ، tf.data.service).
  3. قم بتعديل البرنامج النصي الخاص بنقطة الدخول (انظر launcher.py في مثال دفتر الملاحظات) لتكون نقطة إدخال واحدة تعمل على جميع المثيلات ، وتكتشف مجموعة المثيلات التي تعمل فيها ، وتحفز السلوك ذي الصلة (مثل معالجة البيانات أو تحسين DNN).
  4. عندما تنتهي حلقة التدريب ، يجب عليك التأكد من أن عملية نقطة الدخول الخاصة بك تنتهي في جميع الحالات عبر جميع مجموعات المثيل. هذا مهم لأن SageMaker ينتظر جميع المثيلات لإنهاء المعالجة قبل أن يضع علامة على المهمة كمكتملة ويتوقف عن إعداد الفواتير. ال launcher.py يوفر البرنامج النصي في أمثلة دفاتر الملاحظات TensorFlow و PyTorch تنفيذًا مرجعيًا لمثيلات مجموعة بيانات الإشارة للخروج عند انتهاء مثيلات مجموعة DNN من عملها.

مثال على دفاتر الملاحظات لمجموعات SageMaker غير المتجانسة

في هذا القسم ، نقدم ملخصًا لـ مثال دفاتر الملاحظات لكل من أطر عمل TensorFlow و PyTorch ML. في دفاتر الملاحظات ، يمكنك العثور على تفاصيل التنفيذ والإرشادات حول كيفية عمل التعليمات البرمجية ومقتطفات التعليمات البرمجية التي يمكنك إعادة استخدامها في البرامج النصية للتدريب ومخططات التدفق وتحليل مقارنة التكلفة.

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

مجموعة غير متجانسة باستخدام أداة تحميل البيانات الموزعة القائمة على tf.data.service (TensorFlow)

هذه مفكرة يوضح كيفية تنفيذ مجموعة غير متجانسة لتدريب SageMaker باستخدام TensorFlow tf.data.service البيانات الموزعة القائمة على خط الأنابيب. نقوم بتدريب نموذج رؤية كمبيوتر التعلم العميق ريسنت 50 التي تتطلب زيادة البيانات كثيفة استخدام وحدة المعالجة المركزية. يستخدم هورفود لتوازي البيانات الموزعة متعددة GPU.

نقوم بتشغيل عبء العمل في تكوينين: أولاً كمجموعة متجانسة ، مثيل واحد ml.p4d.24xlarge ، باستخدام معيار tf.data خط الأنابيب الذي يعرض الاختناقات في وحدة المعالجة المركزية مما يؤدي إلى تقليل استخدام وحدة معالجة الرسومات. في التشغيل الثاني ، ننتقل من نوع مثيل واحد إلى مجموعتي مثيل باستخدام مجموعة SageMaker غير المتجانسة. يؤدي هذا التشغيل إلى إلغاء تحميل بعض معالجة البيانات إلى مثيلات وحدة المعالجة المركزية الإضافية (باستخدام tf.data.service).

ثم نقارن التكوينات المتجانسة وغير المتجانسة ونجد فوائد أداء السعر الرئيسية. كما هو موضح في الجدول التالي ، فإن الوظيفة غير المتجانسة (86 مللي ثانية / خطوة) أسرع في التدريب بمقدار 2.2 مرة من الوظيفة المتجانسة (192 مللي ثانية / خطوة) ، مما يجعل تدريب النموذج أرخص بنسبة 46٪.

المثال 1 (TF) ml.p4d.24xl مل. c5.18xl السعر بالساعة * متوسط ​​وقت الخطوة التكلفة لكل خطوة تحسين أداء السعر
متجانس 1 0 $37.688 مللي 192 $0.201 .
غير متجانسة 1 2 $45.032 مللي 86 $0.108 46%

* السعر بالساعة على أساس us-east-1 تسعير SageMaker عند الطلب

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

مجموعة غير متجانسة باستخدام أداة تحميل البيانات الموزعة القائمة على خادم gRPC (PyTorch)

هذه مفكرة يوضح عينة من عبء العمل باستخدام مجموعة غير متجانسة لتدريب SageMaker باستخدام أداة تحميل البيانات الموزعة القائمة على خادم العميل gRPC. يستخدم هذا المثال وحدة معالجة رسومات واحدة. نستخدم نموذج PyTorch بناءً على ما يلي مثال MNIST الرسمي. تم تعديل رمز التدريب ليكون ثقيلًا على المعالجة المسبقة للبيانات. نقوم بتدريب هذا النموذج في كل من أوضاع الكتلة المتجانسة وغير المتجانسة ، ونقارن أداء السعر.

في هذا المثال ، افترضنا أن عبء العمل لا يمكن أن يستفيد من العديد من وحدات معالجة الرسومات ، ويعتمد على بنية GPU محددة (NVIDIA V100). أدرنا وظائف تدريبية متجانسة وغير متجانسة ، ووجدنا مزايا أداء السعر الرئيسية ، كما هو موضح في الجدول التالي. الوظيفة غير المتجانسة (1.19 ثانية / خطوة) أسرع 6.5 مرة في التدريب من الوظيفة المتجانسة (0.18 ثانية / خطوة) ، مما يجعل تدريب النموذج أرخص بنسبة 77٪.

المثال 2 (PT) مل. 3.2xl مل. c5.9xl السعر بالساعة * متوسط ​​وقت الخطوة التكلفة لكل خطوة تحسين أداء السعر
متجانس 1 0 $3.825 مللي 1193 $0.127 .
غير متجانسة 1 1 $5.661 مللي 184 $0.029 77%

* السعر بالساعة على أساس us-east-1 تسعير SageMaker عند الطلب

هذا ممكن لأنه مع زيادة عدد وحدات المعالجة المركزية ، يمكننا استخدام 32 عاملاً في محمل البيانات (مقارنة بـ 8 مع ml.p3.2xlarge) لمعالجة البيانات مسبقًا والحفاظ على استخدام GPU بنسبة 100٪ على فترات متكررة. انظر مفكرة لمزيد من التفاصيل والرسوم البيانية.

مجموعات غير متجانسة في Mobileye

تقوم Mobileye ، إحدى شركات Intel ، بتطوير أنظمة مساعدة السائق المتقدمة (ADAS) وتقنيات المركبات المستقلة بهدف إحداث ثورة في صناعة النقل ، وجعل الطرق أكثر أمانًا ، وإنقاذ الأرواح. يتم تمكين هذه التقنيات باستخدام نماذج رؤية الكمبيوتر المتطورة (CV) التي يتم تدريبها باستخدام SageMaker على كميات كبيرة من البيانات المخزنة فيها خدمة تخزين أمازون البسيطة (أمازون S3). تستخدم هذه النماذج أحدث تقنيات التعلم العميق للشبكات العصبية.

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

الاعتبارات

مع إطلاق ميزة الكتلة غير المتجانسة ، يوفر SageMaker قدرًا أكبر من المرونة في خلط ومطابقة أنواع المثيلات في وظيفتك التدريبية. ومع ذلك ، ضع في اعتبارك ما يلي عند استخدام هذه الميزة:

  • ميزة الكتلة غير المتجانسة متاحة من خلال SageMaker PyTorch و TensorFlow فئات مقدر الإطار. الأطر المدعومة هي PyTorch v1.10 أو الأحدث و TensorFlow v2.6 أو الأحدث.
  • تشترك جميع مجموعات المثيل في نفس صورة Docker.
  • تشترك جميع مجموعات المثيل في نفس البرنامج النصي للتدريب. لذلك ، يجب تعديل البرنامج النصي الخاص بالتدريب لاكتشاف مجموعة المثيلات التي ينتمي إليها وتشغيل التفرع وفقًا لذلك.
  • يتم تعيين أسماء مضيفي مثيلات التدريب (على سبيل المثال ، alog-1 و algo-2 وما إلى ذلك) بشكل عشوائي ، ولا تشير إلى مجموعة المثيلات التي ينتمون إليها. للحصول على دور المثيل ، نوصي بالحصول على عضوية مجموعة المثيل الخاصة به أثناء وقت التشغيل. هذا مهم أيضًا عند مراجعة سجلات الدخول كلاود ووتش، لأن اسم تيار السجل [training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp] له اسم المضيف.
  • يمكن تطبيق إستراتيجية التدريب الموزعة (عادةً مجموعة MPI) على مجموعة مثيل واحدة فقط.
  • SageMaker أحواض السباحة الدافئة المُدارة و SageMaker وضع المحلي لا يمكن استخدامها حاليًا مع التدريب العنقودي غير المتجانسة.

وفي الختام

في هذا المنشور ، ناقشنا متى وكيفية استخدام ميزة المجموعة غير المتجانسة لتدريب SageMaker. أظهرنا تحسنًا بنسبة 46٪ في أداء السعر في حالة استخدام في العالم الحقيقي وساعدنا في البدء بسرعة مع أداة تحميل البيانات الموزعة (tf.data.service و gRPC client-server). يمكنك استخدام هذه التطبيقات مع الحد الأدنى من تغييرات التعليمات البرمجية في البرامج النصية التدريبية الموجودة لديك.

للبدء ، جرب مثال دفاتر الملاحظات. لمعرفة المزيد حول هذه الميزة ، يرجى الرجوع إلى تدريب باستخدام مجموعة غير متجانسة.


عن المؤلفين

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.جيلي ناحوم هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي يعمل كجزء من فريق التعلم الآلي في منطقة أوروبا والشرق الأوسط وإفريقيا أمازون. جيلي شغوف بتحديات تدريب نماذج التعلم العميق ، وكيف يغير التعلم الآلي العالم كما نعرفه. في أوقات فراغه ، يستمتع جيلي بلعب تنس الطاولة.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.هروشيكيش جانجور هو مهندس حلول رئيسي للشركات الناشئة AI / ML مع خبرة في كل من ML Training و AWS Networking. إنه يساعد الشركات الناشئة في تقنيات المركبات الذاتية ، والروبوتات ، والسيرة الذاتية ، ومعالجة اللغات الطبيعية ، و MLOps ، و ML Platform ، وتقنيات أتمتة العمليات الروبوتية لإدارة أعمالهم بكفاءة وفعالية على AWS. قبل انضمامه إلى AWS ، اكتسب Hrushikesh أكثر من 20 عامًا من الخبرة في المجال بشكل أساسي حول الأنظمة الأساسية السحابية والبيانات.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.غال أوشري هو مدير أول للمنتجات في فريق Amazon SageMaker. لديه 7 سنوات من الخبرة في العمل على أدوات وأطر عمل وخدمات التعلم الآلي.

قم بتحسين أداء السعر لتدريب النموذج الخاص بك باستخدام مجموعات Amazon SageMaker غير المتجانسة PlatoBlockchain Data Intelligence. البحث العمودي. عاي.حاييم رند هي مطور خوارزمية للتعلم الآلي تعمل على تقنيات التعلم العميق ورؤية الكمبيوتر لحلول المركبات الذاتية في Mobileye ، إحدى شركات Intel. تحقق من موقعه المدونة.

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

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