Programavimas

6 geriausios AI kalbos kūrimo programavimo kalbos

Dirbtinis intelektas (dirbtinis intelektas) atveria galimybių pasaulį programų kūrėjams. Pasinaudoję mašininio mokymosi ar gilaus mokymosi pranašumais, galite sukurti kur kas geresnius vartotojų profilius, suasmeninimus ir rekomendacijas arba įtraukti sumanesnę paiešką, balso sąsają ar intelektualią pagalbą arba patobulinti savo programą kitais būdais. Jūs netgi galite sukurti programas, kurios matytų, girdėtų ir reaguotų į situacijas, kurių niekada nenumatėte.

Kurią programavimo kalbą turėtumėte išmokti, kad įgytumėte AI gelmes? Jūs, žinoma, norėsite kalbos su daugybe gerų mašininio mokymosi ir gilaus mokymosi bibliotekų. Ji taip pat turėtų pasižymėti geru vykdymo laiku, geru įrankių palaikymu, didele programuotojų bendruomene ir sveika palaikančių paketų ekosistema. Tai ilgas reikalavimų sąrašas, tačiau vis tiek yra daug gerų variantų.

Čia yra mano pasirinkimas šešioms geriausioms programavimo kalboms, skirtoms AI kurti, kartu su dviem garbingais paminėjimais. Kai kurių iš šių kalbų daugėja, o kitos slenka. Dar apie kitus jums reikia žinoti tik tuo atveju, jei jus domina istorinės giluminio mokymosi architektūros ir programos. Pažiūrėkime, kaip jie visi susikrauna.

„Python“

Pirmajame numeryje vis dar yra „Python“. Kaip tai gali būti kas nors kitas, iš tikrųjų? Nors apie „Python“ yra beprotiškų dalykų, jei dirbate dirbtinio intelekto srityje, beveik neabejotinai tam tikru momentu naudosite „Python“. Kai kurios šiurkščios dėmės šiek tiek išlygino.

Kai einame į 2020 m., „Python 2.x“ ir „Python 3.x“ klausimas tampa aktualus, nes beveik kiekviena pagrindinė biblioteka palaiko „Python 3.x“ ir kuo greičiau atsisako „Python 2.x“ palaikymo. Kitaip tariant, pagaliau galite rimtai pasinaudoti visomis naujomis kalbos ypatybėmis.

Ir nors „Python“ pakavimo košmarai - kai kiekvienas skirtingas sprendimas yra sugadintas šiek tiek kitaip - vis dar egzistuoja, galite naudoti „Anaconda“ maždaug 95% laiko ir per daug nesijaudinti dėl dalykų. Vis dėlto būtų malonu, jei „Python“ pasaulis kartą ir visiems laikams išspręstų šią seniai egzistuojančią problemą.

Be to, „Python“ matematikos ir statistikos bibliotekos yra beveik neprilygstamos kitomis kalbomis. „NumPy“ tapo tokia visur paplitusi, kad tai beveik standartinė API tenzoriaus operacijoms atlikti, o „Pandas“ pateikia „Python“ galingus ir lanksčius R duomenų rėmus. Norint apdoroti natūralią kalbą (NLP), turite garbingą NLTK ir be galo greitą „SpaCy“. Mašinų mokymuisi reikalingas mūšyje išbandytas „Scikit-learn“. Kalbant apie giluminį mokymąsi, visos dabartinės bibliotekos („TensorFlow“, „PyTorch“, „Chainer“, „Apache MXNet“, „Theano“ ir kt.) Yra veiksmingos „Python“ programos.

Jei skaitote pažangiausius giliųjų mokymosi tyrimus apie „arXiv“, pamatysite, kad dauguma tyrimų, kuriuose siūlomas šaltinio kodas, tai daro „Python“. Tada yra kitos „Python“ ekosistemos dalys. Nors „IPython“ tapo „Jupyter Notebook“ ir mažiau orientuotas į „Python“, vis tiek pastebėsite, kad dauguma „Jupyter Notebook“ vartotojų ir dauguma internete dalijamų užrašų knygelių naudoja „Python“. Kalbant apie modelių diegimą, mikropaslaugų architektūros ir tokių technologijų kaip „Seldon Core“ atsiradimas reiškia, kad šiais laikais labai lengva diegti „Python“ modelius.

Negalima to apeiti. Python yra kalba, esanti priekyje dirbtinio intelekto srityje, ta, kuriai rasite daugiausiai mašininio mokymosi ir giliausio mokymosi pagrindų, ir ta, kuria kalba beveik visi dirbtinio intelekto pasaulyje. Dėl šių priežasčių „Python“ yra pirmoji tarp dirbtinio intelekto programavimo kalbų, nepaisant to, kad jūsų autorius bent kartą per dieną keikia baltosios erdvės problemas.

Susijęs vaizdo įrašas: mašininis mokymasis ir AI iššifruotas

Pralaužę ažiotažą dėl mašininio mokymosi ir dirbtinio intelekto, mūsų grupė aptaria technologijos apibrėžimus ir pasekmes.

C ++

Vargu ar „C ++“ bus jūsų pirmas pasirinkimas kuriant AI taikomąją programą, tačiau kai reikia išgauti kiekvieną paskutinį sistemos našumą - scenarijus, kuris tampa vis dažnesnis, kai giluminis mokymasis ateina į priekį ir turite paleisti savo modelius išteklių ribotos sistemos - laikas dar kartą sugrįžti į siaubingą rodyklių pasaulį.

Laimei, šiuolaikinis C ++ gali būti malonus rašyti (sąžiningai!). Jūs galite pasirinkti būdus. Galite arba pasinerti į kamino apačią, naudodamiesi tokiomis bibliotekomis kaip „Nvidia“ CUDA, kad parašytumėte savo kodą, kuris veikia tiesiai jūsų GPU, arba galite naudoti „TensorFlow“ arba „PyTorch“, kad gautumėte prieigą prie lanksčių aukšto lygio API. Tiek „PyTorch“, tiek „TensorFlow“ leidžia įkelti modelius, sugeneruotus „Python“ (arba „PyTorch“ „TorchScript“ „Python“ pogrupyje), ir paleisti juos tiesiai per C ++ vykdymo laiką, priartinant jus prie pliko metalo gamybai, išlaikant kūrimo lankstumą.

Trumpai tariant, C ++ tampa kritine įrankių rinkinio dalimi, nes dirbtinio intelekto programų daugėja visuose įrenginiuose - nuo mažiausios įterptosios sistemos iki didžiulių grupių. Dirbtinis intelektas reiškia, kad ne tik pakanka būti tiksliu; tu turi būti geras ir greitai.

„Java“ ir kitos JVM kalbos

JVM kalbų šeima („Java“, „Scala“, „Kotlin“, „Clojure“ ir kt.) Ir toliau yra puikus pasirinkimas dirbtinio intelekto programoms kurti. Turite daugybę bibliotekų, galimų visoms dujotiekio dalims, nesvarbu, ar tai yra natūralios kalbos apdorojimas (CoreNLP), tenzoriaus operacijos (ND4J), ar visas GPU pagreitintas giluminis mokymasis (DL4J). Be to, jūs galite lengvai pasiekti didelių duomenų platformas, tokias kaip „Apache Spark“ ir „Apache Hadoop“.

„Java“ yra daugumos įmonių lingua franca, o turint naujų „Java 8“ ir vėlesnių versijų kalbų konstrukcijas, „Java“ kodo rašymas nėra neapykanta, kurią daugelis iš mūsų prisimena. Rašant AI taikomąją programą „Java“, gali atrodyti nuobodu, bet tai gali padaryti darbą - ir jūs galite naudoti visą esamą „Java“ infrastruktūrą kūrimui, diegimui ir stebėjimui.

„JavaScript“

Vargu ar išmoksite „JavaScript“ tik dirbdami su AI programomis, tačiau „Google“ „TensorFlow.js“ ir toliau tobulina ir siūlo intriguojantį būdą, kaip „Keras“ ir „TensorFlow“ modelius įdiegti į naršyklę arba per „Node.js“, naudojant „WebGL“ GPU pagreitintiems skaičiavimams.

Tačiau vieno dalyko, kurio iš tikrųjų nematėme nuo „TensorFlow.js“ paleidimo, yra didžiulis „JavaScript“ kūrėjų antplūdis, plūstantis į AI erdvę. Manau, kad taip gali būti dėl to, kad aplinkinė „JavaScript“ ekosistema neturi galimų bibliotekų gylio, palyginti su tokiomis kalbomis kaip „Python“.

Be to, serverio pusėje nėra daug pranašumų diegiant modelius su „Node.js“, o ne viena iš „Python“ parinkčių, todėl galime pastebėti, kad artimiausiu metu „Java“ pagrįstos AI programos daugiausia lieka naršyklės. Bet tai vis tiek sukuria daugybę įdomių progų, tokių kaip „Emoji Scavenger Hunt“.

Greitas

Praėjusių metų šio straipsnio versijoje paminėjau, kad „Swift“ buvo kalba, kurią reikia stebėti. Šiemet jis prasibrauna į mano šešetuką. Kas nutiko? „Swift“, skirtas „TensorFlow“. Visiškai surinktas naujausias ir geriausias „TensorFlow“ bei tamsiosios magijos funkcijų susiejimas be greitkelio, leidžiantis importuoti „Python“ bibliotekas taip, tarsi pirmiausia naudotumėte „Python“.

„Fastai“ komanda kuria savo populiariosios bibliotekos „Swift“ versiją, ir mums pažadėta daug daugiau optimizuoti kuriant ir vykdant modelius, perkeliant daugybę „tensor smarts“ į LLVM kompiliatorių. Ar dabar gamyba paruošta? Ne iš tikrųjų, bet tai tikrai gali parodyti kelią į naujos kartos gilų mokymąsi, todėl turėtumėte ištirti, kas vyksta su „Swift“.

R kalba

R patenka į mūsų sąrašo galą, ir jis linkęs žemyn. R yra kalba, kurią mėgsta duomenų mokslininkai. Tačiau kiti programuotojai dažnai mano, kad R yra šiek tiek painus dėl savo duomenų kadrų orientuoto požiūrio. Jei turite specialią „R“ kūrėjų grupę, gali būti prasminga naudoti integraciją su „TensorFlow“, „Keras“ ar „H2O“ tyrimams, prototipų kūrimui ir eksperimentams, tačiau aš nedvejodamas rekomenduoju „R“ naudoti gamybai arba plyno lauko plėtrai, nes veiklos ir veiklos rūpesčius. Nors galite parašyti našų R kodą, kurį galima įdiegti gamybos serveriuose, beveik neabejotinai bus lengviau paimti tą R prototipą ir perkoduoti „Java“ arba „Python“.

Kitos dirbtinio intelekto programavimo parinktys

Žinoma, „Python“, „C ++“, „Java“, „JavaScript“, „Swift“ ir R nėra vienintelės kalbos, kurias galima naudoti dirbtinio intelekto programavimui. Čia yra dar dvi programavimo kalbos, kurios jums gali būti įdomios ar naudingos, nors jų nelaikyčiau svarbiausiais mokymosi prioritetais.

Lua

Prieš kelerius metus Lua dirbtinio intelekto pasaulyje žengė aukštyn dėl „Torch“ sistemos - vienos iš populiariausių mašininio mokymosi bibliotekų tiek tyrimų, tiek gamybos reikmėms. Jei gilinsitės į gilaus mokymosi modelių istoriją, senose „GitHub“ saugyklose dažnai rasite gausių nuorodų į „Torch“ ir daugybę „Lua“ šaltinio kodų.

Tuo tikslu gali būti naudinga turėti žinių apie „Torch“ API, kuri nėra per toli nuo pagrindinės „PyTorch“ API. Vis dėlto, jei, kaip ir daugumai iš mūsų, jums tikrai nereikia atlikti daug istorinių tyrimų, susijusių su jūsų taikomosiomis programomis, tikriausiai galite išsiversti neprivalydami apsukti galvos dėl mažų Lua keistenybių.

Julija

„Julia“ yra didelio našumo programavimo kalba, orientuota į skaitmeninį skaičiavimą, todėl ji gerai tinka matematikoje sunkiam intelekto intelekto pasaulyje. Nors šiuo metu tai nėra taip populiaru kaip kalbos pasirinkimas, tokios pakuotės kaip „TensorFlow.jl“ ir „Mocha“ (didelę įtaką daro „Caffe“) teikia gerą giluminio mokymosi pagalbą. Jei neprieštaraujate palyginti mažai ekosistemai ir norite pasinaudoti tuo, kad Julija sutelkia dėmesį į tai, kad didelio našumo skaičiavimai būtų lengvi ir greiti, tada Julija tikriausiai verta dėmesio.