De flesta uppkopplade maskiner gör i stort sett samma sak i dag som när de lämnade fabriken. Det gör industrin onödigt långsam på att ta AI i bruk, skriver Johan Risch, CTO och medgrundare av Stream Analyze.
År 2016, efter en demo, frågade en tillverkare oss om vår mjukvara kunde köra neurala nätverk. Jag hade knappt varit ute från universitetet i två år och ägnade de följande månaderna åt att se till att svaret blev ja. Ett halvår senare kom samma kund tillbaka med en följdfråga: kunde de importera modeller som de hade tränat i TensorFlow?
Det tog mig flera år att inse att det var den andra frågan som var den viktiga. Kunden ville ta det de redan hade byggt och sätta det i arbete i sina maskiner utan att börja om från början. Det är fortfarande det problem som de flesta industriföretag brottas med, och jag tycker att branschen oftast löser det för långsamt.
Så här fungerar den mesta uppkopplade utrustningen i dag. Ingenjörer bestämmer vad maskinen ska mäta, beräkna och rapportera. Logiken kompileras in i maskinens firmware, och maskinen levereras. Vill man senare att den ska göra något annat – leta efter ett nytt felmönster, köra en bättre AI-modell eller rapportera ett annat mätvärde – krävs en mjukvaruuppdatering. Det innebär en releasecykel, tester och utrullning till maskiner som kan vara utspridda i gruvor, längs motorvägar och på fabriksgolv. Det går absolut att göra, men det är så tungt att de flesta företag gör det sällan. Så maskinen fortsätter för det mesta att göra det någon bestämde för flera år sedan.
I 13 år har vi arbetat med ett annat angreppssätt, hämtat från databasforskningen. I stället för att hårdkoda logiken uttrycker man den som en fråga till maskinen, precis som när man frågar en databas. Hur ser vibrationstrenden i det här lagret ut just nu? Kör den här modellen på de senaste tio minuternas sensordata och säg till när resultatet ändras. En sådan fråga kan skrivas, testas och bytas ut medan maskinen är igång, och svaret kommer tillbaka på några sekunder i stället för efter nästa release.
Den vanligaste invändningen är att mycket industridata finns på väldigt små chip. Det stämmer. 2018 tog vi oss an ett projekt för en av Sveriges mest kända tillverkare: att köra vår mjukvarumotor på ett handhållet, uppkopplat elverktyg. Den behövde 5 MB minne och verktyget hade 512 kB. Vi lyckades få in de viktigaste delarna, med nöd och näppe. Kretskortet hade dessutom en hårdvarubugg som kunde få enheten att krascha, så jag hade repeterat demon in i minsta detalj. Sedan gick kundens ingenjör ut med verktyget för att visa livedata under verklig användning, och det fanns inget sätt att planera för det. Jag hade inte nämnt risken för mitt team i förväg. Det fungerade, och när jag berättade det för dem på vägen hem blev de alldeles vita i ansiktet.
I dag körs vår mjukvarumotor på mikrokontroller – de små, billiga chip som finns i nästan all utrustning – med så lite som 64 kB minne. Eftersom det vi skickar till enheten är en fråga och inte ny firmware kan man ändra vad en maskin gör även efter att den har lämnat fabriken.
För ett industriföretag som har tagit fram en bättre AI-modell är det ofta releasecykeln som avgör när modellen börjar göra nytta ute i maskinerna. Ju längre det tar, desto mindre av modellens värde kommer faktiskt fram.
Samtidigt vill jag vara tydlig med begränsningarna, eftersom det här är ett område där leverantörer gärna lovar för mycket. Inget av detta är autonomt. En ingenjör bestämmer vad som körs, vad som tränas och vad som levereras, och vårt jobb är att göra det beslutet billigt och snabbt. Ingenting tränar om sig självt över natten.
Kunden som frågade mig om neurala nätverk 2016 frågade egentligen hur snabbt en maskin kunde börja göra något nytt. För större delen av branschen är det ärliga svaret fortfarande en releasecykel. Vi tycker att det borde ta ungefär lika lång tid som det tar att skriva frågan.
Johan Risch, CTO och medgrundare, Stream Analyze
