Contents
In 2018 lanceerde Intel de Intel® Distribution of OpenVINO™ toolkit. Sindsdien is het op grote schaal toegepast door partners en ontwikkelaars om AI-aangedreven applicaties in verschillende industrieën te implementeren, van zelfkassakiosken tot medische beeldvorming naar industriële robotica. De populariteit van de toolkit is te danken aan het gemak van integratie met en gestroomlijnde implementatie-ervaring op Intel®-architectuurplatforms om de prestaties van deep learning-inferentie te verbeteren.
Bij het ontwerpen van de toolkit waren twee van onze belangrijkste doelstellingen voor ontwikkelaarservaring gebruiksgemak en een gestroomlijnde out-of-the-box-ervaring. Om te beginnen hebben gebruikers de mogelijkheid om hun eerste sample binnen enkele minuten na installatie uit te voeren. Dit implementatiegemak omvat alle aspecten van de tool, inclusief modelimport, modeloptimalisatie en naadloze migratie tussen releases dankzij strikte achterwaartse compatibiliteit. Onze ervaringsdeskundigen van gebruikers en ontwikkelaars werken voortdurend aan het evalueren van alle aspecten van het product en we denken dat hun inspanningen zichtbaar zijn.
Tegelijkertijd werken we aan het verbeteren van de functionaliteit en kenmerken van de Intel Distribution van OpenVINO-toolkit om meer use-cases te dekken. We hebben kwantisering geïntroduceerd om platforms te ondersteunen met int8, een doorvoermodusvoor platforms met een groot aantal cores en inferentie voor meerdere apparatenvoor volledig systeemgebruik en maximale prestaties. Al deze nieuwe functies introduceren extra tools of instellingen die functionaliteit ontketenen en fijnmazige configuratie mogelijk maken. Het kan echter een beetje ingewikkeld zijn om alle puzzelstukjes samen te voegen en de afweging tussen prestaties en nauwkeurigheid voor individuele toepassingen te optimaliseren. Daarom hebben we in 2019, een jaar nadat de toolkit werd gelanceerd, ook de Deep Learning Workbench gelanceerd, een uitbreidingstool voor de grafische gebruikersinterface (GUI) die alle bestaande hulpprogramma's combineert om gebruikers te helpen met de meest gebruikte taken, zoals downloaden van modellen, nauwkeurigheid controleren en de nieuwste toevoeging, lage-precisie kwantisering, evenals om hen te begeleiden bij het ontwikkeling- en implementatieproces.
Laten we eens kijken naar enkele van de belangrijkste tools en mogelijkheden van de Deep Learning Workbench.
1. Elke ontwikkelingsstap via een gestroomlijnde gebruikersinterface
In zijn eenvoudigste vorm omvat ontwikkeling met behulp van de toolkit de onderstaande stappen:
Figuur 1. Typische stappen in ontwikkeling met behulp van Intel Distribution of OpenVINO Toolkit.
Elke stap wordt weergegeven via een afzonderlijke tool die toegang biedt tot alle mogelijkheden via opdrachtregelopties, waardoor ontwikkelaars geavanceerde toolmogelijkheden krijgen (extra instellingen voor kwantiseringsalgoritmen, modelimportparameters, enz.), terwijl ontwikkelaars flexibel en schaalbaar kunnen bouwen en implementeren. Sommige tools kunnen vergelijkbare (of dezelfde) parameters hebben die voor elke tool moeten worden opgegeven. Om bijvoorbeeld een model op een bepaalde gegevensset te valideren, moeten het pad en het gegevenssettype worden opgegeven, terwijl hetzelfde pad en type worden opgegeven voor kwantisatietools. De Deep Learning Workbench stroomlijnt de ontwikkeling door een naadloze gebruikersinterface mogelijk te maken die de ontwikkelingspijplijn weergeeft, door gebruik te maken van opdrachtregeltools om ontwikkelingstaken uit te voeren en door alleen de benodigde mogelijkheden bloot te leggen.
Tijdens het volgen van de ontwikkelingsstroom onthoudt de tool alle informatie die in eerdere stappen is ingevoerd en gebruikt deze om volgende ontwikkelingsstappen te vereenvoudigen. Als gebruikers bijvoorbeeld het modeltype hebben opgegeven tijdens de stap van het modelimporteren, hoeven ze het niet opnieuw op te geven voor de toepassing die wordt gebruikt om de nauwkeurigheid van klantgegevenssets te meten. Evenzo worden de locatie en het pad van de gegevensset gespecificeerd in de stap van de nauwkeurigheidsanalyse, waardoor de noodzaak om de informatie voor het kwantiseringspad opnieuw te specificeren, wordt geëlimineerd. Bij het uitvoeren van modelkwantisatie (een van de mogelijkheden die toegankelijk zijn via de Deep Learning Workbench), wordt een gekwantiseerd model geproduceerd en kan de nauwkeurigheid automatisch worden gemeten zonder datasetpaden te specificeren. Op die manier bevat de tool alle use case-gerelateerde informatie op één enkele locatie en gebruikt deze informatie om de ontwikkeling te vereenvoudigen.
De tool probeert niet alleen de algehele ontwikkelingsstroom te vereenvoudigen, maar biedt ook extra functies in elke ontwikkelingsstap die wordt ingeschakeld door de gebruikersinterface.
2. Hulp bij het importeren van modellen
Steeds meer taken kunnen worden opgelost met behulp van Deep Learning-modellen, wat resulteert in de introductie van nieuwe architecturen en een toename van de complexiteit voor bestaande. De toolkit blijft up-to-date met regelmatige updates van de Model Optimizer in de Intel Distribution of OpenVINO-toolkit en individuele hardware-plug-ins. Deze noodzakelijke updates dragen bij aan de complexiteit van de Model Optimizer-tool, wat het selectieproces voor het importeren van modellen kan bemoeilijken.
Om ontwikkelaars te ontlasten van de extra complexiteit van deze noodzakelijke updates, vereenvoudigt de Deep Learning Workbench de workflow door gebruik te maken van modelgrafiekanalysetechnieken. Deze technieken verminderen het aantal parameters dat gebruikers moeten opgeven om Model Optimizer te gebruiken om modellen om te zetten in Intermediate Representation (IR) voor latere inferentie. Tijdens het importeren van een model analyseert de workbench eerst het model en probeert vervolgens het modeltype, de invoer, de uitvoer en andere attributen te identificeren om het importeren te vereenvoudigen.
Voor ontwikkelaars die modellen uit de Open Model Zoo willen proberen van de Intel Distribution of OpenVINO-toolkit, bieden we een handige interface om uit die modellen te kiezen en ze vervolgens automatisch te importeren zonder een enkele optie op te geven.
Figuur 2. Import van openbare en vooraf getrainde modellen uit Open Model Zoo.
3. Gedetailleerde prestatie- en nauwkeurigheidsinzichten
Het eerste dat een ontwikkelaar wil weten na het importeren van een model, is hoe snel en nauwkeurig het is. De Intel Distribution of OpenVINO-toolkit biedt tools om de nauwkeurigheid te benchmarken en te meten. De Deep Learning Workbench van de toolkit is volledig uitgerust met deze tools.
Bij het meten van prestaties kunnen gebruikers niet alleen de algehele prestaties zien, maar ook begrijpen hoe bepaalde delen van de topologie de algehele uitvoering beïnvloeden. De Deep Learning Workbench biedt gedetailleerde timing per laag, informatie over fusies die hebben plaatsgevonden en een volledige runtime-grafiek. Op basis van deze informatie kunnen ontwikkelaars hun topologieën aanpassen door tijdens de modeltraining bepaalde lagen te vervangen of aan te passen om hogere prestaties te bereiken. Het vervangen van zware ELU-activering door lichtgewicht ReLU zal bijvoorbeeld de prestaties verbeteren.
Figuur 3. Uitvoeringsprestaties per laag en gedetailleerde inzichten in grafiekoptimalisaties.
Zodra de prestaties zijn verbeterd, willen gebruikers er misschien zeker van zijn dat hun topologie correct werkt. De Deep Learning Workbench kan modelnauwkeurigheidsstatistieken leveren zodra belangrijke parameters, zoals topologietype, en vereiste voorverwerking zijn gespecificeerd en een dataset is verstrekt. De Deep Learning Workbench ondersteunt momenteel classificatie- en objectdetectietopologieën met bijbehorende datasettypen, zoals ImageNet, Pascal VOC en de nieuwste toevoeging, COCO. We voegen voortdurend meer soorten topologieën en datasets toe die een breder spectrum aan taken bestrijken om de ontwikkeling te stroomlijnen.
4. Gemakkelijkere kwantisering met lage precisie
Nieuwe generaties Intel-hardware bevatten meerdere opties voor Deep Learning-versnelling. 2e generatie Intel® Xeon® schaalbare processors bieden bijvoorbeeld verbeterde int8-prestaties via de Intel Deep Learning Boost-functie. Intel levert platforms met ingebouwde flexibiliteit om te voldoen aan de computerbehoeften van onze klanten voor de toekomst van AI. Om deze mogelijkheden van de volgende generatie te ontketenen, moeten ontwikkelaars hun modellen eerst voorbereiden voor uitvoering met een gegevenstype met lage precisie, zoals INT8. Een van de opties binnen de Intel Distribution of OpenVINO-toolkit is Optimalisatie na de trainingvoor lage precisie kwantisering naar datatypes, zoals INT8, voor verbeterde prestaties met weinig verslechtering van de nauwkeurigheid. Nu, met de nieuwste release van de Intel Distribution of OpenVINO-toolkit, is de Optimization Tool na de training nu beschikbaar in de Deep Learning Workbench voor een gestroomlijnde ontwikkelaarservaring in combinatie met krachtig, diepgaand leren.
Door gebruik te maken van het geïmporteerde model en de dataset die tijdens de nauwkeurigheidsmeetstap zijn geleverd, kunnen gebruikers kwantisatie direct in de Post-training Optimization Tool activeren. Wanneer voltooid, kunnen prestaties en nauwkeurigheid opnieuw worden gemeten op het gekwantiseerde model om de impact van int8-uitvoering te begrijpen. Bovendien kunnen gebruikers een prestatievergelijking van laag tot laag uitvoeren om de voordelen te bepalen.
De prestatie- en nauwkeurigheidsresultaten voor gekwantiseerde en originele modellen worden op één plek verzameld. Bovendien kunnen ontwikkelaars met hetzelfde model en dezelfde dataset modellen uitproberen op CPU, geïntegreerde GPU en andere ondersteunde apparaten en alle resultaten samen bekijken. Dit helpt gebruikers om een weloverwogen beslissing te nemen bij het selecteren van hardware- en softwarecombinaties. Om ontwikkelaars verder te helpen bij het nemen van weloverwogen beslissingen over de beste hardware die op hun specifieke workload draait, stelt de nieuwe Intel® DevCloud for the Edge ontwikkelaars in staat om nieuwe Intel-architectuur uit te proberen en edge AI-workloads uit te voeren via externe toegang voordat u de hardware aanschaft.
Figuur 4. Prestatievergelijking van geoptimaliseerd model versus origineel.
Gekwantiseerde modellen zijn beschikbaar door de Model Optimizer uit te voeren en het model te converteren naar Intermediate Representation ( IR).
5. Wel of niet batchen?
Deep learning-prestaties worden vaak geacht te zijn afgeleid van berekeningen die nodig zijn om de topologie te berekenen en berekeningen die beschikbaar zijn op het systeem. Deze GPU-gerichte benadering is echter een simplistische manier om de prestaties te evalueren. Veel factoren zijn van invloed op de uiteindelijke prestaties van een model, waaronder invoerresolutie, berekeningsprecisie, de topologiestructuur zelf, laagtypen en de doelhardware-architectuur. Sommige combinaties van doelen en topologie werken het beste met een grotere batchgrootte en sommige met meerdere parallelle inferentiestromen, terwijl sommigen daadwerkelijk last hebben van die opties. Het voorspellen van prestaties is extreem ingewikkeld; daarom vinden we dat de traditionele methode van uitproberen nog steeds het beste werkt.
Daarom biedt de Deep Learning Workbench niet alleen gedetailleerde prestatiedetails, maar kunnen ontwikkelaars ook verschillende uitvoeringsopties uitproberen voor verschillende combinaties van modellen en doelen. Het automatiseert meerdere proeven met verschillende parameters en bouwt een grafiek met prestaties en latentie voor elk scenario. Gebruikers kunnen het bereik van de gebruikte parameters selecteren en de resultaten voor alle parameters op een gemakkelijke manier bekijken.
Figuur 5. Prestatiegrafiek om te helpen bij de selectie van parameters voor de beste uitvoering.
Conclusie
De Intel Distribution of OpenVINO-toolkit maakt een gestroomlijnde, end-to-end ontwikkelingservaring mogelijk, van het nemen van een getraind model tot het implementeren in de Intel-architectuur met de tools en mogelijkheden die per release aan de toolkit worden toegevoegd. Bovendien hebben we door het creëren van de Deep Learning Workbench van de toolkit deze workflow verder vereenvoudigd met een handige gebruikersinterface en een reeks aanpassingsmogelijkheden. Van het modelimportproces tot kalibratie/kwantisatie, modeloptimalisaties en andere metingen, de Deep Learning Workbench is ontworpen om ontwikkeling aanzienlijk eenvoudiger te maken. We zijn toegewijd aan voortdurende verbeteringen; we moedigen gebruikers aan om het eens te proberen en ons uw feedback te sturen!
U kunt ook onze YouTube-bibliotheek met Deep Learning Workbench-video's bekijken hier.
Yury Gorbachev
Principal Engineer, Internet of Things Group, Intel
Alexander Demidovskij
Senior Software Engineer, Machine Learning Performance Group, Intel
Mikhail Fedorov
Engineering Manager, Intel Architectuur, Graphics en Software, Intel