De reis van het moderniseren van TorchVision - Memoirs of a TorchVision-ontwikkelaar - 3 PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De reis van het moderniseren van TorchVision - Memoirs of a TorchVision-ontwikkelaar - 3

De reis van het moderniseren van TorchVision - Memoirs of a TorchVision-ontwikkelaar - 3

Het is een tijdje geleden dat ik voor het laatst een nieuw bericht op de TorchVision-memoires heb geplaatst serie. Dacht dat ik eerder nieuws heb gedeeld op de officiële PyTorch-blog en op Twitter, dacht ik dat het een goed idee zou zijn om meer te vertellen over wat er gebeurde op de laatste release van TorchVision (v0.12), wat er uitkomt op de volgende (v0.13) en wat onze plannen zijn voor 2022H2. Mijn doel is om verder te gaan dan het geven van een overzicht van nieuwe functies en eerder inzicht te geven in waar we het project de komende maanden naartoe willen brengen.

TorchVision v0.12 was een omvangrijke release met een dubbele focus: a) update ons beleid voor afschaffing en modelbijdragen om de transparantie te verbeteren en meer communitybijdragers aan te trekken en b) verdubbel onze moderniseringsinspanningen door populaire nieuwe modelarchitecturen, datasets en ML-technieken toe te voegen.

Ons beleid bijwerken

De sleutel tot een succesvol open-sourceproject is het in stand houden van een gezonde, actieve gemeenschap die hieraan bijdraagt ​​en deze vooruit stuwt. Een belangrijk doel voor ons team is dus om het aantal communitybijdragen te vergroten, met de langetermijnvisie om de community in staat te stellen om grote functies (nieuwe modellen, ML-technieken, enz.) , kleine functies enz.).

Historisch gezien, ook al was de gemeenschap gretig om dergelijke functies bij te dragen, aarzelde ons team om ze te accepteren. Belangrijkste blokkade was het ontbreken van een concrete modelbijdrage en afschaffingsbeleid. Om dit aan te pakken, werkte Joao Gomes samen met de community om onze eerste . op te stellen en te publiceren richtlijnen voor modelbijdragen die duidelijkheid verschaft over het proces van het bijdragen aan nieuwe architecturen, vooraf getrainde gewichten en functies waarvoor modeltraining vereist is. Bovendien werkte Nicolas Hug samen met de kernontwikkelaars van PyTorch om een ​​concrete afschrijvingsbeleid.

Bovengenoemde wijzigingen hadden direct positieve effecten op het project. Het nieuwe bijdragebeleid heeft ons geholpen om talloze communitybijdragen te ontvangen voor grote functies (meer details hieronder) en het duidelijke afschaffingsbeleid stelde ons in staat om onze codebasis op te schonen en er toch voor te zorgen dat TorchVision sterke garanties voor achterwaartse compatibiliteit biedt. Ons team is zeer gemotiveerd om samen te werken met de open-sourceontwikkelaars, onderzoeksteams en downstream-bibliotheekmakers om TorchVision relevant en actueel te houden. Als je feedback, opmerkingen of een functieverzoek hebt, alsjeblieft uitreiken aan ons.

Moderniseren van TorchVision

Het is geen geheim dat voor de laatste paar releases onze doel was om aan TorchVision alle noodzakelijke augmentaties, verliezen, lagen, trainingshulpprogramma's en nieuwe architecturen toe te voegen, zodat onze gebruikers eenvoudig SOTA-resultaten kunnen reproduceren met PyTorch. TorchVision v0.12 vervolgde die route:

  • Onze bijdragers aan de rockstar-gemeenschap, Hu Ye en Zhiqiang Wang, hebben bijgedragen aan de FCOS architectuur die een eentraps objectdetectiemodel is.

  • Nicolas Hug heeft ondersteuning voor optische stroom in TorchVision toegevoegd door de VLOT architectuur.

  • Yiwen Song heeft ondersteuning toegevoegd voor: Visietransformator (ViT) en ik hebben de ConvNext architectuur samen met verbeterde vooraf getrainde gewichten.

  • Eindelijk met de hulp van onze community hebben we toegevoegd 14 nieuwe classificatie en 5 nieuwe optische stroom gegevenssets.

  • Zoals gewoonlijk kwam de release met tal van kleinere verbeteringen, bugfixes en documentatieverbeteringen. Om alle nieuwe functies en de lijst van onze bijdragers te zien, kijk op de v0.12 release-opmerkingen.

TorchVision v0.13 staat voor de deur, met de verwachte release begin juni. Het is een zeer grote release met een aanzienlijk aantal nieuwe functies en grote API-verbeteringen.

Moderniseringen afronden en de kloof met SOTA . dichten

We gaan door met onze reis van het moderniseren van de bibliotheek door de nodige primitieven, modelarchitecturen en recepthulpprogramma's toe te voegen om SOTA-resultaten te produceren voor belangrijke Computer Vision-taken:

  • Met de hulp van Victor Fomin heb ik belangrijke ontbrekende Data Augmentation-technieken toegevoegd, zoals: augMix, Grootschalige jitter enz. Deze technieken stelden ons in staat de kloof met SOTA te dichten en betere gewichten te produceren (zie hieronder).

  • Met de hulp van Aditya Oke, Hu Ye, Yassine Alouini en Abhijit Deo hebben we belangrijke gemeenschappelijke bouwstenen toegevoegd, zoals de DropBlok laag, de MLP blok, de cIou & dIoU verlies enz. Uiteindelijk heb ik met Shen Li samengewerkt om een ​​al lang bestaand probleem op PyTorch's op te lossen SyncBatchNorm laag die de detectiemodellen beïnvloedde.

  • Hu Ye met de steun van Joao Gomes toegevoegd Swin Transformator samen met verbeterde vooraf getrainde gewichten. ik heb de . toegevoegd EfficiëntNetV2 architectuur en verschillende post-paper architecturale optimalisaties bij de implementatie van RetinaNet, FasterRCNN en MaskRCNN.

  • Zoals ik eerder op de PyTorch-blog heb besproken, hebben we veel moeite gedaan om onze vooraf getrainde gewichten te verbeteren door een verbeterde trainingsrecept. Dit stelde ons in staat om de nauwkeurigheid van onze Classificatiemodellen door 3 nauwkeurigheidspunten, het bereiken van nieuwe SOTA voor verschillende architecturen. Een soortgelijke inspanning werd geleverd voor: Detectie en segmentatie, waar we de nauwkeurigheid van de modellen met gemiddeld meer dan 8.1 mAP hebben verbeterd. Ten slotte werkte Yosua Michael M samen met Laura Gustafson, Mannat Singhand en Aaron Adcock om ondersteuning toe te voegen van SWAG, een set nieuwe, zeer nauwkeurige, voorgetrainde gewichten voor ViT en RegNets.

Nieuwe ondersteunings-API voor meerdere gewichten

Zoals ik eerder besproken op de PyTorch-blog heeft TorchVision zijn bestaande modelbouwmechanisme uitgebreid om meerdere vooraf getrainde gewichten te ondersteunen. De nieuwe API is volledig achterwaarts compatibel, maakt het mogelijk om modellen met verschillende gewichten te instantiëren en biedt mechanismen om nuttige metagegevens te verkrijgen (zoals categorieën, aantal parameters, metrieken enz.) en de preprocessing-inferentietransformaties van het model. Er is een speciale feedback probleem op Github om ons te helpen onze ruwe randen te strijken.

Vernieuwde documentatie

Nicolas Hug leidde de inspanningen voor de herstructurering van de modeldocumentatie van TorchVision. De nieuwe structuur kan gebruik maken van functies van de Multi-weight Support API om een ​​betere documentatie te bieden voor de vooraf getrainde gewichten en hun gebruik in de bibliotheek. Enorme schreeuw naar onze communityleden voor ons helpen documenteer alle architecturen op tijd.

Hoewel onze gedetailleerde roadmap voor 2022H2 nog niet is afgerond, zijn hier enkele belangrijke projecten waaraan we momenteel werken:

  • We werken nauw samen met Haoqi Fan en Christoph Feichtenhofer van PyTorch-video, om het Verbeterde Multiscale Vision Transformer (MViTv2)-architectuur naar TorchVision.

  • Philip Meier en Nicolas Hug werken aan een verbeterde versie van de Gegevenssets-API (v2) die gebruik maakt van TorchData en datapijpen. Philip Meier, Victor Fomin en ik werken ook aan de uitbreiding van onze Transformeert API (v2) om niet alleen afbeeldingen te ondersteunen, maar ook omsluitende kaders, segmentatiemaskers enz.

  • Ten slotte helpt de community ons TorchVision fris en relevant te houden door populaire architecturen en technieken toe te voegen. Lezwon Castelino werkt momenteel samen met Victor Fomin om de SimpleCopyPlakken vergroting. Hu Ye werkt momenteel aan het toevoegen van de DeTR-architectuur.

Als je mee wilt doen aan het project, neem dan een kijkje op onze goede eerste problemen en hulp gevraagd lijsten. Als je een doorgewinterde PyTorch/Computer Vision-veteraan bent en je wilt een bijdrage leveren, dan hebben we verschillende kandidaat-projecten voor nieuwe exploitanten, verliezen, augmentaties en modellen.

Ik hoop dat je het artikel interessant vond. Als je in contact wilt komen, bel me dan op LinkedIn or Twitter.

Tijdstempel:

Meer van Datumbox