Mojo Language for AI Developer

Ο κόσμος της τεχνολογίας κινείται πάντα. Το νεότερο παιδί στο μπλοκ είναι η γλώσσα προγραμματισμού Mojo. Χρειάζεται το μανδύα για τη βελτίωση των ταχυτήτων εκτέλεσης για έργα που βασίζονται σε Python, δίνοντας στους προγραμματιστές ταχύτητες παρόμοιες με το C.

Η Python είναι μια από τις κορυφαίες γλώσσες προγραμματισμού. Είναι μια ευέλικτη, εύκολη στην εκμάθηση γλώσσα προγραμματισμού που προσφέρει στους νέους μαθητές μια πύλη στον προγραμματισμό/επιστήμη υπολογιστών.

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

Αυτό το άρθρο καλύπτει το Mojo και πώς σχετίζεται με το οικοσύστημα Python. Ας αρχίσουμε.

Τι είναι το Mojo;

Η Mojo είναι μια σύγχρονη γλώσσα προγραμματισμού υψηλού επιπέδου. Προσφέρει μια διαισθητική σχεδίαση που βοηθά τους προγραμματιστές να δημιουργούν γρήγορα εφαρμογές. Επιπλέον, στοχεύει να γεφυρώσει το χάσμα μεταξύ παραγωγής και έρευνας, επιτρέποντας στους χρήστες να χρησιμοποιούν χαρακτηριστικά μεταπρογραμματισμού και προγραμματισμό συστημάτων με τη σύνταξη και το οικοσύστημα της Python.

Δανείζεται σε μεγάλο βαθμό από το Rust και παρέχει γρήγορες ταχύτητες εκτέλεσης στο οικοσύστημα Python. Τεχνικά, το Mojo είναι ένα υπερσύνολο της Python, το οποίο σας δίνει πρόσβαση.

Η ομάδα πίσω από το Mojo είναι από τη Modular, μια εταιρεία υποδομής AI. Και αυτό σημαίνει επίσης ότι είναι μια γλώσσα προγραμματισμού για προγραμματιστές AI. Παράλληλα με τη γλώσσα προγραμματισμού Mojo, εισήγαγαν επίσης το Interference Engine, το οποίο επιτρέπει στους προγραμματιστές να βελτιώσουν τη ροή εργασίας τους, να κλιμακώσουν τα προϊόντα τεχνητής νοημοσύνης και να μειώσουν τον λανθάνοντα χρόνο συμπερασμάτων (περισσότερα για αυτό αργότερα).

  Μοντέλο αρχιτεκτονικής πρωτοκόλλου TCP/IP – Πώς λειτουργεί;

Σύμφωνα με τον CEO της Modular, Chris Lattner, το Mojo είναι 35.000 φορές πιο γρήγορο από την Python. Είναι επίσης πίσω από την ταχεία ανάπτυξη γλώσσας προγραμματισμού. Τα κέρδη ταχύτητας επιτυγχάνονται λόγω του τρόπου με τον οποίο το Mojo χρησιμοποιεί την αλυσίδα εργαλείων μεταγλωττιστή LLVM και την υποδομή μεταγλωττιστή MILR (Επισκόπηση ενδιάμεσης αναπαράστασης πολλαπλών επιπέδων).

Οι στόχοι των γλωσσών προγραμματισμού Mojo περιλαμβάνουν:

  • Εργαστείτε με πλήρη συμβατότητα με το οικοσύστημα Python.
  • Επιτρέψτε στους προγραμματιστές να αναπτύξουν υποσύνολα κώδικα σε επιταχυντές.
  • Έλεγχος χαμηλού επιπέδου για τη διασφάλιση προβλέψιμων επιδόσεων.
  • Διασφάλιση μη κατακερματισμού του οικοσυστήματος.

Για να δοκιμάσετε το Mojo, θα χρειαστεί να το χρησιμοποιήσετε μέσω του φιλοξενούμενου περιβάλλοντος που βασίζεται σε σύννεφο, του Mojo Playground. Θα σας ζητήσει να συνδεθείτε και μπορείτε να αποκτήσετε ένα περιβάλλον εργασίας!

Γιατί χρειαζόμαστε το Mojo;

Η βασική ιδέα πίσω από το Mojo είναι η ενοποίηση της υποδομής ML/AI παρέχοντας μια γλώσσα προγραμματισμού που λειτουργεί σε όλη τη στοίβα. Επιπλέον, εξασφαλίζει ευκολία στη χρήση αφαιρώντας την ανάγκη εγγραφής κώδικα MLIR.

Σύμφωνα με το Modular, το Mojo θα προσφέρει ένα επεκτάσιμο και καινοτόμο μοντέλο προγραμματισμού. Με αυτόν τον τρόπο, οι χρήστες πεδίου AI θα είναι εύκολο να εργαστούν με επιταχυντές και ετερογενή συστήματα.

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

Αν θέλετε να διαβάσετε περισσότερα για τη φιλοσοφία του Mojo, ρίξτε μια ματιά στο Modular Docs – Why Mojo🔥

Χαρακτηριστικά της γλώσσας προγραμματισμού Mojo

Σε αυτήν την ενότητα, θα εξετάσουμε βασικά χαρακτηριστικά της γλώσσας προγραμματισμού Mojo.

#1. Πλήρης συμβατότητα με Python

Το Mojo στοχεύει να συνεργαστεί με το οικοσύστημα της Python και όχι εναντίον του. Αυτό είναι εμφανές από το γεγονός ότι το Mojo χρησιμοποιεί τις ίδιες λειτουργίες, βιβλιοθήκες και δυνατότητες που προσφέρει η Python. Έτσι, μπορείτε να χρησιμοποιήσετε οποιαδήποτε βιβλιοθήκη Python θέλετε μέσα στο Mojo.

Για να εισαγάγετε, θα χρειαστεί να χρησιμοποιήσετε τον ακόλουθο κώδικα:

from PythonInterface import Python

Μόλις τελειώσετε, μπορείτε να χρησιμοποιήσετε την Python.import_module() για να εισαγάγετε οποιαδήποτε βιβλιοθήκη Python.

  Εξοικονομήστε χρόνο και χρήματα με ψηφιακές υπογραφές

Για παράδειγμα, για να εισαγάγετε numpy, θα χρειαστεί να χρησιμοποιήσετε την ακόλουθη γραμμή κώδικα.

let np = Python.import_module(“numpy”)

Στην Python, θα πρέπει να κάνετε “εισαγωγή numpy ως np”

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

array = np.array([1, 2, 3])

print(array)

Ομοίως, μπορείτε να εισαγάγετε matplotlib.pyplot ή να δημιουργήσετε μια γραφική παράσταση στο Mojo.

Έτσι φαίνεται όταν εκτελώ τον κώδικα στο Mojo Playground.

Εάν θέλετε να δοκιμάσετε τον κώδικα, κάντε αντιγραφή-επικόλληση από κάτω.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

#2. MILR

Το MILR σημαίνει Πολυεπίπεδη Ενδιάμεση Αναπαράσταση. Το Mojo υποστηρίζει MILR. Αυτό, σε αντάλλαγμα, δίνει τη δυνατότητα στους προγραμματιστές να απογειώσουν μια πλήρη σειρά νέων προηγμένων λειτουργιών. Αυτά τα χαρακτηριστικά περιλαμβάνουν μονάδες υλικού AI, νήματα και διανύσματα.

Το MILR βελτιώνει την απόδοση λόγω συγχρονισμού, καθιστώντας το Mojo ταχύτερο από την Python. Επιπλέον, επιτρέπει στους προγραμματιστές να επωφεληθούν από πολλούς πυρήνες.

#3. Έλεγχος ιδιοκτησίας και δανειοληπτών

Η διαχείριση μνήμης της Python είναι ασφαλής. Χρησιμοποιεί έναν συλλέκτη σκουπιδιών, επομένως οι προγραμματιστές πρέπει να διασφαλίσουν ότι ο κώδικας δεν θα εκτελεστεί σε συνθήκες αγώνα.

Το Mojo, παρόμοιο με το Rust, εφαρμόζει ένα αυστηρό μοντέλο ελέγχου ιδιοκτησίας και δανειοληπτών. Επί του παρόντος, εφαρμόζεται εν μέρει. Η ιδέα πίσω από τη χρήση του μοντέλου είναι να βελτιωθεί ο συγχρονισμός και να παρέχεται εξαιρετική διαχείριση μνήμης.

Το μοντέλο ιδιοκτησίας διασφαλίζει επίσης μια προσέγγιση ασφαλή για το νήμα, η οποία είναι ιδανική για την παροχή εξαιρετικής ταυτόχρονης υποστήριξης. Με αυτόν τον τρόπο, τα προγράμματα δεν έρχονται σε συνθήκες αγώνα. Επίσης, ο έλεγχος δανειοληπτών διασφαλίζει ότι οι μεταβλητές ελέγχονται πάντα κατά τη διάρκεια του χρόνου εκτέλεσης.

#4. Μηδενικό Κόστος Αφαίρεσης

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

  Πώς να τραβήξετε φωτογραφίες σε λειτουργία ριπής στο iPhone σας

#5. Αυτόματος συντονισμός

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

Ο αυτόματος συντονισμός καταργεί την ανάγκη μη αυτόματης βελτιστοποίησης του κώδικά σας σύμφωνα με το υλικό-στόχο.

Ταχύτητα: Πόσο γρήγορη είναι η γλώσσα Mojo;

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

Στη δοκιμή του Modular, βρήκαν το Mojo να είναι 35000x. Χρησιμοποίησαν τον αλγόριθμο Mandelbrot και τον έτρεξαν σε μια παρουσία AWS με έναν επεξεργαστή Intel Xeon που τον τροφοδοτούσε. Δοκίμασαν τα PYPY, SCALAR C++ και MOJO, μαζί με την Python. Τα αποτελέσματα ήταν εξαιρετικά γρήγορα και μπορείτε να δείτε τα αποτελέσματα παρακάτω.

Πηγή: modular.com

Για να διαβάσετε περισσότερα σχετικά με την ταχύτητα Mojo, ρίξτε μια ματιά σε αυτήν την ανάρτηση στην κοινότητα Julialang.

Modular Inference Engine – Εκτελέστε φθηνά μοντέλα AI

Η Modular αναπτύσσει επίσης ένα Modular Interference Engine που καθιστά φθηνότερη την εκτέλεση μοντέλων AI στην παραγωγή. Το Mojo υποστηρίζει από προεπιλογή Modular Interfence Engine. Επιτρέπει στις ομάδες να απλοποιήσουν τη ροή εργασίας τους. Επιτρέπει επίσης στους προγραμματιστές να μειώσουν τον λανθάνοντα χρόνο συμπερασμάτων, καθιστώντας εύκολη την κλιμάκωση προϊόντων τεχνητής νοημοσύνης.

Επίσης, οι προγραμματιστές δεν χρειάζεται να αλλάξουν το μοντέλο τους για να χρησιμοποιήσουν το Engine. Μόλις φορτωθεί, μπορεί να υπερφορτίσει τα μοντέλα PyTorch και TensorFlow, ικανά να εκτελέσουν υψηλή απόδοση με ευρεία υποστήριξη υλικού.

Θα αντικαταστήσει την Python;

Το Mojo είναι καινούργιο. Φαίνεται πολλά υποσχόμενο. Έτσι, θα χρειαστεί χρόνος για να προσεγγίσει το κοινό-στόχο του, όπως επιστήμονες δεδομένων ή γλώσσες προγραμματισμού. Και, ναι, λύνει συγκεκριμένα προβλήματα για τους λάτρεις της τεχνητής νοημοσύνης και τους μαθητές. Ωστόσο, υπάρχουν πολλές παρόμοιες λύσεις που βελτιώνουν την ταχύτητα της γλώσσας Python. Για παράδειγμα, θα βρείτε τα Jax, Codon και Julia — μια γλώσσα προσανατολισμένη στην επιστήμη των δεδομένων.

Άρα, δύο πράγματα μπορούν να συμβούν. Πρώτον, αυξάνεται εκθετικά όσον αφορά τα χαρακτηριστικά και η κοινότητα το υιοθετεί. Ένα άλλο αποτέλεσμα είναι ότι γίνεται μια ad-hoc γλώσσα προγραμματισμού που χρησιμοποιεί βιβλιοθήκες Python και το Modular Interference Engine.

Λοιπόν, θα αντικαταστήσει το Mojo την Python; Μόνο ο χρόνος μπορεί να πει.

Στη συνέχεια, ελέγξτε τα χρήσιμα Python one-liners για να απλοποιήσετε κοινές εργασίες.