Вы калі-небудзь хацелі ствараць больш хуткія і эфектыўныя прыкладанні, але выявілі, што стандартныя мовы праграмавання не здольныя задаволіць вашыя патрабаванні?
Тут у гульню ўваходзіць мова Mojo.
Mojo - гэта новая мова праграмавання, распрацаваная Модульны, кампанія, якая спецыялізуецца на інфраструктуры штучнага інтэлекту.
Ён асабліва распрацаваны, каб дазволіць распрацоўшчыкам ствараць больш хуткія і надзейныя прыкладанні для розных варыянтаў выкарыстання, у тым ліку для распрацоўкі штучнага інтэлекту. У гэтым пасце мы разгледзім, што Mojo як гэта працуе і чаму вы павінны выкарыстоўваць яго ў сваім наступным праекце.
Паходжанне Mojo
Стваральнікі Mojo прызналі неабходнасць мовы праграмавання, якая спалучала б зручнасць выкарыстання Python з хуткасцю і эфектыўнасцю C.
І яны стварылі мову, якая дазволіць распрацоўнікам ствараць высокапрадукцыйныя прыкладанні без неабходнасці вывучаць стандартныя мовы апісання абсталявання.
У выніку яны стварылі Mojo, які павінен быць цалкам сумяшчальны з экасістэмай Python, забяспечваючы пры гэтым хуткасць C-ўзроўню.
Модульны: арганізацыя, якая стаіць за мовай Mojo
Такім чынам, хто стваральнікі гэтай футурыстычнай мовы?
Modular - гэта вядучы ў свеце стартап інфраструктуры штучнага інтэлекту, створаны Крысам Латтнерам і Цімам Дэвісам, якія сустрэліся ў Google і зразумелі, што занадта складаная і фрагментаваная інфраструктура абмяжоўвае глабальны ўплыў штучнага інтэлекту.
Мэтай і задачай Modular з'яўляецца пераасэнсаванне інфраструктуры штучнага інтэлекту для паляпшэння чалавецтва. Іх культура і прынцыпы надаюць перавагу кліентам, высакаякаснаму вытворчаму праграмнаму забеспячэнню і дасягненню значных вынікаў
Мэты Mojo
Mojo быў распрацаваны, каб забяспечыць унікальную мадэль праграмавання для паскаральнікаў машыннага навучання.
Modular вызначыла, што Mojo павінна дазваляць праграмаванне агульнага прызначэння, таму што сучасныя працэсары маюць тэнзары і іншыя паскаральнікі штучнага інтэлекту. Акрамя таго, паколькі Python шырока выкарыстоўваецца ў машынным навучанні і іншых галінах, Modular вырашыў далучыцца да экасістэмы Python.
Выкарыстанне Python яшчэ больш палегчыла дызайн мовы. Паколькі большасць сінтаксісу ўжо была вызначана, карпарацыя можа замест гэтага засяродзіцца на стварэнні механізму кампіляцыі і прадастаўленні спецыялізаваных магчымасцей праграмавання.
Важныя функцыі, якія варта ўлічваць
Магчымасць праграмавання
Прагрэсіўныя тыпы
Функцыя прагрэсіўных тыпаў мовы Mojo дазваляе распрацоўшчыкам выкарыстоўваць анатацыі тыпаў для павысіць эфектыўнасць і праверка памылак.
Распрацоўшчыкі могуць распрацаваць больш эфектыўны код, які выяўляе памылкі падчас кампіляцыі, ліквідуе памылкі і павышае эфектыўнасць, падаючы больш поўную інфармацыю аб тыпах.
Абстракцыі без выдаткаў
Распрацоўшчыкі могуць узяць пад кантроль сховішча шляхам убудаванага размеркавання даных у структуры дзякуючы абстракцыям з нулявой коштам, якія прадстаўляюцца мовай Mojo.
Адмяняючы патрабаванне аб дадатковым размеркаванні памяці, гэтая функцыя павышае эфектыўнасць кода і зніжае колькасць шаблоннага кода.
Інтэграваная аўтанастройка мовы
Інтэграваная ў мову функцыя аўтанастройкі ў Mojo Language дазваляе распрацоўшчыкам аўтаматычна вызначаць ідэальныя значэнні параметраў, каб атрымаць выгаду з мэтавага абсталявання.
З дапамогай гэтай функцыі прасцей аптымізаваць код без неабходнасці ўручную наладжваць яго для кожнай камбінацыі абсталявання.
Мова Mojo з'яўляецца гнуткім і эфектыўным інструментам для распрацоўкі штучнага інтэлекту, паколькі ён таксама забяспечвае ўсю моц MLIR (шматузроўневае прамежкавае прадстаўленне), паралельнае гетэрагеннае асяроддзе выканання і хуткі час зборкі.
Паралелізацыя
Mojo выкарыстоўвае MLIR, які дазваляе праграмістам выкарыстоўваць вектары, патокі і апаратныя блокі для AI для паралелізацыі. Mojo падтрымлівае паралельную апрацоўку некалькіх ядраў у адрозненне ад аднаструменнага выканання Python.
Дзякуючы паскарэнню ў 35,000 XNUMX разоў у параўнанні з Python, Mojo пераўзыходзіць іншыя мовы па хуткасці.
функцыянальная сумяшчальнасць
Узаемадзеянне з усёй экасістэмай Python - адна з унікальных пераваг Mojo. Гэта азначае, што вы можаце камбінаваць Mojo з любымі адвольнымі бібліятэкамі, такімі як Numpy і Matplotlib, а таксама са сваім індывідуальным кодам.
Напрыклад, вы можаце візуалізаваць дадзеныя ў вашым кодзе Mojo з дапамогай бібліятэкі Python Matplotlib.
расцяжымасць
Mojo таксама даволі гнуткі, дазваляючы карыстальнікам проста дадаваць этапы папярэдняй і пасляапрацоўкі да мадэляў або замяняць існуючыя этапы на новыя.
Каб палепшыць свае мадэлі і модульны стэк, распрацоўшчыкі могуць выкарыстоўваць зліццё ядра, перапісванне графаў, функцыі формы і іншыя метады.
Чаму вы выбралі яго замест Python?
Python з'яўляецца папулярнай мовай распрацоўкі штучнага інтэлекту дзякуючы сваёй гнуткасці і высокапрадукцыйным скампіляваным бібліятэкам. Аднак гэта значна павольней, чым такія мовы, як C++.
Такім чынам, праграмісты вучацца выкарыстоўваць абгорткі Python вакол больш хуткіх моў, каб пазбегнуць выкарыстання Python для крытычных для прадукцыйнасці абласцей.
Гэта прыводзіць да праблемы дзвюх моў, у якой мадэлі павінны быць пераўтвораны з Python у больш хуткую рэалізацыю, такую як ONNX або скрыпт torch, які не падтрымлівае ўсе магчымасці Python. Python таксама мае праблемы з прадукцыйнасцю і адсутнасць добрай паралельнай апрацоўкі.
Нават дасведчаным праграмістам цяжка вывучаць, адладжваць і вырашаць праблемы прадукцыйнасці з-за дылемы дзвюх моў.
Існуюць таксама асноўныя абмежаванні на тое, што Python можа рабіць з-за спосабу структуры мовы. У той час як рэальная рэалізацыя алгарытмаў з выкарыстаннем асноўных кампанентаў можа здацца простай, яна значна больш складаная і патрабуе выкарыстання больш хуткай мовы.
Як пачаць?
Вы можаце пачаць выкарыстоўваць Mojo Language прама зараз на іх Playground, каб пачаць. Playground на базе JupyterHub дае ўрокі і магчымасць стварыць свой уласны код Mojo, нават калі над Mojo яшчэ не працуецца.
Вы можаце зарэгістравацца для доступу на іх сайце, каб атрымаць доступ да Playground.
Каб дасягнуць сваіх мэтаў прадукцыйнасці, Mojo выкарыстоўвае тэхналогіі кампілятара наступнага пакалення з убудаваным кэшаваннем, шматструменнасцю і тэхналогіямі воблачнага размеркавання.
Ён дадае дадатковыя прымітывы ў сістэмнае праграмаванне і імкнецца з часам стаць супернаборам Python. Каб пачаць кадзіраванне з дапамогай Mojo, выкарыстоўвайце кампілятар Mojo, каб запусціць праграму Mojo з тэрмінала гэтак жа, як гэта робіць Python.
Мова зараз знаходзіцца ў стадыі распрацоўкі і прызначана для распрацоўшчыкаў з вопытам сістэмнага праграмавання.
хутацца
Mojo лічыцца надмноствам Python. І ён можа здзейсніць рэвалюцыю ў праграмаванні, спалучаючы прастату Python з прадукцыйнасцю C++ і Rust.
Ёю можна скарыстацца ў поўнай меры Бібліятэка Python экасістэма, якая дазваляе распрацоўшчыкам ствараць высокапрадукцыйныя бібліятэкі без C, C++, Rust або CUDA.
Гэта дазваляе вырабляць пераносны код дзякуючы функцыям аўтанастройкі і метапраграмавання падчас кампіляцыі.
Нягледзячы на тое, што праца над ім яшчэ знаходзіцца ў стадыі распрацоўкі, ён можа стаць выдатным інструментам праграмавання і змяніць індустрыю праграмавання. Такім чынам, мы павінны сачыць за будучымі распрацоўкамі Modular!
Крыс Сантас
Як вы лічыце, ці зможа чалавек з базавымі і сярэднімі ведамі пачаць навучанне гэтай новай мове? Ці вы параіце спачатку вывучыць больш базавую мову, напрыклад Javascript або Python?
Ільке Кандан Бенгі
Прывітанне, Крыс, прабачце за позні адказ! Я лічу, што папярэдняе асноўнае разуменне/вопыт працы з Python можа быць карысным перад пачаткам працы з Mojo.