Мојо језик за АИ програмере

Свет технологије се увек креће. Најновији клинац у блоку је Мојо програмски језик. Потребан је плашт да се побољшају брзине извршавања за пројекте засноване на Питхон-у, дајући програмерима брзине сличне Ц.

Питхон је један од најбољих програмских језика. То је свестрани програмски језик који се лако учи и који новим ученицима нуди приступ програмирању/рачунарству.

Штавише, то је одличан програмски језик за руке компетентних програмера који га могу користити за креирање сложених апликација. Међутим, један од најзначајнијих недостатака Питхон-а је његова брзина извршавања. И ту долази Мојо.

Овај чланак покрива Мојо и како је он повезан са Питхон екосистемом. Хајде да почнемо.

Шта је Мојо?

Мојо је савремени програмски језик високог нивоа. Нуди интуитиван дизајн који помаже програмерима да брзо креирају апликације. Поред тога, има за циљ да премости јаз између производње и истраживања омогућавајући корисницима да користе функције метапрограмирања и системско програмирање са Питхон-овом синтаксом и екосистемом.

У великој мери позајмљује од Руста и пружа велике брзине извршавања Питхон екосистему. Технички, Мојо је суперскуп Питхон-а, који вам даје приступ.

Тим иза Мојоа је из Модулара, компаније за АИ инфраструктуру. А то такође значи да је то програмски језик за програмере вештачке интелигенције. Поред Мојо програмског језика, такође су представили Интерференце Енгине, који програмерима омогућава да побољшају свој ток посла, скалирају АИ производе и смање кашњење у закључивању (више о томе касније).

  Шта значи квачица на ОнлиФанс-у?

Према речима извршног директора Модулара, Криса Латнера, Мојо је 35.000 пута бржи од Питхона. Он такође стоји иза брзог развоја програмског језика. Повећање брзине се постиже захваљујући томе како Мојо користи ЛЛВМ ланац алата компајлера и МИЛР (Мулти-левел Интермедиате Репресентатион Овервиев) инфраструктуру компајлера.

Циљеви Мојо програмских језика укључују:

  • Радите са потпуном компатибилношћу са Питхон екосистемом.
  • Омогућите програмерима да примењују подскупове кода у акцелераторима.
  • Контрола ниског нивоа како би се обезбедиле предвидљиве перформансе.
  • Осигурајте да нема фрагментације екосистема.

Да бисте испробали Мојо, мораћете да га користите кроз њихово окружење хостовано у облаку, Мојо Плаигроунд. Тражиће од вас да се пријавите и можете добити радно окружење!

Зашто нам треба Мојо?

Основна идеја иза Мојоа је да се обједини МЛ/АИ инфраструктура тако што ће обезбедити програмски језик који ради на читавом стеку. Штавише, обезбеђује једноставну употребу уклањањем потребе за писањем МЛИР кода.

Према Модулару, Мојо ће понудити скалабилан и иновативан модел програмирања. На тај начин, корисници поља вештачке интелигенције ће лако радити са акцелераторима и хетерогеним системима.

Технички, то чини Мојо програмским језиком који подржава метапрограмирање током компајлирања. Такође подржава друге карактеристике, као што је кеширање током тока компилације, технике адаптивне компилације, итд. Ове карактеристике нису присутне у другим програмским језицима.

Ако желите да прочитате више о Мојо филозофији, погледајте Модуларни документи – Зашто Мојо🔥

Карактеристике Мојо програмског језика

У овом одељку ћемо погледати кључне карактеристике Мојо програмског језика.

#1. Потпуна компатибилност са Питхон-ом

Мојо има за циљ да ради са Питхон-овим екосистемом, а не против њега. Ово је очигледно из чињенице да Мојо користи исте функције, библиотеке и карактеристике које нуди Питхон. Дакле, можете користити било коју Питхон библиотеку коју желите у оквиру Мојо-а.

  Како да решите проблеме са зум позивом

Да бисте увезли, мораћете да користите следећи код:

from PythonInterface import Python

Када завршите, можете користити Питхон.импорт_модуле() за увоз било које Питхон библиотеке.

На пример, да бисте увезли нумпи, мораћете да користите следећи ред кода.

let np = Python.import_module(“numpy”)

У Питхон-у ћете морати да урадите „импорт нумпи ас нп“

Пошто је увезен, сада га можете користити за креирање низова, рачунања итд.

array = np.array([1, 2, 3])

print(array)

Слично, можете да увезете матплотлиб.пиплот да бисте креирали графикон у Мојо-у.

Овако то изгледа када покренем код у Мојо Плаигроунд-у.

Ако желите да испробате код, копирајте га одоздо.

from PythonInterface import Python

let np = Python.import_module("numpy")

array = np.array([1, 2, 3, 4, 5])

print(array)

#2. МИЛР

МИЛР је скраћеница за мулти-левел Интермедиате Репресентатион. Мојо подржава МИЛР. Ово, заузврат, омогућава програмерима да скину читав низ нових напредних функција. Ове карактеристике укључују АИ хардверске јединице, нити и векторе.

МИЛР побољшава перформансе због истовремености, чинећи Мојо бржим од Питхон-а. Поред тога, омогућава програмерима да искористе предности више језгара.

#3. Провера власништва и зајмопримца

Питхон-ово управљање меморијом је безбедно. Користи сакупљач смећа, тако да програмери морају осигурати да код неће наићи на услове трке.

Мојо, слично као и Руст, примењује строги модел провере власништва и зајмопримца. Тренутно се делимично спроводи. Идеја иза коришћења модела је да се побољша истовременост и обезбеди одлично управљање меморијом.

Модел власништва такође обезбеђује приступ безбедан нити, који је идеалан за пружање одличне подршке за истовремено. На овај начин, програми не наилазе на услове трке. Такође, провера зајмопримца обезбеђује да се варијабле увек проверавају током времена рада.

#4. Нулта цена апстракције

Мојо нуди апстракције без трошкова, омогућавајући програмерима да преузму потпуну контролу над складиштењем. Овде програмери могу да изврше инлине алокацију вредности структурама.

  Шта је боље за уређивање видеа?

#5. Ауто-тунинг

Мојо такође нуди аутоматско подешавање. Ово обезбеђује аутоматску алокацију најбољих вредности за параметре, у зависности од циљног хардвера.

Аутоматско подешавање уклања потребу за ручном оптимизацијом кода у складу са циљним хардвером.

Брзина: Колико је брз Мојо језик?

Питхон је програмски језик високог нивоа који има за циљ лаку употребу и одржавање. Нажалост, то га чини спорим у поређењу са другим решењима или програмским језицима.

У Модуларовом тесту, открили су да је Мојо 35000к. Користили су Манделброт алгоритам и покренули га на АВС инстанци са Интел Ксеон процесором који је напаја. Тестирали су ПИПИ, СЦАЛАР Ц++ и МОЈО, заједно са Питхон-ом. Резултати су били супер брзи, а резултате можете видети у наставку.

Извор: модулар.цом

Да бисте прочитали више о Мојо брзини, погледајте овај пост на Јулиаланг заједници.

Модуларни механизам закључивања – Покрените АИ моделе јефтино

Модулар такође развија Модулар Интерференце Енгине који чини јефтинијим покретање АИ модела у производњи. Мојо подразумевано подржава Модулар Интерфенце Енгине. Омогућава тимовима да поједноставе свој радни ток. Такође омогућава програмерима да смање кашњење закључивања, што олакшава скалирање АИ производа.

Такође, програмери не морају да мењају свој модел да би користили Енгине. Једном учитан, може да напуни ПиТорцх и ТенсорФлов моделе, способне да покрећу високе перформансе са широком хардверском подршком.

Хоће ли заменити Питхон?

Мојо је нов. Изгледа обећавајуће. Дакле, биће потребно време да се досегне циљна публика, као што су научници података или програмски језици. И, да, решава посебне проблеме за АИ ентузијасте и ученике. Међутим, постоји много сличних решења која побољшавају брзину језика Питхон. На пример, наћи ћете Јак, Цодон и Јулиа — језик оријентисан на науку о подацима.

Дакле, могу се десити две ствари. Прво, експоненцијално расте у погледу карактеристика, а заједница га усваја. Други резултат је да он постаје ад-хоц програмски језик који користи Питхон библиотеке и Модулар Интерференце Енгине.

Дакле, да ли ће Мојо заменити Питхон? Само време може рећи.

Следеће, погледајте корисне Питхон-ове једнолиније да бисте поједноставили уобичајене задатке.