211service.com
Framgången med maskininlärning vilar på skalbarhet
Tillhandahålls av Ärm
Steve Roddy är Vice President, Machine Learning Group, på Arm.
Förändring är konstant, och artificiell intelligens (AI) och maskininlärning (ML) förändrar allt, om igen. För utvecklare som försöker få ut nya produkter och tjänster till marknaden som utnyttjar AI och ML, förvärras utmaningarna av det faktum att tekniklandskapet fortfarande utvecklas.
Till skillnad från den traditionella inbäddade sektorn, som uppvisar ett linjärt samband mellan behovet av mer bearbetningsprestanda och hur prestanda används, finns det en skillnad mellan AI och ML, och hårdvaruplattformarna de kommer att köras på: ML förändras ständigt.
Besök innehållshubben
Skalbar maskininlärning
Övergången från sekventiellt tänkande
ML kommer sannolikt att användas överallt, precis som traditionell inbäddad programvara används idag. Men till skillnad från traditionell kod, som skrivs rad för rad i ett sekventiellt mönster (även om autogenerering används), kommer ML att distribueras som modeller, skapade av ramverk som lär sig. Modeller kommer, i en mycket verklig mening, att födas. Och som alla typer av avkommor kan du aldrig riktigt vara säker på vad du kommer att få förrän den kommer.
För utvecklare kommer alltså den förutsägbara naturen hos inbäddad programvara att försvinna eller förändras avsevärt. Verktyg utvecklas som hjälper till att förutsäga hur en modell kommer att fungera, eller kommer att införa vissa restriktioner för hur modellen utformas för att följa plattformen, men dessa är begynnande och inte på något sätt ett universalmedel. Det är troligt att anpassning till systemets begränsningar kommer att leda till en förlust i noggrannhet. Naturen hos ML är att den levererar den noggrannhet som krävs på den medföljande hårdvaran. Det följer alltså att om hårdvaran kan anpassa sig kan du undvika att kompromissa med noggrannheten.

Det finns inget som passar alla för maskininlärning. Ingenjörer måste designa system som erbjuder skalbar prestanda och kan justera typen av bearbetningsresurs de levererar baserat på den aktuella uppgiften.
Hur en modell presterar på en fast hårdvaruplattform kommer också att förändras. Den förutsägbara naturen hos inbäddad programvara har länge varit en stöttepelare i design; idén om att kodens egenskaper kommer att förändras efter att den har distribuerats är faktiskt ingenjörernas mardrömmar. Inbyggda system utvecklas inom prestandaparametrar, en envelop baserad på effekt, kostnad, värmeavledning, storlek, vikt och valfritt antal mätbara objekt som kan bytas ut mot varandra för att uppfylla definierade mål. Detta är i huvudsak hur inbäddad utveckling alltid har gjorts, men det är inte så det kommer att göras i framtiden.
Skalbarhet är den nya normen
Istället kommer ingenjörer att behöva designa system som erbjuder skalbar prestanda, som dynamiskt kan justera typen av bearbetningsresurs de levererar baserat på den aktuella uppgiften. Detta är annorlunda än vad inbyggda ingenjörer kan vara bekväma med just nu. Under några år har inbyggda processorer haft möjligheten att variera sin driftfrekvens och matningsspänning baserat på arbetsbelastning. I huvudsak kan en processors kärna köras långsammare när den inte är upptagen; Att skala tillbaka huvudklockfrekvensen leder direkt till färre transistorer som slås på och av per sekund, vilket sparar ström. När kärnan verkligen behöver bli upptagen, skalas klockfrekvensen upp, vilket ökar genomströmningen. Det finns ett samband mellan matningsspänning och klockfrekvens; genom att reducera båda förstärks mängden energi som sparas. Denna typ av skalning kommer inte att räcka för att leverera den kraft och prestanda som behövs i de inbyggda enheter som nu utvecklas för att köra ML-modeller.
Det beror på att sättet vi mäter prestanda kommer att förändras. Just nu mäts processorer vanligtvis i termer av operationer per sekund; vi mäter nu det i teraops, eller biljoner operationer per sekund (TOPS). Att använda TOPS för att mäta prestandan hos en processor som exekverar slutsatser kommer inte att vara lika vettigt som när man kör sekventiell kod, eftersom hur modellen körs inte är direkt jämförbar med vanlig inbäddad programvara. ML-processorer kommer att mätas på den noggrannhet de uppnår när de levererar ett givet antal slutsatser per sekund för en given mängd kraft. Vi har inte ett standardmått för det ännu, men vi kan säga att det inte är garanterat att bara öka klockfrekvensen för att möta slutsatserna/s-målet och kommer sannolikt att spränga energibudgeten utan att förbättra noggrannheten.
Vägen till slutledning är full av variabler
Varför? Anledningen ligger i hur ML-modeller fungerar. Med många lager av sannolikhet att gå igenom finns det lika många variabler som kan ändra vägen genom dessa lager. Den verkliga världen kommer att ha en mycket större inverkan på hur ML-modeller körs, med mycket mer variation än linjär sekventiell inbäddad kod. Ta naturlig språkbehandling och taligenkänning som ett exempel: talarens röst och kadens kommer alla att spela en roll för modellens effektivitet, men det kan också finnas ett samspel mellan dessa parametrar som resulterar i en annan upplevelse under olika förhållanden. Att bara öka processorns hastighet i det här fallet kanske inte ger det önskade resultatet.
Dessutom är en av de avgörande egenskaperna hos ML dess förmåga att lära sig. Även om förstärkningsinlärning inte tillämpas i själva enheten, är det fortfarande möjligt att data återkopplas till en stordator där modellen kan justeras baserat på de observerade resultaten. Även utan denna feedback är det troligt att modellen kommer att förbättras med tiden, enbart på grund av hur ML fortfarande utvecklas. Detta skulle leda till att en ny modell skapas och distribueras (med hjälp av t.ex. uppdateringar via luften), som då kommer att ha potentiellt helt andra bearbetningskrav, som fungerar annorlunda under samma eller liknande förhållanden.
ML-modellernas föränderliga karaktär innebär att även om nuvarande CPU-arkitekturer kan användas och används för ML, kan dagens arkitekturer nästan säkert inte ge det mest optimala sättet att exekvera dem. Ja, modeller kan köras på processorer med alla vanliga ALU-funktioner som finns i de flesta processorer. De kan också dra nytta av mycket parallella arkitekturer som har enormt många instanser av dessa funktioner, såsom GPU:er, men det är redan klart att GPU:er inte är det bästa sättet att köra ML-modeller. Faktum är att vi redan har exempel på neurala bearbetningsenheter, och halvledarindustrin jobbar hårt med att utveckla helt nya arkitekturer för att exekvera ML-modeller mer effektivt. Vid någon tidpunkt fixeras antingen hårdvaran eller mjukvaran för att låta den andra gå framåt. Det rätta sättet att ta itu med detta är att förbinda sig till ett gemensamt mjukvaruramverk som kan användas över kompatibla men skalbara hårdvaruplattformar, så att båda utvecklas tillsammans.
Flexibla heterogena arkitekturer
Genom att göra detta kan skalbarheten som behövs för att stödja AI och ML utökas från kärnan av nätverket till yttersta kanten, utan att låsa arkitekturen till en fast plattform. Project Trillium är Arms heterogena ML-beräkningsplattform som består av kärnor och mjukvara. Arm utökar Project Trillium för att ta itu med ML vid varje punkt i nätverket. Den vanliga mjukvaruplattformen här är Arms mjukvarubibliotek för neurala nätverk, Arm NN, som kan köras över Arm-processorplattformar och som också är kompatibla med ledande neurala nätverksramverk från tredje part. Hårdvaran inkluderar de befintliga Arm Cortex-A- och Arm Mali GPU-processorerna som förbättras för AI och ML, samt helt nya processorer för ML-acceleration.
När det gäller skalbarhet kan ML köras på processorer som är lika små och resursbegränsade i Cortex-M-klassen och lika funktionsrika som Mali GPU:er. Men verklig skalbarhet behövs för att möta alla behov hos ML från kärnan till kanten, vilket är där nästa steg i processorutvecklingen kommer in. Neurala processorenheter, eller NPU:er, representerar den nya generationens processorarkitektur som kommer att stödja ML i fler applikationer.
Only Arm erbjuder denna nivå av skalbarhet över hela ML-landskapet. Att välja skalbara arkitekturer som kan bestå av MCU, CPU, GPU och NPU kommer att hjälpa framtidssäkra hårdvaruplattformar mot nya mjukvaruapplikationer som inte ens har skapats ännu.
Det finns många okända, när det gäller vilka ML-modeller vi kommer att skapa i framtiden, hur mycket datorkraft de kommer att behöva för att leverera den önskade noggrannheten, hur snabbt datavetare kommer att kunna förbättra modellerna så att de behöver mindre kraft – allt av dessa överväganden har en direkt inverkan på den underliggande hårdvaran. Det enda vi vet är att möta slutanvändarnas förändrade förväntningar kräver en flexibel och skalbar plattform.
