اخبار تکنولوژی

سفر ارتقاء TorchVision – خاطرات یک توسعه دهنده TorchVision – 3

  • ۲۱ مه ۲۰۲۲
  • واسیلیس ورینوتیس
  • . بدون نظر

از آخرین باری که مطلب جدیدی در مجموعه خاطرات TorchVision ارسال کردم، مدتی می گذرد. فکر می کنم قبلاً اخبار را در وبلاگ رسمی PyTorch و غیره به اشتراک می گذاشتم توییترفکر می‌کنم ایده خوبی است که بیشتر در مورد آنچه با آخرین نسخه TorchVision (نسخه ۱۲) اتفاق افتاد، نسخه بعدی (نسخه ۱۳) و برنامه‌های ما برای H2 2022 صحبت کنیم. هدف من فراتر از ارائه یک نمای کلی از ویژگی های جدید است و به جای ارائه ایده ای از اینکه می خواهیم پروژه را در ماه های آینده به کجا ببریم.

TorchVision نسخه ۰٫۱۲ نسخه قابل توجهی با تمرکز دوگانه بود: الف) به روز رسانی خط مشی‌های انکار و مشارکت مدل برای بهبود شفافیت و جذب مشارکت‌کنندگان بیشتر در جامعه، و ب) دوبرابر کردن تلاش‌های مدرن‌سازی با افزودن معماری‌های مدل جدید، مجموعه داده‌ها و تکنیک‌های یادگیری ماشین.

در حال به روز رسانی خط مشی های ما

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

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

تغییرات فوق الذکر تأثیر مثبت فوری بر پروژه داشت. خط‌مشی مشارکت جدید به ما کمک کرده است که مشارکت‌های اجتماعی متعددی را برای ویژگی‌های اصلی دریافت کنیم (جزئیات بیشتر در زیر)، و یک خط‌مشی منسوخ واضح به ما این امکان را می‌دهد که پایه کد خود را تمیز کنیم و در عین حال اطمینان حاصل کنیم که TorchVision تضمین‌های سازگاری قوی با عقب را ارائه می‌دهد. تیم ما بسیار انگیزه دارد تا به همکاری با توسعه دهندگان منبع باز، تیم های تحقیقاتی و سازندگان کتابخانه های پایین دستی ادامه دهد تا TorchVision مرتبط و تازه بماند. اگر بازخورد، نظر یا درخواست ویژگی دارید، لطفا با ما تماس بگیرید.

همچنین ببینید :  آیا تیم ML ندارید؟ ببینید که چگونه این استارت آپ در عرض چند هفته یک خلبان قدرتمند هوش مصنوعی ایجاد کرد!

ارتقاء TorchVision

بر کسی پوشیده نیست که در چند نسخه اخیر، هدف ما افزودن تمام پلاگین ها، تلفات، لایه ها، ابزارهای آموزشی و معماری های جدید به TorchVision بوده است تا کاربران ما بتوانند به راحتی نتایج SOTA را با استفاده از PyTorch بازتولید کنند. TorchVision نسخه ۱۲ در این مسیر ادامه داد:

  • مشارکت کنندگان انجمن راک استار ما، Hu Ye و Zhiqiang Wang، در معماری FCOS، که یک مدل تشخیص شی یک مرحله ای است، مشارکت کردند.

  • Nicolas Hug با اضافه کردن معماری RAFT، پشتیبانی جریان نوری را به TorchVision اضافه کرد.

  • Yiwen Song پشتیبانی Vision Transformer (ViT) را اضافه کرد و من معماری ConvNeXt را به همراه وزنه‌های از پیش تمرین شده بهبودیافته اضافه کردم.

  • در نهایت، با کمک جامعه خود، ۱۴ طبقه بندی جدید و ۵ مجموعه داده جریان نوری جدید اضافه کردیم.

  • طبق معمول، نسخه با مجموعه ای از بهبودهای کوچکتر، رفع اشکالات و بهبود اسناد ارائه شد. برای دیدن همه ویژگی‌های جدید و فهرست مشارکت‌کنندگان ما، لطفاً یادداشت‌های انتشار نسخه ۱۲ را بررسی کنید.

TorchVision نسخه ۰٫۱۳ نزدیک است و انتظار می رود در اوایل ژوئن منتشر شود. این یک نسخه بسیار بزرگ با تعداد قابل توجهی از ویژگی های جدید و پیشرفت های عمده API است.

تکمیل ارتقاء و بستن شکاف SOTA

ما به سفر خود برای مدرن کردن کتابخانه با اضافه کردن اصول اولیه، معماری مدل و ابزارهای دستور العمل برای تولید نتایج SOTA برای وظایف کلیدی بینایی رایانه ادامه می دهیم:

  • با کمک ویکتور فومین، تکنیک‌های مهم تقویت داده‌های از دست رفته مانند AugMix، Large Scale Jitter و غیره را اضافه کردم. این تکنیک‌ها به ما این امکان را می‌دهند که شکاف SOTA را کاهش دهیم و وزن‌های بهتری تولید کنیم (به زیر مراجعه کنید).

  • با کمک Aditya Oke، Hu Ye، Yassine Alouini و Abhijit Deo، بلوک‌های ساختمانی رایج مهمی مانند لایه DropBlock، بلوک MLP، از دست دادن cIoU & dIoU و غیره را اضافه کردیم. در نهایت، من با Shen Li کار کردم تا یک مشکل طولانی‌مدت در لایه SyncBatchNorm PyTorch را برطرف کنم.

  • Hu Ye با پشتیبانی Joao Gomes ترانسفورماتور Swin را به همراه وزنه های از پیش تمرین شده بهبود یافته اضافه کرد. من معماری EfficientNetV2 و چندین بهینه سازی معماری را پس از انتشار پیاده سازی های RetinaNet، FasterRCNN و MaskRCNN اضافه کردم.

  • همانطور که قبلاً در وبلاگ PyTorch اشاره کردم، ما تلاش زیادی برای بهبود وزنه های از پیش تمرین شده خود با ایجاد یک دستورالعمل آموزشی بهبود یافته انجام داده ایم. این به ما امکان داد تا دقت مدل‌های طبقه‌بندی خود را با ۳ امتیاز دقت بهبود بخشیم و به یک SOTA جدید برای معماری‌های مختلف دست یابیم. تلاش‌های مشابهی برای تشخیص و تقسیم‌بندی انجام شد، که در آن دقت مدل‌ها را به طور متوسط ​​بیش از ۸٫۱ mAP بهبود دادیم. سرانجام، یوسوا مایکل ام با لورا گوستافسون، مانات سینگاند و آرون ادکاک برای افزودن پشتیبانی از SWAG، مجموعه‌ای از وزنه‌های از پیش آموزش‌دیده بسیار دقیق و پیشرفته برای ViT و RegNets کار کرد.

همچنین ببینید :  گزارش ایمنی هوش مصنوعی هشدار می دهد که صنعت از نظر ساختاری برای خطرات رو به رشد آماده نیست

API جدید برای پشتیبانی از چندین وزن

همانطور که قبلاً در وبلاگ PyTorch بحث کردم، TorchVision موتور ساختمان مدل موجود خود را برای پشتیبانی از چندین وزنه از پیش آموزش دیده گسترش داده است. API جدید کاملاً با عقب سازگار است، به مدل‌هایی با وزن‌های مختلف اجازه می‌دهد تا ایجاد شوند، و مکانیسم‌هایی را برای به دست آوردن ابرداده‌های مفید (مانند دسته‌ها، تعداد پارامترها، معیارها و غیره) و تبدیل‌ها برای پیش‌پردازش مدل فراهم می‌کند. یک سؤال بازخورد اختصاصی در Github وجود دارد که به ما کمک می کند تا هرگونه پیچیدگی را برطرف کنیم.

اسناد به روز شده

نیکلاس هوگ تلاش برای بازسازی اسناد مدل TorchVision را رهبری کرد. چارچوب جدید می‌تواند از ویژگی‌هایی استفاده کند که از Multiple Weights Support API ارائه می‌شود تا مستندات بهتری از وزن‌های از پیش آموزش دیده و استفاده از آنها در کتابخانه ارائه دهد. فریاد بزرگی برای اعضای جامعه ما برای کمک به ما برای ثبت به موقع تمام معماری ها.

اگرچه نقشه راه دقیق ما برای نیمه دوم سال ۲۰۲۲ هنوز نهایی نشده است، در اینجا چند پروژه کلیدی وجود دارد که در حال حاضر قصد داریم روی آنها کار کنیم:

  • ما از نزدیک با Haoqi Fan و Christoph Feichtenhofer از PyTorch Video کار می کنیم تا معماری بهبود یافته Multiscale Vision Transformer (MViTv2) را به TorchVision اضافه کنیم.

  • فیلیپ مایر و نیکلاس هاگ در حال کار بر روی نسخه بهبود یافته Datasets API (v2) هستند که از TorchData و لوله های داده استفاده می کند. فیلیپ مایر، ویکتور فومین و من همچنین در حال توسعه API تبدیل‌هایمان (v2) هستیم تا نه تنها از تصاویر، بلکه از جعبه‌های محدود، ماسک‌های تقسیم‌بندی و غیره نیز پشتیبانی کنیم.

  • در نهایت، انجمن به ما کمک می کند تا TorchVision را با افزودن معماری ها و تکنیک های محبوب تازه و مرتبط نگه داریم. Lezwon Castelino در حال حاضر با Victor Fomin برای افزودن پسوند SimpleCopyPaste کار می کند. Hu Ye در حال حاضر روی اضافه کردن معماری DeTR کار می کند.

همچنین ببینید :  معماری نسل بعدی | به وبلاگ جدید

اگر می‌خواهید با این پروژه درگیر شوید، لطفاً اولین نسخه‌های خوب ما را بررسی کنید و به فهرست‌های مورد نیاز کمک کنید. اگر شما یک کهنه سرباز باتجربه PyTorch/Computer Vision هستید و مایل به مشارکت هستید، ما چندین پروژه نامزد برای اپراتورهای جدید، ضررها، پیشرفت ها و مدل ها داریم.

امیدوارم مقاله برای شما جالب بوده باشد. اگر می خواهید ارتباط برقرار کنید، با من در لینکدین یا توییتر.


لینک منبع

نویسنده اصلی

وب سایت 123 سلکت یک مجله مرجع جهت معرفی و راهنمای خرید و انتخاب سریع بهترین کالا ها و محصولات در زمینه های مختلف و متنوع است
دکمه بازگشت به بالا