Je, umewahi kutaka kuunda programu za haraka na bora zaidi lakini ukagundua kuwa lugha za kawaida za upangaji haziwezi kukidhi mahitaji yako?
Huu ndio wakati Lugha ya Mojo inapoanza kutumika.
Mojo ni lugha mpya ya programu iliyotengenezwa na Byggelement, kampuni inayojishughulisha na miundombinu ya AI.
Imeundwa haswa kuwezesha wasanidi kuunda programu haraka na thabiti zaidi kwa visa kadhaa vya utumiaji, pamoja na ukuzaji wa AI. Katika chapisho hili, tutaangalia nini Mojo ni, jinsi inavyofanya kazi, na kwa nini unapaswa kuitumia kwenye mradi wako unaofuata.
Asili ya Mojo
Waundaji wa Mojo walitambua hitaji la lugha ya programu iliyochanganya utumiaji wa Python na kasi na ufanisi wa C.
Na, walianzisha lugha ambayo ingewaruhusu wasanidi programu kuunda programu zenye utendakazi wa hali ya juu bila kujifunza lugha za kawaida za maelezo ya maunzi.
Kama matokeo, waliunda Mojo, ambayo inakusudiwa kuendana kikamilifu na mfumo ikolojia wa Python huku ikitoa kasi ya kiwango cha C.
Msimu: Shirika Nyuma ya Lugha ya Mojo
Kwa hivyo, ni nani waundaji wa lugha hii ya siku zijazo?
Modular ni uanzishaji wa miundombinu ya AI inayoongoza duniani iliyoundwa na Chris Lattner na Tim Davis, ambao walikutana kwenye Google na kugundua kuwa miundombinu iliyo ngumu sana na iliyogawanyika ilikuwa inazuia ushawishi wa AI kimataifa.
Madhumuni na madhumuni ya Modular ni kufikiria upya miundombinu ya AI ili kuboresha ubinadamu. Utamaduni na kanuni zao huweka malipo kwa wateja, programu ya ubora wa juu, na kutoa matokeo yenye maana
Malengo ya Mojo
Mojo iliundwa ili kutoa muundo wa kipekee wa programu kwa vichapuzi vya kujifunza kwa mashine.
Msimu uliamua kuwa Mojo inapaswa kuruhusu upangaji wa madhumuni ya jumla kwa sababu CPU za leo zina tensor na viongeza kasi vingine vya AI. Kwa kuongezea, kwa sababu Python inatumika sana katika ujifunzaji wa mashine na nyanja zingine, Modular alichagua kujiunga na mfumo wa ikolojia wa Python.
Matumizi ya Chatu yalirahisisha zaidi muundo wa lugha. Kwa sababu sintaksia nyingi zilikuwa tayari zimeamuliwa, shirika lingeweza kujikita zaidi katika kujenga utaratibu wa utungaji na kutoa uwezo maalum wa utayarishaji.
Vipengele Muhimu vya Kuzingatia
Mpangilio
Aina za Maendeleo
Kipengele cha aina zinazoendelea cha Lugha ya Mojo huwawezesha wasanidi programu kutumia maelezo ya aina kuongeza ufanisi na ukaguzi wa makosa.
Wasanidi programu wanaweza kubuni msimbo unaofaa zaidi ambao hutambua makosa wakati wa kukusanya, kuondoa hitilafu na kuimarisha ufanisi, kwa kutoa maelezo ya kina zaidi ya aina.
Vipunguzo vya Gharama Sifuri
Wasanidi programu wanaweza kuchukua udhibiti wa hifadhi kwa kugawa data ndani ya mtandao katika miundo kutokana na vifupisho vya gharama sifuri vinavyotolewa na Lugha ya Mojo.
Kwa kuachana na hitaji la ugawaji wa kumbukumbu ya ziada, kipengele hiki huboresha ufanisi wa msimbo na kupunguza kiwango cha msimbo wa boilerplate.
Urekebishaji Kiotomatiki wa Lugha
Utendaji wa usanifu wa lugha-otomatiki katika Lugha ya Mojo huwezesha wasanidi programu kubainisha kiotomatiki thamani bora za vigezo ili kufaidika na maunzi lengwa.
Kwa utendakazi huu, ni rahisi zaidi kuboresha msimbo bila kulazimika kuirekebisha kwa kila mchanganyiko wa maunzi.
Lugha ya Mojo ni zana inayoweza kunyumbulika na madhubuti kwa ukuzaji wa AI kwa kuwa pia hutoa uwezo wote wa MLIR(Uwakilishi wa Kati wa Ngazi nyingi), wakati wa kukimbia usio tofauti, na nyakati za ujenzi wa haraka.
Ulinganishaji
Mojo hutumia MLIR, ambayo huruhusu watayarishaji programu kutumia vekta, nyuzi, na vitengo vya maunzi kwa AI ili kusawazisha. Mojo inasaidia usindikaji sambamba juu ya cores kadhaa kinyume na utekelezaji wa nyuzi moja wa Python.
Kwa kuongeza kasi ya 35,000x juu ya Python, Mojo hushinda lugha zingine katika suala la kasi.
Ushirikiano
Ushirikiano na mfumo mzima wa ikolojia wa Python ni mojawapo ya faida za kipekee za Mojo. Hii inamaanisha kuwa unaweza kuchanganya Mojo na maktaba zozote zisizo za kiholela, kama vile Numpy na Matplotlib, pamoja na nambari yako ya kuthibitisha.
Kwa mfano, unaweza kuibua data katika nambari yako ya Mojo kwa kutumia maktaba ya Python Matplotlib.
Uwezeshaji
Mojo pia inaweza kunyumbulika kabisa, ikiruhusu watumiaji kuongeza tu hatua za kabla na baada ya kuchakata kwa miundo au kubadilishana hatua zilizopo kwa mpya.
Ili kuboresha miundo yao na mrundikano wa Moduli, wasanidi programu wanaweza kutumia uunganishaji wa kernel, uandishi wa grafu, utendakazi wa umbo na mbinu zingine.
Kwa nini Ungeichagua Zaidi ya Python?
Python ni lugha maarufu ya ukuzaji wa AI kwa sababu ya kubadilika kwake na maktaba zilizokusanywa za utendaji wa juu. Walakini, ni polepole sana kuliko lugha kama vile C++.
Kwa hivyo, waandaaji wa programu hujifunza kutumia vifuniko vya Python karibu na lugha haraka ili kuzuia kutumia Python kwa maeneo muhimu ya utendaji.
Hii inasababisha suala la lugha mbili, ambalo mifano lazima ibadilishwe kutoka Python hadi utekelezaji wa haraka zaidi, kama vile ONNX au hati ya tochi, ambayo haiauni uwezo wote wa Python. Python pia ina maswala ya utendaji na ukosefu wa usindikaji mzuri sambamba.
Hata watayarishaji programu wenye uzoefu hupata ugumu kusoma, kutatua, na kushughulikia masuala ya utendakazi kwa sababu ya mtanziko wa lugha mbili.
Pia kuna vizuizi vya kimsingi kwa kile Python inaweza kufanya kwa sababu ya jinsi lugha imeundwa. Ingawa utekelezaji wa ulimwengu halisi wa algoriti zinazotumia vipengele vya msingi unaweza kuonekana kuwa rahisi, ni mgumu zaidi na unahitaji matumizi ya lugha ya haraka zaidi.
Jinsi ya kuanza?
Unaweza kuanza kutumia Lugha ya Mojo sasa hivi katika Uwanja wao wa Michezo ili kuanza. Uwanja wa michezo unaotegemea JupyterHub hukupa masomo na fursa ya kuunda msimbo wako mwenyewe wa Mojo, ingawa Mojo bado ni kazi inayoendelea.
Unaweza kujiandikisha kwa ufikiaji kwenye tovuti yao ili kufikia Uwanja wa Michezo.
Ili kufikia malengo yake ya utendakazi, Mojo hutumia teknolojia za mkusanyaji wa kizazi kijacho na teknolojia zilizounganishwa za kuweka akiba, usomaji mwingi na usambazaji wa wingu.
Inaongeza primitives ziada kwa programu ya mifumo na kutamani kuwa Python superset baada ya muda. Ili kuanza kuweka usimbaji na Mojo, tumia kikusanyaji cha Mojo ili kuendesha programu ya Mojo kutoka kwenye terminal kwa njia sawa na Python.
Lugha kwa sasa inaendelezwa na inalenga wasanidi walio na uzoefu katika utayarishaji wa mifumo.
Maliza
Mojo inachukuliwa kuwa superset ya Python. Na, ina uwezo wa kubadilisha upangaji programu kwa kuchanganya unyenyekevu wa Python na utendakazi wa C++ na Rust.
Inaweza kuchukua faida kamili Maktaba ya Python mfumo ikolojia, unaowaruhusu wasanidi programu kuunda maktaba zenye utendaji wa juu bila hitaji la C, C++, Rust, au CUDA.
Huwezesha utayarishaji wa msimbo unaobebeka kwa shukrani kwa utunzi wake wa kiotomatiki na vipengele vya utayarishaji wa meta-wakati.
Ingawa bado ni kazi inayoendelea, ina uwezo wa kuwa zana ya kutisha ya programu na kubadilisha tasnia ya programu. Kwa hivyo, tunapaswa kukaa tukiangalia maendeleo yajayo kutoka kwa Modular!
Chris Santos
Je, unafikiri kwamba mtu aliye na ujuzi wa msingi hadi wa kati ataweza kuanza masomo yake katika lugha hii mpya? Au unashauri kusoma lugha ya msingi zaidi kwanza, kama Javascript au Python?
İlke Candan Bengi
Habari Chris, samahani kwa kuchelewa kujibu! Ninaamini kuwa na uelewa wa kimsingi / uzoefu wa Python hapo awali kunaweza kusaidia kabla ya kuanza na Mojo.