Tekoäly siirtyy pilvestä koneisiin, kameroihin, antureihin ja robotteihin. Reunalla yksi laitteistoratkaisu ei kuitenkaan sovi kaikkeen, vaan suorituskyky on sovitettava mallin, datan ja käyttökohteen mukaan.
|
Artikkelin kirjoittaja Martin Kellermann toimii markkinointi- ja liiketoiminnan kehityspäällikkönä Microchipin FPGA-liiketoimintayksikössä Münchenissä Saksassa. Hänellä on yli 25 vuoden kokemus puolijohdeteollisuudesta asiakastyön, sovellussuunnittelun ja FPGA-markkinoinnin tehtävissä. Ennen Microchipille siirtymistään Kellermann työskenteli Xilinxillä vanhempana kenttäsovellusinsinöörinä. |
Tekoälyn sovelluksia ilmestyy kaikkialle. Pilvipohjaisten työkalujen ja vuorovaikutteisten palvelujen laaja käyttöönotto osoittaa, mihin teknologia pystyy virtuaalisessa maailmassa. Fyysisessä maailmassa suuri osa sen mahdollisuuksista on kuitenkin vielä hyödyntämättä.
Mahdollisuuksia on paljon. Työstökoneisiin ja muihin laitteisiin liitettyjen anturihubien eli -keskittimien tekoälymallit voivat havaita, milloin komponenttien kuluminen alkaa heikentää suorituskykyä. Kameroilla varustetut robottiruohonleikkurit voivat hoitaa puutarhaa vahingoittamatta luonnonvaraisia eläimiä tai lemmikkejä. Monimutkaiset anturi- ja kamerajärjestelmät voivat valvoa vilkkaita alueita ja huolehtia niiden turvallisuudesta. Toiset järjestelmät ohjaavat yhä kehittyneempiä robotteja aina itseohjautuvista teollisuusajoneuvoista humanoidirobotteihin, jotka pystyvät vaativiin kokoonpano- ja korjaustöihin.
Jokainen näistä sovelluksista asettaa erilaisia vaatimuksia niiden ydintoimintoja tukeville tekoälymalleille. Vaikka kielimallit näyttävät tällä hetkellä hallitsevan pilviympäristöä, paikallisen tekoälyn kenttä on huomattavasti monimuotoisempi. Järjestelmät tarvitsevat paikallista reunalaskentaa myös välttääkseen viiveet ja tietoliikennekustannukset, joita tekoälyn suorittaminen pilvessä aiheuttaa.
Jotkin sovellukset edellyttävät konvoluutioneuroverkkoja eli CNN-malleja. Esimerkiksi anturidataa tulkitsevat järjestelmät voivat käyttää takaisinkytkettyjä neuroverkkoja eli RNN-malleja. Kameroiden ja muiden kaksiulotteisten anturien tallentamia monimutkaisia näkymiä tulkitsevat järjestelmät voivat puolestaan hyödyntää visio-kielimalleja tai muita perusmallien muunnelmia.
Laitteistoa ei voida suunnitella yhdellä kaikille sopivalla ratkaisulla. Erilaiset malliarkkitehtuurit asettavat hyvin erilaisia laskentavaatimuksia. Hyvä vertauskohta löytyy liikenteestä, jossa vaihtoehdot ulottuvat kevyistä polkupyöristä raskaisiin kuorma-autoihin. Sähköpyörä sopii hyvin lyhyille matkoille ja kevyiden pakettien, kuten ruoka-annosten, kuljettamiseen. Suurten tavaramäärien kuljettamiseen tarvitaan kuitenkin 40-tonnisen kuorma-auton tehoa ja kapasiteettia. Tekoälyssäkin paras ratkaisu määräytyy tehtävän mukaan. Vaihtoehdot ulottuvat mikro-ohjaimista useisiin tekoälykiihdyttimiin perustuviin raskaisiin järjestelmiin.
Sähköpyörien, henkilöautojen, pakettiautojen ja kuorma-autojen tavoin jokaisessa laiteluokassa on useita vaihtoehtoja moottorin suorituskyvyn ja kuljetuskapasiteetin suhteen. Tekoälylaitteisto tarvitsee vastaavia säätömahdollisuuksia. Suorituskyky ei riipu pelkästään laskentatehosta, vaan myös siitä, kuinka tehokkaasti dataa siirretään ja järjestellään. Tässä mikroprosessoripohjaiset kiihdytysratkaisut ja ohjelmoitavat FPGA-piirit pääsevät oikeuksiinsa.
Mallin laatua voidaan usein parantaa esikäsittelemällä sisään tulevaa dataa, esimerkiksi jakamalla täysvärikuvan pikselit erillisiksi punaisen, vihreän ja sinisen värikanavan tasoiksi. Mallit voivat hyötyä myös muista datan alemman tason muokkauksista, kuten normalisoinnista tai muunnoksista eri esitysmuotoihin. Muuntajiin perustuvat mallit puolestaan hyötyvät laitteistosta, joka pystyy hakemaan dataa eri puolilta muistiavaruutta ja syöttämään elementit liukuhihnana laskentayksiköille.
Laskentavaatimuksiltaan kevyempiä malleja, kuten CNN-verkkoja, voidaan usein optimoida karsinnan ja datan kvantisoinnin kaltaisilla tekniikoilla. Useimmat kehitystiimit kouluttavat mallit pilvipalvelimilla liukulukulaskentaa käyttäen. Tämä tarjoaa mahdollisimman paljon joustavuutta ja yksinkertaistaa koulutusprosessia.
Inferenssivaiheessa dataa ei useinkaan tarvitse käsitellä liukulukujen tarjoamalla suurella tarkkuudella. Painokertoimien ja syöttödatan muuntaminen 8-bittisiksi kokonaisluvuiksi tai jopa sitä pienemmälle tarkkuudelle heikentää tarkkuutta tavallisesti vain hieman.
Karsinnassa poistetaan neuronien välisiä yhteyksiä, joilla on vain vähän vaikutusta verkon tuottamaan tulokseen. Koska useimmat tekoälykiihdyttimet on suunniteltu tiheille neuroverkoille, suuri suorituskyky edellyttää datan järjestämistä uudelleen muistissa. FPGA-pohjaiset osoitegeneraattorit pystyvät hoitamaan nämä tehtävät helposti. Ne voivat syöttää eri puolille muistikarttaa sijoitettua dataa tiheille verkoille suunniteltuun suoritusliukuhihnaan. Myös muut tekniikat, kuten muuntajamallien Flash Attention, hyödyntävät älykästä muistinkartoitusta ja muistihakua painokertoimien ja datan toimittamiseksi mahdollisimman tehokkaassa järjestyksessä.
Seuraavat esimerkit havainnollistavat nykyisten laitteistoalustojen laajuutta ja hyötyjä. Yksi tekoälyn tärkeimmistä käyttökohteista on kuvien ja videon käsittely. Sitä voidaan pitää reuna-alueen tekoälyn kolmen tonnin pakettiautona: monipuolisena ajoneuvona, joka soveltuu lukuisiin tehtäviin. Teolliset ja kaupalliset organisaatiot voivat käyttää konenäkömalleja turvallisuuden, suojauksen ja tehokkuuden valvontaan. Itsenäisesti toimiva robottiruohonleikkuri voi yhdistää kasvien ja esineiden tunnistamiseen koulutetun mallin paikalliseen reitinsuunnitteluun ja laskea tehokkaimman ajoreitin. Teollisuusympäristössä konenäköön perustuva ohjaus voi tunnistaa uuniin asetettujen materiaalien tyypin, olivatpa ne elintarvikkeita tai rakenteellisia komposiitteja, ja tuottaa niille parhaiten sopivan kuumennusprofiilin. Käsikäyttöisissä järjestelmissä malli voi havaita, jos käyttäjä on valinnut väärän ohjelman, ja antaa tarvittaessa hälytyksen.

Näissä sovelluksissa VectorBlox-alusta tarjoaa tehokkaan yhdistelmän moniydinprosessointia, kiinteästi toteutettua RISC-V-pohjaista prosessorijärjestelmää ja FPGA-logiikkaa. VectorBlox koostuu FPGA-kankaaseen toteutetusta vektoriprosessointiyksiköstä ja ajoittimesta. Ohjelmoitavan logiikan ansiosta tämä monipuolinen yksikkö toimii yhdessä piirille integroidun prosessorin kanssa.
VectorBlox voi ottaa vastaan TensorFlow Lite -muotoisia neuroverkkoja ja muuntaa ne kohdelaitteistolle vähäisellä manuaalisella työllä. Tämä mahdollistaa sovellusten nopean prototypoinnin sekä myöhemmän mukauttamisen, jolla laitteisto voidaan virittää tekoälymallien tarpeisiin.
Ennakoivan kunnossapidon älyantureissa, ympäristön valvonnassa ja terveydenhuollon sovelluksissa on järkevää käyttää pienempää alustaa. Kohdealustaa voidaan ajatella tekoälyekosysteemin sähköpyöränä. Sen yleiskustannukset ovat pienet, ja se kuljettaa ruoka-annokset ja muut paketit nopeasti ja vaivattomasti. Pienellä lisälaitteistolla voidaan rakentaa myös kulkuneuvoja, jotka pääsevät reiteille, joille suuremmilla ajoneuvoilla ei ole asiaa.
Tekoälymaailman mikro-ohjainpohjainen sähköpyörä syöttää mallille dataa toisiaan täydentävistä antureista, jotka voivat mitata esimerkiksi lämpötilaa, värähtelyä ja kiihtyvyyttä. Anturivirtojen suhteellisen pieni datanopeus ja yksiulotteisuus mahdollistavat tekoälymallin suorittamisen 32-bittisellä mikro-ohjaimella. Ylimääräinen FPGA-piiri voi auttaa datan hallinnassa sekä tukea muita toimintoja, kuten moottorinohjausta.
Stream Analyzen ja INFXL:n kaltaiset kehykset mahdollistavat kvantisoinnin ja karsinnan avulla mikro-ohjainpohjaisille kohteille optimoitujen tekoälymallien mukauttamisen ja päivitysten hallinnan. INFXL-pohjaisessa ratkaisussa mikro-ohjaimelle tarkoitettu C-koodi voidaan lisäksi toteuttaa suoraan FPGA-kankaassa Microchipin korkean tason SmartHLS™-synteesiohjelmistolla. Näin tekoälytoiminnot voidaan helposti lisätä olemassa oleviin FPGA-järjestelmiin, jotka jo ohjaavat laitteistoa.
Toiseen suuntaan skaalattaessa päädytään tekoälymalleihin, jotka eivät ainoastaan käsittele useiden kameroiden ja muiden anturien tuottamaa dataa, vaan myös ohjaavat monimutkaisen humanoidirobotin moottoreita ja toimilaitteita. Tällaisessa ympäristössä datan reaaliaikainen muuntaminen ja uudelleenkartoitus on välttämätöntä. Kameradatan jakaminen eri väritasoihin voi parantaa CNN-mallien suorituskykyä. Data voidaan myös järjestää tavalla, joka sopii kohteena olevan tekoälykiihdyttimen muistihakuihin ja välimuistirakenteeseen.

Yhden tai useamman FPGA-piirin käyttäminen muunnossiltana tarjoaa mahdollisimman suuren joustavuuden. Mallit voidaan liittää mihin tahansa anturiin ilman sisäisiä muutoksia. Sillat siirtävät datan usein jonkin Ethernet-version kautta aina suorituskyvyltään kevyempien järjestelmien 100 megabitin Fast Ethernetistä 10 gigabitin Ethernetiin ja sitä nopeampiin yhteyksiin. Microchipin PolarFire Ethernet Sensor Bridge on esimerkki tällaisesta ratkaisusta. Sen avulla kehittäjät voivat kokeilla helposti erilaisia laitteisto- ja ohjelmistoarkkitehtuureja.

Sensor Bridge siirtää esikäsitellyn datan kohteena oleville grafiikkaprosessoreille 10 gigabitin Ethernet-yhteydellä. Siinä on tulot yleistä MIPI CSI-2 -liitäntää käyttäville kameroille, ja se voi vastaanottaa myös HDMI 1.4 -dataa. Piirilevyn FMC-liitin tarjoaa lisäkorttien avulla yhteyden muihin nopeisiin I/O-liitäntöihin, kuten JESD-204B-standardia käyttäviin analogia-digitaalimuuntimiin.
Ajoneuvojen suunnittelu on mukautunut kattamaan kaikki kuljetustarpeet kevyimmästä sähköpyörästä raskaimpaan kuorma-autoon. Sama pätee fyysisessä maailmassa ja reunalla toimivaan tekoälyyn. Microchipin kaltaiset toimittajat voivat tukea koko suorituskykyasteikkoa mikro-ohjaimista useilla antureilla ja grafiikkaprosessoreilla varustettuihin järjestelmiin. PolarFire-tuoteperheen kaltaisen FPGA-laitteiston avulla jokaisen toteutuksen suorituskyky voidaan lisäksi virittää tarkasti käyttökohteen mukaan.



















