Ohjelmointi

6 parasta ohjelmointikieliä tekoälyn kehittämiseen

AI (tekoäly) avaa mahdollisuuksien maailman sovelluskehittäjille. Koneoppimisen tai syvällisen oppimisen avulla voit tuottaa paljon parempia käyttäjäprofiileja, personointia ja suosituksia tai sisällyttää älykkäämpiä hakuja, ääniliittymää tai älykästä apua tai parantaa sovellustasi millä tahansa muulla tavalla. Voit jopa rakentaa sovelluksia, jotka näkevät, kuulevat ja reagoivat tilanteisiin, joita et ole koskaan odottanut.

Minkä ohjelmointikielen sinun pitäisi oppia lyödä tekoälyn syvyyksiä? Haluat tietysti kielen, jolla on monia hyviä koneoppimisen ja syvällisen oppimisen kirjastoja. Sen tulisi myös sisältää hyvä ajonaikainen suorituskyky, hyvä työkalutuki, suuri ohjelmoijayhteisö ja terveellinen tukipakettien ekosysteemi. Se on pitkä luettelo vaatimuksista, mutta hyviä vaihtoehtoja on vielä paljon.

Tässä ovat valintani kuudelle parhaalle ohjelmointikielelle tekoälyn kehittämiseen sekä kaksi kunniamainintaa. Jotkut näistä kielistä ovat nousussa, kun taas toiset ovat liukastumassa. Toiset muut, joista sinun tarvitsee tietää vain, jos olet kiinnostunut historiallisista syvällisen oppimisen arkkitehtuureista ja sovelluksista. Katsotaanpa, kuinka ne kaikki pinotaan.

Python

Ensinnäkin se on edelleen Python. Kuinka se voisi olla mitään muuta, oikeastaan? Vaikka Pythonissa on hulluja asioita, jos teet tekoälytyötä, käytät melkein varmasti Pythonia jossain vaiheessa. Ja jotkut karkeista pisteistä ovat tasoittuneet hieman.

Kun olemme siirtymässä vuoteen 2020, Python 2.x: n ja Python 3.x: n kysymys on kiistanalainen, koska melkein kaikki suuret kirjastot tukevat Python 3.x: ää ja pudottavat Python 2.x -tuen niin pian kuin mahdollista. Toisin sanoen voit vihdoin hyödyntää kaikkia uusia kieliominaisuuksia vakavasti.

Ja vaikka Pythonin pakkaus painajaiset - joissa jokainen erilainen ratkaisu rikkoutuu hieman eri tavalla - ovat edelleen läsnä, voit käyttää Anacondaa noin 95% ajasta ja olla huolimatta asioista liikaa. Silti olisi hienoa, jos Python-maailma korjaisi tämän pitkäaikaisen ongelman lopullisesti.

Pythonissa käytettävissä olevat matematiikka- ja tilastokirjastot ovat melko vertaansa vailla muilla kielillä. NumPy on tullut niin yleiseksi, että se on melkein tavallinen sovellusliittymä tensoritoiminnoille, ja Pandas tuo R: n tehokkaat ja joustavat datakehykset Pythoniin. Luonnollisen kielen käsittelyyn (NLP) sinulla on kunnioitettava NLTK ja räjähtävän nopea SpaCy. Koneoppimista varten on taistelutestattu Scikit-learn. Ja kun on kyse syvällisestä oppimisesta, kaikki nykyiset kirjastot (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano jne.) Ovat tehokkaasti Python-ensimmäisiä projekteja.

Jos luet viimeisintä syvällistä oppimisen tutkimusta arXivista, huomaat, että suurin osa lähdekoodia tarjoavista tutkimuksista tekee sen Pythonissa. Sitten on muita Python-ekosysteemin osia. Vaikka IPythonista on tullut Jupyter Notebook ja vähemmän Python-keskitetty, huomaat silti, että suurin osa Jupyter Notebook -käyttäjistä ja suurin osa verkossa jaetuista muistikirjoista käyttää Pythonia. Mallien käyttöönotossa mikropalveluarkkitehtuurien ja teknologioiden, kuten Seldon Core, myötä Python-mallien käyttöönotto on nykyään erittäin helppoa.

Sieltä ei pääse kiertämään. Python on tekoälyn tutkimuksen eturintamassa oleva kieli, jolle löydät kaikkein koneoppimisen ja syvimmän oppimisen puitteet ja jota lähes kaikki tekoälymaailmassa puhuvat. Näistä syistä Python on ensimmäinen tekoälyn ohjelmointikielissä, huolimatta siitä, että kirjoittaja kiroaa välilyöntejä ainakin kerran päivässä.

Aiheeseen liittyvä video: Koneoppiminen ja tekoälyn tulkinta

Koneoppimisen ja tekoälyn ympärillä vallitsevan hyökkäyksen läpi paneelimme puhuu tekniikan määritelmät ja vaikutukset.

C ++

C ++ ei todennäköisesti ole ensimmäinen valinta kehitettäessä tekoälysovellusta, mutta kun sinun täytyy vääntää kaikki viimeiset suorituskykyjärjestelmästä - skenaario, joka yleistyy, kun syvällinen oppiminen tulee reunalle ja sinun on ajettava mallejasi resurssirajoitetut järjestelmät - on aika palata jälleen kerran kauhistuttavaan osoittimien maailmaan.

Onneksi moderni C ++ voi olla miellyttävä kirjoittaa (rehellinen!). Sinulla on valita lähestymistavat. Voit joko sukeltaa pinon alareunaan käyttämällä kirjastoja, kuten Nvidian CUDA, kirjoittaaksesi oman koodisi, joka toimii suoraan GPU: lla, tai voit käyttää TensorFlow'ta tai PyTorchia saadaksesi pääsyn joustaviin korkean tason sovellusliittymiin. Sekä PyTorch että TensorFlow mahdollistavat Pythonissa (tai PyTorchin Pythonin TorchScript-osajoukossa) luotujen mallien lataamisen ja suorittamisen suoraan C ++: n ajon aikana, jolloin pääset lähemmäs paljaita metalleja tuotantoon samalla kun säilytät kehityksen joustavuuden.

Lyhyesti sanottuna C ++: sta tulee kriittinen osa työkalupakettia, kun tekoälysovellukset lisääntyvät kaikissa laitteissa pienimmästä sulautetusta järjestelmästä valtaviin klustereihin. AI reunalla tarkoittaa, että se ei riitä enää olemaan tarkka; sinun täytyy olla hyvä ja nopeasti.

Java ja muut JVM-kielet

JVM-kieliperhe (Java, Scala, Kotlin, Clojure jne.) On edelleen loistava valinta tekoälysovellusten kehittämiseen. Sinulla on runsaasti kirjastoja, jotka ovat käytettävissä kaikissa putkilinjan osissa, olipa kyse luonnollisen kielen prosessoinnista (CoreNLP), tensoritoiminnoista (ND4J) tai täydestä GPU: lla nopeutetusta syvällisestä oppimispinosta (DL4J). Lisäksi saat helpon pääsyn suurille tietoyhteysalustoille, kuten Apache Spark ja Apache Hadoop.

Java on useimpien yritysten kieli, ja Java 8: ssa ja uudemmissa versioissa saatavissa olevien uusien kielirakenteiden avulla Java-koodin kirjoittaminen ei ole vihamielinen kokemus, jota monet meistä muistavat. AI-sovelluksen kirjoittaminen Java-sovelluksessa saattaa tuntua tylsältä, mutta se voi saada työn valmiiksi - ja voit käyttää kaikkia olemassa olevia Java-infrastruktuurejasi kehitykseen, käyttöönottoon ja seurantaan.

JavaScript

Et todennäköisesti opi JavaScriptiä yksinomaan tekoälysovellusten kirjoittamiseen, mutta Googlen TensorFlow.js parantaa ja tarjoaa mielenkiintoisen tavan ottaa Keras- ja TensorFlow-mallit käyttöön selaimellasi tai Node.js: n kautta käyttämällä WebGL: ää GPU-nopeutetuissa laskelmissa.

Yksi asia, jota emme todellakaan ole nähneet TensorFlow.js: n julkaisun jälkeen, on valtava JavaScript-kehittäjien tulva tekoälyyn. Mielestäni tämä voi johtua siitä, että ympäröivällä JavaScript-ekosysteemillä ei ole käytettävissä olevien kirjastojen syvyyttä verrattuna Pythonin kaltaisiin kieliin.

Palvelinpuolella ei ole todellakaan paljon hyötyä mallien käyttöönotosta Node.js: llä toisin kuin yksi Python-vaihtoehdoista, joten voimme nähdä, että JavaScript-pohjaiset tekoälyohjelmat pysyvät lähinnä selainpohjaisina lähitulevaisuudessa. Mutta se luo silti paljon mielenkiintoisia mahdollisuuksia hauskuuteen, kuten Emoji Scavenger Hunt.

Nopea

Tämän artikkelin viime vuoden versiossa mainitsin, että Swift oli kieli, jota pidettiin silmällä. Tänä vuonna se jakautuu kuuteen parempaan. Mitä tapahtui? Nopea TensorFlow: lle. TensorFlow: n uusimpien ja suurimpien ominaisuuksien täysin tummennettu, raa'aton vapaa sidonta ja tumma taika, jonka avulla voit tuoda Python-kirjastoja kuin käyttäisit ensin Pythonia.

Fastai-tiimi työskentelee suosittujen kirjastojensa Swift-version parissa, ja meille on luvattu paljon lisäoptimointeja mallien luomisessa ja käyttämisessä siirtämällä paljon tensorifiguureja LLVM-kääntäjään. Onko tuotanto valmis juuri nyt? Ei oikeastaan, mutta se voi todellakin osoittaa tietä seuraavan sukupolven syvälliseen oppimisen kehittämiseen, joten sinun on ehdottomasti tutkittava, mitä Swiftillä tapahtuu.

R-kieli

R tulee listan loppuun, ja se trendi alaspäin. R on kieli, jota tutkijat rakastavat. Muiden ohjelmoijien mielestä R on kuitenkin usein hieman hämmentävä sen datakehyskeskeisen lähestymistavan vuoksi. Jos sinulla on oma R-kehittäjien ryhmä, voi olla järkevää käyttää TensorFlow-, Keras- tai H2O-integraatioita tutkimukseen, prototyyppien tekemiseen ja kokeiluihin, mutta epäröin suositella R: tä tuotantokäyttöön tai vihreän kentän kehittämiseen, koska suorituskykyyn ja operatiivisiin huolenaiheisiin. Vaikka voit kirjoittaa suorituskykyisen R-koodin, joka voidaan ottaa käyttöön tuotantopalvelimille, on melkein varmasti helpompaa ottaa kyseinen R-prototyyppi ja koodata se Java- tai Python-muodossa.

Muut tekoälyn ohjelmointivaihtoehdot

Tietysti Python, C ++, Java, JavaScript, Swift ja R eivät ole ainoat kielet, jotka ovat käytettävissä tekoälyn ohjelmoinnissa. Tässä on vielä kaksi ohjelmointikieltä, joista saatat löytää mielenkiintoisia tai hyödyllisiä, vaikka en pidä niitä tärkeimpinä prioriteetteina oppimisessa.

Lua

Muutama vuosi sitten Lua ratsasti korkealla tekoälyn maailmassa Torch-kehyksen ansiosta, joka on yksi suosituimmista koneoppimiskirjastoista sekä tutkimus- että tuotantotarpeisiin. Jos tutustut syvällisten oppimismallien historiaan, löydät usein vanhoista GitHub-arkistoista runsaasti viitteitä Torchiin ja runsaasti Lua-lähdekoodia.

Tätä tarkoitusta varten voi olla hyödyllistä saada toimiva tieto Torch-sovellusliittymästä, joka ei ole liian kaukana PyTorchin perus-sovellusliittymästä. Jos kuitenkin, kuten useimmat meistä, sinun ei todellakaan tarvitse tehdä paljon historiallista tutkimusta sovelluksillesi, voit todennäköisesti päästä toimeen tarvitsematta kiertää päämme Luan pienien oivallusten ympärille.

Julia

Julia on suorituskykyinen ohjelmointikieli, joka on keskittynyt numeeriseen laskentaan, mikä tekee siitä hyvän istuvuuden tekoälyn matemaattiseen maailmaan. Vaikka kielivalinta ei ole tällä hetkellä kovin suosittua, käärepaperit, kuten TensorFlow.jl ja Mocha (Caffe vaikuttaa voimakkaasti), tarjoavat hyvän syvällisen oppimisen tuen. Jos et välitä suhteellisen pienestä ekosysteemistä ja haluat hyötyä siitä, että Julia keskittyy tekemään korkean suorituskyvyn laskutoimituksia helppoa ja nopeaa, Julia on luultavasti tarkastelun arvoinen.

$config[zx-auto] not found$config[zx-overlay] not found