Երբևէ ցանկացե՞լ եք ստեղծել ավելի արագ և արդյունավետ հավելվածներ, սակայն պարզել եք, որ ստանդարտ ծրագրավորման լեզուներն ի վիճակի չեն բավարարել ձեր պահանջները:
Սա այն ժամանակն է, երբ գործում է Mojo լեզուն:
Mojo-ն ծրագրավորման նոր լեզու է, որը մշակվել է Մոդուլային, ընկերություն, որը մասնագիտացած է AI ենթակառուցվածքում:
Այն հատկապես նախագծված է, որպեսզի ծրագրավորողներին հնարավորություն ընձեռի ստեղծել ավելի արագ և ամուր հավելվածներ մի քանի օգտագործման դեպքերի համար, ներառյալ AI-ի մշակումը: Այս գրառման մեջ մենք կանդրադառնանք, թե ինչ Mojo այն է, թե ինչպես է այն աշխատում, և ինչու դուք պետք է օգտագործեք այն ձեր հաջորդ նախագծում:
Մոջոյի ծագումը
Mojo-ի ստեղծողները գիտակցեցին ծրագրավորման լեզվի անհրաժեշտությունը, որը համատեղում է Python-ի օգտագործելիությունը C-ի արագության և արդյունավետության հետ:
Եվ նրանք ստեղծեցին մի լեզու, որը թույլ կտա ծրագրավորողներին ստեղծել բարձր արդյունավետությամբ հավելվածներ՝ առանց ստանդարտ սարքավորումների նկարագրության լեզուներ սովորելու:
Արդյունքում նրանք ստեղծեցին Mojo-ն, որը նախատեսված է լիովին համատեղելի Python-ի էկոհամակարգի հետ՝ միաժամանակ ապահովելով C մակարդակի արագություն:
Մոդուլային՝ Mojo լեզվի հետևում գտնվող կազմակերպությունը
Այսպիսով, ովքե՞ր են այս ֆուտուրիստական լեզվի ստեղծողները:
Modular-ը AI ենթակառուցվածքի համաշխարհային առաջատար ստարտափ է, որը ստեղծվել է Քրիս Լաթների և Թիմ Դևիսի կողմից, ովքեր հանդիպել են Google-ում և հասկացել, որ չափազանց բարդ և մասնատված ենթակառուցվածքը սահմանափակում է AI-ի գլոբալ ազդեցությունը:
Modular-ի նպատակն ու նպատակն է վերանայել արհեստական ինտելեկտի ենթակառուցվածքը՝ մարդկության բարձրացման համար: Նրանց մշակույթն ու սկզբունքները առաջնահերթություն են տալիս հաճախորդներին, բարձրորակ արտադրական ծրագրակազմին և նշանակալից արդյունքների
Մոջոյի նպատակները
Mojo-ն նախագծվել է մեքենայական ուսուցման արագացուցիչների համար ծրագրավորման եզակի մոդել ապահովելու համար:
Modular-ը որոշել է, որ Mojo-ն պետք է թույլ տա ընդհանուր նշանակության ծրագրավորում, քանի որ այսօրվա պրոցեսորներն ունեն թենսորներ և այլ AI արագացուցիչներ: Ավելին, քանի որ Python-ը լայնորեն օգտագործվում է մեքենայական ուսուցման և այլ ոլորտներում, Modular-ը որոշեց միանալ Python էկոհամակարգին:
Python-ի օգտագործումը ավելի հեշտացրեց լեզվի դիզայնը: Քանի որ շարահյուսության մեծ մասն արդեն որոշված էր, կորպորացիան կարող էր փոխարենը կենտրոնանալ կոմպիլյացիայի մեխանիզմի ստեղծման և մասնագիտացված ծրագրավորման հնարավորություններ տրամադրելու վրա:
Կարևոր առանձնահատկություններ, որոնք պետք է հաշվի առնել
Ծրագրավորելիություն
Պրոգրեսիվ տեսակներ
Mojo Language-ի առաջադեմ տեսակների առանձնահատկությունը ծրագրավորողներին հնարավորություն է տալիս օգտագործել տիպի ծանոթագրություններ բարձրացնել արդյունավետությունը և սխալների ստուգում:
Մշակողները կարող են մշակել ավելի արդյունավետ կոդ, որը հայտնաբերում է սխալները կոմպիլյացիայի ժամանակ՝ վերացնելով սխալները և բարձրացնելով արդյունավետությունը՝ տրամադրելով ավելի մանրակրկիտ տեսակի տեղեկատվություն:
Զրոյական ծախսերի աբստրակցիաներ
Մշակողները կարող են վերահսկել պահեստավորումը՝ ներկառուցված տվյալների բաշխմամբ կառուցվածքների մեջ՝ շնորհիվ Mojo Language-ի կողմից տրամադրված զրոյական ծախսերի վերացականումների:
Չեղարկելով լրացուցիչ հիշողության հատկացումների պահանջը՝ այս հատկությունը բարելավում է կոդի արդյունավետությունը և նվազեցնում կաթսայի կոդերի քանակը:
Ինտեգրված լեզվի ավտոմատ կարգավորում
Լեզվի մեջ ինտեգրված ինքնակարգավորման գործառույթը Mojo Language-ում ծրագրավորողներին հնարավորություն է տալիս ավտոմատ կերպով որոշել պարամետրերի իդեալական արժեքները՝ նպատակային սարքաշարից օգտվելու համար:
Այս ֆունկցիոնալությամբ ավելի հեշտ է օպտիմիզացնել կոդը՝ առանց այն ձեռքով կարգավորելու յուրաքանչյուր սարքաշարային համակցության համար:
Mojo Language-ը ճկուն և արդյունավետ գործիք է արհեստական ինտելեկտի զարգացման համար, քանի որ այն նաև ապահովում է MLIR-ի (Բազմամակարդակ միջանկյալ ներկայացուցչության) ողջ հզորությունը, զուգահեռ տարասեռ գործարկման ժամանակ և արագ կառուցման ժամանակներ:
Lուգահեռացում
Mojo-ն օգտագործում է MLIR-ը, որը թույլ է տալիս ծրագրավորողներին օգտագործել վեկտորներ, թելեր և ապարատային միավորներ AI-ի համար զուգահեռացման համար: Mojo-ն աջակցում է զուգահեռ մշակմանը մի քանի միջուկների վրա՝ ի տարբերություն Python-ի մեկ թելերով կատարման:
Python-ի նկատմամբ 35,000 անգամ արագությամբ Mojo-ն արագությամբ գերազանցում է այլ լեզուներին:
Փոխգործունակության
Ամբողջ Python էկոհամակարգի հետ փոխգործունակությունը Mojo-ի եզակի առավելություններից մեկն է: Սա ենթադրում է, որ դուք կարող եք համատեղել Mojo-ն ցանկացած կամայական գրադարանների հետ, ինչպիսիք են Numpy-ը և Matplotlib-ը, ինչպես նաև ձեր պատվիրած կոդը:
Օրինակ, դուք կարող եք պատկերացնել տվյալները ձեր Mojo կոդի մեջ՝ օգտագործելով Python գրադարանի Matplotlib:
Extensibility
Mojo-ն նաև բավականին ճկուն է, որը թույլ է տալիս օգտվողներին պարզապես ավելացնել նախնական և հետմշակման քայլերը մոդելներին կամ փոխել գոյություն ունեցող քայլերը նորերով:
Իրենց մոդելները և Modular stack-ը բարելավելու համար մշակողները կարող են օգտագործել միջուկի միաձուլումը, գրաֆիկի վերագրումը, ձևի ֆունկցիաները և այլ տեխնիկա:
Ինչու՞ կընտրեիք այն Python-ի փոխարեն:
Python-ը արհեստական ինտելեկտի զարգացման հանրաճանաչ լեզու է իր ճկունության և բարձր կատարողականությամբ կազմված գրադարանների պատճառով: Այնուամենայնիվ, այն զգալիորեն ավելի դանդաղ է, քան C++-ի նման լեզուները:
Հետևաբար, ծրագրավորողները սովորում են օգտագործել Python-ի փաթաթանները ավելի արագ լեզուների շուրջ, որպեսզի խուսափեն Python-ի օգտագործումից արդյունավետության համար կարևոր ոլորտներում:
Սա հանգեցնում է երկլեզու խնդրի, որի դեպքում մոդելները պետք է Python-ից վերածվեն ավելի արագ իրականացման, օրինակ՝ ONNX կամ torch script, որը չի ապահովում Python-ի բոլոր հնարավորությունները: Python-ն ունի նաև աշխատանքի հետ կապված խնդիրներ և լավ զուգահեռ մշակման բացակայություն:
Նույնիսկ փորձառու ծրագրավորողները դժվարանում են ուսումնասիրել, կարգաբերել և լուծել կատարողականի խնդիրները՝ երկլեզու երկընտրանքի պատճառով:
Կան նաև հիմնական սահմանափակումներ, թե ինչ կարող է անել Python-ը` պայմանավորված լեզվի կառուցվածքով: Թեև հիմնական բաղադրիչներն օգտագործող ալգորիթմների իրական աշխարհում իրականացումը կարող է հեշտ թվալ, այն զգալիորեն ավելի դժվար է և պահանջում է ավելի արագ լեզվի օգտագործում:
Ինչպե՞ս սկսել:
Դուք կարող եք սկսել օգտագործել Mojo լեզուն հենց հիմա իրենց Խաղահրապարակում՝ սկսելու համար: JupyterHub-ի վրա հիմնված Խաղահրապարակը տալիս է դասեր և հնարավորություն՝ ստեղծելու ձեր սեփական Mojo կոդը, թեև Mojo-ն դեռևս ընթացքի մեջ է:
Խաղահրապարակ մուտք գործելու համար կարող եք գրանցվել նրանց կայքէջում մուտք գործելու համար:
Իր կատարողական նպատակներին հասնելու համար Mojo-ն օգտագործում է հաջորդ սերնդի կոմպիլյատորների տեխնոլոգիաներ՝ ինտեգրված քեշավորման, բազմաթելային և ամպային բաշխման տեխնոլոգիաներով:
Այն հավելյալ պրիմիտիվներ է ավելացնում համակարգերի ծրագրավորմանը և ձգտում է ժամանակի ընթացքում դառնալ Python-ի սուպերսեթ: Mojo-ի հետ կոդավորումը սկսելու համար օգտագործեք Mojo կոմպիլյատորը՝ տերմինալից Mojo ծրագիրը գործարկելու համար այնպես, ինչպես դա անում է Python-ը:
Լեզուն ներկայումս մշակման փուլում է և ուղղված է համակարգերի ծրագրավորման փորձ ունեցող ծրագրավորողներին:
Փաթեթավորեք
Mojo-ն համարվում է Python-ի սուպերսեթ: Եվ այն ունի ծրագրավորումը հեղափոխելու ներուժ՝ համատեղելով Python-ի պարզությունը C++-ի և Rust-ի կատարման հետ:
Այն կարող է լիարժեք օգտվել Python գրադարան էկոհամակարգ, որը թույլ է տալիս ծրագրավորողներին ստեղծել բարձր արդյունավետությամբ գրադարաններ՝ առանց C, C++, Rust կամ CUDA-ի անհրաժեշտության:
Այն հնարավորություն է տալիս շարժական կոդի արտադրություն՝ շնորհիվ իր ինքնակարգավորման և կոմպիլյացիայի ժամանակի մետածրագրավորման առանձնահատկությունների:
Թեև այն դեռևս ընթացքի մեջ է, այն ունի ծրագրավորման ահռելի գործիք դառնալու և ծրագրավորման արդյունաբերությունը փոխակերպելու ներուժ: Այսպիսով, մենք պետք է մնանք Modular-ի հետագա զարգացումների համար:
Քրիս Սանտոս
Ի՞նչ եք կարծում, հիմնականից միջին գիտելիքներ ունեցող մարդը կկարողանա՞ սկսել իր ուսումը այս նոր լեզվով։ Կամ խորհուրդ եք տալիս նախ ուսումնասիրել ավելի հիմնական լեզու, օրինակ՝ Javascript կամ Python:
İlke Candan Bengi
Բարև Քրիս, կներեք ուշ արձագանքելու համար: Կարծում եմ, որ նախօրոք Python-ի հիմնական ըմբռնումը/փորձը կարող է օգտակար լինել Mojo-ով սկսելուց առաջ: