دو نوع بار کاری آموزشی وجود دارد:
- محاسبات محدود
- محدود محاسبه نمی شود
آموزش محدود به محاسبات محدود به مدت زمانی است که می توانید برای آموزش صرف کنید، نه به میزان داده های آموزشی یا عوامل دیگری. به عبارت دیگر، زمان تمرین «بهینه» همیشه «تا زمانی که توانایی مالی دارید» است. اگر بتوانید به نحوی طولانی تر یا کارآمدتر تمرین کنید، از دست دادن تمرین باید کاهش یابد. (با تنظیم مناسب، از دست دادن اعتبار نیز باید کاهش یابد.)
سرعت بخشیدن به تمرینات محاسباتی معادل بهبود آموزش است. گفتنی است، صرفاً به این دلیل که حجم کار از نظر محاسباتی محدود است، به این معنا نیست که آموزش طولانیتر یا سریعتر تنها راه بهبود نتایج است.
زمانی که آموزش محدود به محاسبات نیست، می توانید تا زمانی که بخواهید تمرین کنید. با این حال، آموزش طولانیتر یک مدل ممکن است کمک زیادی به آن نکند یا حتی ممکن است باعث بیش از حد برازش شود. وقتی آموزش محدود به محاسبه نیست:
- شما میتوانید تا حدی تمرین کنید که میزان تلفات تمرینی بسیار کم باشد، تا جایی که آموزش اضافی ممکن است مقداری از دست دادن تمرین را کاهش دهد، اما به طور معنیداری افت اعتبار را کاهش نمیدهد.
- شما میتوانید راحتتر تنظیم کنید، بهویژه هنگام تنظیم برنامههای کاهش نرخ یادگیری، زیرا آنها تعامل قویتری با بودجه آموزشی دارند. در مقابل، کاهش تلفات آموزشی در تمرینات محاسباتی ممکن است نیاز به یک برنامه کاهش سرعت یادگیری داشته باشد که به کمال تنظیم شده باشد.
صرف نظر از اینکه یک حجم کاری معین محدود به محاسبات است یا خیر، روش هایی که واریانس گرادیان ها را افزایش می دهند معمولاً پیشرفت آموزش را کند می کنند و در نتیجه ممکن است تعداد مراحل آموزشی مورد نیاز برای رسیدن به یک ضرر اعتبار سنجی خاص را افزایش دهند. هر یک از موارد زیر می تواند باعث ایجاد واریانس گرادیان بالا شود:
- استفاده از اندازه دسته کوچکتر
- افزودن افزایش داده ها
- افزودن برخی از انواع منظم سازی (مثلاً نظم بخشیدن به ترک تحصیل).
زمانی که تمرین محدود به محاسبه نیست ، تصمیم بگیرید که چه مدت تمرین کنید
هدف شما: آنقدر تمرین کنید که مدل بدون اتلاف مراحل آموزشی به بهترین نتیجه ممکن برسد.
هدف اصلی شما این است که اطمینان حاصل کنید که به اندازه کافی تمرین می کنید تا مدل بدون هدر دادن مراحل آموزشی غیر ضروری به بهترین نتیجه ممکن برسد. هنگامی که شک دارید، در سمت تمرین طولانی تر اشتباه کنید. معیارهای ارزیابی شما (به عنوان مثال، دقت، یادآوری، AUC، یا F 1 ) هرگز نباید در زمان طولانیتر تمرین کاهش یابد، با این فرض که شما به درستی از انتخاب ایست بازرسی گذشتهنگر استفاده میکنید و به اندازه کافی مکرر پستهای بازرسی را انجام میدهید.
هرگز عدد max_train_steps
را در مطالعه تنظیم نکنید. در عوض، یک مقدار را انتخاب کنید و از همان مقدار برای همه آزمایشها استفاده کنید. از این آزمایشها، مرحله آموزشی را که انتخاب پست بازرسی گذشتهنگر پیدا میکند، ترسیم کنید تا انتخاب max_train_steps
را اصلاح کنید.
به عنوان مثال، اگر بهترین گام همیشه در طول 10٪ اول تمرین باشد، پس حداکثر تعداد گام ها بسیار زیاد است. از طرف دیگر، اگر بهترین مرحله به طور مداوم در 25٪ آخر تمرین باشد، ممکن است از تمرین طولانی تر و تنظیم مجدد برنامه پوسیدگی سود ببرید. تعداد ایده آل مراحل آموزشی می تواند با تغییر معماری یا داده ها تغییر کند (به عنوان مثال، افزودن افزایش داده ها). بخش بعدی نحوه انتخاب یک مقدار نامزد اولیه برای max_train_steps
را بر اساس تعداد مراحل لازم برای "کاملاً تناسب" مجموعه آموزشی با استفاده از نرخ یادگیری ثابت توصیف میکند.
اگر روند آموزش به نحوی بهبود یابد، ممکن است بتوان max_train_steps
کاهش داد. به عنوان مثال، با یک بهینه ساز بهتر تنظیم شده یا یک برنامه نرخ یادگیری بهتر تنظیم شده است.
الگوریتم انتخاب نامزد اولیه برای max_train_steps با استفاده از جابجایی نرخ یادگیری
میتوانید با الگوریتم حرکت نرخ یادگیری، یک نامزد اولیه برای max_train_steps
انتخاب کنید. الگوریتم زیر فرض میکند که نه تنها میتوان «کاملاً» با مجموعه آموزشی تطبیق داد، بلکه این کار را با استفاده از یک برنامه نرخ یادگیری ثابت انجام داد.
- اگر بتوان به طور کامل با کل مجموعه آموزشی مطابقت داشت، باید پیکربندی (با مقداری
max_train_steps
) وجود داشته باشد که کاملاً با مجموعه آموزشی مطابقت داشته باشد. چنین پیکربندی را پیدا کنید و از مقدارmax_train_steps
به عنوان نقطه شروعN
استفاده کنید. - یک جابجایی نرخ یادگیری ثابت (یعنی جستجوی شبکهای نرخ یادگیری) را بدون افزایش داده و بدون منظمسازی اجرا کنید، جایی که هر آزمایشی برای
N
مرحله آموزش میدهد. تعداد مراحل مورد نیاز برای سریعترین آزمایش در جابجایی نرخ یادگیری برای رسیدن به عملکرد آموزشی عالی باید حدس اولیه شما برایmax_train_steps
باشد.
توجه: فضاهای جستجوی بد می تواند منجر به خودفریبی شود. به عنوان مثال، اگر همه نرخهای یادگیری در یک مطالعه بسیار کوچک باشند، ممکن است به اشتباه به این نتیجه برسیم که مقدار بسیار زیادی از max_train_steps
ضروری است. حداقل بررسی کنید که میزان یادگیری مطلوب در مطالعه در مرز فضای جستجو نباشد.
زمانی که آموزش محدود به محاسبات است، مدت زمان تمرین را تعیین کنید
در برخی موارد، از دست دادن آموزش به طور نامحدود بهبود می یابد، بنابراین صبر و منابع محاسباتی شما به عوامل محدود کننده تبدیل می شوند. اما آیا باید تا زمانی که توانایی مالی دارید تمرین کنید؟ نه لزوما. موارد زیر را در نظر بگیرید:
- ممکن است بتوانید با اجرای تعداد بیشتری آزمایش کوتاهتر، تنظیم مؤثرتری انجام دهید، و طولانیترین دورههای «طول تولید» را برای مدلهایی که امیدوارید راهاندازی کنید، رزرو کنید.
- با نزدیک شدن زمان آموزش آزمایشی به حد مجاز صبر شما، آزمایش های تنظیم برای نامزدهای بالقوه راه اندازی شما مرتبط تر می شود، اما می توانید تعداد کمتری از آنها را تکمیل کنید.
- شما احتمالاً می توانید به بسیاری از سؤالات پاسخ دهید در حالی که فقط 10٪ از طول تولید را آموزش می دهید. با این حال، نتایج شما در این محدودیت زمانی ممکن است برای آزمایشهایی در 20٪ طول تولید صدق نکند، چه رسد به 100٪.
تنظیم در طول دوره های متعدد با افزایش محدودیت های مرحله تمرین در هر آزمون یک رویکرد معقول است. شما می توانید هر تعداد دور که می خواهید بدوید، اما معمولاً 1-3 راند کاربردی ترین است. اساساً، سعی کنید تا حد امکان با استفاده از آزمایشها با یک زمان چرخش بسیار سریع، درک بیشتری از مشکل به دست آورید و موارد زیر را مبادله کنید:
- دقت تنظیم
- ارتباط با آخرین، طولانی ترین دویدن.
هنگامی که یک محدودیت زمانی مشخص در هر آزمایش بینش مفیدی ایجاد کرد، زمان آموزش را افزایش دهید و به تنظیم ادامه دهید، در صورت نیاز، نتیجهگیریهای خود را از دورههای کوتاهتر دوباره بررسی کنید. به عنوان نقطه شروع، ما دو دور تنظیم را توصیه می کنیم:
- دور 1: مدت زمان کوتاهتری برای یافتن فراپارامترهای مدل خوب و بهینهساز اجرا میشود.
- دور 2: مدت زمان بسیار کمی روی نقاط فراپارامتر خوب اجرا می شود تا مدل نهایی به دست آید.
بزرگترین سوالی که از دور 1 به دور دوم می رود این است:
چگونه برنامه های کاهش سرعت یادگیری را تنظیم می کنید.
یکی از مشکلات رایج در تنظیم زمانبندی نرخ یادگیری بین دور، استفاده از تمام مراحل آموزشی اضافی با نرخ یادگیری بسیار کم است.
دور 1: تعداد زیادی دویدن های آموزشی کوتاه
متأسفانه، هیچ تضمینی وجود ندارد که هایپرپارامترهای خوب در آموزش کوتاه و ناقص یافت میشوند، زمانی که شما به میزان قابل توجهی طول تمرین را افزایش دهید، همچنان گزینههای خوبی هستند. با این حال، برای برخی از فراپارامترها، انتخاب های خوب اغلب به اندازه کافی همبستگی دارند تا دور 1 مفید باشد. چه مقادیر فراپارامتری یافت شده در دوره های کوتاه تر با موفقیت به دوره های آموزشی طولانی تر منتقل می شود؟ ما نمی دانیم؛ ما به تحقیقات بیشتری نیاز داریم اما بر اساس آنچه تاکنون می دانیم، در اینجا ظن ما در کاهش احتمال انتقال وجود دارد:
- احتمال انتقال زیاده بی ثباتی اولیه تمرین را می توان در دور اول تنظیم با استفاده از تعداد کمتری از مراحل آموزشی برطرف کرد. ابرپارامترهای زیر محتمل ترین انتقال هستند:
- طول گرم کردن
- مقداردهی اولیه
- احتمال انتقال یک پیروزی چشمگیر در معماری مدل معمولاً منتقل می شود، اما بسیاری از نمونه های متقابل محتمل هستند.
- ممکنه منتقل بشه ابرپارامترهای زیر ممکن است منتقل شوند:
- الگوریتم بهینه سازی و هایپرپارامترها به راحتی منتقل می شوند.
- افزایش داده ها
- منظم سازی. اگر نمی توان به طور کامل با مجموعه تمرینی تناسب داشت، این مدل ممکن است در رژیمی باشد که بعید است که منظم سازی کمک زیادی کند.
- بعید به انتقال. بعید است که برنامه نرخ یادگیری به طور کامل منتقل شود. آموزش مدلهای زبان بزرگ محاسباتی-بهینه نشان میدهد که حتی انتقالهای زمانبندی کاهش مییابد، اما ما به طور کلی باور نداریم که این موضوع درست باشد. به عنوان مثال، تنظيم فروپاشي sqrt در تعداد كمي از مراحل آموزشي و سپس گسترش آن به تعداد زيادي باعث مي شود كه بيشتر آموزش در مراحل بسيار كوچك انجام شود. احتمالاً میتوانید با اکثر برنامهها در حد بودجه تمرینی "به اندازه کافی خوب" انجام دهید، اما اگر تنظیم شود احتمالاً بهبود عملکرد قابل توجهی را مشاهده خواهید کرد. درک سوگیری افق کوتاه در فرابهینهسازی تصادفی، خطرات تلاش برای انتخاب نرخهای یادگیری نزدیکبینانه را توصیف میکند.
دور 2: اجراهای کمتر، اما مدت زمان طولانی تر
بهترین پیکربندی هایپرپارامتر را از راند 1 اجرا کنید.
حدس و گمان : 🤖 از مراحل اضافی برای تمدید دوره آموزش با نرخ یادگیری بالا استفاده کنید. به عنوان مثال، اگر از یک برنامه خطی استفاده می کنید، طول پوسیدگی را از دور 1 ثابت نگه دارید و دوره lr
ثابت را در ابتدا افزایش دهید. برای واپاشی کسینوس، پایه lr
از دور 1 نگه دارید و max_train_steps
همانطور که در Training Compute-Optimal Large Language Models توضیح داده شده است، گسترش دهید.
دورهای آموزشی اضافی ممکن است برای تیم هایی با تمام موارد زیر منطقی باشد:
- مدلینگ بسیار بالغ
- تیونینگ خطوط لوله
- دوره های آموزشی تولید بسیار طولانی و گران قیمت
با این حال، دوره های آموزشی اضافی اغلب بی ثمر هستند.
ما قبلاً نحوه انتقال از راند 1 به دور 2 را توضیح دادهایم. اگر به زمان تجزیه و تحلیل اهمیت نمیدهید و اگر استفاده بهینه از منابع محاسباتی نگرانی اصلی شماست، توصیه میکنیم به صورت تصاعدی طول دورههای آموزشی را افزایش دهید (و در نتیجه زمان پایان به انتها برای تکمیل یک مطالعه) در بسیاری از دورهای مختلف تنظیم:
- در هر دور، به طور سیستماتیک اطمینان حاصل کنید که انتخاب های شما همچنان نتایج خوبی ارائه می دهند.
- ایده های جدید را در خط لوله ای قرار دهید که به تدریج آنها را با استفاده از آزمایش های طولانی مدت از مرحله I تا مرحله i+1 به سخره می گیرد.