211service.com
Het succes van machine learning berust op schaalbaarheid
Geleverd door Arm
Steve Roddy is vicepresident van de Machine Learning Group bij Arm.
Verandering is constant, en kunstmatige intelligentie (AI) en machine learning (ML) veranderen alles, helemaal opnieuw. Voor ontwikkelaars die nieuwe producten en diensten op de markt willen brengen die gebruikmaken van AI en ML, worden de uitdagingen nog verergerd door het feit dat het technologielandschap zich nog steeds ontwikkelt.
In tegenstelling tot de traditionele embedded sector, die een lineair verband vertoont tussen de behoefte aan meer verwerkingsprestaties en de manier waarop die prestaties worden gebruikt, is er een verschil tussen AI en ML, en de hardwareplatforms waarop ze zullen draaien: ML verandert voortdurend.
Bezoek de inhoudshub
Schaalbare machine learning
De stap weg van sequentieel denken
ML zal waarschijnlijk overal worden gebruikt, net zoals traditionele embedded software tegenwoordig wordt gebruikt. In tegenstelling tot traditionele code, die regel voor regel in een opeenvolgend patroon wordt geschreven (zelfs als automatische generatie wordt gebruikt), wordt ML echter ingezet als modellen, gemaakt door frameworks die leren. Modellen zullen, in zeer reële zin, geboren worden. En zoals bij elke vorm van nageslacht, kun je nooit echt zeker zijn van wat je krijgt totdat het arriveert.
Voor ontwikkelaars zal het voorspelbare karakter van embedded software dus aanzienlijk verdwijnen of veranderen. Er worden tools ontwikkeld die helpen voorspellen hoe een model zal werken, of bepaalde beperkingen zullen opleggen aan de manier waarop het model wordt gevormd om te voldoen aan het platform, maar deze zijn in de kinderschoenen en geenszins een wondermiddel. Aanpassing aan de beperkingen van het systeem zal waarschijnlijk leiden tot een verlies aan nauwkeurigheid. De aard van ML is dat het de vereiste nauwkeurigheid levert op de geleverde hardware. Hieruit volgt dat als de hardware zich kan aanpassen, u kunt voorkomen dat u concessies doet aan de nauwkeurigheid.

Er is geen one-size-fits-all voor machine learning. Ingenieurs moeten systemen ontwerpen die schaalbare prestaties bieden en het type verwerkingsbron dat ze leveren kunnen aanpassen op basis van de taak die voorhanden is.
Ook de manier waarop een model presteert op een vast hardwareplatform verandert. Het voorspelbare karakter van embedded software is al lang een steunpilaar van ontwerp; inderdaad het idee dat de kenmerken van de code zullen veranderen nadat deze is geïmplementeerd, is de nachtmerrie van ingenieurs. Ingebedde systemen worden ontwikkeld binnen prestatieparameters, een envelop op basis van vermogen, kosten, warmteafvoer, grootte, gewicht en een willekeurig aantal meetbare waarden die tegen elkaar kunnen worden uitgewisseld om gedefinieerde doelen te bereiken. Dit is in wezen hoe embedded development altijd is gedaan, maar het is niet de manier waarop het in de toekomst zal gebeuren.
Schaalbaarheid is de nieuwe norm
In plaats daarvan zullen ingenieurs systemen moeten ontwerpen die schaalbare prestaties bieden, die in staat zijn om het type verwerkingsresource dat ze leveren dynamisch aan te passen op basis van de taak die voorhanden is. Dit is anders dan waar embedded engineers zich nu misschien prettig bij voelen. Sinds enkele jaren hebben embedded processors de mogelijkheid om hun werkfrequentie en voedingsspanning te variëren op basis van de werkbelasting. In wezen kan de kern van een processor langzamer werken als deze niet druk is; het terugschalen van de hoofdklokfrequentie vertaalt zich direct in minder transistors die per seconde in- en uitschakelen, wat energie bespaart. Wanneer de core echt druk moet worden, wordt de klokfrequentie opgeschaald, waardoor de doorvoer toeneemt. Er is een relatie tussen voedingsspanning en klokfrequentie; door beide te verminderen, wordt de hoeveelheid bespaard vermogen versterkt. Dit soort schaalvergroting zal niet voldoende zijn om de kracht en prestaties te leveren die nodig zijn in de embedded apparaten die nu worden ontwikkeld om ML-modellen uit te voeren.
Dat komt omdat de manier waarop we prestaties meten gaat veranderen. Op dit moment worden processors meestal gemeten in termen van bewerkingen per seconde; we meten dat nu in teraops, of biljoenen operaties per seconde (TOPS). Het gebruik van TOPS om de prestaties te meten van een processor die gevolgtrekkingen uitvoert, is niet zo logisch als bij het uitvoeren van sequentiële code, omdat de manier waarop het model werkt niet direct vergelijkbaar is met reguliere embedded software. ML-processors worden gemeten op de nauwkeurigheid die ze bereiken bij het leveren van een bepaald aantal gevolgtrekkingen per seconde voor een bepaalde hoeveelheid stroom. We hebben daar nog geen standaardstatistiek voor, maar we kunnen wel zeggen dat het simpelweg verhogen van de klokfrequentie om aan de inferenties/s-doelstelling te voldoen, niet gegarandeerd is en waarschijnlijk het energiebudget zal vernietigen, zonder de nauwkeurigheid te verbeteren.
Het pad naar gevolgtrekking is bezaaid met variabelen
Waarom? De reden ligt in de manier waarop ML-modellen werken. Met veel waarschijnlijkheidslagen om doorheen te gaan, zijn er net zoveel variabelen die het pad door die lagen kunnen veranderen. De echte wereld zal een veel grotere impact hebben op de manier waarop ML-modellen worden uitgevoerd, met veel meer variabiliteit dan lineaire sequentiële embedded code. Neem als voorbeeld natuurlijke taalverwerking en spraakherkenning: de stem en cadans van de spreker zullen allemaal een rol spelen in de effectiviteit van het model, maar er kan ook een wisselwerking zijn tussen deze parameters die onder verschillende omstandigheden tot een andere ervaring leiden. Het simpelweg verhogen van de snelheid van de processor levert in dit geval mogelijk niet het gewenste resultaat op.
Bovendien is een van de bepalende kenmerken van ML het leervermogen. Zelfs als versterkingsleren niet in het apparaat zelf wordt toegepast, is het nog steeds mogelijk dat gegevens worden teruggekoppeld naar een mainframe waar het model kan worden aangepast op basis van de waargenomen resultaten. Zelfs zonder deze feedback is het waarschijnlijk dat het model in de loop van de tijd zal worden verbeterd, puur vanwege de manier waarop ML zich nog steeds ontwikkelt. Dit zou ertoe leiden dat een nieuw model wordt gemaakt en geïmplementeerd (bijvoorbeeld met behulp van over-the-air-updates), dat dan mogelijk geheel andere verwerkingsvereisten zal hebben en anders zal functioneren onder dezelfde of vergelijkbare omstandigheden.
De veranderende aard van ML-modellen betekent dat, hoewel de huidige CPU-architecturen voor ML kunnen en worden gebruikt, de huidige architecturen vrijwel zeker niet de meest optimale manier kunnen bieden om ze uit te voeren. Ja, modellen kunnen draaien op CPU's met alle gebruikelijke ALU-functies die in de meeste processors te vinden zijn. Ze kunnen ook profiteren van zeer parallelle architecturen die massaal meerdere exemplaren van deze functies bevatten, zoals GPU's, maar het is al duidelijk dat GPU's niet de beste manier zijn om ML-modellen uit te voeren. We hebben zelfs al voorbeelden van neurale verwerkingseenheden en de halfgeleiderindustrie is hard aan het werk om geheel nieuwe architecturen te ontwikkelen om ML-modellen efficiënter uit te voeren. Op een gegeven moment wordt ofwel de hardware ofwel de software gefixeerd om de ander vooruit te laten gaan. De juiste manier om dit aan te pakken, is door vast te houden aan een gemeenschappelijk softwareframework dat kan worden gebruikt op compatibele maar schaalbare hardwareplatforms, zodat beide samen evolueren.
Flexibele heterogene architecturen
Door dit te doen, kan de schaalbaarheid die nodig is om AI en ML te ondersteunen, worden uitgebreid van de kern van het netwerk tot aan de rand, zonder dat de architectuur wordt vastgezet op een vast platform. Project Trillium is Arms heterogene ML-computerplatform dat bestaat uit cores en software. Arm breidt Project Trillium uit om ML op elk punt in het netwerk aan te pakken. Het gemeenschappelijke softwareplatform hier zijn Arm's neurale netwerksoftwarebibliotheken, Arm NN, die over Arm-processorplatforms kunnen lopen en ook compatibel zijn met toonaangevende neurale netwerkframeworks van derden. De hardware omvat de bestaande Arm Cortex-A en Arm Mali GPU-processors die worden verbeterd voor AI en ML, evenals totaal nieuwe processors voor ML-versnelling.
In termen van schaalbaarheid kan en zal ML draaien op processors die zo klein en beperkt zijn in de Cortex-M-klasse, en zo rijk aan functies als de Mali GPU's. Echte schaalbaarheid is echter nodig om te voldoen aan alle behoeften van ML, van de kern tot de rand, en dat is waar de volgende stap in de processorevolutie komt. Neurale verwerkingseenheden, of NPU's, vertegenwoordigen de nieuwe generatie processorarchitectuur die ML zal ondersteunen bij meer toepassingen.
Alleen Arm biedt dit niveau van schaalbaarheid in het hele ML-landschap. Door te kiezen voor schaalbare architecturen die kunnen worden samengesteld uit MCU's, CPU's, GPU's en NPU's, kunnen hardwareplatforms toekomstbestendig worden gemaakt tegen nieuwe softwaretoepassingen die nog niet eens zijn bedacht.
Er zijn veel onbekenden, in termen van welke ML-modellen we in de toekomst zullen maken, hoeveel rekenkracht ze nodig zullen hebben om de gewenste nauwkeurigheid te leveren, hoe snel computerwetenschappers modellen zullen kunnen verbeteren zodat ze minder stroom nodig hebben - allemaal van deze overwegingen hebben een directe impact op de onderliggende hardware. Het enige dat we wel weten, is dat het voldoen aan de veranderende verwachtingen van eindgebruikers een flexibel en schaalbaar platform vereist.
