Ydych chi erioed wedi dymuno adeiladu apiau cyflymach a mwy effeithlon eto wedi darganfod nad yw ieithoedd rhaglennu safonol yn gallu bodloni'ch gofynion?
Dyma pryd mae Mojo Language yn dod i rym.
Mae Mojo yn iaith raglennu newydd a ddatblygwyd gan Modiwlar, cwmni sy'n arbenigo mewn seilwaith AI.
Fe'i cynlluniwyd yn arbennig i alluogi datblygwyr i adeiladu apiau cyflymach a chadarnach ar gyfer sawl achos defnydd, gan gynnwys datblygu AI. Yn y swydd hon, byddwn yn edrych ar beth Mojo yw, sut mae'n gweithio, a pham y dylech ei ddefnyddio ar eich prosiect nesaf.
Gwreiddiau Mojo
Roedd crewyr Mojo yn cydnabod bod angen iaith raglennu a oedd yn cyfuno defnyddioldeb Python â chyflymder ac effeithlonrwydd C.
Ac fe wnaethant sefydlu iaith a fyddai'n caniatáu i ddatblygwyr adeiladu apiau perfformiad uchel heb orfod dysgu ieithoedd disgrifio caledwedd safonol.
O ganlyniad, fe wnaethant greu Mojo, sydd i fod i fod yn gwbl gydnaws ag ecosystem Python wrth ddarparu cyflymder lefel C.
Modiwlaidd: Y Sefydliad y tu ôl i Iaith Mojo
Felly, pwy yw crewyr yr iaith ddyfodolaidd hon?
Mae Modular yn fenter gychwynnol seilwaith AI sy'n arwain y byd a grëwyd gan Chris Lattner a Tim Davis, a gyfarfu yn Google a sylweddoli bod seilwaith rhy gymhleth a thameidiog yn cyfyngu ar ddylanwad byd-eang AI.
Nod ac amcan Modiwlaidd yw ailfeddwl am seilwaith AI i wella dynoliaeth. Mae eu diwylliant a'u hegwyddorion yn rhoi premiwm ar gleientiaid, meddalwedd cynhyrchu o ansawdd uchel, a chyflawni canlyniadau ystyrlon
Nodau Mojo
Cynlluniwyd Mojo i ddarparu model rhaglennu unigryw ar gyfer cyflymwyr dysgu peirianyddol.
Penderfynodd Modular y dylai Mojo ganiatáu rhaglennu pwrpas cyffredinol oherwydd bod gan CPUs heddiw denorau a chyflymwyr AI eraill. Ar ben hynny, oherwydd bod Python yn cael ei ddefnyddio'n helaeth mewn dysgu peiriannau a meysydd eraill, dewisodd Modular ymuno ag ecosystem Python.
Roedd y defnydd o Python yn hwyluso dyluniad yr iaith ymhellach. Oherwydd bod mwyafrif y gystrawen eisoes wedi'i phennu, gallai'r gorfforaeth ganolbwyntio yn lle hynny ar adeiladu'r mecanwaith llunio a darparu galluoedd rhaglennu arbenigol.
Nodweddion Pwysig i'w Hystyried
Rhaglenadwyedd
Mathau Blaengar
Mae nodwedd mathau blaengar Mojo Language yn galluogi datblygwyr i ddefnyddio anodiadau teipio i gwella effeithlonrwydd a gwiriadau gwall.
Gall datblygwyr ddylunio cod mwy effeithiol sy'n canfod camgymeriadau ar amser llunio, gan ddileu bygiau a gwella effeithlonrwydd, trwy gyflenwi gwybodaeth fwy trylwyr.
Tynnu Dim Cost
Gall datblygwyr gymryd rheolaeth dros storio trwy fewn-ddyrannu data i strwythurau diolch i'r tyniadau di-gost a ddarperir gan Iaith Mojo.
Trwy wneud i ffwrdd â'r gofyniad am ddyraniadau cof ychwanegol, mae'r nodwedd hon yn gwella effeithlonrwydd cod ac yn lleihau faint o god plât boeler.
Awto-Tiwnio Iaith Integredig
Mae'r swyddogaeth tiwnio awtomatig integredig yn iaith Mojo Language yn galluogi datblygwyr i bennu gwerthoedd delfrydol y paramedrau yn awtomatig i elwa o'r caledwedd targed.
Gyda'r swyddogaeth hon, mae'n symlach optimeiddio cod heb orfod ei addasu â llaw ar gyfer pob cyfuniad caledwedd.
Mae Mojo Language yn offeryn hyblyg ac effeithiol ar gyfer datblygu AI gan ei fod hefyd yn darparu pŵer cyfan MLIR (Cynrychiolaeth Ganolradd Aml-Lefel), amser rhedeg heterogenaidd cyfochrog, ac amseroedd adeiladu cyflym.
Cyfochrog
Mae Mojo yn defnyddio MLIR, sy'n caniatáu i raglenwyr ddefnyddio fectorau, edafedd, ac unedau caledwedd ar gyfer AI ar gyfer paraleleiddio. Mae Mojo yn cefnogi prosesu cyfochrog dros sawl craidd yn hytrach na gweithrediad un edau Python.
Gyda chyflymder o 35,000x dros Python, mae Mojo yn curo ieithoedd eraill o ran cyflymder.
rhyngweithredu
Mae rhyngweithredu ag ecosystem gyfan Python yn un o fanteision unigryw Mojo. Mae hyn yn awgrymu y gallwch gyfuno Mojo ag unrhyw lyfrgelloedd mympwyol, fel Numpy a Matplotlib, yn ogystal â'ch cod pwrpasol.
Er enghraifft, gallwch ddelweddu data yn eich cod Mojo gan ddefnyddio llyfrgell Python Matplotlib.
Estynoldeb
Mae Mojo hefyd yn eithaf hyblyg, gan ganiatáu i ddefnyddwyr ychwanegu camau cyn ac ar ôl prosesu at fodelau neu gyfnewid camau presennol am rai newydd.
Er mwyn gwella eu modelau a'r pentwr Modiwlaidd, gall datblygwyr ddefnyddio ymasiad cnewyllyn, ailysgrifennu graffiau, swyddogaethau siâp, a thechnegau eraill.
Pam Fyddech Chi'n Ei Ddewis Dros Python?
Mae Python yn iaith ddatblygu AI boblogaidd oherwydd ei hyblygrwydd a'i lyfrgelloedd a luniwyd yn uchel eu perfformiad. Fodd bynnag, mae'n sylweddol arafach nag ieithoedd fel C++.
Felly, mae rhaglenwyr yn dysgu defnyddio deunydd lapio Python o amgylch ieithoedd cyflymach er mwyn osgoi defnyddio Python ar gyfer meysydd sy'n hanfodol i berfformiad.
Mae hyn yn arwain at y mater dwy iaith, lle mae'n rhaid trawsnewid modelau o Python i weithrediad cyflymach, fel ONNX neu sgript torch, nad yw'n cefnogi holl alluoedd Python. Mae gan Python hefyd faterion perfformiad a diffyg prosesu cyfochrog da.
Mae hyd yn oed rhaglenwyr profiadol yn ei chael hi'n anodd astudio, dadfygio a mynd i'r afael â materion perfformiad oherwydd y cyfyng-gyngor dwy iaith.
Mae yna hefyd gyfyngiadau sylfaenol ar yr hyn y gall Python ei wneud oherwydd y ffordd y mae'r iaith wedi'i strwythuro. Er y gall gweithredu algorithmau sy'n defnyddio cydrannau sylfaenol yn y byd go iawn ymddangos yn hawdd, mae'n llawer anoddach ac yn golygu bod angen defnyddio iaith gyflymach.
Sut I Ddechrau Arni?
Gallwch chi ddechrau defnyddio Mojo Language ar hyn o bryd yn eu Maes Chwarae i ddechrau arni. Mae Maes Chwarae JupyterHub yn rhoi gwersi a chyfle i greu eich cod Mojo eich hun, er bod Mojo yn dal i fod yn waith ar y gweill.
Gallwch gofrestru i gael mynediad ar eu gwefan i gael mynediad i'r Cae Chwarae.
Er mwyn cyrraedd ei nodau perfformiad, mae Mojo yn cyflogi technolegau casglwr cenhedlaeth nesaf gyda thechnolegau caching integredig, aml-edau, a dosbarthu cwmwl.
Mae'n ychwanegu cyntefigau ychwanegol at raglennu systemau ac yn anelu at ddod yn uwchset Python dros amser. I ddechrau codio gyda Mojo, defnyddiwch y casglwr Mojo i redeg rhaglen Mojo o'r derfynell yn yr un ffordd ag y mae Python yn ei wneud.
Mae'r iaith yn cael ei datblygu ar hyn o bryd ac mae wedi'i hanelu at ddatblygwyr sydd â phrofiad mewn rhaglennu systemau.
Llwytho i fyny
Mae Mojo yn cael ei ystyried yn uwchset Python. Ac, mae ganddo'r potensial i chwyldroi rhaglennu trwy gyfuno symlrwydd Python â pherfformiad C ++ a Rust.
Gall fanteisio ar y llawn Llyfrgell Python ecosystem, gan ganiatáu i ddatblygwyr greu llyfrgelloedd perfformiad uchel heb fod angen C, C ++, Rust, neu CUDA.
Mae'n galluogi cynhyrchu cod cludadwy diolch i'w nodweddion awto-diwnio a meta-raglennu amser llunio.
Er ei fod yn dal i fod yn waith ar y gweill, mae ganddo'r potensial i ddod yn arf rhaglennu aruthrol a thrawsnewid y diwydiant rhaglennu. Felly, dylem aros yn ymwybodol o ddatblygiadau Modiwlaidd yn y dyfodol!
Chris Santos
Ydych chi'n meddwl y byddai person â gwybodaeth sylfaenol i ganolraddol yn gallu dechrau ei astudiaethau yn yr iaith newydd hon? Neu a ydych chi'n cynghori astudio iaith fwy sylfaenol yn gyntaf, fel Javascript neu Python?
İlke Candan Bengi
Helo Chris, sori am yr ymateb hwyr! Rwy'n credu y gallai cael dealltwriaeth / profiad sylfaenol o Python ymlaen llaw fod yn ddefnyddiol cyn dechrau gyda Mojo.