Programovanie

6 najlepších programovacích jazykov pre vývoj AI

AI (umelá inteligencia) otvára vývojárom aplikácií svet možností. Využitím výhod strojového učenia alebo hlbokého učenia môžete vytvoriť oveľa lepšie používateľské profily, prispôsobenie a odporúčania alebo začleniť inteligentnejšie vyhľadávanie, hlasové rozhranie alebo inteligentnú pomoc alebo vylepšiť svoju aplikáciu mnohými inými spôsobmi. Môžete dokonca vytvoriť aplikácie, ktoré vidia, počujú a reagujú na situácie, ktoré ste nikdy nepredpokladali.

Ktorý programovací jazyk by ste sa mali naučiť ponoriť do hĺbky AI? Budete samozrejme potrebovať jazyk s mnohými dobrými knižnicami strojového učenia a hlbokého učenia. Mal by tiež obsahovať dobrý výkon za behu, dobrú podporu nástrojov, veľkú komunitu programátorov a zdravý ekosystém podporných balíkov. Je to dlhý zoznam požiadaviek, ale stále existuje veľa dobrých možností.

Tu sú moje tipy na šesť najlepších programovacích jazykov pre vývoj AI a dve čestné uznania. Niektoré z týchto jazykov sú na vzostupe, zatiaľ čo iné skĺzavajú. Ešte ďalšie, o ktorých musíte vedieť, len ak sa zaujímate o historické architektúry a aplikácie hlbokého učenia. Pozrime sa, ako sa všetky hromadia.

Python

Na prvom mieste je to stále Python. Ako to vlastne môže byť niečo iné? Aj keď v Pythone existujú nepríjemné veci, ak robíte prácu na umelej inteligencii, takmer určite budete niekedy používať Python. A niektoré drsné miesta sa trochu vyhladili.

Ako pôjdeme do roku 2020, otázka Pythonu 2.xa Pythonu 3.x bude diskutabilná, pretože takmer každá veľká knižnica podporuje Python 3.x a podporu Pythonu 2.x upúšťa, akonáhle to bude možné. Inými slovami, konečne môžete naplno využívať všetky nové jazykové funkcie.

A aj keď sú Pythonove nočné mory na balenie - kde sú všetky rôzne riešenia porušené trochu iným spôsobom - stále prítomné, môžete Anacondu používať asi 95% času a nemusíte sa o veci príliš starať. Napriek tomu by bolo pekné, keby svet Pythonu tento dlhotrvajúci problém vyriešil raz a navždy.

To znamená, že matematické a štatistické knižnice dostupné v Pythone nemajú v iných jazykoch obdoby. NumPy sa stal tak všadeprítomným, že je takmer štandardným API pre tenzorové operácie, a Pandas prináša do Pythonu výkonné a flexibilné dátové rámce R. Pre spracovanie prirodzeného jazyka (NLP) máte k dispozícii ctihodný NLTK a neuveriteľne rýchly SpaCy. Pre strojové učenie existuje Scikit-learn testovaný na bitky. A pokiaľ ide o hĺbkové učenie, všetky súčasné knižnice (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano atď.) Sú v skutočnosti projekty zamerané na Python.

Ak čítate špičkový výskum hlbokého učenia na serveri arXiv, väčšinu štúdií, ktoré ponúkajú zdrojový kód, nájdete v Pythone. Potom existujú ďalšie časti ekosystému Python. Aj keď sa z IPythonu stal Jupyter Notebook a je menej zameraný na Python, stále zistíte, že väčšina používateľov Jupyter Notebook a väčšina notebookov zdieľaných online používa Python. Čo sa týka nasadenia modelov, nástup mikroslužobných architektúr a technológií, ako je Seldon Core, znamená, že v dnešnej dobe je veľmi ľahké nasadiť modely Pythonu do výroby.

Nie je možné to nijako obísť. Python je jazyk na čele výskumu AI, ten, v ktorom nájdete najviac rámcov strojového učenia a hlbokého učenia, a jazyk, ktorým hovorí takmer každý vo svete AI. Z týchto dôvodov je Python na prvom mieste medzi programovacími jazykmi AI, a to aj napriek tomu, že váš autor aspoň raz za deň preklína medzery.

Súvisiace video: Strojové učenie a AI dešifrované

Pri prekonávaní humbuku okolo strojového učenia a umelej inteligencie náš panel hovorí o definíciách a dôsledkoch tejto technológie.

C ++

C ++ pravdepodobne nebude vašou prvou voľbou pri vývoji aplikácie AI, ale keď potrebujete vyžmýkať zo systému každý posledný kúsok výkonu - scenár, ktorý sa stáva čoraz častejším, keď sa hlboké učenie dostane na hranu a musíte svoje modely spustiť na systémy s obmedzenými zdrojmi - je čas opäť sa vrátiť do desivého sveta ukazovateľov.

Našťastie môže byť moderný C ++ príjemný na písanie (čestný!). Máte na výber z prístupov. Môžete sa ponoriť do dolnej časti zásobníka a pomocou knižníc ako CUDA od spoločnosti Nvidia napísať svoj vlastný kód, ktorý sa spustí priamo na vašom grafickom procesore, alebo môžete získať prístup k flexibilným rozhraniam API na vysokej úrovni pomocou TensorFlow alebo PyTorch. Programy PyTorch aj TensorFlow vám umožňujú načítať modely generované v Pythone (alebo PyTorchovej podskupine TorchScript v jazyku Python) a spúšťať ich priamo v runtime C ++, vďaka čomu sa dostanete bližšie k holému kovu pre výrobu pri zachovaní flexibility pri vývoji.

Stručne povedané, C ++ sa stáva dôležitou súčasťou sady nástrojov, pretože aplikácie AI sa šíria naprieč všetkými zariadeniami od najmenšieho zabudovaného systému po obrovské klastre. AI na okraji znamená, že už nestačí len byť presný; musíš byť dobrý a rýchlo.

Java a ďalšie jazyky JVM

Rodina jazykov JVM (Java, Scala, Kotlin, Clojure atď.) Je naďalej skvelou voľbou pre vývoj aplikácií pre AI. Máte k dispozícii nepreberné množstvo knižníc pre všetky časti potrubia, či už je to spracovanie prirodzeného jazyka (CoreNLP), tenzorové operácie (ND4J) alebo úplný zásobník hlbokého učenia akcelerovaný pomocou GPU (DL4J). Navyše získate ľahký prístup k platformám pre veľké dáta, ako sú Apache Spark a Apache Hadoop.

Java je lingua franca väčšiny podnikov a vďaka novým jazykovým konštrukciám dostupným v prostredí Java 8 a novších verziách nie je písanie kódu Java nenávistným zážitkom, ktorý si mnohí z nás pamätajú. Písanie aplikácie AI v prostredí Java môže pôsobiť dojmom nudy, ale vašu prácu môže zvládnuť - a na vývoj, nasadenie a monitorovanie môžete využiť všetku svoju existujúcu infraštruktúru Java.

JavaScript

Je nepravdepodobné, že sa JavaScript naučíte iba na písanie aplikácií umelej inteligencie, ale Google TensorFlow.js sa neustále zdokonaľuje a ponúka zaujímavý spôsob nasadenia vašich modelov Keras a TensorFlow do vášho prehliadača alebo prostredníctvom Node.js pomocou WebGL na výpočty zrýchlené GPU.

Jedna vec, ktorú sme však od uvedenia TensorFlow.js na trh v skutočnosti nevideli, je obrovský príliv vývojárov JavaScriptu, ktorý zaplavuje priestor AI. Myslím si, že to môže byť spôsobené tým, že okolitý ekosystém JavaScriptu nemá hĺbku dostupných knižníc v porovnaní s jazykmi ako Python.

Ďalej, na strane servera nie je nasadzovanie modelov s Node.js skutočne veľkou výhodou na rozdiel od jednej z možností Pythonu, takže v blízkej budúcnosti môžeme vidieť, že aplikácie AI založené na JavaScripte zostanú hlavne prehliadačmi. Stále to však vytvára veľa zaujímavých príležitostí na zábavu, ako napríklad Emoji Scavenger Hunt.

Swift

V minuloročnej verzii tohto článku som sa zmienil, že jazyk Swift je jazyk, ktorý treba strážiť. Tento rok to prerazí na moju najlepšiu šestku. Čo sa stalo? Swift pre TensorFlow. Plne zadaná väzba najnovších a najlepších funkcií TensorFlow a temnej mágie bez krútenia, ktorá umožňuje importovať knižnice Pythonu, akoby ste Python používali na prvom mieste.

Tím Fastai pracuje na verzii ich obľúbenej knižnice Swift a je nám prisľúbené množstvo ďalších optimalizácií pri generovaní a spustení modelov s presunutím množstva tenzorových inteligentov do kompilátora LLVM. Je teraz pripravená výroba? Nie je to tak, ale môže to skutočne znamenať cestu k ďalšej generácii rozvoja hlbokého učenia, takže by ste mali určite preskúmať, čo sa so Swiftom deje.

Jazyk R.

R prichádza v spodnej časti nášho zoznamu a je klesajúci. R je jazyk, ktorý vedci v oblasti dát milujú. Avšak ostatným programátorom často pripadá R trochu mätúci kvôli jeho prístupu zameranému na dátové rámce. Ak máte špecializovanú skupinu vývojárov R, potom môže mať zmysel používať integráciu s TensorFlow, Keras alebo H2O na výskum, prototypovanie a experimentovanie, ale váham odporučiť R na produkčné použitie alebo na vývoj na zelenej lúke, kvôli výkonnosti a prevádzky. Aj keď môžete písať výkonný R kód, ktorý je možné nasadiť na produkčné servery, bude takmer určite jednoduchšie vziať tento prototyp R a prekódovať ho v prostredí Java alebo Python.

Ďalšie možnosti programovania AI

Python, C ++, Java, JavaScript, Swift a R samozrejme nie sú jedinými jazykmi, ktoré sú k dispozícii na programovanie umelej inteligencie. Tu sú ďalšie dva programovacie jazyky, ktoré by vám mohli pripadať zaujímavé alebo užitočné, aj keď by som ich nepočítal ako najvyššiu prioritu učenia.

Lua

Pred niekoľkými rokmi Lua jazdila vysoko vo svete umelej inteligencie vďaka architektúre Torch, jednej z najpopulárnejších knižníc strojového učenia pre potreby výskumu a výroby. Ak sa ponoríte do histórie modelov hlbokého učenia, v starých úložiskách GitHub často nájdete bohaté odkazy na Torch a množstvo zdrojových kódov Lua.

Na tento účel môže byť užitočné mať praktické znalosti o API Torch, ktoré nie sú príliš vzdialené od základného API PyTorch. Ak však, rovnako ako väčšina z nás, skutočne nemusíte pre svoje aplikácie robiť veľa historických výskumov, pravdepodobne sa zaobídete bez toho, aby ste museli našu hlavu obkrútiť okolo Luiných malých vtipov.

Júlia

Julia je vysoko výkonný programovací jazyk zameraný na numerické výpočty, vďaka čomu sa dobre hodí do matematicky náročného sveta AI. Aj keď to momentálne nie je až také populárne ako výber jazyka, obálky ako TensorFlow.jl a Mocha (silne ovplyvnené Caffe) poskytujú dobrú podporu pri hlbokom učení. Ak vám nevadí relatívne malý ekosystém a chcete ťažiť z Juliinho zamerania na ľahké a rýchle vykonávanie vysoko výkonných výpočtov, potom Julia pravdepodobne stojí za pozretie.

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