Подорож модернізації TorchVision – Мемуари розробника TorchVision – 3 PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Подорож модернізації TorchVision – Спогади розробника TorchVision – 3

Подорож модернізації TorchVision – Спогади розробника TorchVision – 3

Минув деякий час, відколи я востаннє публікував новий запис у мемуарах TorchVision серія. Я подумав, що раніше я ділився новинами в офіційному блозі PyTorch тощо Twitter, я подумав, що було б доцільно поговорити більше про те, що сталося з останнім випуском TorchVision (v0.12), що вийде в наступному (v0.13) і які наші плани на 2022H2. Моя мета — вийти за рамки огляду нових функцій, а радше надати уявлення про те, куди ми хочемо перевести проект у наступні місяці.

TorchVision v0.12 був значним випуском із подвійним фокусом: а) оновити нашу політику щодо застарілості та внесення моделей, щоб покращити прозорість і залучити більше учасників спільноти; б) подвоїти наші зусилля з модернізації, додавши популярні нові архітектури моделей, набори даних і методи ML.

Оновлення нашої політики

Ключ до успішного проекту з відкритим вихідним кодом — підтримка здорової, активної спільноти, яка робить внесок у нього та рухає його вперед. Таким чином, важливою метою для нашої команди є збільшення кількості внесків спільноти з довгостроковим баченням надання можливості спільноті вносити великі функції (нові моделі, методи ML тощо) на додаток до звичайних поступових покращень (виправлення помилок/документів). , дрібні особливості тощо).

Історично хоч громада була нетерпляче щоб внести такі функції, наша команда вагалася їх прийняти. Ключовим блокувальником була відсутність конкретної моделі внеску та політики знецінення. Щоб вирішити цю проблему, Жоао Гомес працював із спільнотою, щоб створити та опублікувати наш перший типові вказівки щодо внеску який забезпечує ясність щодо процесу внесення нових архітектур, попередньо навчених ваг і функцій, які вимагають навчання моделі. Крім того, Ніколас Хуг працював із розробниками ядра PyTorch, щоб сформулювати та прийняти конкретний політика амортизації.

Вищезазначені зміни негайно позитивно вплинули на проект. Нова політика внесків допомогла нам отримати численні внески спільноти для великих функцій (докладніше нижче), а чітка політика припинення використання дозволила нам очистити нашу кодову базу, забезпечивши при цьому, що TorchVision пропонує надійні гарантії зворотної сумісності. Наша команда дуже мотивована продовжувати співпрацю з розробниками відкритого коду, дослідницькими групами та розробниками бібліотек, щоб підтримувати TorchVision актуальним і свіжим. Якщо у вас є відгук, коментар або запит на функцію, будь ласка досягти нам.

Модернізація TorchVision

Не секрет, що за останні кілька випусків наші мета було додати до TorchVision усі необхідні доповнення, втрати, шари, утиліти навчання та нові архітектури, щоб наші користувачі могли легко відтворювати результати SOTA за допомогою PyTorch. TorchVision v0.12 продовжив цей шлях:

  • Наші учасники спільноти рок-зірок, Ху Є та Чжицян Ван, зробили свій внесок FCOS архітектура, яка є одноетапною моделлю виявлення об’єктів.

  • Ніколас Хаг додав підтримку оптичного потоку в TorchVision, додавши ПЛОТ архітектура.

  • Yiwen Song додала підтримку для Трансформатор бачення (ViT) і я додав ConvNeXt архітектури разом із покращеними попередньо підготовленими вагами.

  • Нарешті з допомога нашої спільноти, ми додали 14 нова класифікація та 5 новий оптичний потік набори даних.

  • Як зазвичай, випуск містить численні дрібніші вдосконалення, виправлення помилок і покращення документації. Щоб побачити всі нові функції та список наших співавторів, перегляньте нотатки до випуску v0.12.

TorchVision v0.13 не за горами, її реліз очікується на початку червня. Це дуже великий випуск із значною кількістю нових функцій і великими вдосконаленнями API.

Завершення модернізації та ліквідація розриву від SOTA

Ми продовжуємо своє шлях модернізації бібліотеки шляхом додавання необхідних примітивів, архітектур моделей і утиліт рецептів для отримання результатів SOTA для ключових завдань комп’ютерного зору:

  • За допомогою Віктора Фоміна я додав важливі відсутні методи збільшення даних, такі як AugMix, Широкомасштабний джиттер і т. д. Ці методи дозволили нам скоротити розрив із SOTA та створити кращі ваги (див. нижче).

  • За допомогою Aditya Oke, Hu Ye, Yassine Alouini та Abhijit Deo ми додали важливі загальні будівельні блоки, такі як DropBlock шар, MLP блок, cIoU & DIoU втрати тощо. Нарешті я працював із Шен Лі, щоб вирішити давню проблему на PyTorch SyncBatchNorm шар, який вплинув на моделі виявлення.

  • Ху Є за підтримки Жоао Гомеса додав Трансформер Свін разом із покращеними попередньо підготовленими вагами. Я додав EfficientNetV2 архітектури та кілька пост-паперових архітектурних оптимізацій щодо реалізації RetinaNet, FasterRCNN і MaskRCNN.

  • Як я обговорював раніше в блозі PyTorch, ми доклали значних зусиль для вдосконалення наших попередньо підготовлених ваг, створивши покращений рецепт навчання. Це дозволило нам підвищити точність наших Класифікаційні моделі на 3 бали точності, досягаючи нового SOTA для різних архітектур. Подібна спроба була виконана для Виявлення та сегментація, де ми підвищили точність моделей у середньому на понад 8.1 мАп. Нарешті Йосуа Майкл М працював із Лаурою Густафсон, Маннатом Сінгхандом і Аароном Адкоком, щоб додати підтримку Шваг, набір нових високоточних найсучасніших попередньо підготовлених ваг для ViT і RegNets.

Новий API підтримки Multi-weight

Як я раніше обговорювалися у блозі PyTorch TorchVision розширив свій існуючий механізм побудови моделей для підтримки кількох попередньо навчених ваг. Новий API повністю сумісний із попередніми версіями, дозволяє створювати екземпляри моделей із різною вагою та надає механізми для отримання корисних метаданих (таких як категорії, кількість параметрів, метрики тощо) і перетворень попередньої обробки моделі. Є спеціальний зворотний зв'язок випуск на Github щоб допомогти нам вигладити будь-які нерівності.

Оновлена ​​документація

Ніколас Хуг очолив зусилля з реструктуризації типова документація компанії TorchVision. Нова структура може використовувати функції API підтримки кількох ваг, щоб запропонувати кращу документацію для попередньо підготовлених ваг і їх використання в бібліотеці. Велика подяка членам нашої спільноти за допомагаючи нам вчасно документувати всі архітектури.

Хоча наша детальна дорожня карта на 2022H2 ще не завершена, ось деякі ключові проекти, над якими ми зараз плануємо працювати:

  • Ми тісно співпрацюємо з Haoqi Fan і Christoph Feichtenhofer з Відео PyTorch, щоб додати Покращений багатомасштабний трансформатор зору (MViTv2) для TorchVision.

  • Філіп Майєр і Ніколас Хаг працюють над покращеною версією API наборів даних (v2), який використовує TorchData і канали даних. Філіп Майєр, Віктор Фомін і я також працюємо над розширенням нашого Transforms API (v2) для підтримки не лише зображень, але й обмежувальних рамок, масок сегментації тощо.

  • Нарешті, спільнота допомагає нам підтримувати TorchVision свіжим і актуальним, додаючи популярні архітектури та техніки. Зараз Лезвон Кастеліно працює з Віктором Фоміним над додаванням SimpleCopyPaste збільшення. Зараз Ху Є працює над додаванням Архітектура DeTR.

Якщо ви бажаєте взяти участь у проекті, перегляньте наш хороші перші випуски і допомогла розшук списки. Якщо ви досвідчений ветеран PyTorch/Computer Vision і бажаєте зробити свій внесок, у нас є кілька проектів-кандидатів для нових Оператори, втрати, Додатки та Моделі.

Сподіваюся, стаття була вам цікава. Якщо ви хочете зв’язатися, зв’яжіться зі мною LinkedIn or Twitter.

Часова мітка:

Більше від Датабокс