Vai esat kādreiz vēlējies izveidot ātrākas un efektīvākas lietotnes, taču atklājāt, ka standarta programmēšanas valodas nespēj apmierināt jūsu prasības?
Šajā laikā tiek izmantota Mojo valoda.
Mojo ir jauna programmēšanas valoda, ko izstrādājusi Modulāra, uzņēmums, kas specializējas AI infrastruktūrā.
Tas ir īpaši izstrādāts, lai izstrādātāji varētu izveidot ātrākas un izturīgākas lietotnes vairākiem lietošanas gadījumiem, tostarp AI izstrādei. Šajā rakstā mēs apskatīsim, ko Mojo ir, kā tas darbojas un kāpēc jums to vajadzētu izmantot savā nākamajā projektā.
Mojo izcelsme
Mojo veidotāji atzina nepieciešamību pēc programmēšanas valodas, kas apvienotu Python lietojamību ar C ātrumu un efektivitāti.
Un viņi izveidoja valodu, kas ļautu izstrādātājiem izveidot augstas veiktspējas lietotnes, neapgūstot standarta aparatūras apraksta valodas.
Rezultātā viņi izveidoja Mojo, kas ir pilnībā saderīgs ar Python ekosistēmu, vienlaikus nodrošinot C līmeņa ātrumu.
Moduļu sistēma: organizācija aiz Mojo valodas
Tātad, kas ir šīs futūristiskās valodas veidotāji?
Modular ir pasaulē vadošais AI infrastruktūras starta uzņēmums, ko izveidoja Kriss Latners un Tims Deiviss, kuri satikās Google un saprata, ka pārāk sarežģīta un sadrumstalota infrastruktūra ierobežo AI globālo ietekmi.
Modular mērķis un uzdevums ir pārdomāt AI infrastruktūru, lai uzlabotu cilvēci. Viņu kultūra un principi piešķir priekšrocību klientiem, augstas kvalitātes ražošanas programmatūrai un jēgpilnu rezultātu nodrošināšanai
Mojo mērķi
Mojo tika izstrādāts, lai nodrošinātu unikālu programmēšanas modeli mašīnmācīšanās paātrinātājiem.
Modular noteica, ka Mojo vajadzētu atļaut vispārējas nozīmes programmēšanu, jo mūsdienu CPU ir tenzori un citi AI paātrinātāji. Turklāt, tā kā Python tiek plaši izmantots mašīnmācībā un citās jomās, Modular izvēlējās pievienoties Python ekosistēmai.
Python izmantošana vēl vairāk atviegloja valodas dizainu. Tā kā lielākā daļa sintakses jau bija noteikta, korporācija varēja koncentrēties uz kompilācijas mehānisma izveidi un specializētu programmēšanas iespēju nodrošināšanu.
Svarīgas funkcijas, kas jāņem vērā
programmējamība
Progresīvie veidi
Mojo valodas progresīvo tipu funkcija ļauj izstrādātājiem izmantot tipa anotācijas palielināt efektivitāti un kļūdu pārbaudes.
Izstrādātāji var izstrādāt efektīvāku kodu, kas kompilēšanas laikā atklāj kļūdas, novēršot kļūdas un uzlabojot efektivitāti, sniedzot rūpīgāku veida informāciju.
Nulles izmaksu abstrakcijas
Izstrādātāji var kontrolēt krātuvi, iekļaujot datus struktūrās, pateicoties Mojo valodas nodrošinātajām abstrakcijām bez maksas.
Atceļot prasību pēc papildu atmiņas piešķiršanas, šī funkcija uzlabo koda efektivitāti un samazina standarta koda daudzumu.
Integrēta valodu automātiskā regulēšana
Valodā integrētā automātiskās regulēšanas funkcionalitāte programmā Mojo Language ļauj izstrādātājiem automātiski noteikt parametru ideālās vērtības, lai gūtu labumu no mērķa aparatūras.
Izmantojot šo funkcionalitāti, ir vienkāršāk optimizēt kodu, to manuāli nepielāgojot katrai aparatūras kombinācijai.
Mojo valoda ir elastīgs un efektīvs MI izstrādes rīks, jo tas nodrošina arī visas MLIR (Multi-Level Intermediate Representation) iespējas, paralēlu neviendabīgu izpildlaiku un ātrus izveides laikus.
Paralelizācija
Mojo izmanto MLIR, kas programmētājiem ļauj izmantot vektorus, pavedienus un aparatūras vienības mākslīgajam intelektam paralēlizācijai. Mojo atbalsta paralēlu apstrādi vairākos kodolos, nevis Python viena pavediena izpildei.
Ar 35,000 XNUMX reižu lielāku ātrumu nekā Python, Mojo ātruma ziņā pārspēj citas valodas.
Savietojamība
Sadarbspēja ar visu Python ekosistēmu ir viena no Mojo unikālajām priekšrocībām. Tas nozīmē, ka varat apvienot Mojo ar jebkurām patvaļīgām bibliotēkām, piemēram, Numpy un Matplotlib, kā arī ar savu pielāgoto kodu.
Piemēram, varat vizualizēt datus savā Mojo kodā, izmantojot Python bibliotēku Matplotlib.
Izvēršamība
Mojo ir arī diezgan elastīgs, ļaujot lietotājiem vienkārši pievienot modeļiem pirms- un pēcapstrādes darbības vai apmainīt esošās darbības pret jaunām.
Lai uzlabotu savus modeļus un Modular steku, izstrādātāji var izmantot kodola saplūšanu, grafiku pārrakstīšanu, formas funkcijas un citas metodes.
Kāpēc jūs to izvēlētos, nevis Python?
Python ir populāra AI izstrādes valoda tās elastības un augstas veiktspējas apkopoto bibliotēku dēļ. Tomēr tas ir ievērojami lēnāks nekā tādās valodās kā C++.
Tāpēc programmētāji iemācās izmantot Python iesaiņotājus ātrākām valodām, lai izvairītos no Python izmantošanas veiktspējai kritiskās jomās.
Tas noved pie divu valodu problēmas, kurā modeļi ir jāpārveido no Python uz ātrāku ieviešanu, piemēram, ONNX vai torch skriptu, kas neatbalsta visas Python iespējas. Python ir arī veiktspējas problēmas un labas paralēlās apstrādes trūkums.
Pat pieredzējušiem programmētājiem ir grūti pētīt, atkļūdot un risināt veiktspējas problēmas divu valodu dilemmas dēļ.
Ir arī pamata ierobežojumi tam, ko Python var darīt valodas struktūras dēļ. Lai gan algoritmu ieviešana reālajā pasaulē, izmantojot pamata komponentus, var šķist vienkārša, tā ir ievērojami sarežģītāka un prasa ātrāku valodu.
Kā sākt darbu?
Lai sāktu darbu, varat tūlīt sākt lietot Mojo valodu viņu rotaļu laukumā. Uz JupyterHub balstītais rotaļu laukums sniedz nodarbības un iespēju izveidot savu Mojo kodu, lai gan Mojo joprojām tiek izstrādāts.
Jūs varat reģistrēties piekļuvei viņu vietnē, lai piekļūtu rotaļu laukumam.
Lai sasniegtu savus darbības mērķus, Mojo izmanto nākamās paaudzes kompilatoru tehnoloģijas ar integrētām kešatmiņas, daudzpavedienu un mākoņa izplatīšanas tehnoloģijām.
Tas pievieno papildu primitīvus sistēmu programmēšanai un laika gaitā tiecas kļūt par Python superkopu. Lai sāktu kodēšanu ar Mojo, izmantojiet Mojo kompilatoru, lai palaistu Mojo programmu no termināļa tādā pašā veidā, kā to dara Python.
Valoda pašlaik tiek izstrādāta, un tā ir paredzēta izstrādātājiem ar pieredzi sistēmu programmēšanā.
Satīt
Mojo tiek uzskatīts par Python superkopu. Un tam ir potenciāls revolucionizēt programmēšanu, apvienojot Python vienkāršību ar C++ un Rust veiktspēju.
Tas var izmantot visas priekšrocības Python bibliotēka ekosistēmu, ļaujot izstrādātājiem izveidot augstas veiktspējas bibliotēkas, neizmantojot C, C++, Rust vai CUDA.
Tas ļauj izveidot portatīvo kodu, pateicoties tā automātiskās noregulēšanas un kompilēšanas laika metaprogrammēšanas funkcijām.
Lai gan tas joprojām ir nepabeigts darbs, tam ir potenciāls kļūt par milzīgu programmēšanas rīku un pārveidot programmēšanas nozari. Tāpēc mums vajadzētu sekot līdzi Modular turpmākajām norisēm!
Kriss Santoss
Vai jūs domājat, ka cilvēks ar pamatzināšanām līdz vidējām zināšanām varētu uzsākt studijas šajā jaunajā valodā? Vai arī jūs ieteiktu vispirms apgūt pamata valodu, piemēram, Javascript vai Python?
Ilke Candan Bengi
Sveiki, Kriss, atvainojos par novēloto atbildi! Es uzskatu, ka pirms darba sākšanas ar Mojo varētu noderēt pamatzināšanas/pieredze par Python.