[ad_1]

آزمایش عنوان AI Ars برای فینال - ما آمدیم ، دیدیم ، از زمان محاسبات زیادی استفاده کردیم

اوریش لاوسون گتی ایماژ

شاید مردم بیش از آنچه می توانیم جویدیم غذا خورده ایم.

یک مهندس آمازون به من گفت که وقتی شنید که من می خواهم با عناوین Ars چه کاری انجام دهم ، اولین چیزی که فکر کرد این است که ما یک مشکل فریبکارانه دشوار را انتخاب کرده ایم. وی هشدار داد که باید مراقب باشم تا انتظاراتم را به درستی تنظیم کنم. اگر این یک مشکل تجاری واقعی بود … خوب ، بهترین کاری که می توانست انجام دهد این بود که پیشنهاد کند مشکل را از یک “عنوان خوب یا بد” به چیزی کمتر خاص تغییر دهد.

این بیانیه خانوادگی ترین و مختصر ترین راه برای بیان نتیجه دوره چهار هفته ای یادگیری ماشین به صورت نیمه وقت بود. در این مرحله ، هسته های PyTorch من به اندازه آتش سوزی مشعل ندارند. دقت به لطف مداخله حرفه ای کمی بهبود یافته است ، اما من به اجرای یک راه حل مناسب نزدیک نیستم. امروز ، همانطور که گفته می شود در تعطیلات هستم ، برای اولین بار در بیش از یک سال به والدینم مراجعه کردم ، روی مبل در اتاق نشیمن آنها نشستم و روی این پروژه کار کردم و به طور تصادفی یک مدل آموزش در محل Dell را راه اندازی کردم لپ تاپی که من آورده ام – با پردازنده 2.4 گیگاهرتزی Intel Core i3 7100U – به جای کپی SageMaker از همان لپ تاپ Jupyter. دل آنقدر قفل شد که مجبور شدم باتری را از سر بگیرم تا دوباره راه اندازی شود.

سلام ، اگر دستگاه لزوماً یاد نمی گیرد ، حداقل من این کار را کردم. ما تقریباً به پایان رسیده ایم ، اما اگر این یک تکالیف در کلاس بود ، متن من احتمالاً “ناقص” بود.

این باند سعی می کند کمی یادگیری ماشینی داشته باشد

به طور خلاصه: من جفت عناوین استفاده شده برای مقالات Ars در پنج سال گذشته ، همراه با داده های مربوط به برندگان آزمون A / B و کلیک های نسبی آنها را دریافت کردم. سپس از من خواسته شد تا با استفاده از SageMaker خدمات وب آمازون یک الگوریتم یادگیری ماشین برای پیش بینی برنده در جفت عنوان های آینده ایجاد کنم. سرانجام ، قبل از مشورت با منابع مختلف آمازون برای کمک به نیازم ، چند بن بست برای ML فرو رفتم.

بیشتر قطعات برای تکمیل این پروژه آماده هستند. ما (به طور خاص ، خط نجات “با یک دوست در AWS تماس بگیریم”) با رویکردهای مختلف مدل سازی موفقیت هایی کسب کرده ایم ، اگرچه برآورد دقت (فقط در شمال 70 درصد) به اندازه دلخواه مشخص نبوده است. من کار کافی برای ایجاد (با چربی اضافی آرنج) مدل و کد تعبیه شده برای اجرای پیش بینی ها توسط جفت عناوین را در صورت تنظیم یادداشت های آنها و استفاده از الگوریتم های حاصل دارم.

اما باید صادقانه بگویم: تلاش من برای تکثیر این کار هم در سرور محلی خودم و هم در SageMaker به شکست انجامیده است. در روند جستجوی پیچیدگی های SageMaker (از جمله فراموش کردن خاموش کردن نوت بوک ها ، شروع فرایندهای یادگیری خودکار ، که بعداً در مورد “مشتریان شرکتی” و سایر اشتباهات به من توصیه شد) ، بیشتر از هزینه ای که می توانم صرف کنم ، بودجه AWS را سوزاندم در یک ماجراجویی بدون بودجه و اگرچه من از نظر فکری می فهمم که چگونه مدلهای حاصل از همه اینها را به کار ببرم ، اما باز هم اشتباهات موجود در اجرای واقعی این پیاده سازی را اصلاح می کنم.

اگر هیچ چیز دیگری نباشد ، این پروژه به یک درس بسیار جالب در تمام زمینه های شکست پروژه های یادگیری ماشین (و افراد پشت سر آنها) تبدیل شده است. و شکست این بار با خود داده ها آغاز شد – یا حتی با سوالی که ما ترجیح دادیم با آنها بپرسیم.

این احتمال وجود دارد که من هنوز از این تلاش به یک راه حل مفید دست پیدا کنم. اما در ضمن ، من مجموعه داده را در GitHub خود که با آن کار کرده ام به اشتراک می گذارم تا م componentلفه تعاملی تری برای این ماجرا فراهم کند. اگر می توانید به نتایج بهتری برسید ، فراموش نکنید که هفته آینده با ما همراه باشید تا در نتیجه گیری نهایی این مجموعه ، مرا مسخره کنید. (جزئیات بیشتر در مورد این در پایان.)

چسب مدل سازی

پس از چندین بار تکرار برای تنظیم مدل SqueezeBert ، که ما در تلاش تغییر مسیر برای آموزش عناوین از آن استفاده کردیم ، مجموعه حاصل به طور مداوم 66٪ دقت آزمایش را دریافت می کند – کمی کمتر از قول قبلی بیش از 70٪.

این شامل تلاش برای کاهش اندازه مراحل بین چرخه های آموزش برای اصلاح ورودی ها است – ابر پارامتر “سرعت یادگیری” ، که برای جلوگیری از تجهیزات بیش از حد یا ناکافی مدل استفاده می شود. ما سرعت یادگیری را به میزان قابل توجهی کاهش داده ایم ، زیرا وقتی مقدار کمی داده داشته باشید (همانطور که در اینجا انجام می دهیم) و سرعت یادگیری بیش از حد زیاد باشد ، اساساً فرضیات بزرگتری درباره ساختار و نحو مجموعه داده ها ارائه می شود. کاهش این مدل را وادار می کند تا این پرش ها را با مراحل کوچک کودک وفق دهد. نرخ آموزش اصلی ما 2×10 تعیین شد-5 (2E-5) ؛ ما آن را به 1E-5 افزایش دادیم.

ما همچنین یک مدل بسیار بزرگتر را امتحان کردیم که برای مقدار زیادی متن به نام DeBERTa (BERT با توجه به رمزگشایی پیشرفته) از قبل آموزش دیده بود. DeBERTa یک مدل بسیار پیشرفته است: 48 لایه تبدیل با 1.5 میلیارد پارامتر.

DeBERTa چنان پیچیده است که در معیارهای SuperGLUE – اولین مدلی که این کار را انجام داده است – از مردم در درک وظایف درک زبان طبیعی پیشی گرفته است.

بسته استقرار حاصل نیز کاملاً جامد است: 2.9 گیگابایت. با این همه وزن اضافی برای یادگیری ماشین ، ما به دقت 72 درصدی رسیدیم. با توجه به اینکه قرار است DeBERTa هنگام مشاهده مفهوم متن بهتر از انسان باشد ، همانطور که یک بار اپراتور معروف نیروگاه هسته ای گفته است ، این دقت “عالی نیست ، وحشتناک نیست”.

مارپیچ مرگ هنگام استقرار

بالای آن ساعت داشت تیک می زد. من باید سعی می کردم نسخه خودم را برای آزمایش با داده های واقعی تهیه کنم.

تلاش برای استقرار محلی به خصوص از نظر عملکرد خوب پیش نرفت. بدون پردازنده گرافیکی خوب ، کار PyTorch با مدل و نقطه پایانی به معنای واقعی کلمه سیستم من را خاموش کرد.

بنابراین ، دوباره به تلاش برای استقرار SageMaker بازگشتم. سعی کردم خودم کار کوچکتر مدل سازی SqueezeBert را در SageMaker اجرا کنم ، اما به سرعت پیچیده شد. این آموزش به PyTorch ، چارچوب یادگیری ماشین پایتون و مجموعه ای از ماژول های دیگر نیاز دارد. اما وقتی ماژول های مختلف Python مورد نیاز برای هسته SageMaker PyTorch را وارد کردم ، علی رغم به روزرسانی ها ، دقیقاً مطابقت ندارند.

در نتیجه ، قطعه هایی از کد که روی سرور محلی من اجرا می شوند شکست خوردند و تلاش های من در تاریکی وابستگی های درهم تنیده فرو رفت. در نسخه کتابخانه NumPy مشکلی پیش آمد ، مگر در مواردی که مجبور شدم دوباره نصب کند (pip uninstall numpy، pip install numpy -no-cache-dir) ، نسخه یکسان بود و خطا ادامه داشت. سرانجام آن را برطرف کردم ، اما پس از آن اشتباه دیگری مرتکب شدم ، که متوقف کردن کار آموزش را برای من دشوار کرد و به من دستور داد با خدمات مشتری تماس بگیرم:

ResourceLimitExceeded: An error occurred (ResourceLimitExceeded) when calling the CreateTrainingJob operation: The account-level service limit 'ml.p3.2xlarge for training job usage' is 0 Instances, with current utilization of 0 Instances and a request delta of 1 Instances. Please contact AWS support to request an increase for this limit.

برای تکمیل این تلاش ، من مجبور شدم آمازون سهمیه خود را افزایش دهد – چیزی که انتظار نداشتم وقتی شروع به عضویت کردم. این یک راه حل آسان است ، اما عیب یابی درگیری های مدولار بیشتر روز را خسته می کرد. وقتی سعی کردم عقب بروم ، با استفاده از مدل پیش ساخته ارائه شده توسط کمک متخصص من و استفاده از آن به عنوان نقطه پایانی SageMaker ، ساعت روی من تمام شد.

این تلاش اکنون در وقت اضافه کاری است. در اینجا من می خواهم نحوه عملکرد مدل را هنگام آزمایش در برابر آخرین جفت عناوین – اگر تا به حال به این مرحله رسیده ام – بحث کنم. اگر در انتها موفق شوم ، نتیجه را در نظرات و در یادداشتی در صفحه GitHub خود ارائه خواهم داد.

[ad_2]

منبع: tarjome-news.ir