تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | خدمات الويب الأمازون

تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | خدمات الويب الأمازون

ازدادت شعبية التدريب على نماذج اللغات الكبيرة (LLM) خلال العام الماضي مع إصدار العديد من النماذج الشائعة مثل Llama 2 وFalcon وMistral. يقوم العملاء الآن بالتدريب المسبق وضبط دورات LLM التي تتراوح من 1 مليار إلى أكثر من 175 مليار معلمة لتحسين أداء النموذج للتطبيقات عبر الصناعات، من الرعاية الصحية إلى التمويل والتسويق.

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

في هذه التدوينة نسلط الضوء على الميزات الجديدة للـ الأمازون SageMaker مكتبة النماذج الموازية (SMP) التي تعمل على تبسيط عملية تدريب النماذج الكبيرة وتساعدك على تدريب LLMs بشكل أسرع. على وجه الخصوص، نحن نغطي تجربة المستخدم المبسطة الجديدة لمكتبة SMP التي تعتمد على واجهات برمجة تطبيقات PyTorch Fully Sharded Data Parallel (FSDP) مفتوحة المصدر، ووظيفة الموسعة الموازية الموسعة التي تتيح نماذج التدريب بمئات المليارات من المعلمات، وتحسينات الأداء التي تقلل من وقت تدريب النموذج وتكلفة تصل إلى 20%.

لمعرفة المزيد حول المكتبة الموازية لنموذج SageMaker، راجع مكتبة التوازي النموذجي SageMaker v2 توثيق. يمكنك أيضًا الرجوع إلى موقعنا مثال دفاتر الملاحظات للبدء.

ميزات جديدة تعمل على تبسيط وتسريع تدريب النماذج الكبيرة

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

محاذاة SMP مع PyTorch مفتوح المصدر

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

عروض باي تورش توازي البيانات المجزأة بالكامل (FSDP) كطريقة رئيسية لدعم عبء العمل التدريبي الكبير عبر العديد من أجهزة الحوسبة. كما هو موضح في مقتطف الكود التالي، فإن واجهات برمجة التطبيقات المحدثة لـ SMP لتقنيات مثل توازي البيانات المجزأة تعكس تلك الخاصة بـ PyTorch. يمكنك ببساطة الركض import torch.sagemaker واستخدامها بدلا من torch.

## training_script.py
import torch.sagemaker as tsm
tsm.init() # Set up a PyTorch model
model = ... # Wrap the PyTorch model using the PyTorch FSDP module
model = FSDP(
model,
...
) optimizer = ...
...

بفضل هذه التحديثات لواجهات برمجة تطبيقات SMP، يمكنك الآن تحقيق فوائد أداء SageMaker ومكتبة SMP دون إصلاح البرامج النصية التدريبية الحالية لـ PyTorch FSDP. يتيح لك هذا النموذج أيضًا استخدام نفس قاعدة التعليمات البرمجية عند التدريب في مكان العمل كما هو الحال في SageMaker، مما يبسط تجربة المستخدم للعملاء الذين يتدربون في بيئات متعددة.

لمزيد من المعلومات حول كيفية تمكين SMP مع البرامج النصية التدريبية الحالية لـ PyTorch FSDP، راجع ابدأ مع SMP.

دمج التوازي الموتر لتمكين التدريب على مجموعات ضخمة

يعمل هذا الإصدار من SMP أيضًا على توسيع قدرات PyTorch FSDP لتشمل تقنيات التوازي الموتر. إحدى مشكلات استخدام توازي البيانات المجزأة وحدها هي أنه يمكنك مواجهة مشكلات التقارب أثناء زيادة حجم مجموعتك. وذلك لأن معلمات التجزئة والتدرجات وحالة المحسن عبر الرتب المتوازية للبيانات تزيد أيضًا من حجم الدفعة العامة الخاصة بك؛ في المجموعات الكبيرة، يمكن دفع حجم الدفعة العالمية هذا إلى ما هو أبعد من العتبة التي سيتقارب النموذج تحتها. تحتاج إلى دمج تقنية توازي إضافية لا تتطلب زيادة في حجم الدُفعة العالمية أثناء توسيع نطاق مجموعتك.

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

اليوم، يتوفر توازي الموتر مع PyTorch FSDP فقط مع SMP v2. يسمح لك SMP v2 بتمكين هذه التقنية من خلال بضعة أسطر من تغيير التعليمات البرمجية وإطلاق العنان للتدريب المستقر حتى في المجموعات الكبيرة. يتكامل SMP v2 مع محرك المحولات لتطبيقه لتوازي الموتر وجعله متوافقًا مع واجهات برمجة تطبيقات PyTorch FSDP. يمكنك تمكين توازي موتر PyTorch FSDP وSMP في وقت واحد دون إجراء أي تغييرات على نموذج PyTorch أو تكوين PyTorch FSDP. توضح مقتطفات التعليمات البرمجية التالية كيفية إعداد قاموس تكوين SMP بتنسيق JSON وإضافة وحدة تهيئة SMP torch.sagemaker.init()، الذي يقبل قاموس التكوين في الواجهة الخلفية عند بدء مهمة التدريب، إلى البرنامج النصي للتدريب الخاص بك.

تكوين SMP هو كما يلي:

{ "tensor_parallel_degree": 8, "tensor_parallel_seed": 0
}

في البرنامج النصي للتدريب الخاص بك، استخدم الكود التالي:

import torch.sagemaker as tsm
tsm.init() from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_config(..)
model = tsm.transform(model)

لمعرفة المزيد حول استخدام توازي الموتر في SMP، راجع التوازي الموتر قسم من وثائقنا.

استخدم الميزات المتقدمة لتسريع تدريب النماذج بنسبة تصل إلى 20%

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

التقسيم الهجين

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

افتراضيًا، تقوم أجزاء PyTorch FSDP بنموذج القطع الأثرية عبر جميع أجهزة التسريع في مجموعتك. اعتمادًا على مهمة التدريب الخاصة بك، قد تؤدي طريقة التقسيم هذه إلى زيادة حمل الاتصالات وإنشاء عنق الزجاجة. للمساعدة في ذلك، توفر مكتبة SMP توازيًا للبيانات الهجينة القابلة للتكوين أعلى PyTorch FSDP. تسمح لك هذه الميزة بتعيين درجة التقسيم المثالية لحجم عمل التدريب الخاص بك. ما عليك سوى تحديد درجة التقسيم في كائن JSON للتكوين وإدراجه في برنامج تدريب SMP الخاص بك.

تكوين SMP هو كما يلي:

{ "hybrid_shard_degree": 16 }

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

استخدم عمليات الاتصال الجماعية SMDDP المحسنة للبنية التحتية لـ AWS

يمكنك استخدام مكتبة SMP مع ملف مكتبة توازي البيانات الموزعة (SMDDP) من SageMaker لتسريع أعباء العمل التدريبية الموزعة. يتضمن SMDDP برنامجًا محسنًا AllGather تم تصميم عملية الاتصال الجماعي للحصول على أفضل أداء على مثيلات SageMaker p4d وp4de المتسارعة. في التدريب الموزع، تُستخدم عمليات الاتصال الجماعية لمزامنة المعلومات عبر العاملين في وحدة معالجة الرسومات. AllGather هي إحدى عمليات الاتصال الجماعي الأساسية المستخدمة عادةً في توازي البيانات المجزأة لتجسيد معلمات الطبقة قبل خطوات الحساب الأمامية والخلفية. بالنسبة لوظائف التدريب التي تعوقها الاتصالات، يمكن للعمليات الجماعية الأسرع أن تقلل من وقت التدريب والتكلفة دون أي آثار جانبية على التقارب.

لاستخدام مكتبة SMDDP، تحتاج فقط إلى إضافة سطرين من التعليمات البرمجية إلى البرنامج النصي للتدريب الخاص بك:

import torch.distributed as dist # Initialize with SMDDP
import smdistributed.dataparallel.torch.torch_smddp
dist.init_process_group(backend="smddp") # Replacing "nccl" # Initialize with SMP
import torch.sagemaker as tsm
tsm.init()

بالإضافة إلى SMP، يدعم SMDDP المصدر المفتوح PyTorch FSDP وDeepSpeed. لمعرفة المزيد حول مكتبة SMDDP، راجع قم بتشغيل التدريب الموزع باستخدام مكتبة توازي البيانات الموزعة SageMaker.

تفعيل التفريغ

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

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

يوفر SMP v2 خوارزمية تفريغ تنشيط محسنة يمكنها تحسين أداء التدريب. يؤدي تطبيق SMP إلى جلب عمليات التنشيط مسبقًا قبل الحاجة إليها على وحدة معالجة الرسومات، مما يقلل وقت الخمول.

نظرًا لأن SMP مبني على واجهات برمجة التطبيقات الخاصة بـ PyTorch، فإن تمكين تفريغ التنشيط الأمثل لا يتطلب سوى بضعة أسطر من تغيير التعليمات البرمجية. ما عليك سوى إضافة التكوينات المرتبطة (sm_activation_offloading و activation_loading_horizon المعلمات) وإدراجها في البرنامج النصي للتدريب الخاص بك.

تكوين SMP هو كما يلي:

{ "activation_loading_horizon": 2, "sm_activation_offloading": True
}

في البرنامج النصي للتدريب، استخدم الكود التالي:

import torch.sagemaker as tsm
tsm.init() # Native PyTorch module for activation offloading
from torch.distributed.algorithms._checkpoint.checkpoint_wrapper import (
apply_activation_checkpointing,
offload_wrapper,
) model = FSDP(...) # Activation offloading requires activation checkpointing.
apply_activation_checkpointing(
model,
check_fn=checkpoint_tformer_layers_policy,
) model = offload_wrapper(model)

لمعرفة المزيد حول أدوات نقطة تفتيش PyTorch مفتوحة المصدر لتفريغ التنشيط، راجع check_wrapper.py البرنامج النصي في مستودع PyTorch GitHub و تفعيل نقاط التفتيش في مشاركة مدونة PyTorch توسيع نطاق نماذج الأساس متعدد الوسائط في TorchMultimodal مع توزيع Pytorch. لمعرفة المزيد حول التنفيذ الأمثل لـ SMP لتفريغ التنشيط، راجع تفعيل التفريغ قسم من وثائقنا.

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

وفي الختام

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

للبدء باستخدام SMP v2، راجع موقعنا توثيق ولنا دفاتر الملاحظات عينة.


حول المؤلف

تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.روبرت فان دوسين هو مدير منتج أول في Amazon SageMaker. وهو يقود الأطر والمجمعات وتقنيات التحسين للتدريب على التعلم العميق.

تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.لويس كوينتيلا هو مدير مطور البرامج لمكتبة AWS SageMaker المتوازية. في أوقات فراغه ، يمكن العثور عليه يركب هارلي في منطقة خليج سان فرانسيسكو.

تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.جوتام كومار هو مهندس برمجيات في AWS AI Deep Learning. إنه شغوف ببناء أدوات وأنظمة الذكاء الاصطناعي. وفي أوقات فراغه، يستمتع بركوب الدراجات وقراءة الكتب.

تعمل المكتبة المتوازية لنموذج Amazon SageMaker الآن على تسريع أعباء عمل PyTorch FSDP بنسبة تصل إلى 20% | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.راهول هويلغول مهندس تطوير برمجيات أول في التعلم العميق الموزع في Amazon Web Services.

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

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