Vad är utmärkande för nya teknikområden inom it? Att de inte är standardiserade. Ett nytt hett it-område utgörs typiskt en enda stor röra av inkompatibla mjukvaror som gör ungefär samma sak, inkompatibla väldigt nischade mjukvaror som är optimerade för ett fåtal specifika uppgifter, och så vidare.

Så är det även med AI. Det finns olika lösningar för användargränssnitt, ramverk, hårdvara, och så vidare. Och i alla led måste tillverkaren av en komponent ha stöd för flera andra komponenter.

Processortillverkare måste till exempel ha stöd för flera ramverk, liksom ramverksproducenter måste ha stöd för flera olika hårdvaruarkitekturer. Man kan tycka att just de två exemplen borde vara två sidor av samma mynt, men sett från leverantörernas synvinkel så kan de inte alltid förlita sig på andra företag att ordna det stöd som behövs. Det läggs garanterat ner mycket dubbelarbete på att få allt att fungera.

När man dessutom tar in behovet av optimering i bilden så blir det ännu krångligare. Det ska inte bara fungera, det ska vara snabbt också.

Läs ocksåNu ska Försvaret storsatsa på AI

Sett från användarsidan så blir man låst till vissa arkitekturer när lösningar byggs. En viss lösning kanske bara fungerar med en viss typ av servrar, virtuella eller fysiska, och kanske bara är optimerad för en viss typ av grafikprocessor. Och den kanske bara bygger på ett AI-ramverk som bara är bra för vissa typer av lösningar. Och så vidare, i all oändlighet.

Vad ska man göra åt det här? Lösningen är förstås att bygga någon sorts kompilator som spottar ur sig AI-lösningar som fungerar på olika typer av arkitekturer i olika delar av hela lösningen. Och det är precis vad Amazon och University of Washington ämnar göra med kompilatorn NNVM.

Det är oklart vad förkortningen NNVM står för. Man måste verkligen anstränga sig för att begripa vad den gör, alternativt vara AI-expert. Enkelt uttryckt tar den beskrivningar av lösningar för djupinlärning (deep learning, en variant av maskininlärning) och spottar ur sig lösningar som kan köras på olika typer av hårdvara. Exempel på hårdvara är Armprocessorer och Nvidias grafikprocessorer.

Läs också: Googles AI dubbelt så smart som Siri – men har inget mot en sexåring

Målplattformar kan vara till exempel servrar, mobiler, enheter för inbäddade lösningar och webbläsare. NNVM kan producera lösningar i språken C++, Python, Javascript, Java och Objective-C.

Det tar nog lite tid att sätta sig in i hur NNVM fungerar, men av allt att döma kan den innebära rejäla tidsbesparingar för AI-utvecklare som inte vill riskera inlåsning till olika hårdvaruarkitekturer. Den finns att hämta på Github.