Сіз тезірек және тиімдірек қолданбаларды жасағыңыз келді ме, әлі стандартты бағдарламалау тілдері сіздің талаптарыңызды қанағаттандыра алмайтынын байқадыңыз ба?
Бұл кезде Mojo тілі іске қосылады.
Mojo - бұл жаңа бағдарламалау тілі Модульдік, AI инфрақұрылымына маманданған компания.
Ол әзірлеушілерге бірнеше пайдалану жағдайлары, соның ішінде AI әзірлеуі үшін жылдам және сенімдірек қолданбаларды құруға мүмкіндік беру үшін әзірленген. Бұл постта біз нені қарастырамыз Mojo қалай жұмыс істейді және оны келесі жобада не үшін пайдалану керек.
Моджоның шығу тегі
Mojo-ны жасаушылар Python-ның қолайлылығын Си тілінің жылдамдығы мен тиімділігін біріктіретін бағдарламалау тіліне деген қажеттілікті мойындады.
Және олар әзірлеушілерге стандартты аппараттық сипаттама тілдерін үйренбей-ақ жоғары өнімді қолданбаларды құруға мүмкіндік беретін тілді құрды.
Нәтижесінде олар C деңгейіндегі жылдамдықты қамтамасыз ете отырып, Python экожүйесімен толық үйлесімді болатын Mojo құрды.
Модульдік: Моджо тілінің артындағы ұйым
Сонымен, бұл футуристік тілді жасаушылар кімдер?
Модульдік – Google-да кездескен және тым күрделі және бөлшектенген инфрақұрылым AI-ның жаһандық әсерін шектейтінін түсінген Крис Латтнер мен Тим Дэвис жасаған әлемдегі жетекші AI инфрақұрылымы стартапы.
Модульдік бағдарламаның мақсаты мен міндеті адамзатты жақсарту үшін AI инфрақұрылымын қайта қарау болып табылады. Олардың мәдениеті мен принциптері клиенттерге, жоғары сапалы өндірістік бағдарламалық қамтамасыз етуге және маңызды нәтижелерге қол жеткізуге артықшылық береді.
Моджоның мақсаттары
Mojo машиналық оқыту үдеткіштері үшін бірегей бағдарламалау үлгісін қамтамасыз ету үшін жасалған.
Модульдік Mojo жалпы мақсаттағы бағдарламалауға рұқсат беруі керек екенін анықтады, өйткені қазіргі процессорларда тензорлар және басқа AI үдеткіштері бар. Сонымен қатар, Python машиналық оқытуда және басқа салаларда кеңінен қолданылатындықтан, Modular Python экожүйесіне қосылуды таңдады.
Python тілін қолдану тілдің дизайнын одан әрі жеңілдетті. Синтаксистің көпшілігі анықталғандықтан, корпорация оның орнына компиляция механизмін құруға және арнайы бағдарламалау мүмкіндіктерін қамтамасыз етуге шоғырлануы мүмкін.
Қарастырылатын маңызды мүмкіндіктер
Бағдарламаланатын
Прогрессивті түрлері
Mojo тілінің прогрессивті түрлер мүмкіндігі әзірлеушілерге типтік аннотацияларды пайдалануға мүмкіндік береді тиімділігін арттыру және қателерді тексеру.
Әзірлеушілер компиляция уақытында қателерді анықтайтын, қателерді жойып, тиімдірек түрі туралы ақпаратты ұсыну арқылы тиімдірек кодты құрастыра алады.
Нөлдік шығын абстракциялары
Әзірлеушілер Mojo тілі ұсынатын нөлдік шығынсыз абстракциялардың арқасында құрылымдарға деректерді кірістірілген бөлу арқылы сақтауды бақылауға алады.
Қосымша жадты бөлу талаптарын жою арқылы бұл мүмкіндік код тиімділігін жақсартады және стандартты кодтың мөлшерін азайтады.
Біріктірілген тілді автоматты баптау
Mojo тіліндегі тілмен біріктірілген автоматты реттеу функциясы әзірлеушілерге мақсатты жабдықтан пайда алу үшін параметрлердің тамаша мәндерін автоматты түрде анықтауға мүмкіндік береді.
Бұл функцияның көмегімен әрбір аппараттық құрал комбинациясы үшін оны қолмен реттемей-ақ кодты оңтайландыру оңайырақ.
Mojo тілі – AI әзірлеуге арналған икемді және тиімді құрал, өйткені ол сонымен қатар MLIR (Көп деңгейлі аралық өкілдік) қуатын, параллельді біркелкі емес жұмыс уақытын және жылдам құрастыру уақытын қамтамасыз етеді.
Параллельдеу
Mojo MLIR пайдаланады, ол бағдарламашыларға параллельдеу үшін AI үшін векторларды, ағындарды және аппараттық бірліктерді пайдалануға мүмкіндік береді. Mojo Python бір ағынды орындауға қарағанда бірнеше ядролар бойынша параллель өңдеуді қолдайды.
Python-мен салыстырғанда 35,000 XNUMXx жылдамдықпен Mojo жылдамдығы жағынан басқа тілдерді басып озады.
Бірлескен жұмыс
Бүкіл Python экожүйесімен өзара әрекеттесу Mojo бірегей артықшылықтарының бірі болып табылады. Бұл Mojo-ны Numpy және Matplotlib сияқты кез келген ерікті кітапханалармен, сондай-ақ тапсырыс беруші кодпен біріктіре алатыныңызды білдіреді.
Мысалы, Python кітапханасының Matplotlib көмегімен Mojo кодындағы деректерді визуализациялауға болады.
Extensibility
Mojo сонымен қатар өте икемді, пайдаланушыларға үлгілерге алдын ала және кейінгі өңдеу қадамдарын қосуға немесе бар қадамдарды жаңаларына ауыстыруға мүмкіндік береді.
Өз үлгілерін және Модульдік стекті жақсарту үшін әзірлеушілер ядроны біріктіруді, графикті қайта жазуды, пішін функцияларын және басқа әдістерді пайдалана алады.
Неліктен оны Python орнына таңдайсыз?
Python - икемділігі мен жоғары өнімді жинақталған кітапханаларының арқасында танымал AI әзірлеу тілі. Дегенмен, ол C++ сияқты тілдерге қарағанда айтарлықтай баяу.
Сондықтан, бағдарламашылар Python-ды өнімділігі маңызды аймақтарда қолданбау үшін жылдамырақ тілдердің айналасында Python орауыштарын пайдалануды үйренеді.
Бұл екі тілдік мәселеге әкеледі, онда модельдерді Python-дан ONNX немесе алау сценарийі сияқты жылдамырақ іске асыруға түрлендіру қажет, бұл Python-ның барлық мүмкіндіктерін қолдамайды. Python-да өнімділік мәселелері және жақсы параллель өңдеудің жоқтығы бар.
Тіпті тәжірибелі бағдарламашыларға екі тілдің дилеммасына байланысты өнімділік мәселелерін зерттеу, жөндеу және шешу қиынға соғады.
Сондай-ақ тілдің құрылымына байланысты Python жасай алатын негізгі шектеулер бар. Негізгі құрамдас бөліктерді қолданатын алгоритмдерді нақты іске асыру оңай болып көрінгенімен, бұл айтарлықтай қиынырақ және жылдамырақ тілді пайдалануды қажет етеді.
Қалай бастау керек?
Бастау үшін Mojo тілін дәл қазір олардың Playground қолданбасында пайдалануға болады. JupyterHub негізіндегі Playground сабақ береді және Mojo әлі орындалып жатқан жұмыс болса да, жеке Mojo кодын жасауға мүмкіндік береді.
Ойын алаңына кіру үшін олардың веб-сайтында кіруге тіркелуіңізге болады.
Өзінің өнімділік мақсаттарына жету үшін Mojo біріктірілген кэштеу, көп ағынды және бұлтты тарату технологиялары бар келесі буын компилятор технологияларын пайдаланады.
Ол жүйелік бағдарламалауға қосымша примитивтерді қосады және уақыт өте келе Python суперсетіне айналуға ұмтылады. Mojo көмегімен кодтауды бастау үшін Python сияқты терминалдан Mojo бағдарламасын іске қосу үшін Mojo компиляторын пайдаланыңыз.
Бұл тіл қазіргі уақытта әзірленуде және жүйелік бағдарламалау тәжірибесі бар әзірлеушілерге арналған.
Орау
Mojo Python супержиналы болып саналады. Және оның Python қарапайымдылығын C++ және Rust өнімділігімен біріктіру арқылы бағдарламалауда төңкеріс жасау мүмкіндігі бар.
Ол толық мүмкіндікті пайдалана алады Python кітапханасы экожүйе, әзірлеушілерге C, C++, Rust немесе CUDA қажетсіз жоғары өнімді кітапханалар жасауға мүмкіндік береді.
Ол автобаптау және компиляция уақытының мета-бағдарламалау мүмкіндіктерінің арқасында портативті кодты жасауға мүмкіндік береді.
Бұл әлі де орындалып жатқан жұмыс болса да, оның керемет бағдарламалау құралына айналу және бағдарламалау индустриясын өзгерту мүмкіндігі бар. Сонымен, біз модульдік жаңалықтардан хабардар болуымыз керек!
Крис Сантос
Сіздің ойыңызша, негізгі және орта білімі бар адам оқуын осы жаңа тілде бастай алады ма? Немесе алдымен Javascript немесе Python сияқты қарапайым тілді үйренуге кеңес бересіз бе?
İlke Candan Bengi
Сәлем Крис, кеш жауап бергенім үшін кешіріңіз! Менің ойымша, Python туралы негізгі түсінік/тәжірибе Mojo-ны бастамас бұрын пайдалы болуы мүмкін.