Programmering

6 beste programmeringsspråk for AI-utvikling

AI (kunstig intelligens) åpner en verden av muligheter for applikasjonsutviklere. Ved å dra nytte av maskinlæring eller dyp læring, kan du produsere langt bedre brukerprofiler, personalisering og anbefalinger, eller innlemme smartere søk, et stemmegrensesnitt eller intelligent assistanse, eller forbedre appen din på en rekke andre måter. Du kan til og med bygge applikasjoner som ser, hører og reagerer på situasjoner du aldri forventet.

Hvilket programmeringsspråk bør du lære å dype dybden av AI? Du vil selvfølgelig ha et språk med mange gode maskinlærings- og dyplæringsbiblioteker. Den skal også ha god kjøretidsytelse, god verktøystøtte, et stort fellesskap av programmerere og et sunt økosystem med støttepakker. Det er en lang liste med krav, men det er fortsatt mange gode alternativer.

Her er mine valg for de seks beste programmeringsspråkene for AI-utvikling, sammen med to hederlige omtaler. Noen av disse språkene øker, mens andre glir. Fortsatt andre du bare trenger å vite om hvis du er interessert i historiske dybdelæringsarkitekturer og applikasjoner. La oss se hvordan de alle stabler opp.

Python

På nummer én er det fortsatt Python. Hvordan kan det være noe annet, egentlig? Selv om det er vanvittige ting om Python, vil du nesten helt sikkert bruke Python på et tidspunkt hvis du gjør AI-arbeid. Og noen av de grove flekkene har glattet litt.

Når vi går inn i 2020, blir utgaven av Python 2.x versus Python 3.x stadig vanskeligere, ettersom nesten alle større biblioteker støtter Python 3.x og slipper Python 2.x-støtte så snart de muligens kan. Med andre ord, du kan endelig dra nytte av alle de nye språkfunksjonene for alvor.

Og mens Pythons emballeringsmareritt - der hver annen løsning brytes på en litt annen måte - fremdeles er til stede, kan du bruke Anaconda omtrent 95% av tiden og ikke bekymre deg for ting for mye. Det ville likevel være fint om Python-verdenen ville fikse dette mangeårige problemet en gang for alle.

Når det er sagt, er matte- og statistikkbibliotekene som er tilgjengelige i Python ganske uten sidestykke på andre språk. NumPy har blitt så allestedsnærværende at det nesten er et standard API for tensoroperasjoner, og Pandas bringer R’s kraftige og fleksible datarammer til Python. For naturlig språkbehandling (NLP) har du ærverdige NLTK og det lynrask-raske SpaCy. For maskinlæring er det den kamptestede Scikit-læringen. Og når det gjelder dyp læring, er alle dagens biblioteker (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano, etc.) effektivt Python-first-prosjekter.

Hvis du leser banebrytende dyplæringsforskning på arXiv, vil du finne de fleste studier som tilbyr kildekode, gjør det i Python. Så er det de andre delene av Python-økosystemet. Mens IPython har blitt Jupyter Notebook, og mindre Python-sentrisk, vil du fremdeles oppdage at de fleste Jupyter Notebook-brukere, og de fleste notatbøker som deles online, bruker Python. Når det gjelder distribusjon av modeller, betyr fremveksten av mikrotjenestearkitekturer og teknologier som Seldon Core at det er veldig enkelt å distribuere Python-modeller i produksjon i disse dager.

Det er ikke noe å komme seg rundt. Python er språket i forkant av AI-forskning, det du finner de mest maskinlærende og dype læringsrammer for, og det som nesten alle i AI-verdenen snakker. Av disse grunner er Python først blant AI-programmeringsspråk, til tross for at forfatteren din forbanner det hvite området minst en gang om dagen.

Relatert video: Maskinlæring og AI-dekryptert

Ved å bryte gjennom sprøytenarkomanen rundt maskinlæring og kunstig intelligens, snakker panelet vårt gjennom definisjonene og implikasjonene av teknologien.

C ++

C ++ er neppe ditt førstevalg når du utvikler en AI-applikasjon, men når du trenger å vri hver eneste bit ytelse fra systemet - et scenario som blir mer vanlig når dyp læring kommer til kanten og du må kjøre modellene dine på ressursbegrensede systemer - det er på tide å gå tilbake til den skremmende verden av pekere igjen.

Heldigvis kan moderne C ++ være hyggelig å skrive (ærlig!). Du har et utvalg av tilnærminger. Du kan enten dykke inn i bunnen av bunken ved å bruke biblioteker som Nvidias CUDA til å skrive din egen kode som kjører direkte på GPUen din, eller du kan bruke TensorFlow eller PyTorch for å få tilgang til fleksible APIer på høyt nivå. Både PyTorch og TensorFlow lar deg laste inn modeller som er generert i Python (eller PyTorch's TorchScript-delmengde av Python) og kjøre dem rett i en C ++ kjøretid, og komme deg nærmere det metaller for produksjon samtidig som du bevarer fleksibiliteten i utviklingen.

Kort fortalt blir C ++ en kritisk del av verktøykassen da AI-applikasjoner sprer seg over alle enheter fra det minste innebygde systemet til store klynger. AI ved kanten betyr at det ikke bare er nok til å være nøyaktig lenger; du må være god og rask.

Java og andre JVM-språk

JVM-språkfamilien (Java, Scala, Kotlin, Clojure osv.) Er fortsatt et godt valg for utvikling av AI-applikasjoner. Du har et vell av biblioteker tilgjengelig for alle deler av rørledningen, enten det er naturlig språkbehandling (CoreNLP), tensoroperasjoner (ND4J) eller en full GPU-akselerert deep learning stack (DL4J). I tillegg får du enkel tilgang til store dataplattformer som Apache Spark og Apache Hadoop.

Java er lingua franca for de fleste bedrifter, og med de nye språkkonstruksjonene som er tilgjengelige i Java 8 og nyere versjoner, er det ikke den hatefulle opplevelsen mange av oss husker å skrive Java-kode. Å skrive et AI-program i Java kan føles kjedelig, men det kan gjøre jobben - og du kan bruke all din eksisterende Java-infrastruktur for utvikling, distribusjon og overvåking.

JavaScript

Det er usannsynlig at du lærer JavaScript utelukkende for å skrive AI-applikasjoner, men Googles TensorFlow.js fortsetter å forbedre og tilby en spennende måte å distribuere Keras- og TensorFlow-modellene dine i nettleseren din eller gjennom Node.js ved å bruke WebGL for GPU-akselererte beregninger.

Imidlertid er en ting vi egentlig ikke har sett siden lanseringen av TensorFlow.js, en enorm tilstrømning av JavaScript-utviklere som flommer over i AI-rommet. Jeg tror det kan skyldes at det omkringliggende JavaScript-økosystemet ikke har dybden av tilgjengelige biblioteker i forhold til språk som Python.

Videre, på serversiden, er det ikke veldig mye av en fordel å distribuere modeller med Node.js i motsetning til et av Python-alternativene, så vi kan se JavaScript-baserte AI-applikasjoner forblir hovedsakelig nettleserbaserte i nær fremtid. Men det skaper fortsatt mange interessante muligheter for moro som Emoji Scavenger Hunt.

Fort

I fjorårets versjon av denne artikkelen nevnte jeg at Swift var et språk å holde øye med. I år bryter den inn i topp seks. Hva skjedde? Swift For TensorFlow. En fullstendig skrevet, cruftfri binding av de nyeste og beste funksjonene i TensorFlow, og mørk magi som lar deg importere Python-biblioteker som om du i utgangspunktet brukte Python.

Fastai-teamet jobber med en Swift-versjon av deres populære bibliotek, og vi er lovet mange ytterligere optimaliseringer for å generere og kjøre modeller med å flytte mange tensorsmarts inn i LLVM-kompilatoren. Er det produksjonsklar akkurat nå? Ikke egentlig, men det kan faktisk peke veien til neste generasjon av dyp læringsutvikling, så du bør definitivt undersøke hva som skjer med Swift.

R språk

R kommer inn nederst på listen vår, og den trender nedover. R er språket som dataforskere elsker. Imidlertid synes andre programmerere ofte at R er litt forvirrende på grunn av sin datarammesentriske tilnærming. Hvis du har en dedikert gruppe R-utviklere, kan det være fornuftig å bruke integrasjonene med TensorFlow, Keras eller H2O for forskning, prototyping og eksperimentering, men jeg nøler med å anbefale R for produksjonsbruk eller for utvikling av greenfield, pga. ytelse og operasjonelle bekymringer. Mens du kan skrive performant R-kode som kan distribueres på produksjonsservere, vil det nesten helt sikkert være lettere å ta den R-prototypen og kode den på nytt i Java eller Python.

Andre AI-programmeringsalternativer

Selvfølgelig er Python, C ++, Java, JavaScript, Swift og R ikke de eneste språkene som er tilgjengelige for AI-programmering. Her er to programmeringsspråk til som du kan synes er interessante eller nyttige, selv om jeg ikke vil regne dem som topp prioriteter for læring.

Lua

For noen år siden kjørte Lua høyt i verden av kunstig intelligens på grunn av Torch-rammeverket, et av de mest populære maskinlæringsbibliotekene for både forsknings- og produksjonsbehov. Hvis du går inn i historien til dype læringsmodeller, vil du ofte finne store referanser til Torch og masse Lua-kildekode i gamle GitHub-arkiver.

For det formål kan det være nyttig å ha kunnskap om Torch API, som ikke er for langt unna PyTorchs grunnleggende API. Men hvis du, som de fleste av oss, ikke trenger å gjøre mye historisk forskning for applikasjonene dine, kan du sannsynligvis klare deg uten å måtte pakke hodet rundt Luas små særegenheter.

Julia

Julia er et høyt ytende programmeringsspråk som er fokusert på numerisk databehandling, noe som gjør at den passer godt inn i den matte-tunge verdenen av AI. Selv om det ikke er så populært som språkvalg akkurat nå, gir innpakninger som TensorFlow.jl og Mocha (sterkt påvirket av Caffe) god støtte for dyp læring. Hvis du ikke har noe imot det relativt lille økosystemet, og du vil dra nytte av Julias fokus på å gjøre høyytelsesberegninger enkle og raske, er Julia sannsynligvis verdt å se.

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