Mojo Language pentru dezvoltatori AI

Lumea tehnologiei este mereu în mișcare. Cel mai nou copil din bloc este limbajul de programare Mojo. Este nevoie de manta pentru a îmbunătăți vitezele de execuție pentru proiectele bazate pe Python, oferind dezvoltatorilor viteze similare cu C.

Python este unul dintre limbajele de programare de top. Este un limbaj de programare versatil, ușor de învățat, care oferă noilor cursanți o poartă către programare/informatică.

În plus, este un limbaj de programare excelent pentru mâinile dezvoltatorilor competenți care îl pot folosi pentru a crea aplicații complexe. Cu toate acestea, unul dintre cele mai semnificative dezavantaje ale Python este viteza de execuție. Și aici intervine Mojo.

Acest articol acoperă Mojo și modul în care acesta se leagă de ecosistemul Python. Să începem.

Ce este Mojo?

Mojo este un limbaj de programare modern de nivel înalt. Oferă un design intuitiv pentru a ajuta dezvoltatorii să creeze aplicații rapid. În plus, își propune să reducă decalajul dintre producție și cercetare, permițând utilizatorilor să utilizeze caracteristicile de metaprogramare și programarea sistemelor cu sintaxa și ecosistemul Python.

Se împrumută foarte mult de la Rust și oferă viteze rapide de execuție ecosistemului Python. Din punct de vedere tehnic, Mojo este un superset de Python, care vă oferă acces.

Echipa din spatele lui Mojo este de la Modular, o companie de infrastructură AI. Și asta înseamnă, de asemenea, că este un limbaj de programare pentru dezvoltatorii AI. Pe lângă limbajul de programare Mojo, au introdus și Interference Engine, care le permite dezvoltatorilor să-și îmbunătățească fluxul de lucru, să scaleze produsele AI și să reducă latența de inferență (mai multe despre asta mai târziu).

  Cele mai bune 10 instrumente de activare a vânzărilor pentru o mai bună eficiență [2023]

Potrivit CEO-ului Modular, Chris Lattner, Mojo este de 35.000 de ori mai rapid decât Python. El este, de asemenea, în spatele dezvoltării rapide a limbajului de programare. Câștigurile de viteză sunt obținute datorită modului în care Mojo utilizează lanțul de instrumente al compilatorului LLVM și infrastructura compilatorului MILR (Multi-level Intermediate Representation Overview).

Obiectivele limbajelor de programare Mojo includ:

  • Lucrați cu compatibilitate completă cu ecosistemul Python.
  • Permiteți dezvoltatorilor să implementeze subseturi de cod în acceleratoare.
  • Control la nivel scăzut pentru a asigura performanțe previzibile.
  • Asigurați-vă că nu se fragmentează ecosistemul.

Pentru a încerca Mojo, va trebui să îl utilizați prin mediul lor găzduit bazat pe cloud, Mojo Playground. Vă va cere să vă conectați și puteți obține un mediu de lucru!

De ce avem nevoie de Mojo?

Ideea de bază din spatele Mojo este de a unifica infrastructura ML/AI prin furnizarea unui limbaj de programare care funcționează în întreaga stivă. În plus, asigură ușurința în utilizare prin eliminarea necesității de a scrie cod MLIR.

Potrivit Modular, Mojo va oferi un model de programare scalabil și inovator. Procedând astfel, utilizatorilor domeniului AI le va fi ușor să lucreze cu acceleratoare și sisteme eterogene.

Din punct de vedere tehnic, face din Mojo un limbaj de programare care acceptă metaprogramarea în timp de compilare. De asemenea, acceptă alte caracteristici, cum ar fi memorarea în cache în timpul fluxului de compilare, tehnici de compilare adaptive etc. Aceste caracteristici nu sunt prezente în alte limbaje de programare.

Dacă doriți să citiți mai multe despre filosofia lui Mojo, consultați Modular Docs – De ce Mojo🔥

Caracteristicile limbajului de programare Mojo

În această secțiune, vom analiza caracteristicile cheie ale limbajului de programare Mojo.

#1. Compatibilitate completă cu Python

Mojo își propune să lucreze cu ecosistemul lui Python și nu împotriva lui. Acest lucru este evident din faptul că Mojo utilizează aceleași funcții, biblioteci și caracteristici pe care le oferă Python. Deci, puteți utiliza orice bibliotecă Python dorită în Mojo.

  Peste 40 de întrebări și răspunsuri la interviu Ruby on Rails frecvente [2023]

Pentru a importa, va trebui să utilizați următorul cod:

from PythonInterface import Python

Odată terminat, puteți utiliza Python.import_module() pentru a importa orice bibliotecă Python.

De exemplu, pentru a importa numpy, va trebui să utilizați următoarea linie de cod.

let np = Python.import_module(“numpy”)

În Python, va trebui să faceți „import numpy ca np”

Pe măsură ce este importat, îl puteți folosi acum pentru a crea matrice, a face calcule etc.

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

print(array)

În mod similar, puteți importa matplotlib.pyplot sau puteți crea un complot în Mojo.

Așa arată când rulez codul în Mojo Playground.

Dacă doriți să încercați codul, copiați-l lipiți de mai jos.

from PythonInterface import Python

let np = Python.import_module("numpy")

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

print(array)

#2. MILR

MILR înseamnă reprezentare intermediară pe mai multe niveluri. Mojo acceptă MILR. Acest lucru, în schimb, le permite dezvoltatorilor să scoată o gamă completă de noi funcții avansate. Aceste caracteristici includ unități hardware AI, fire și vectori.

MILR îmbunătățește performanța datorită concurenței, făcând Mojo mai rapid decât Python. În plus, permite dezvoltatorilor să profite de mai multe nuclee.

#3. Proprietatea și verificarea împrumutaților

Gestionarea memoriei Python este sigură. Folosește un colector de gunoi, așa că programatorii trebuie să se asigure că codul nu va intra în condiții de cursă.

Mojo, similar cu Rust, implementează un model strict de verificare a proprietății și a împrumutaților. În prezent, este parțial implementat. Ideea din spatele utilizării modelului este de a îmbunătăți concurența și de a oferi un management excelent al memoriei.

Modelul de proprietate asigură, de asemenea, o abordare sigură pentru fire, care este ideală pentru a oferi suport excelent pentru concurență. În acest fel, programele nu intră în condiții de cursă. De asemenea, verificatorul împrumutatului se asigură că variabilele sunt întotdeauna verificate în timpul rulării.

#4. Costul Zero al Abstracției

Mojo oferă abstracții cu costuri zero, permițând dezvoltatorilor să preia controlul complet asupra stocării. Aici, programatorii pot face valori de alocare inline către structuri.

  11 instrumente AI Face Swap pentru rezultate perfecte și profesionale

#5. Autoreglare

Mojo oferă și reglaj automat. Acest lucru asigură alocarea automată a celor mai bune valori pentru parametri, în funcție de hardware-ul țintă.

Reglajul automat elimină necesitatea de a optimiza manual codul în funcție de hardware-ul țintă.

Viteză: Cât de rapid este limbajul Mojo?

Python este un limbaj de programare de nivel înalt care vizează ușurința în utilizare și mentenabilitatea. Din păcate, acest lucru îl face mai lent în comparație cu alte soluții sau limbaje de programare.

În testul lui Modular, ei au descoperit că Mojo este de 35000x. Au folosit algoritmul Mandelbrot și l-au rulat pe o instanță AWS cu un procesor Intel Xeon care îl alimentează. Au testat PYPY, SCALAR C++ și MOJO, împreună cu Python. Rezultatele au fost super rapide, iar rezultatele le puteți vedea mai jos.

Sursa: modular.com

Pentru a citi mai multe despre viteza Mojo, consultați această postare pe comunitatea Julialang.

Modular Inference Engine – Rulați modele AI ieftin

Modular dezvoltă, de asemenea, un motor de interferență modular care face mai ieftină rularea modelelor AI în producție. Mojo acceptă Modular Interfence Engine în mod implicit. Acesta permite echipelor să își simplifice fluxul de lucru. De asemenea, permite dezvoltatorilor să reducă latența de inferență, facilitând scalarea produselor AI.

De asemenea, dezvoltatorii nu trebuie să-și schimbe modelul pentru a utiliza Motorul. Odată încărcat, poate supraîncărca modelele PyTorch și TensorFlow, capabile să ruleze o performanță ridicată cu suport hardware larg.

Îl va înlocui pe Python?

Mojo este nou. Pare promițător. Deci, va dura timp pentru a ajunge la publicul țintă, cum ar fi oamenii de știință de date sau limbaje de programare. Și, da, rezolvă probleme speciale pentru pasionații și studenții de AI. Cu toate acestea, există o mulțime de soluții similare care îmbunătățesc viteza limbajului Python. De exemplu, veți găsi Jax, Codon și Julia – un limbaj orientat spre știința datelor.

Deci, se pot întâmpla două lucruri. În primul rând, crește exponențial în ceea ce privește caracteristicile, iar comunitatea îl adoptă. Un alt rezultat este că devine un limbaj de programare ad-hoc care utilizează biblioteci Python și Modular Interference Engine.

Deci, Mojo va înlocui Python? Numai timpul poate spune.

Apoi, consultați versiunile Python utile pentru a simplifica sarcinile comune.