Προγραμματισμός

6 καλύτερες γλώσσες προγραμματισμού για ανάπτυξη AI

Το AI (τεχνητή νοημοσύνη) ανοίγει έναν κόσμο δυνατοτήτων για προγραμματιστές εφαρμογών. Αξιοποιώντας τη μηχανική εκμάθηση ή τη βαθιά μάθηση, θα μπορούσατε να δημιουργήσετε πολύ καλύτερα προφίλ χρήστη, εξατομίκευση και προτάσεις ή να ενσωματώσετε εξυπνότερη αναζήτηση, φωνητική διεπαφή ή έξυπνη βοήθεια ή να βελτιώσετε την εφαρμογή σας με πολλούς άλλους τρόπους. Θα μπορούσατε ακόμη και να δημιουργήσετε εφαρμογές που βλέπουν, ακούνε και αντιδρούν σε καταστάσεις που δεν περιμένατε ποτέ.

Ποια γλώσσα προγραμματισμού θα πρέπει να μάθετε να βάλετε τα βάθη της τεχνητής νοημοσύνης; Φυσικά, θα θέλατε μια γλώσσα με πολλές καλές μηχανικές εκδόσεις και βιβλιοθήκες βαθιάς μάθησης. Θα πρέπει επίσης να διαθέτει καλή απόδοση χρόνου εκτέλεσης, καλή υποστήριξη εργαλείων, μια μεγάλη κοινότητα προγραμματιστών και ένα υγιές οικοσύστημα πακέτων υποστήριξης. Αυτή είναι μια μεγάλη λίστα απαιτήσεων, αλλά υπάρχουν ακόμα πολλές καλές επιλογές.

Εδώ είναι οι επιλογές μου για τις έξι καλύτερες γλώσσες προγραμματισμού για ανάπτυξη AI, μαζί με δύο αξιότιμες αναφορές. Ορισμένες από αυτές τις γλώσσες αυξάνονται, ενώ άλλες γλιστρούν. Ακόμα άλλοι πρέπει να γνωρίζετε μόνο αν σας ενδιαφέρουν ιστορικές αρχιτεκτονικές και εφαρμογές βαθιάς μάθησης. Ας δούμε πώς συγκεντρώνονται όλοι.

Πύθων

Στο νούμερο ένα, είναι ακόμα Python. Πώς θα μπορούσε να είναι οτιδήποτε άλλο, πραγματικά; Ενώ υπάρχουν ενοχλητικά πράγματα για την Python, εάν κάνετε εργασία AI, σχεδόν σίγουρα θα χρησιμοποιήσετε το Python κάποια στιγμή. Και μερικά από τα τραχιά σημεία έχουν εξομαλυνθεί λίγο.

Καθώς προχωράμε στο 2020, το ζήτημα του Python 2.x έναντι του Python 3.x γίνεται διαφωνικό καθώς σχεδόν κάθε μεγάλη βιβλιοθήκη υποστηρίζει το Python 3.x και εγκαταλείπει την υποστήριξη Python 2.x το συντομότερο δυνατό. Με άλλα λόγια, μπορείτε τελικά να επωφεληθείτε από όλες τις νέες δυνατότητες γλώσσας με σοβαρότητα.

Και ενώ οι εφιάλτες συσκευασίας της Python - όπου κάθε διαφορετική λύση σπάει με λίγο διαφορετικό τρόπο - εξακολουθούν να υπάρχουν, μπορείτε να χρησιμοποιήσετε το Anaconda περίπου το 95% του χρόνου και να μην ανησυχείτε πολύ για τα πράγματα. Ακόμα, θα ήταν ωραίο εάν ο κόσμος της Python επιλύσει αυτό το μακροχρόνιο ζήτημα για πάντα.

Τούτου λεχθέντος, οι βιβλιοθήκες μαθηματικών και στατιστικών που είναι διαθέσιμες στην Python είναι σχεδόν απαράμιλλη σε άλλες γλώσσες. Το NumPy έχει γίνει τόσο πανταχού παρόν, είναι σχεδόν ένα τυπικό API για λειτουργίες τανυστή και η Pandas φέρνει τα ισχυρά και ευέλικτα πλαίσια δεδομένων της R στην Python. Για επεξεργασία φυσικής γλώσσας (NLP), έχετε το σεβάσμιο NLTK και το εξαιρετικά γρήγορο SpaCy. Για μηχανική εκμάθηση, υπάρχει η δοκιμαστική μάχη Scikit-learning. Και όταν πρόκειται για βαθιά μάθηση, όλες οι τρέχουσες βιβλιοθήκες (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano κ.λπ.) είναι ουσιαστικά έργα Python.

Εάν διαβάζετε έρευνα αιχμής για το arXiv, τότε θα βρείτε την πλειοψηφία των μελετών που προσφέρουν τον πηγαίο κώδικα στο Python. Στη συνέχεια, υπάρχουν τα άλλα μέρη του οικοσυστήματος Python. Ενώ το IPython έχει γίνει Jupyter Notebook και λιγότερο Python-centric, θα εξακολουθείτε να βρίσκετε ότι οι περισσότεροι χρήστες του Jupyter Notebook και οι περισσότεροι από τους φορητούς υπολογιστές που μοιράζονται online χρησιμοποιούν το Python. Όσον αφορά την ανάπτυξη μοντέλων, η εμφάνιση αρχιτεκτονικών και τεχνολογιών μικροϋπηρεσίας όπως το Seldon Core σημαίνει ότι είναι πολύ εύκολο να αναπτύξετε μοντέλα Python στην παραγωγή αυτές τις μέρες.

Δεν υπάρχει πρόβλημα. Η Python είναι η γλώσσα στην πρώτη γραμμή της έρευνας για την τεχνητή νοημοσύνη, εκείνη για την οποία θα βρείτε τα περισσότερα πλαίσια μηχανικής μάθησης και βαθιάς μάθησης και αυτή για την οποία μιλούν σχεδόν όλοι στον κόσμο της AI. Για αυτούς τους λόγους, η Python συγκαταλέγεται πρώτη στις γλώσσες προγραμματισμού AI, παρά το γεγονός ότι ο συγγραφέας σας καταρατά τα θέματα του διαστήματος τουλάχιστον μία φορά την ημέρα.

Σχετικό βίντεο: Μηχανική εκμάθηση και αποκρυπτογράφηση AI

Σπάζοντας τη διαφημιστική εκστρατεία γύρω από τη μηχανική μάθηση και την τεχνητή νοημοσύνη, το πάνελ μας μιλά για τους ορισμούς και τις επιπτώσεις της τεχνολογίας.

C ++

Το C ++ είναι απίθανο να είναι η πρώτη σας επιλογή όταν αναπτύσσετε μια εφαρμογή AI, αλλά όταν πρέπει να βγάλετε κάθε τελευταία απόδοση από το σύστημα - ένα σενάριο που γίνεται πιο συνηθισμένο καθώς η βαθιά μάθηση έρχεται στην άκρη και πρέπει να εκτελέσετε τα μοντέλα σας συστήματα περιορισμένων πόρων - ήρθε η ώρα να επιστρέψουμε στον τρομακτικό κόσμο των δεικτών για άλλη μια φορά.

Ευτυχώς, το μοντέρνο C ++ μπορεί να είναι ευχάριστο να γράφεται (ειλικρινές!). Έχετε μια επιλογή προσεγγίσεων. Μπορείτε είτε να βουτήξετε στο κάτω μέρος της στοίβας, χρησιμοποιώντας βιβλιοθήκες όπως το CUDA της Nvidia για να γράψετε τον δικό σας κώδικα που τρέχει απευθείας στην GPU σας, ή μπορείτε να χρησιμοποιήσετε το TensorFlow ή το PyTorch για να αποκτήσετε πρόσβαση σε ευέλικτα API υψηλού επιπέδου. Τόσο το PyTorch όσο και το TensorFlow σας επιτρέπουν να φορτώνετε μοντέλα που παράγονται στο Python (ή το υποσύνολο TorchScript της Python του PyTorch) και να τα εκτελείτε ευθεία σε χρόνο εκτέλεσης C ++, που σας φέρνει πιο κοντά στο γυμνό μέταλλο για παραγωγή, διατηρώντας παράλληλα την ευελιξία στην ανάπτυξη.

Εν ολίγοις, το C ++ γίνεται κρίσιμο μέρος της εργαλειοθήκης καθώς οι εφαρμογές AI πολλαπλασιάζονται σε όλες τις συσκευές, από το μικρότερο ενσωματωμένο σύστημα σε τεράστια συμπλέγματα. Το AI στην άκρη σημαίνει ότι δεν αρκεί πλέον να είναι ακριβές. πρέπει να είσαι καλός και γρήγορα.

Java και άλλες γλώσσες JVM

Η οικογένεια γλωσσών JVM (Java, Scala, Kotlin, Clojure κ.λπ.) εξακολουθεί να είναι μια εξαιρετική επιλογή για την ανάπτυξη εφαρμογών AI. Διαθέτετε πληθώρα βιβλιοθηκών για όλα τα μέρη του αγωγού, είτε πρόκειται για επεξεργασία φυσικής γλώσσας (CoreNLP), λειτουργίες τανυστή (ND4J) ή για μια πλήρη στοίβα βαθιάς μάθησης (DL4J). Επιπλέον, έχετε εύκολη πρόσβαση σε μεγάλες πλατφόρμες δεδομένων, όπως το Apache Spark και το Apache Hadoop.

Η Java είναι το lingua franca των περισσότερων επιχειρήσεων, και με τις νέες γλωσσικές κατασκευές που είναι διαθέσιμες σε Java 8 και νεότερες εκδόσεις, η σύνταξη κώδικα Java δεν είναι η μισητή εμπειρία που θυμούνται πολλοί από εμάς. Η σύνταξη μιας εφαρμογής AI στην Java μπορεί να αισθάνεται βαρετή, αλλά μπορεί να κάνει τη δουλειά - και μπορείτε να χρησιμοποιήσετε όλες τις υπάρχουσες υποδομές Java για ανάπτυξη, ανάπτυξη και παρακολούθηση.

JavaScript

Είναι απίθανο να μάθετε JavaScript μόνο για τη σύνταξη εφαρμογών AI, αλλά το TensorFlow.js της Google συνεχίζει να βελτιώνεται και να προσφέρει έναν ενδιαφέροντα τρόπο ανάπτυξης των μοντέλων Keras και TensorFlow στο πρόγραμμα περιήγησής σας ή μέσω του Node.js χρησιμοποιώντας WebGL για υπολογισμούς με επιτάχυνση GPU.

Ωστόσο, ένα πράγμα που δεν έχουμε δει από τότε που κυκλοφόρησε το TensorFlow.js είναι μια τεράστια εισροή προγραμματιστών JavaScript που κατακλύζουν τον χώρο AI. Νομίζω ότι αυτό μπορεί να οφείλεται στο ότι το περιβάλλον οικοσύστημα JavaScript δεν έχει το βάθος των διαθέσιμων βιβλιοθηκών σε σύγκριση με γλώσσες όπως η Python.

Επιπλέον, από την πλευρά του διακομιστή, δεν υπάρχει πραγματικά μεγάλο πλεονέκτημα για την ανάπτυξη μοντέλων με το Node.js σε αντίθεση με μία από τις επιλογές Python, επομένως μπορεί να δούμε ότι οι εφαρμογές AI που βασίζονται σε JavaScript παραμένουν κυρίως βασισμένες στο πρόγραμμα περιήγησης στο εγγύς μέλλον. Αλλά αυτό εξακολουθεί να δημιουργεί πολλές ενδιαφέρουσες ευκαιρίες για διασκέδαση όπως το Emoji Scavenger Hunt.

Ταχύς

Στην προηγούμενη έκδοση αυτού του άρθρου, ανέφερα ότι το Swift ήταν μια γλώσσα που πρέπει να παρακολουθείτε. Φέτος, ξεπερνά τα έξι πρώτα μου. Τι συνέβη? Swift για TensorFlow. Μια πλήρως δακτυλογραφημένη, χωρίς χειροτεχνία δέσμευση των τελευταίων και μεγαλύτερων δυνατοτήτων του TensorFlow και της σκοτεινής μαγείας που σας επιτρέπει να εισάγετε βιβλιοθήκες Python σαν να χρησιμοποιείτε το Python από την πρώτη θέση.

Η ομάδα Fastai εργάζεται σε μια Swift έκδοση της δημοφιλούς βιβλιοθήκης τους και έχουμε υποσχεθεί πολλές περαιτέρω βελτιστοποιήσεις στη δημιουργία και λειτουργία μοντέλων με τη μεταφορά πολλών έξυπνων τανυστών στον μεταγλωττιστή LLVM. Είναι έτοιμη η παραγωγή αυτή τη στιγμή; Όχι στην πραγματικότητα, αλλά μπορεί πράγματι να οδηγήσει στην επόμενη γενιά ανάπτυξης βαθιάς μάθησης, οπότε θα πρέπει σίγουρα να ερευνήσετε τι συμβαίνει με το Swift.

Γ γλώσσα

Το R έρχεται στο κάτω μέρος της λίστας μας, και είναι προς τα κάτω. Το R είναι η γλώσσα που λατρεύουν οι επιστήμονες δεδομένων. Ωστόσο, άλλοι προγραμματιστές βρίσκουν συχνά το R λίγο μπερδεμένο, λόγω της προσέγγισης που βασίζεται στα δεδομένα-πλαίσιο. Εάν έχετε μια αποκλειστική ομάδα προγραμματιστών R, τότε είναι λογικό να χρησιμοποιήσετε τις ενσωματώσεις με TensorFlow, Keras ή H2O για έρευνα, πρωτότυπο και πειραματισμό, αλλά διστάζω να προτείνω το R για χρήση στην παραγωγή ή για ανάπτυξη greenfield, λόγω επιδόσεις και λειτουργικές ανησυχίες. Ενώ μπορείτε να γράψετε έναν εκτελεστικό κώδικα R που μπορεί να αναπτυχθεί σε διακομιστές παραγωγής, θα είναι σχεδόν σίγουρα πιο εύκολο να πάρετε αυτό το πρωτότυπο R και να το κωδικοποιήσετε ξανά σε Java ή Python.

Άλλες επιλογές προγραμματισμού AI

Φυσικά, οι Python, C ++, Java, JavaScript, Swift και R δεν είναι οι μόνες διαθέσιμες γλώσσες για προγραμματισμό AI. Ακολουθούν δύο ακόμη γλώσσες προγραμματισμού που μπορεί να βρείτε ενδιαφέρουσες ή χρήσιμες, αν και δεν θα τις θεωρούσα κορυφαίες προτεραιότητες για μάθηση.

Λούα

Πριν από λίγα χρόνια, η Lua ανέβηκε ψηλά στον κόσμο της τεχνητής νοημοσύνης λόγω του πλαισίου Torch, μιας από τις πιο δημοφιλείς βιβλιοθήκες μηχανικής μάθησης τόσο για τις ανάγκες έρευνας όσο και για την παραγωγή. Αν συνεχίσετε να μαθαίνετε την ιστορία των μοντέλων βαθιάς μάθησης, συχνά θα βρείτε άφθονες αναφορές στο Torch και στον πηγαίο κώδικα Lua σε παλιά αποθετήρια του GitHub.

Για το σκοπό αυτό, μπορεί να είναι χρήσιμο να έχετε γνώση του API Torch, το οποίο δεν είναι πολύ μακριά από το βασικό API της PyTorch. Ωστόσο, εάν, όπως και οι περισσότεροι από εμάς, πραγματικά δεν χρειάζεται να κάνετε πολλή ιστορική έρευνα για τις αιτήσεις σας, μπορείτε πιθανώς να το πετύχετε χωρίς να χρειαστεί να τυλίξετε το κεφάλι μας γύρω από τις μικρές ιδιορρυθμίες της Lua.

Τζούλια

Η Julia είναι μια γλώσσα προγραμματισμού υψηλής απόδοσης που επικεντρώνεται στον αριθμητικό υπολογισμό, γεγονός που την καθιστά κατάλληλη για τον κόσμο των μαθηματικών. Αν και δεν είναι τόσο δημοφιλές ως επιλογή γλώσσας αυτή τη στιγμή, περιτυλίγματα όπως το TensorFlow.jl και το Mocha (επηρεασμένο σε μεγάλο βαθμό από το Caffe) παρέχουν καλή υποστήριξη βαθιάς μάθησης. Εάν δεν σας πειράζει το σχετικά μικρό οικοσύστημα και θέλετε να επωφεληθείτε από την εστίαση της Julia στο να κάνετε τους υπολογισμούς υψηλής απόδοσης εύκολους και γρήγορους, τότε η Julia ίσως αξίζει μια ματιά.

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