با هدف افزایش قابلیت تکرارپذیری و توانمند سازی دیگران برای ساخت راحت تر بر روی کارهای منتشر شده ، ما یک چک لیست کامل بودن کد ML ارائه می دهیم. فهرست بررسی کامل بودن ML Code فروشگاه کد را براساس اسکریپت ها و مصنوعات ارائه شده در آن ارزیابی می کند.
معرفی
سال گذشته ، جوئل پینو برای تسهیل تحقیقات قابل تکرار ارائه شده در کنفرانس های بزرگ OA (NeurIPS ، ICML ،…) ، چک لیست تولید مجدد را منتشر کرد. بیشتر موارد موجود در چک لیست بر روی اجزای مقاله تمرکز دارند. یک مورد در این چک لیست "ارائه پیوند به کد منبع" است ، اما به غیر از این ، توصیه های کمی ارائه شده است.
بهترین روش ها در لیست کامل بودن کد ML خلاصه شده است ، که اکنون بخشی از مراحل رسمی ارسال کد NeurIPS 2020 است و به دلخواه خود برای استفاده توسط بازرسان در دسترس خواهد بود.
لیست کامل بودن ML
فهرست بررسی کامل بودن کد M کد فروشگاه را برای موارد زیر بررسی می کند:
- وابستگی ها - آیا مخزن اطلاعات وابستگی یا دستورالعمل نحوه تنظیم محیط را دارد؟
- سناریوهای آموزش - آیا مخزن راهی برای آموزش / متناسب کردن مدلهای توصیف شده در سند دارد؟
- سناریوهای ارزیابی - آیا مخزن اسکریپتی برای محاسبه عملکرد مدل (های) آموزش دیده یا اجرای آزمایشات روی مدل ها دارد؟
- مدل های پیش ساخته - آیا مخزن دسترسی رایگان به وزن مدل های آموزش دیده را فراهم می کند؟
- نتایج - آیا مخزن شامل جدول / نمودار نتایج اصلی و یک اسکریپت برای بازتولید این نتایج است؟
هر مخزن می تواند از 0 (هیچ کدام) تا 5 (دارای همه) تیک دریافت کند. اطلاعات بیشتر در مورد معیارهای هر مورد را می توان در مخزن Github یافت.
چه شواهدی وجود دارد که موارد چک لیست به مخازن مفیدتر کمک می کنند؟
این انجمن به طور کلی از ستاره های GitHub به عنوان پروکسی برای مفید بودن مخزن استفاده می کند. بنابراین انتظار می رود که repo های دارای امتیاز بالاتر در لیست کامل بودن ML دارای ستاره های GitHub بیشتری نیز باشند. برای آزمایش این فرضیه ، 884 repo GitHub به عنوان پیاده سازی رسمی در اسناد NeurIPS 2019 ارسال شده است. زیر مجموعه 25٪ از این 884 repo به طور تصادفی انتخاب شده و به صورت دستی در چک لیست کامل ML بررسی شده است. آنها این نمونه repo های NeurIPS 2019 GitHub را بر اساس تعداد تیک هایی که در چک لیست کامل کد ML دارند گروه بندی کردند و از ستاره های متوسط GitHub در هر گروه نقشه برداری کردند. نتیجه زیر است:
repo های NeurIPS 2019 با 0 کادر انتخاب دارای میانگین 1.5 ستاره در GitHub بود. در مقابل ، repo ها با 5 کادر انتخاب دارای میانگین 196.5 ستاره GitHub بودند. فقط 9٪ از repo ها 5 تیک داشتند و بیشتر repos ها (70٪) 3 تیک یا کمتر داشتند. آزمون جمع بندی رتبه Wilcoxon انجام شد و مشخص شد که تعداد ستارگان در کلاس 5 تیک به طور قابل توجهی (p.value <1e-4) بالاتر از همه کلاسهای دیگر به جز 5 در مقابل 4 (که p.value مرز است). در 0.015). می توانید داده ها و کد این شکل را در مخزن Github مشاهده کنید.
برای آزمایش گسترش این رابطه به طور گسترده تر ، اسکریپتی برای محاسبه خودکار محاسبه چک لیست از مخزن README و کد مرتبط ایجاد شد. سپس ما مجموعه 884 مخزن NeurIPS 2019 و همچنین مجموعه گسترده ای از مخازن کد 8926 را برای همه مقالات ML منتشر شده در سال 2019 دوباره تجزیه و تحلیل کردیم. در هر دو مورد ، متخصصان با افزایش یکنواخت ستاره های میانه از کنه ها به روشی از نظر آماری ، نتیجه کیفی یکسانی به دست آوردند (p.value <1e-4). سرانجام ، با استفاده از رگرسیون خطی قوی ، مدل ها و نتایج از پیش تمرین شده را یافتیم که بیشترین تأثیر مثبت را بر روی ستاره های GitHub دارند.
این امر توسط تحلیل گران شواهد مفیدی تلقی می شود كه تشویق محققان برای درج تمام م requiredلفه های مورد نیاز در لیست كامل بودن ML به مخازن مفیدتر منجر می شود و نمره در لیست بررسی ارایه کیفیت بهتر را نشان می دهد.
در حال حاضر ، متخصصان ادعا نمی كنند كه 5 مورد فهرست پیشنهادی تنها یا حتی مهمترین عامل در محبوبیت مخزن است. سایر عوامل می توانند بر محبوبیت تأثیر بگذارند ، مانند: اندازه کمک علمی ، بازاریابی (به عنوان مثال پست های وبلاگ و پست های توییتر) ، مستندات (README های جامع ، آموزش ها و مستندات API) ، کیفیت کد و کارهای قبلی.
چند نمونه از مخازن NeurIPS 2019 با 5 کادر تأیید:
کارشناسان تشخیص می دهند که اگرچه آنها سعی کرده اند چک لیست را تا حد ممکن عمومی کنند ، اما ممکن است به طور کامل در مورد انواع اسناد ، به عنوان مثال ، نظریه ها یا مجموعه اسناد ، قابل استفاده نباشد. با این حال ، حتی اگر هدف اصلی مقاله نشان دادن یک مجموعه داده باشد ، باز هم می تواند از انتشار مدل های پایه ، از جمله سناریوهای آموزش ، سناریوهای ارزیابی و نتایج بهره مند شود.
شروع به استفاده از
برای سهولت در درک مطلب موجود در مخازن و ارزیابی آسان برای کارشناسان و کاربران ، مجموعه ای از بهترین روش ها برای نوشتن فایل های README.md ، تعریف وابستگی ها و انتشار مدل های آموزش دیده ، مجموعه داده ها و نتایج ارائه شده است. توصیه می شود که این 5 عنصر را به طور واضح در مخزن خود تعریف کنید و آنها را به منابع خارجی مانند اسناد و جدول امتیازات پیوند دهید تا زمینه و وضوح بیشتری برای کاربران خود فراهم کند. این دستورالعمل های رسمی برای ارسال کد به NeurIPS 2020 است.