In onze laatste blogpost gaven we modelbouwers inzicht in de essentiële prestatiestatistieken van edge-silicium. In deze blogpost laten we zien hoe modelbouwers de echte kracht en doorvoerprestaties van edge neural accelerators kunnen gebruiken om de beste taakprestaties te krijgen.
Onderzoekers op het gebied van machine learning zijn bekend met de spanning tussen precisie en herinneren(het vermogen om gebeurtenissen correct te identificeren, terwijl ze de gebeurtenissen detecteren wanneer ze verschijnen). Het gezamenlijk optimaliseren van een model om goed te presteren met deze beide maatregelen is een veelvoorkomende modelleringstaak, maar modelimplementaties op batterijen voegen inferentie-energie toe als een ander attribuut in spanning met precisie en terugroepactie. Als modelbouwers kan het optimaliseren van drie dure outputvariabelen in spanning (d.w.z. de netwerkprestaties na de training) een nachtmerrie zijn. Gelukkig zijn er handige heuristieken en ontwerpprincipes die je leiden naar sterke compromispunten tussen precisie, herinnering en energie.
Figuur 1. De energie die wordt besteed aan gevolgtrekking is een verborgen prestatiedimensie die de haalbare prestaties van machinaal aangeleerde systemen bepaalt. Deze blogpost gaat ervan uit dat een inferentieruntime een vermogensmodel heeft waarmee machine learning-architecten de afwegingsruimte tussen oplossingskenmerken kunnen verkennen zonder vermogensmetingen in een laboratorium uit te voeren.
Laten we leren door een voorbeeld te nemen . Overweeg de twee onderstaande modelarchitectuuropties voor een computervisietaak voor persoonsdetectie:
Optie A. Gebruik 1 keer per seconde een groot netwerk
Optie B. Gebruik 10 keer een 10x kleinere versie van het netwerk per seconde
Voor een eerste orde hebben beide opties hetzelfde gemiddelde vermogen, maar welke zou de beste prestatie- en terugroepcurve moeten hebben? Het is duidelijk dat optie B 10x meer tijdsresolutie biedt voor gebeurtenissen met kortere latenties en de mogelijkheid om gebeurtenissen nauwkeuriger in de tijd te lokaliseren, maar optie A zal de sterkste classificatieprestaties hebben. Wanneer de oplossing in context wordt bekeken op een camera die een oneindige stroom afbeeldingen verwerkt, hebben deze verschillende prestatie-eigenschappen de neiging om samen te smelten. Elk frame zal iets anders zijn en mensen blijven meerdere tijdstappen in het zicht. Door gebruik te maken van de eigenschappen van de tijdreeksen kan het vertrouwen in classificaties worden vergroot door meerdere bevestigingen te vereisen. In werkelijkheid moet u niet kiezen tussen de twee opties. U moet vaak een klein model uitvoeren (optie B) en het grote model voorwaardelijk uitvoeren (optie A).
Een eeuwenoude heuristiek op het gebied van energiezuinig systeemontwerp bevestigt dit patroon: voer alleen uit wat nodig is, wanneer dat nodig is. Hier kan een systeem een klein netwerk runnen dat prioriteit geeft aan terugroepen (alle kandidaat-evenementen doorlaten) terwijl precisie wordt opgeofferd. Zolang het eerste netwerk redelijk selectief is, wordt het grootste deel van de energie besteed door het energiezuinige eerste netwerk. De cruciale stap is om selectief een krachtiger secundair netwerk te runnen om op te treden als de uiteindelijke beslisser met hoge energie.
Laten we van het abstracte naar het specifieke gaan met een set van 3 met elkaar verbonden architecturen. zoals weergegeven in Figuur 2.
Afbeelding 2: Cascadering van meerdere modellen in een hypothetische beveiligingscamera voor persoonsdetectie met modellen op de NDP200. Het kleine model is een relatief klein convnet dat is gekalibreerd voor een hoge terugroepactie. Het medium model is een kwart schaal MobileNetV1 zoals geconfigureerd door Google.
Er is veel branchekennis ingebed in dit oplossingsontwerp dat u niet zult vinden in conferenties over machine learning, dus laten we ingaan op de details over “waarom” we hebben deze 3 architectuurconfiguraties geselecteerd. Wanneer het kleine model draait, is de NDP200-werkcyclus 10,3 procent. Dit betekent dat het netwerk meer dan 9 keer vaker kan draaien dan het is geconfigureerd voor persoonsdetectie. Wanneer het kleine model echter denkt dat de doelklasse aanwezig is, schakelt het over op een “medium model” totdat het ofwel wordt overgedragen aan het cloudmodel of terugkeert naar het kleine model. Aangezien het hoge gebruik voorwaardelijk wordt uitgevoerd, betekent de buitengewoon lage inschakelduur van het medium model (in feite nul) dat het geen grote invloed heeft op de stroomprestaties.
Wanneer kunnen we wilt u deze cascade anders configureren? Figuur 3illustreert de afwegingsruimte volgens de frequentie van de doelgebeurtenis. Bij een ontwerp met laag vermogen is het een principe om een gelijke hoeveelheid stroom te besteden aan elke fase van een cascade. Als we 300 positieve instanties en valse activeringen per uur verwachten, hebben we de relatieve modelgroottes goed gekalibreerd. Als de positieve gevallen echter veel vaker voorkomen, moeten we overwegen om een groter model van de eerste fase te gebruiken en mogelijk de cascade samen te vouwen.
Figuur 3. Oplossingskracht voor een toenemend aantal positieve instanties per uur. Voor detectie van zeldzame gebeurtenissen heeft het mediummodel minimale kosten en kan het zo groot zijn als wordt ondersteund door de hardware. Voor frequente gebeurtenissen (d.w.z. nadat het medium model een hoger oplossingsvermogen heeft dan het kleine model), is het goed om te kijken naar het vergroten van het oplossingsvermogen van het kleine model.
Deze afwegingen zijn uitdagend van aard omdat ze moeilijke keuzes met zich meebrengen die het vermogen van de oplossing, het geheugen, de latentie en de gebruikerservaring in evenwicht houden. U zult niet weten wat de beste weg voorwaarts is totdat u uw startcascade bouwt en begint met het iteratief optimaliseren van uw ontwerp. Bij het selecteren van de omgeving waarin u uw architectuurzoektocht uitvoert, kunt u beginnen met het voldoen aan uw basisvereisten voordat u optimaliseert in de duty cycle-ruimte. Het kleine front-endmodel is bijvoorbeeld geconfigureerd om 50 keer per seconde te draaien. We zouden de stroombehoefte kunnen halveren door de framesnelheid te halveren. Dit is een voorbeeld van een systeemparameter die goedkoop te evalueren is. In plaats van rekenkundig dure zoekopdrachten op hyperparameter-trainingen uit te voeren, kunt u relatief goedkope parameter-zoekopdrachten uitvoeren in de ruimte na de training. Probeer bemonsteringscombinaties van framesnelheden, fasebevestigingsvereisten en modelprecisie/terugroepkalibraties. Ze hebben allemaal enorme effecten op de duty-cycle van neurale versnellers aan de rand
Rouzbeh Shirvani, Ph.D., en Sean McGregor, Ph.D.
Machine Learning Architects, Syntiant