Programování

6 nejlepších programovacích jazyků pro vývoj AI

AI (umělá inteligence) otevírá svět možností pro vývojáře aplikací. Využitím výhod strojového učení nebo hlubokého učení můžete vytvořit mnohem lepší uživatelské profily, personalizaci a doporučení nebo začlenit chytřejší vyhledávání, hlasové rozhraní nebo inteligentní asistenci nebo vylepšit aplikaci mnoha dalšími způsoby. Můžete dokonce vytvářet aplikace, které vidí, slyší a reagují na situace, které jste nikdy nečekali.

Který programovací jazyk byste se měli naučit zkoumat hloubku AI? Budete samozřejmě potřebovat jazyk s mnoha dobrými knihovnami strojového učení a hlubokého učení. Měl by také obsahovat dobrý běhový výkon, dobrou podporu nástrojů, velkou komunitu programátorů a zdravý ekosystém podpůrných balíčků. To je dlouhý seznam požadavků, ale stále existuje spousta dobrých možností.

Tady jsou moje tipy na šest nejlepších programovacích jazyků pro vývoj AI spolu se dvěma čestnými uznáními. Některé z těchto jazyků jsou na vzestupu, zatímco jiné sklouzávají. Ještě další, o kterých musíte vědět, pouze pokud vás zajímají historické architektury a aplikace hlubokého učení. Podívejme se, jak se všechny hromadí.

Krajta

U čísla jedna je to stále Python. Jak by to mohlo být něco jiného, ​​opravdu? I když jsou v Pythonu šílené věci, pokud děláte práci s umělou inteligencí, téměř jistě budete někdy používat Python. A některá drsná místa se trochu vyhladila.

Jak se vydáme do roku 2020, otázka Pythonu 2.xv porovnání s Pythonem 3.x začíná být diskutabilní, protože téměř každá hlavní knihovna podporuje Python 3.x a upouští podporu Pythonu 2.x, jakmile to bude možné. Jinými slovy, konečně můžete vážně využívat všechny nové jazykové funkce.

A i když jsou Pythonovy noční můry v balení - kde se každé jiné řešení rozbíjí trochu jiným způsobem - stále přítomné, můžete Anacondu používat asi 95% času a nemusíte se příliš starat o věci. Přesto by bylo hezké, kdyby svět Pythonu jednou provždy vyřešil tento dlouhodobý problém.

To znamená, že matematické a statistické knihovny dostupné v Pythonu nemají v jiných jazycích obdoby. NumPy se stal tak všudypřítomným, že je téměř standardním API pro tenzorové operace, a Pandas přináší do Pythonu výkonné a flexibilní datové rámce R. Pro zpracování přirozeného jazyka (NLP) máte ctihodný NLTK a neuvěřitelně rychlý SpaCy. Pro strojové učení je zde bitevně testovaný Scikit-learn. A pokud jde o hluboké učení, všechny současné knihovny (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano atd.) Jsou v podstatě projekty v Pythonu.

Pokud čtete nejmodernější výzkum hloubkového učení na arXiv, najdete většinu studií, které nabízejí zdrojový kód, v Pythonu. Pak existují další části ekosystému Pythonu. I když se z IPythonu stal Jupyter Notebook a je méně zaměřený na Python, stále zjistíte, že většina uživatelů Jupyter Notebook a většina notebooků sdílených online používá Python. Pokud jde o nasazení modelů, nástup mikroslužebních architektur a technologií, jako je Seldon Core, znamená, že je dnes velmi snadné nasadit modely Pythonu do výroby.

Nedá se to obejít. Python je jazyk v popředí výzkumu AI, ten, u kterého najdete nejvíce rámců strojového učení a hlubokého učení, a ten, kterým mluví téměř všichni na světě AI. Z těchto důvodů je Python první mezi programovacími jazyky AI, a to navzdory skutečnosti, že váš autor proklíná problémy s mezerami alespoň jednou denně.

Související video: Dešifrování strojového učení a AI

Náš panel prolomil humbuk kolem strojového učení a umělé inteligence a promlouvá přes definice a důsledky této technologie.

C ++

C ++ pravděpodobně nebude vaší první volbou při vývoji aplikace AI, ale když potřebujete vyždímat poslední kousek výkonu ze systému - scénář, který se stává častějším, jak se hluboké učení dostává na hranu a musíte své modely provozovat na systémy omezené zdroji - je čas vrátit se zpět do děsivého světa ukazatelů.

Naštěstí může být moderní C ++ příjemný na psaní (upřímně!). Máte na výběr z přístupů. Můžete se buď ponořit do spodní části zásobníku pomocí knihoven, jako je NUDIA CUDA, k napsání vlastního kódu, který běží přímo na vašem GPU, nebo můžete použít TensorFlow nebo PyTorch k získání přístupu k flexibilním API na vysoké úrovni. PyTorch i TensorFlow vám umožňují načítat modely generované v Pythonu (nebo PyTorchově podskupině TorchScript Pythonu) a spouštět je přímo v běhovém prostředí C ++, čímž se dostanete blíže k holému kovu pro produkci při zachování flexibility vývoje.

Stručně řečeno, C ++ se stává kritickou součástí sady nástrojů, protože aplikace AI se šíří napříč všemi zařízeními od nejmenšího vestavěného systému po obrovské klastry. AI na hraně znamená, že už nestačí jen být přesný; musíš být dobrý a rychle.

Java a další jazyky JVM

Rodina jazyků JVM (Java, Scala, Kotlin, Clojure atd.) Je i nadále skvělou volbou pro vývoj aplikací pro AI. Máte k dispozici nepřeberné množství knihoven pro všechny části kanálu, ať už se jedná o zpracování přirozeného jazyka (CoreNLP), tenzorové operace (ND4J) nebo plný zásobník hlubokého učení urychlený GPU (DL4J). Navíc získáte snadný přístup k velkým datovým platformám, jako jsou Apache Spark a Apache Hadoop.

Java je lingua franca většiny podniků as novými jazykovými konstrukcemi dostupnými v prostředí Java 8 a novějších verzích není psaní kódu Java nenávistným zážitkem, který si mnozí z nás pamatují. Psaní aplikace AI v Javě se může zdát nudné, ale může to udělat - a pro vývoj, nasazení a monitorování můžete použít veškerou stávající infrastrukturu Java.

JavaScript

Je nepravděpodobné, že byste se naučili JavaScript pouze pro psaní aplikací AI, ale Google TensorFlow.js se stále vylepšuje a nabízí zajímavý způsob nasazení vašich modelů Keras a TensorFlow do vašeho prohlížeče nebo prostřednictvím Node.js pomocí WebGL pro výpočty urychlené GPU.

Jedna věc, kterou jsme od spuštění TensorFlow.js ve skutečnosti neviděli, je obrovský příliv vývojářů JavaScriptu do prostoru AI. Myslím, že to může být způsobeno tím, že okolní ekosystém JavaScript nemá hloubku dostupných knihoven ve srovnání s jazyky, jako je Python.

Kromě toho na straně serveru není nasazení modelů s Node.js ve srovnání s jednou z možností Pythonu opravdu velkou výhodou, takže můžeme v blízké budoucnosti vidět, že aplikace AI založené na JavaScriptu zůstanou hlavně založené na prohlížeči. Ale to stále vytváří spoustu zajímavých příležitostí pro zábavu, jako je Emoji Scavenger Hunt.

Rychlý

V loňské verzi tohoto článku jsem se zmínil, že Swift byl jazyk, který je třeba sledovat. Letos se vloupal do mé šestky. Co se stalo? Swift pro TensorFlow. Plně zadaná vazba nejnovějších a největších funkcí TensorFlow bez temnoty a temné magie, která vám umožňuje importovat knihovny Pythonu, jako byste Python vůbec používali.

Tým Fastai pracuje na verzi jejich oblíbené knihovny Swift a je nám přislíbeno mnoho dalších optimalizací při generování a spouštění modelů s přesunem mnoha tenzorových inteligentů do kompilátoru LLVM. Je výroba připravena právě teď? Ve skutečnosti ne, ale může to skutečně ukázat cestu k další generaci rozvoje hlubokého učení, takže byste měli určitě prozkoumat, co se ve Swiftu děje.

Jazyk R.

R přichází v dolní části našeho seznamu a je klesající. R je jazyk, který datoví vědci milují. Jiní programátoři však často považují R za trochu matoucí kvůli jeho přístupu zaměřenému na dataframe. Pokud máte specializovanou skupinu vývojářů R, může mít smysl použít integraci s TensorFlow, Keras nebo H2O pro výzkum, prototypování a experimentování, ale váhám doporučit R pro produkční použití nebo pro vývoj na zelené louce, kvůli výkon a provozní problémy. I když můžete psát výkonný R kód, který lze nasadit na produkční servery, bude téměř jistě jednodušší vzít tento prototyp R a překódovat jej v Javě nebo Pythonu.

Další možnosti programování AI

Python, C ++, Java, JavaScript, Swift a R samozřejmě nejsou jedinými jazyky dostupnými pro programování AI. Zde jsou další dva programovací jazyky, které vám mohou připadat zajímavé nebo užitečné, i když bych je nepočítal jako hlavní priority učení.

Lua

Před několika lety Lua byla na špičce ve světě umělé inteligence díky architektuře Torch, jedné z nejpopulárnějších knihoven strojového učení pro potřeby výzkumu a výroby. Pokud se ponoříte do historie modelů hlubokého učení, ve starých úložištích GitHub často najdete bohaté odkazy na Torch a spoustu zdrojového kódu Lua.

Za tímto účelem může být užitečné mít pracovní znalosti o Torch API, které není příliš daleko od základního API PyTorch. Pokud však, stejně jako většina z nás, opravdu nemusíte dělat mnoho historických výzkumů pro své aplikace, pravděpodobně se obejdete, aniž byste museli namotávat hlavu kolem Luiných malých vtípků.

Julie

Julia je vysoce výkonný programovací jazyk zaměřený na numerické výpočty, díky čemuž se dobře hodí do matematicky náročného světa AI. I když to není tak populární jako volba jazyka, obálky jako TensorFlow.jl a Mocha (silně ovlivněné Caffe) poskytují dobrou podporu hlubokého učení. Pokud vám nevadí relativně malý ekosystém a chcete těžit ze Juliina zaměření na snadné a rychlé provádění vysoce výkonných výpočtů, pak Julia pravděpodobně stojí za pohled.